wan / v2.6 / fal / reference-to-video
Keep a subject consistent across clips
- source_image
- loras
- api_config
- video
- workflow_id
- raw_json
Wan 2.6's answer to the hardest problem in AI video - keeping a subject recognizable across clips - as a cloud recipe node. Reference videos in, native VIDEO out, run on fal's fleet through Civitai's Orchestration API and billed in Buzz. It's part of the official civitai-comfy-nodes pack, and it's the one node here you'd reach for when "same character, different scene" is the actual task.
Here's the mechanism: you feed up to three reference videos of your subject, and in the prompt you refer to them as @Video1, @Video2, @Video3. The model anchors the subject's look to those clips instead of hallucinating a fresh design every run. That's character-consistency work that normally takes local fine-tunes or careful I2V chaining - 2.6 does it in one metered call.
The inputs that matter
prompt and cfg_scale (default 4) are required. Then the inputs that define this variant:
reference_video_urls_json- the star input. A JSON text field holding URLs to your 1–3 reference videos (minimum 16 FPS). This is one of the pack's "freeform structures stay JSON" fields, so it must be valid JSON - an array of URL strings. Reference the subjects in the prompt as@Video1,@Video2,@Video3.duration- 1 to 30 seconds, but the tooltip is explicit: reference-to-video is limited to 5 or 10 seconds. Set it to 5 or 10; anything else may error or get clamped.aspect_ratio-16:9,9:16,1:1,4:3,3:4(default 16:9).source_image- an optional style/start reference image alongside the videos.resolution-720por1080p(default 1080p).multi_shots- off by default; a single run producing multiple shots.enable_prompt_expansion- on by default; off for exact prompts.negative_prompt,enable_safety_checker- the usuals.loras-CIVITAI_LORASsocket.frame_rate,steps,seed,api_config.
Note the one input this node does not have: audio_url. The tooltip on the sibling nodes says background audio is text-to-video/image-to-video only - reference-to-video is out of scope, so don't go looking for it here.
Outputs
Standard trio: video (VIDEO) into a Save Video / preview node, workflow_id (STRING) for sidebar tracking, raw_json (STRING) for response and cost.
Install and auth
One-time, pack-wide. ComfyUI Manager → search Civitai Comfy Nodes → install, restart:
cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt # just `requests`
Auth: Civitai Auth node, CIVITAI_API_TOKEN (headless), or sidebar sign-in.
Troubleshooting and takes
- The #1 failure: malformed JSON.
reference_video_urls_jsonmust be an actual JSON array of strings. A missing bracket gives you a clear local "not valid JSON" error - fix the text field, it's not a network problem. - References need to be public URLs. The model fetches them server-side; localhost or private files won't work.
- Forgetting the
@Videotags. URLs alone don't tell the model what each video is. You have to name them in the prompt - "the woman in @Video1 walks into the rain" - or the references mostly get ignored. - Respect the 5/10s duration cap. That tooltip is the spec, not a suggestion.
- Closed model, fixed filter, and 2.6's mixed reputation. Alibaba's moderation applies, and the community wasn't kind to 2.6's general quality - this node's value is the consistency workflow, not raw fidelity.
- Slow / timeout. Pack launched June 2026 during Civitai's GPU crunch; reference jobs are heavy. Default timeout 30 min - raise via Civitai Auth
timeout_minutesorCIVITAI_COMFY_TIMEOUT. - Early preview. Generated nodes "may change without notice."
Reach for this when you need one subject to stay one subject across generated clips and you'd rather pay per call than train. For a single scene with background music, the plain 2.6 image-to-video node is the sibling with the audio_url input.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| cfg_scale | FLOAT | 4.000–100 | — |
| source_imageopt | IMAGE | Either A URL, A DataURL or a Base64 string | |
| frame_rateopt | INT | 240–2147483647 | — |
| durationopt | INT | 51–30 | Duration for reference-to-video is limited to 5 or 10 seconds |
| seedopt | INT | 00–4294967295 | — |
| stepsopt | INT | 2010–50 | — |
| lorasopt | CIVITAI_LORAS | — | |
| resolutionopt | COMBO | 1080p | 2 options: 720p, 1080p |
| negative_promptopt | STRING | — | |
| enable_prompt_expansionopt | BOOLEAN | true | — |
| multi_shotsopt | BOOLEAN | false | — |
| enable_safety_checkeropt | BOOLEAN | false | — |
| audio_urlopt | STRING | URL of audio file for background music (3-30 seconds, up to 15 MB) Supported for text-to-video and image-to-video only | |
| reference_video_urls_jsonopt | STRING | Reference videos for subject consistency (1-3 videos with minimum 16 FPS) Use @Video1, @Video2, @Video3 in the prompt to reference these subjects | |
| aspect_ratioopt | COMBO | 16:9 | 5 options: 16:9, 9:16, 1:1, 4:3, 3:4 |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |