TV β Wan Adapter π¬
Wan can't flatten a timeline β so this node hands it back shot by shot
- timeline
- clip
- vae
- clip_vision
- wan_shots
- shot_count
Here's the thing about Wan: it doesn't do timelines. Wan 2.1/2.2 condition video per-clip - one WanImageToVideo call for a single start image, or WanFirstLastFrameToVideo for a start+end pair - and each call produces its own conditioning/latent triple. There's no guide-stack mechanism like LTX's, so you can't flatten a whole shot list into one continuous generation. TV β Wan Adapter π¬ accepts that reality instead of fighting it: it turns your TV Director timeline into a list of per-shot conditioning bundles and hands you that list to loop over.
That's the correct design, and the pack is upfront that a "universal" node pretending all three backends were the same would be silently wrong for two of them. For Wan specifically, per-shot sampling is also the community norm anyway - the model's native context tops out around 81 frames, so the standard workflow was always "generate a clip, chain to the next." This adapter just makes the shot list the thing you chain from.
How it works
It walks your shots in order. For each one it encodes the shot's prompt and negative, then checks the shot's image_role: a plain first shot goes through WanImageToVideo; a first shot whose next shot is a last with its own image gets paired into a single WanFirstLastFrameToVideo call (start + end frame, the natural way you'd lay out a transition pair on a timeline). Shots with no image still run the I2V node with no start image, i.e. text-only conditioning. Each bundle comes back as {positive, negative, latent, num_frames, shot_id}.
Inputs and outputs that matter
Required: timeline (from TV Director), clip, and vae. clip_vision is optional - feed it a CLIP Vision model if your shots want image-aware conditioning (worth doing for I2V-heavy timelines).
Outputs: wan_shots (a TV_WAN_SHOTLIST) and shot_count (INT). The list is the thing you loop. In practice you'll wire wan_shots into TV Wan Shot Iterator, sample each shot's latent in a loop (native list execution or an Impact Packβstyle loop), then concatenate the resulting videos in timeline order with a video-combine node.
Install
No extra pack needed for this one - the Wan nodes ship in ComfyUI core once you're on a version with Wan 2.x support. Just install the Director pack:
cd ComfyUI/custom_nodes/
git clone https://github.com/TensorVizion/ComfyUI-Director-Node-Pack tensorvizion-director
Restart, and the adapter will tell you in a clear error if your ComfyUI is too old to have WanImageToVideo / WanFirstLastFrameToVideo.
Where it'll bite you
The stitching is manual, and it's the one genuinely fiddly part. The adapter gives you clean per-shot bundles, but there's no automatic continuity-preserving stitch - no carrying latent noise state between shots - so you sample each shot separately and join the clips yourself. Expect to fiddle with matching resolutions and frame counts across shots. Worth it if you're after Wan 2.2's quality ceiling, which remains the best open local video around; just know you're signing up for per-shot renders and a manual join.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| timeline | DIRECTOR_TIMELINE | β | |
| clip | CLIP | β | |
| vae | VAE | β | |
| clip_visionopt | CLIP_VISION | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| wan_shots | TV_WAN_SHOTLIST | β |
| shot_count | INT | β |