WanVideo ReCamMaster Camera Embed
Turn camera poses into conditioning the sampler can actually use
- camera_poses
- latents
- camera_embeds
- camera_poses
ReCamMaster is the "re-shoot this clip from a different camera angle" model out of KwaiVGI (the LivePortrait team), and it made real noise on release - the kind of tool that's obviously useful the moment you see it work, no marketing needed. But a camera trajectory on its own doesn't do anything. Something has to bake that trajectory together with your source footage into conditioning the sampler can actually run against. That's this node's job.
How it works
Upstream, either WanVideoReCamMasterDefaultCamera (preset moves like pan, tilt, arc, zoom) or WanVideoReCamMasterGenerateOrbitCamera (a parametric orbit by degrees) hands you a CAMERAPOSES object - just the trajectory, no video attached yet. This node is the step after that: it takes those poses plus your source video's latent and fuses them into a WANVIDIMAGE_EMBEDS bundle, the same conditioning container VACE encode produces for its control videos. The sampler doesn't know or care that the conditioning came from a camera path instead of a control video - it just sees embeds and generates against them.
The inputs and outputs that matter
Both required inputs matter equally here:
camera_poses(CAMERAPOSES) - the trajectory from whichever generator node you used upstream.latents(LATENT) - your source video, encoded. This is the footage getting re-shot from the new angle.
Two outputs:
camera_embeds(WANVIDIMAGE_EMBEDS) - the actual conditioning, wired into the ReCamMaster sampling path.camera_poses(CAMERAPOSES) - the same poses you fed in, passed straight through. Useful because it lets you branch the trajectory into a ReCamMasterPoseVisualizer-style sanity check without splitting your main graph or re-running the generator node twice.
How to install it
Ships with 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. This node itself downloads nothing, but the ReCamMaster generation path it feeds needs the ReCamMaster model weights on top of your regular Wan setup. Adoption of ReCamMaster stayed modest relative to how well-received the launch was, so don't expect a one-click template - you may be assembling this workflow piece by piece rather than dropping in a ready-made one.
Common issues & troubleshooting
Frame count mismatch / the shot desyncs. The camera trajectory's length should line up with your latents' frame count. If you generated an orbit for 81 frames and feed in a 121-frame clip, expect the move to run out early or stall. Regenerate the poses to match your actual clip length rather than hoping it interpolates gracefully.
Nothing about the camera angle changes in the output. This node only produces the conditioning - it doesn't guarantee the sampler obeys it perfectly. Confirm camera_embeds is actually reaching the ReCamMaster sampler input and that you're running the ReCamMaster path rather than a plain Wan sample; a disconnected or bypassed embed will silently fall back to no camera control.
You want to preview the move before spending compute on it. Use the passthrough camera_poses output into a pose visualizer first. Camera work is exactly the kind of thing you don't want to discover is wrong after a 20-minute generation.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| camera_poses | CAMERAPOSES | — | |
| latents | LATENT | source video |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| camera_embeds | WANVIDIMAGE_EMBEDS | — |
| camera_poses | CAMERAPOSES | — |