Nodes/ComfyUI-Camera-Path/Camera Path Video
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.

By phazei·Created 4 days ago·Updated about 7 hours ago· 2
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)

NameTypeDefaultDescription
sourceIMAGEOne image or a batch of frames. Supplies the colour of the point cloud and the output resolution.
moge_geometryMOGE_GEOMETRYGeometry from Run MoGe Inference for the same image or frames.
frame_countINT1201–8192Number of output frames.
fpsFLOAT24.00.1–240Rate 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.
markersBOOLEANfalseBurn 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.
backgroundCOLOR#000000Colour 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_edgesBOOLEANtrueRemove depth-edge streaks, trading them for holes in video_mask. The preview updates immediately; run again to update the video.
preview_qualityCOMBOMedium (512)Editor preview detail only. Higher levels cost more while dragging. Updates immediately from the cache; output resolution is unchanged.
keyframesSTRING{ "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_pathoptSTRINGOptional path from another node. Press Use input in the editor to load it; it never silently replaces what you have authored.

Outputs (3)

NameTypeDescription
camera_videoIMAGEThe rendered camera move, at the source resolution.
camera_pathSTRINGThe camera path as JSON. Feed it back into camera_path to reuse or route it.
video_maskMASK1 wherever no point was reprojected, including depth-pruning holes.