Wan Camera Embedding Visualizer
See your Wan camera path before you burn an hour of GPU time
- camera_embedding
- visualization
A Wan 2.1/2.2 render at 81 frames is a real time and VRAM investment, and nothing stings quite like discovering the camera path you "knew" was right is actually a drunken spiral into a wall. That's the entire reason this node exists: it turns a WAN_CAMERA_EMBEDDING into a batch of preview images you can eyeball before ever touching the sampler. It's a debugging tool, it knows it's a debugging tool, and it's the fastest one in the pack.
It comes from the same Wan Camera Advanced pack (thepororo, GPL-3.0) as the node that generates those embeddings. You wire it in right after WanCameraEmbeddingAdvanced, preview its output, and if the motion looks wrong you tweak values and re-preview - a feedback loop measured in milliseconds instead of minutes.
How it works
Wan's camera embedding is a packed latent: 24 channels holding four frames' worth of per-frame camera data, ready for the 3D causal VAE. The visualizer unpacks that back into 6 channels per frame - three for the camera's moment (position/translation) and three for its ray direction (orientation) - and throws away the duplicated leading frame that packing introduced. Then it just maps those channels to visible color: the default ray_direction view normalizes the orientation channels, ray_moment normalizes by the biggest absolute value so you can actually see movement that would otherwise be invisible next to a static camera.
Three inputs, one output. That's it. This is not a node you fiddle with - it's a node you wire up once.
The inputs
camera_embedding- anyWAN_CAMERA_EMBEDDING, from this pack or from ComfyUI's nativeWanCameraEmbedding. It doesn't care where the embedding came from.visualization-ray_directionorray_moment. Start withray_direction; switch toray_momentwhen you're checking whether a truck or dolly move is actually happening or just being suggested.frame_stride- sample every Nth frame (default 4), so an 81-frame clip renders ~20 thumbnails instead of 81. Bump it down to 1 if you need to inspect a specific transition frame.
The single output, visualization, is an IMAGE batch - wire it into a PreviewImage or SaveImage node and it just works.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/thepororo/ComfyUI-WanCameraAdvanced.git
Restart ComfyUI, or search "Wan Camera Advanced" in ComfyUI Manager. No pip dependencies, no model files, nothing to download. If the pack is already installed because you're using the embedding node, you already have this one.
Where people get tripped up
The most common confusion is expecting a 3D orbit or a camera rig view. It's not that - it's flat color frames where the hue encodes direction. You're reading it like a normal map, not looking at a render. The second gotcha: the colors mean nothing in isolation. Compare frames across the sequence to see the motion; a single static frame tells you almost nothing.
And a friendly warning from experience: once you start using this, you'll realize how often "camera drift" was really "the model doing its own thing." When your preview looks like a smooth, sensible move but the render still drifts, the embedding isn't the problem - that's Wan improvising, which is a prompt and strength issue, not a camera path issue.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| camera_embedding | WAN_CAMERA_EMBEDDING | — | |
| visualization | COMBO | ray_direction | 2 options: ray_direction, ray_moment |
| frame_stride | INT | 41–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| visualization | IMAGE | — |