ComfyUI Node
Camera Path Video
Reproject a source image or clip through its MoGe geometry along a camera path authored in the node's 3D editor. Outputs the rendered frames, the path as JSON and a mask of the pixels the source camera never saw.
Camera Path Video
- source
- moge_geometry
- background
- camera_video
- camera_path
- video_mask
◄frame_count120►
◄fps24.0►
◄markersfalse►
◄prune_depth_edgestrue►
◄preview_qualityMedium (512)►
◄keyframes{
"version": 2,
"pivots": [
{
"id": "p1",
"keys": [
{
"frame": 0,
"x": 0.0,
"y": 0.0,
"z": 1.0,
"tilt": 0.0,
"roll": 0.0,
"heading": 0.0
}
]
}
],
"camera": [
{
"frame": 0,
"pivot": "p1",
"pivot_target": "p1",
"pivot_blend": 0.0,
"azimuth": 0.0,
"elevation": 0.0,
"distance": 1.0,
"lateral": 0.0,
"height": 0.0,
"pan": 0.0,
"tilt": 0.0,
"roll": 0.0,
"lock": 0.0,
"dolly": 0.0
},
{
"frame": 48,
"pivot": "p1",
"pivot_target": "p1",
"pivot_blend": 0.0,
"azimuth": 20.0,
"elevation": 0.0,
"distance": 1.0,
"lateral": 0.0,
"height": 0.0,
"pan": 0.0,
"tilt": 0.0,
"roll": 0.0,
"lock": 0.0,
"dolly": 0.0
}
]
}►
◄camera_path—►
Categoryimage/video
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| source | IMAGE | One image or a batch of frames. Supplies the colour of the point cloud and the output resolution. | |
| moge_geometry | MOGE_GEOMETRY | Geometry from Run MoGe Inference for the same image or frames. | |
| frame_count | INT | 1201–8192 | Number of output frames. |
| fps | FLOAT | 24.00.1–240 | Rate the editor's timeline and playback run at. The output is a plain image batch, so this does not change what is rendered; set the same rate on whichever node saves the video. |
| markers | BOOLEAN | false | Burn a lattice of small coloured spheres into the video. They sit in the scene with the geometry, so a downstream model can read the parallax from them. The editor shows them while this is on. |
| background | COLOR | #000000 | Colour of the pixels no point reached -- the holes video_mask marks. Match whatever your downstream model was trained on; CrossViewWarp-style warp videos use magenta, #ff00ff. |
| prune_depth_edges | BOOLEAN | true | Remove depth-edge streaks, trading them for holes in video_mask. The preview updates immediately; run again to update the video. |
| preview_quality | COMBO | Medium (512) | Editor preview detail only. Higher levels cost more while dragging. Updates immediately from the cache; output resolution is unchanged. |
| keyframes | STRING | { "version": 2, "pivots": [ { "id": "p1", "keys": [ { "frame": 0, "x": 0.0, "y": 0.0, "z": 1.0, "tilt": 0.0, "roll": 0.0, "heading": 0.0 } ] } ], "camera": [ { "frame": 0, "pivot": "p1", "pivot_target": "p1", "pivot_blend": 0.0, "azimuth": 0.0, "elevation": 0.0, "distance": 1.0, "lateral": 0.0, "height": 0.0, "pan": 0.0, "tilt": 0.0, "roll": 0.0, "lock": 0.0, "dolly": 0.0 }, { "frame": 48, "pivot": "p1", "pivot_target": "p1", "pivot_blend": 0.0, "azimuth": 20.0, "elevation": 0.0, "distance": 1.0, "lateral": 0.0, "height": 0.0, "pan": 0.0, "tilt": 0.0, "roll": 0.0, "lock": 0.0, "dolly": 0.0 } ] } | Camera keyframes as JSON. The editor writes this for you. |
| camera_pathopt | STRING | Optional path from another node. Press Use input in the editor to load it; it never silently replaces what you have authored. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| camera_video | IMAGE | The rendered camera move, at the source resolution. |
| camera_path | STRING | The camera path as JSON. Feed it back into camera_path to reuse or route it. |
| video_mask | MASK | 1 wherever no point was reprojected, including depth-pruning holes. |