Skip to content

Roadmap: webprompts — a forkable AI prompt→media→video canvas on your pod #1

Description

@melvincarvalho

A pod-native node canvas for AI prompts, media assets, and video assembly. You hand it a JSON-LD doc (inline data island or ?src=<pod-url>) and it renders a canvas of prompt / image / video nodes wired by lineage. Your data on your pod → fork = copy the doc. Built in small phases, each shipping something useful.

Inspired by the prompt-canvas pattern (promptsref, ComfyUI, Krea, Flora). Video side aligns with OpenTimeline Lite (https://github.com/inartes/otio). Always intended for prompt sharing (webprompts.org).

Phases

P1 — Canvas reader

  • Load a webprompts JSON-LD from a <script type="application/ld+json"> data island OR ?src=<url> (pod file, via xlogin.authFetch / conneg)
  • Render nodes: prompt, image (schema:ImageObject), video (schema:VideoObject); lineage edges (wp:derivedFrom)
  • Pan + zoom infinite canvas (vanilla pointer/SVG, build-free)
  • Read-only. Useful: view & share any prompt canvas.

P2 — Edit + save to pod

  • Add / move / connect / edit nodes (prompt text, model + params, media URL)
  • Save to /public/webprompts/<name>.jsonld; fork = copy to your pod
  • Useful: author your own canvases.

P3 — Timeline (OTIO-lite)

  • A timeline strip: arrange image/video clips into tracks; preview the sequence in order
  • Import / export OTIO-lite (Timeline → Track → Clip with source_url, source_range, record_range)
  • Useful: assemble a video sequence from the assets.

P4 — Generation

  • Per-node Generate (prompt + model + params)
  • Backends: BYO endpoint/key (stored in /private/) and/or NIP-90 nostr DVM (publish a job to a relay, provider fulfills, result back over nostr) — the decentralized, no-central-credits path
  • Output saved to the pod, becomes a new node/clip with a wp:derivedFrom edge
  • Useful: actually generate image/video on the canvas.

P5 — Prompt library / sharing

  • Browse / tag / fork prompts (the webprompts.org purpose); shareable canvas/prompt URLs
  • Useful: share prompts.

Data model

One JSON-LD doc, two views (canvas + timeline):

  • schema.orgImageObject / VideoObject for media assets.
  • wp: vocabwp:Prompt (text, wp:model, wp:params, wp:aspect), canvas wp:x / wp:y, wp:derivedFrom (lineage edges).
  • OTIO-litetracks[] -> clips[] referencing asset @ids for the sequence.

A prompt canvas and a video timeline are the same document seen two ways.

Key decisions / constraints

  • Build-free core (P1-P3): canvas + edit + timeline are pure client, no backend.
  • Generation needs a backend (P4) — most model APIs block direct browser calls (CORS), hence BYO-endpoint or NIP-90 DVM (decentralized, reuses our nostr plumbing from yap/taproot).
  • Fork = copy the pod resource — decentralized remix, no SaaS.

TODO / references

  • Align P1/P3 data model with open-cinema/AI-VIDEO-WORKFLOW-TIPS.md (shot/prompt fields, continuity) — need the file (not yet located).
  • OTIO-lite spec: https://github.com/inartes/otio

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions