flux / v3.0 / keyframesToVideo
Script FLUX 3 video between keyframes, without a single LoRA
- api_config
- video
- draft_cache_audio
- draft_cache_video
- workflow_id
- raw_json
This is the shot-layout node of the FLUX 3 trio. Instead of one image and a prayer, you hand it a set of keyframes in JSON and the model generates video that travels between them. It's the closest thing in this pack to "storyboarding in ComfyUI" - and it's also the fiddliest input in the whole video menu, so let's be clear about what's actually required.
Like every node in civitai-comfy-nodes - Civitai's official, ~160-node pack generated from its Orchestration API spec - this doesn't run locally. It submits a videoGen job to Civitai's cloud, bills it in Buzz, and returns a native VIDEO tensor. No model download, no VRAM, no FLUX weights to hunt for (there are no open FLUX 3 weights anyway).
The input that matters: keyframes_json
keyframes_json is a required STRING widget, and per the author's tooltip it takes "up to 10 keyframes with unique frame positions." It's JSON text - position plus whatever a keyframe carries (image/URL/state). This is the one where beginners stall: there's no editor, no picker, you paste JSON into a text box. Grab a working example from the Civitai article or the pack repo before you improvise; the schema is exacting and a malformed array gets you a server-side 400 rather than a friendly local error.
The good news: the rest of the node is friendly. prompt is a plain multiline text box describing the motion and content, duration runs 5–20 seconds, resolution is 720p/1080p, aspect_ratio goes auto, 16:9, 9:16, 21:9 and friends. generate_audio defaults on - FLUX 3's native synchronized audio is the model's marquee feature and it's free to keep on unless you're scoring it yourself. draft renders a fast, cheap 720p preview that carries a draft cache a later draftEnhance re-renders at full quality - with multiple keyframes in play, draft mode is your friend for iteration before you pay for the full render.
Outputs: video (VIDEO), draft_cache_audio (AUDIO), draft_cache_video (VIDEO), plus workflow_id and raw_json strings for debugging and cost inspection.
Install and auth
Same story as every node in the pack - official Civitai, on the Comfy Registry:
# ComfyUI Manager: search "Civitai Comfy Nodes"
cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt
Restart, then authenticate: a Civitai Auth node, the CIVITAI_API_TOKEN env var, or stored OAuth from the sidebar.
Common issues
The keyframes JSON is the trap - start from a known-good example. Beyond that, the usual pack-level gotchas apply: Buzz adds up fast on video (every generated second is billed, and keyframe-heavy work invites retries), your prompt and keyframes leave your machine to a third-party server with its own moderation, and the whole pack is early preview - the README warns nodes and behavior can change without notice. Where people also get burned: expecting this node to accept images directly. Keyframe images ride inside the JSON as URLs/data, not as IMAGE sockets - only prompt, duration, resolution, aspect_ratio, generate_audio and draft are widgets here. Keep a JSON snippet library of keyframe patterns you like and reuse them; that's how you stop re-pasting the tricky part.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| keyframes_json | STRING | Up to 10 keyframes with unique frame positions. | |
| durationopt | INT | 55–20 | Duration of the generated video in seconds. |
| resolutionopt | COMBO | 720p | 2 options: 720p, 1080p |
| aspect_ratioopt | COMBO | auto | Aspect ratio of the generated video. "auto" lets the model choose. |
| generate_audioopt | BOOLEAN | true | Whether to generate a synchronized audio track for the video. |
| draftopt | BOOLEAN | false | Render a fast, cheap 720p draft instead of a full-quality video. Draft results additionally carry a draft cache that a later draftEnhance operation re-renders at full quality. |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| draft_cache_audio | AUDIO | — |
| draft_cache_video | VIDEO | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |