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
P2 — Edit + save to pod
P3 — Timeline (OTIO-lite)
P4 — Generation
P5 — Prompt library / sharing
Data model
One JSON-LD doc, two views (canvas + timeline):
- schema.org —
ImageObject / VideoObject for media assets.
wp: vocab — wp:Prompt (text, wp:model, wp:params, wp:aspect), canvas wp:x / wp:y, wp:derivedFrom (lineage edges).
- OTIO-lite —
tracks[] -> 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
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
<script type="application/ld+json">data island OR?src=<url>(pod file, via xlogin.authFetch / conneg)wp:derivedFrom)P2 — Edit + save to pod
/public/webprompts/<name>.jsonld; fork = copy to your podP3 — Timeline (OTIO-lite)
source_url,source_range,record_range)P4 — Generation
/private/) and/or NIP-90 nostr DVM (publish a job to a relay, provider fulfills, result back over nostr) — the decentralized, no-central-credits pathwp:derivedFromedgeP5 — Prompt library / sharing
Data model
One JSON-LD doc, two views (canvas + timeline):
ImageObject/VideoObjectfor media assets.wp:vocab —wp:Prompt(text,wp:model,wp:params,wp:aspect), canvaswp:x/wp:y,wp:derivedFrom(lineage edges).tracks[] -> clips[]referencing asset@ids for the sequence.A prompt canvas and a video timeline are the same document seen two ways.
Key decisions / constraints
TODO / references
open-cinema/AI-VIDEO-WORKFLOW-TIPS.md(shot/prompt fields, continuity) — need the file (not yet located).