Nodes/ComfyUI-WanVideoWrapper/WanVideo Uni3C Embeds
ComfyUI Node Runs on cloud

WanVideo Uni3C Embeds

Camera-move control for Wan video

By kijai·Created about a year ago·Updated 2 months ago· 6,651
WanVideo Uni3C Embeds
  • controlnet
  • render_latent
  • render_mask
  • uni3c_embeds
strength1.000
start_percent0.00
end_percent1.00
offloadtrue

This is how you get deliberate camera moves into a Wan generation instead of hoping the prompt lands them. Uni3C is a 3D-aware control system for Wan, and the community reach for it is exactly what you'd guess: "take this still image and orbit / dolly / pan the camera around it." Text prompts are famously bad at this - "slow push-in" gets you something vaguely push-in-ish and mostly random. Uni3C gives you an actual geometric guide.

The node itself is the packaging step. It takes a Uni3C control model plus a render guide and turns them into an embedding (uni3c_embeds) that you feed into the Wan sampler alongside your other conditioning. It's a ControlNet-style path, adapted for Wan's diffusion-transformer architecture - the KB notes that classic UNet ControlNet doesn't transfer to Wan directly, so control here goes through model-specific embeds like this one.

How it works

Uni3C conditions the generation on 3D structure - think of a rough rendered pass of the scene as the camera should see it through the clip. You give it a render_latent (the guide, encoded to latent space) and optionally a render_mask to say which region the control applies to. The node fuses that with the loaded Uni3C controlnet and produces the embed. During sampling, Wan is nudged to follow that geometry, so the camera trajectory and spatial layout come out controlled rather than emergent.

The inputs and outputs that matter

  • controlnet (WANVIDEOCONTROLNET) - the Uni3C control model, loaded by a separate loader node upstream. Required.
  • strength (default 1) - how firmly the control binds. This is your main dial. If the camera move is being ignored, raise it; if the output feels locked to the guide and looks artificial, drop it.
  • start_percent / end_percent (0 to 1) - the slice of the denoising schedule where control is active. Classic ControlNet timing trick: guide early (structure) and release late (let Wan add detail freely). Try ending around 0.5–0.7 if the result is over-constrained.
  • render_latent and render_mask (optional) - the geometry guide and its region mask.
  • offload (default true) - pushes the control model to CPU when idle to save VRAM. Leave it on unless you're chasing every last millisecond.

Output: uni3c_embeds → the Uni3C/embeds input on WanVideoSampler.

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 also need the Uni3C control weights on disk (Kijai mirrors Wan-adjacent models under huggingface.co/Kijai/WanVideo_comfy) plus your usual Wan model, VAE and text encoder. And you need a way to produce the render guide - that's the part people underestimate; a camera-control workflow needs some 3D/depth render pass feeding the render_latent, not just a flat image.

Common issues & troubleshooting

Node missing / red after install. Uni3C support landed in the wrapper as an update. If the class doesn't exist, you're on an old version - update the pack and restart.

The camera move does nothing. Two usual causes: strength too low, or your render_latent guide doesn't actually encode the motion you want. Uni3C follows the geometry you give it - if the guide is weak, the result is weak. Raise strength first, then check the guide.

Output is rigid and CGI-looking. You're guiding too far into the schedule. Pull end_percent back so Wan gets the last portion of denoising to itself, and consider dropping strength slightly.

VRAM blows up. This stacks a control model on top of Wan 14B. Keep offload on, use the fp8 weights, and if you're near the edge, drop resolution before frame count.

CategoryWanVideoWrapper

Inputs (7)

NameTypeDefaultDescription
controlnetWANVIDEOCONTROLNET
strengthFLOAT1.0000–10
start_percentFLOAT0.000–1Start percent of the steps to apply the controlnet
end_percentFLOAT1.000–1End percent of the steps to apply the controlnet
render_latentoptLATENT
render_maskoptMASKNOT IMPLEMENTED!
offloadoptBOOLEANtrueIf enabled, the controlnet model will be offloaded before main model block processing to save VRAM.

Outputs (1)

NameTypeDescription
uni3c_embedsUNI3C_EMBEDS