Difforum · Schedule Plot
See your camera curve before you burn a render
- schedule
- plot
Most Difforum pain happens before a single frame is rendered: you write a strength schedule, wire it up, queue the job, and fifteen minutes later discover the zoom was inverted. Difforum Schedule Plot is the cure - it renders any DIFFORUM_SCHEDULE as an actual IMAGE of its curve, ready to plug into a Preview Image node.
You feed it a schedule, set width and height for the plot canvas (default 512x256, both up to 4096), and it outputs plot as a normal IMAGE. That's the whole node, and that's enough.
When you'll reach for it
- Before a long render. Plot the strength and camera schedules together (two plot nodes, side by side) and eyeball whether the motion spikes anywhere. The Storyboard node checks camera drift, but Plot is the one that shows you the raw curve you actually wrote.
- Audio schedules. After connecting an audio curve, plotting it shows whether the bass band is pumping where you expect - way easier than rendering to find out.
- Teaching yourself the syntax. Try
0:(0), 60:(sin(t/6))with each easing mode and watch the curve change. Fastest way to internalizestepvsease_in_out.
Because schedules are dense per-frame arrays, the plot is exact - every frame is a point on the curve, not an approximation. It also inherits the "everything is GPU-free" property of the schedule engine (the node only touches torch to hand the image back as a tensor), so it costs effectively nothing and runs instantly.
Install and gotchas
The whole pack installs as one:
cd ComfyUI/custom_nodes
git clone https://github.com/chillithebillis/Difforum.git difforum
Restart ComfyUI and confirm [Difforum] loaded N nodes in the console; ComfyUI Manager also has it (search "Difforum"). Runtime deps are minimal - numpy, which ComfyUI already provides - and the pack targets Python 3.12+, sidestepping the version mess that the original Deforum library still lives in.
Where people trip: the plot shows the curve over params["max_frames"] from your Anim Setup, so if you change the clip length, the same schedule text plots differently. That's correct behavior, but it's the classic "my plot doesn't match my earlier render" moment. Also remember the plot is just the curve - it won't tell you the curve is a bad idea for your shot, only what it actually is. That's where the Storyboard's drift readout takes over.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| schedule | DIFFORUM_SCHEDULE | — | |
| width | INT | 51264–4096 | — |
| height | INT | 25664–4096 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| plot | IMAGE | — |