Difforum · Camera Path Preview
See your camera path before you render — it's an IMAGE, not a guess
- camera
- path_image
Here's the thing about a camera path in Deforum-style animation: you can't see it. You write 0:(0.5*sin(2*pi*t/120)) into a rotation axis, hit queue, and then discover - forty minutes later - that the camera spent the whole clip doing a loop that makes you nauseous. Difforum · Camera Path Preview is the node that stops that. It takes a finished DIFFORUM_CAMERA track and renders it as a top-down trajectory plot with a zoom strip, straight out as an IMAGE you can look at before any diffusion runs.
The mechanism is what you'd hope: pure geometry, zero model. It reads the camera's per-frame poses (translations) and zoom curve and draws them - a top-down view of where the camera travels across the clip, plus a strip showing how zoom breathes over time. It's the same data the Feedback Sampler and Guide Builder consume, so what you preview is exactly what you'll render. It's cheap - this runs in milliseconds and needs no GPU. The only real input is camera (from any of the three camera nodes - Move, Shots, Keys, or the advanced one) and size, the output image resolution (default 512, up to 2048).
Why you'd actually reach for it:
- Loop validation. If you're building a seamless loop, the path must return to its origin. A top-down plot shows the closure instantly - a path that spirals off into the corner will never loop cleanly, and you'll know before the render, not after.
- Catching a pathological expression. A stray
*10in a translation axis shows up as a path that launches the camera into orbit. You'll laugh, fix it, move on - in five seconds instead of one render. - Blend vs. cut sanity. The difference between Camera Keys (blended) and Camera Shots (cuts) is genuinely visible in the trajectory: smooth corners vs. sharp kinks.
Output: a single path_image (IMAGE). Wire it into any preview node, or just let it render - as an output it'll show in the UI. One note: it's a schematic, not a storyboard - it won't tell you if the composition is good, only if the motion is what you asked for. For the visual side, the Storyboard node (warped-but-not-diffused frames) is the complementary tool.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/chillithebillis/Difforum.git difforum
Restart ComfyUI (watch for [Difforum] loaded N nodes), or install via ComfyUI Manager → "Difforum". numpy-only, no extra dependencies.
Common issues
- "The plot looks wrong / is empty." The preview only knows what the camera track contains - if your camera node was fed bad
params(e.g.max_framesmismatch), the path reflects that. It's honest, not broken. - Path is a straight line. If you're in 3D mode without a depth map, translation axes can produce no visible net movement in the plot - a good early warning that your 3D camera will render as a freeze.
It's a tiny node with one job, and it's the kind of tool you don't appreciate until you've wasted a render on a camera that spiraled off-screen. Add it between your camera and your sampler, peek at the output, then build the clip with confidence.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| camera | DIFFORUM_CAMERA | — | |
| size | INT | 512128–2048 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| path_image | IMAGE | — |