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

WanVideo FunCamera Embeds

Camera-trajectory control for Wan-Fun

By kijai·Created about a year ago·Updated 3 months ago· 6,654
WanVideo FunCamera Embeds
  • poses
  • image_embeds
width832
height480
strength1.00
start_percent0.00
end_percent1.00

This one's for the Wan-Fun Camera path - the camera-control variant of the Fun family of Wan models. Where ReCamMaster re-shoots an existing clip, Fun-Camera bakes camera movement into a generation from the start: you supply a camera trajectory and Wan-Fun renders the scene as if shot along that path. This node is how you get that trajectory into the Wan embeds.

You feed it a set of camera poses and the target resolution, and it builds the image embeds that carry the camera conditioning into the WanVideo sampler. It's the Fun-Camera counterpart to the wrapper's other embeds builders - same idea of packaging a control signal into WANVIDIMAGE_EMBEDS, just the signal here is "where the camera goes."

How it works

The poses come in as CAMERACTRL_POSES - the CameraCtrl trajectory format the ComfyUI camera-control ecosystem already speaks, so you can drive this from the usual camera-pose authoring nodes. The node encodes those poses against your chosen frame dimensions and produces embeds the Fun-Camera model understands. From there it's a normal Wan generation, except the camera obeys your path.

The inputs that matter

  • poses (CAMERACTRL_POSES) - the camera trajectory. This is the input that does the work; everything renders around it.
  • width (default 832) and height (default 480) - the generation resolution. Match these to the rest of your Wan graph; the camera embeds are built for a specific frame size and a mismatch downstream causes trouble.
  • strength (default 1.0, range 0–1) - how strongly the camera path is imposed. At 1.0 the camera follows the trajectory hard; back it off if the move feels too mechanical or is dominating the scene.
  • start_percent (0) / end_percent (1) - the slice of the denoising process where the camera conditioning is active. Full range by default; the same scheduling gate you'll see on most wrapper embeds nodes.

The output is image_embeds (WANVIDIMAGE_EMBEDS) - wire it into the WanVideo sampler.

How to install it

Bundled in Kijai's WanVideoWrapper. 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. The node adds no download by itself, but Fun-Camera is a specific Wan model variant - you need the Wan-Fun Camera weights (from the Alibaba PAI Fun model line, mirrored in Kijai's WanVideo model repos) loaded for this to do anything. Plain Wan 2.1/2.2 weights won't respond to camera embeds.

Common issues & troubleshooting

You're running a non-Fun model. This is the classic mistake. Camera embeds only mean something to a Fun-Camera checkpoint. Load base Wan and this node's conditioning is ignored - you'll get a normal generation with a static-ish camera and wonder why. Confirm you loaded the Fun-Camera model.

Resolution mismatch. The width/height here need to line up with your actual generation size. If they drift from the rest of the graph, the camera motion can smear or the sampler can choke. Keep them consistent.

Camera barely moves. Either strength is low, or the incoming poses describe a gentle path. Visualize or exaggerate your trajectory upstream, and push strength toward 1.0. If it's still weak, the trajectory itself is the flat part, not this node.

CategoryWanVideoWrapper

Inputs (6)

NameTypeDefaultDescription
posesCAMERACTRL_POSES
widthINT83264–2048Width of the image to encode
heightINT48064–29048Height of the image to encode
strengthFLOAT1.000–1Strength of the camera motion
start_percentFLOAT0.000–1Start percent of the steps to apply camera motion
end_percentFLOAT1.000–1End percent of the steps to apply camera motion

Outputs (1)

NameTypeDescription
image_embedsWANVIDIMAGE_EMBEDS