Nodes/ComfyUI-WanVideoWrapper/WanVideo Add StandIn Latent
ComfyUI Node Runs on cloud

WanVideo Add StandIn Latent

Lock a face into your Wan clip from one photo

By kijai·Created about a year ago·Updated 2 months ago· 6,650
WanVideo Add StandIn Latent
  • embeds
  • ip_image_latent
  • image_embeds
freq_offset1

Identity is the thing video models are worst at. You generate a great clip, and the person's face subtly shifts every second - the single most-cited complaint about long Wan generations. Stand-In is a lightweight, plug-and-play identity-control method (out of Tencent / WeChat Vision) that tackles exactly this: give it one reference image of a face and it keeps that identity consistent through the generated video. This node is how you inject that reference into a WanVideoWrapper graph - it folds the Stand-In identity latent into your existing image embeds so the sampler carries the face through.

The pitch that got people's attention was "only 1 picture," and that's the appeal: no LoRA training, no dataset, just a reference photo and a much steadier face.

How it works

Stand-In encodes your reference face into a latent that acts as an identity anchor. This node takes your current WANVIDIMAGE_EMBEDS and the encoded ip_image_latent and combines them, so the identity signal rides alongside whatever else is conditioning the generation. The freq_offset controls where in the frequency structure the identity information is injected - a low-level detail you rarely need to touch, but it's there for tuning how strongly the identity imprints versus how much the model is free to animate.

The inputs and outputs that matter

  • embeds (WANVIDIMAGE_EMBEDS) - your existing image embeds, the ones flowing toward the sampler.
  • ip_image_latent (LATENT) - the encoded reference face. This is the identity you're locking in; it comes from encoding your single reference photo upstream.
  • freq_offset (default 1) - the injection offset. Leave it at the default unless you're deliberately experimenting with how hard the identity bites.

Output is the augmented image_embeds (WANVIDIMAGE_EMBEDS), which continues into WanVideoSamplerv2.

How to install it

ComfyUI Manager - search ComfyUI-WanVideoWrapper, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
pip install -r ComfyUI-WanVideoWrapper/requirements.txt

then restart. You'll need the Stand-In model weights (from the Stand-In release, mirrored on Kijai's WanVideo_comfy repo). Kijai ships a Stand-In example workflow in the pack's example folder - start from that rather than wiring it blind, since the encode step that produces ip_image_latent has to be set up correctly for this node to receive it.

Common issues & troubleshooting

The face still drifts. Stand-In helps a lot but it isn't a hard lock, especially over long clips or heavy motion where the model has more room to wander. If it's not holding, make sure your reference photo is a clean, front-facing, well-lit face - a bad reference gives a weak anchor. For the hardest cases, people still fall back to a trained character LoRA on top.

It's not applying at all. This node only works if ip_image_latent is a properly encoded Stand-In reference, not just any latent. If you fed it a raw VAE-encoded image from the wrong path, the identity won't take. Follow the example workflow's encode chain.

Start from Kijai's example. Stand-In has a specific setup, and the WanVideoWrapper example workflow exists precisely because wiring it from scratch is fiddly. Load it, swap in your face, and adjust from there.

CategoryWanVideoWrapper

Inputs (3)

NameTypeDefaultDescription
embedsWANVIDIMAGE_EMBEDS
ip_image_latentLATENTReference image to encode
freq_offsetINT10–100EXPERIMENTAL: RoPE frequency offset between the reference and rest of the sequence

Outputs (1)

NameTypeDescription
image_embedsWANVIDIMAGE_EMBEDS