Nodes/ComfyUI-QwenImageWanBridge/Qwen → Wan First Frame Latent
ComfyUI Node

Qwen → Wan First Frame Latent

Turn a Qwen edit into Wan's starting frame

By fblissjr·Created 12 months ago·Updated 4 months ago· 188
Qwen → Wan First Frame Latent
  • image
  • vae
  • first_frame_latent
  • debug_info
bridge_modewan_video
normalizetrue
debug_modefalse

This is the node the whole pack is named for. You make a still with Qwen - usually a precise instruction edit with Qwen-Image-Edit - and this encodes it into the first-frame latent that a Wan video model wants, so Wan can animate your image instead of hallucinating one from a text prompt. Nail the frame with the editor, hand it to the video model, get motion. That's the bridge.

It's a real workflow, not a theoretical one. People pair these two constantly - one popular thread was literally "Qwen Image Edit + Wan 2.2 FFLF, messing around using both together," where the author edited a face with Qwen and used it as the first frame for Wan. Qwen-Image-Edit is the open editing standard precisely because it takes a plain-language instruction and no mask, so it's the ideal way to author a controlled starting frame; Wan is where local video consolidated, a frozen-but-permanent Apache 2.0 base with a 3D causal VAE that most 2026 open video work still sits on. The catch is that image latents and Wan's temporal video latents aren't the same shape - and that mismatch is exactly what this node handles.

How it works

You give it your image and a vae, and it encodes the picture into a 16-channel latent laid out as a single temporal frame - the format Wan's image-to-video path expects for a first frame. The normalize option corrects the latent scaling so values sit in the range the video model was trained on, rather than the raw range an image encode would give you. Out comes a LATENT you feed into your Wan sampler as the starting condition.

The inputs and outputs that matter

  • image - your Qwen-generated or edited still. This becomes frame one.
  • vae - the VAE used to encode it. Match this to your video pipeline's expectations; a mismatched VAE is the most common way to get garbage.
  • bridge_mode (wan_video / chronoedit) - which target you're feeding. Default wan_video for a standard Wan I2V graph; chronoedit for that pipeline.
  • normalize (default on) - keep it on unless you have a specific reason. It's what makes the latent land in Wan's expected scale.

Outputs: first_frame_latent (wire into your Wan sampler) and a debug_info string.

How to install it

ComfyUI ManagerComfyUI-QwenImageWanBridge → install → restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/fblissjr/ComfyUI-QwenImageWanBridge

then restart. The node is encoding logic; the models are yours to bring - a Qwen-Image-Edit setup (typically a community GGUF quant of the 20B weights on consumer cards) to make the frame, and a Wan 2.2 image-to-video model plus its VAE to animate it.

Common issues & troubleshooting

The video ignores my frame or looks scrambled. Almost always the VAE. The vae you pass has to be the one your Wan pipeline expects; feeding an image-model VAE into a video path is the classic mismatch. Also confirm bridge_mode matches your actual target.

Colors or contrast shift between the still and the first frame. That's a normalization issue - leave normalize on. If it's still off, the scaling expected by your specific Wan variant may differ; check debug_info for the latent stats.

The face drifts once it's moving. That's Wan and Qwen both, not this node. Qwen-Image-Edit isn't the best at holding an unfamiliar face even in a single edit, and video adds its own wobble - the community fix is to inpaint the face on the still before you animate, so you're handing Wan the cleanest possible frame one. Get the starting frame right and the whole clip is better.

CategoryQwenWanBridge

Inputs (5)

NameTypeDefaultDescription
imageIMAGEImage from Qwen-Image-Edit (edited first frame)
vaeVAE16-channel Wan VAE (qwen_image_vae.safetensors or compatible)
bridge_modeoptCOMBOwan_videowan_video: Full normalization for DiffSynth | chronoedit: Simple encoding for Kijai's nodes
normalizeoptBOOLEANtrueApply Wan normalization (mean/std). Auto-disabled for chronoedit mode.
debug_modeoptBOOLEANfalseShow shape and normalization details

Outputs (2)

NameTypeDescription
first_frame_latentLATENT
debug_infoSTRING