Generated reference · ComfyUI workflow · Flagship (frontier)

Wan Segment Chain

Long-form chunk chaining on Wan 2.2 TI2V-5B: renders the NEXT segment of a longer film conditioned on the previous segment's tail frame, color-locks the result against a canonical reference frame (cross-segment drift is the documented FLF …

Flagship (frontier)17nodesGPU L40Sout video~240sv1.0.0

On this page

Long-form chunk chaining on Wan 2.2 TI2V-5B: renders the NEXT segment of a longer film conditioned on the previous segment's tail frame, color-locks the result against a canonical reference frame (cross-segment drift is the documented FLF failure mode), and emits both the segment video and its own tail frame for the next link in the chain

17Graph nodes
15Node classes
12Inputs
4Models

Tags: flagshipwan2.2videosegment-chainlong-formcolor-lock2026-sota

Inputs (12)#

The typed parameter surface callers bind when they request this workflow. Enum options and numeric bounds are the values the workflow document declares.

promptstringrequired
Motion-and-scene description for THIS segment
previous_tail_frameimagerequired
Last frame of the previous segment (the chain anchor)
reference_frameimage
Canonical color reference (usually the first segment's first frame); when provided, every rendered frame is color-matched to it
color_lockbooleandefault true
Reinhard Lab-space color transfer of the whole segment onto the reference frame (needs reference_frame)
resolutionenumdefault 720p_landscape
TI2V-5B native resolution (multiples of 32)
options: 720p_landscape720p_portrait
framesintegerdefault 121min 25max 121
Segment length in frames (24fps; must be 4n+1 - the latent quantizes in steps of 4)
fpsintegerdefault 24min 24max 24
TI2V-5B is trained at 24fps
stepsintegerdefault 20min 10max 30
Sampling steps (official reference: 20; ignored in fast_mode)
guidancefloatdefault 5.0min 1.0max 10.0
CFG (official reference: 5.0; ignored in fast_mode)
shiftfloatdefault 8.0min 1.0max 12.0
ModelSamplingSD3 shift (official reference: 8.0)
fast_modebooleandefault true
Turbo distill (Self-Forcing rank-64 LoRA): 4 steps without CFG - the segment-economics default for chains, where many segments amortize small per-segment quality deltas
seedintegerdefault -1
Random seed (-1 for random)

ComfyUI node graph (17)#

The executable ComfyUI prompt graph: 17 nodes across 15 distinct node classes, wired by 18 data dependencies. Nodes tinted green come from a custom node pack this workflow declares; the rest are ComfyUI core / baked-community classes.

flowchart TD n0["1: UNETLoader"] n1["2: CLIPLoader"] n2["3: VAELoader"] n3["turbo_lora: LoraLoaderModelOnly"] n4["4: ModelSamplingSD3"] n5["5: CLIPTextEncode"] n6["6: CLIPTextEncode"] n7["7: LoadImage"] n8["8: Wan22ImageToVideoLatent"] n9["9: KSampler"] n10["10: VAEDecode"] n11["ref_frame: LoadImage"] n12["color_lock_node: ColorTransfer"] n13["11: CreateVideo"] n14["12: SaveVideo"] n15["tail_pick: ImageFromBatch"] n16["13: SaveImage"] n0 -->|model| n3 n3 -->|model| n4 n1 -->|clip| n5 n1 -->|clip| n6 n2 -->|vae| n8 n7 -->|start_image| n8 n4 -->|model| n9 n5 -->|positive| n9 n6 -->|negative| n9 n8 -->|latent_image| n9 n9 -->|samples| n10 n2 -->|vae| n10 n10 -->|content_image| n12 n11 -->|style_image| n12 n12 -->|images| n13 n13 -->|video| n14 n12 -->|image| n15 n15 -->|images| n16 classDef custom fill:#12b886,stroke:#0b6b4f,color:#04110c; class n12 custom;
Data-flow DAG — scroll to zoom, drag to pan.

Nodes (17)#

1UNETLoadercore
unet_name = wan2.2_ti2v_5B_fp16.safetensorsweight_dtype = default
outputs: MODEL
2CLIPLoadercore
clip_name = umt5_xxl_fp8_e4m3fn_scaled.safetensorstype = wan
outputs: CLIP
3VAELoadercore
vae_name = wan2.2_vae.safetensors
outputs: VAE
turbo_loraLoraLoaderModelOnlycore
model = ◂ node 1 · out[0]lora_name = Wan22_TI2V_5B_Turbo_lora_rank_64_fp16.safetensorsstrength_model = 1.0
outputs: MODEL
4ModelSamplingSD3core
model = ◂ node turbo_lora · out[0]shift = {{shift}} tmpl
outputs: MODEL
5CLIPTextEncodecore
text = {{constructed_prompt}} tmplclip = ◂ node 2 · out[0]
outputs: CONDITIONING
6CLIPTextEncodecore
text = overexposed, static motion, blurry details, subtitles, watermark, jpeg artifacts, deformed limbs, fused fingers, color shift, brightness flicker, scene cutclip = ◂ node 2 · out[0]
outputs: CONDITIONING
7LoadImagecore
image = {{previous_tail_frame}} tmpl
outputs: IMAGEMASK
8Wan22ImageToVideoLatentcore
vae = ◂ node 3 · out[0]width = {{resolution_map[resolution].width}} tmplheight = {{resolution_map[resolution].height}} tmpllength = {{frames}} tmplbatch_size = 1start_image = ◂ node 7 · out[0]
outputs: LATENT
9KSamplercore
model = ◂ node 4 · out[0]positive = ◂ node 5 · out[0]negative = ◂ node 6 · out[0]latent_image = ◂ node 8 · out[0]seed = {{seed}} tmplsteps = {{4 if fast_mode else steps}} tmplcfg = {{1.0 if fast_mode else guidance}} tmplsampler_name = uni_pcscheduler = simpledenoise = 1.0
outputs: LATENT
10VAEDecodecore
samples = ◂ node 9 · out[0]vae = ◂ node 3 · out[0]
outputs: IMAGE
ref_frameLoadImagecore
image = {{reference_frame}} tmpl
outputs: IMAGEMASK
color_lock_nodeColorTransfercustom pack
content_image = ◂ node 10 · out[0]style_image = ◂ node ref_frame · out[0]mode = reinhard
outputs: IMAGE
11CreateVideocore
images = ◂ node color_lock_node · out[0]fps = {{fps}} tmpl
outputs: VIDEO
12SaveVideocore
video = ◂ node 11 · out[0]filename_prefix = wan_segmentformat = autocodec = auto
tail_pickImageFromBatchcore
image = ◂ node color_lock_node · out[0]batch_index = -1length = 1
outputs: IMAGE
13SaveImagecore
images = ◂ node tail_pick · out[0]filename_prefix = wan_segment_tail

Prompt construction#

template
{base_prompt}. Continuous take, seamless continuation of the previous shot, consistent lighting and color grade, smooth cinematic camera movement.

Variables (1)#

base_prompt
{{prompt}} tmpl

Parameter banks (1)#

The prompt / configuration lookup tables this workflow keys into from its inputs — the vocabulary that turns a style / palette / preset selection into graph parameters.

resolution_map (2)#

720p_landscape
{"width": 1280, "height": 704}
720p_portrait
{"width": 704, "height": 1280}

Models & dependencies#

Custom node packs (1)#

The non-core ComfyUI node classes this graph requires; the RunPod worker image the workflow runs on must bake or install a pack that provides every one of them.

ColorTransfer

Models required (4)#

Wan22_TI2V_5B_Turbo_lora_rank_64_fp16.safetensors
umt5_xxl_fp8_e4m3fn_scaled.safetensors
wan2.2_ti2v_5B_fp16.safetensors
wan2.2_vae.safetensors

Output contract#

What a successful run of this workflow returns.

type
video
format
mp4
description
Segment MP4 plus the tail-frame PNG used to condition the next chain link

Taxonomy & routing#

How the control plane classifies this workflow — from the committed workflow-taxonomy-registry.json. It drives the consistency / control surface the agentic director can exercise over the workflow.

assetFamily
long-form-segment
outputPackageProfile
video-master-profile
controlModalities
keyframe-anchor-lockcolor-script-lockseed-lockmodel-locksampler-scheduler-locktemporal-lock
consistencyDimensions
motioncolor-scriptenvironmentlighting
notes
L4 chunk chaining: previous tail frame anchors the next Wan 2.2 segment; Reinhard color-lock against the canonical reference frame; emits its own tail frame for the next link. fast_mode = TI2V-5B Turbo distill (4 steps, no CFG).