Nodes/Wan Camera Advanced/Wan Camera Embedding Visualizer
ComfyUI Node

Wan Camera Embedding Visualizer

See your Wan camera path before you burn an hour of GPU time

By thepororo·Created 2 months ago·Updated 2 months ago· 0
Wan Camera Embedding Visualizer
  • camera_embedding
  • visualization
visualizationray_direction
frame_stride4

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 - any WAN_CAMERA_EMBEDDING, from this pack or from ComfyUI's native WanCameraEmbedding. It doesn't care where the embedding came from.
  • visualization - ray_direction or ray_moment. Start with ray_direction; switch to ray_moment when 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.

Categorymodel/conditioning/wan/camera

Inputs (3)

NameTypeDefaultDescription
camera_embeddingWAN_CAMERA_EMBEDDING
visualizationCOMBOray_direction2 options: ray_direction, ray_moment
frame_strideINT41–100

Outputs (1)

NameTypeDescription
visualizationIMAGE