Difforum · Loop Take (settled lap)
Render three laps, keep the one that settled
- frames
- frames
- seam_info
A feedback loop - where every frame is re-diffused from the last - never lands instantly. It converges. Render one lap of a camera cycle and the first frame is still "arriving"; render three and by the third the image has settled onto its cycle. Difforum Loop Take is the node that keeps only that settled lap, and tells you honestly how good the seam is.
You give it the full batch of frames from a multi-lap render plus cycle_frames (the length of one lap), and it slices out either the last or first lap. Nothing is blended, nothing is crossfaded - the frames you get back are untouched. That's a deliberate philosophy: a blended tail is a patch, and for a projection that runs for hours the eye finds the dissolve every single cycle. Loop Take assumes you did the real work (a Seamless Camera path, enough laps), and it just keeps the good part.
The part people sleep on: the seam score
The seam_info STRING output is the actual product here. It compares the kept lap's first frame to its last - the real loop error - and grades it:
seam (last -> first)- mean pixel difference across the loop boundary. Under ~0.02 reads "excellent", 0.05 "good", past 0.10 "poor".lap-to-lap drift- how much the final lap drifted from the one before it. If this is far below the seam error, the feedback has settled and the residual is the camera's fault, not the render's - more laps won't help.
That last line is the killer debugging feature: it tells you whether to throw more compute at the loop or go fix the camera path instead. The output ends with the plainest advice in the pack: "no crossfade applied - raise laps or lower harmonics if the seam shows."
Inputs, install, gotchas
Inputs: frames (your multi-lap batch), cycle_frames (one lap's length), take (last or first). Outputs: frames (the settled lap) and seam_info.
Install is the standard pack install - one line, then restart:
cd ComfyUI/custom_nodes
git clone https://github.com/chillithebillis/Difforum.git difforum
ComfyUI Manager works too (search "Difforum"); console prints [Difforum] loaded N nodes after restart. Deps are just numpy. The one trap: cycle_frames must match what your Seamless Camera actually used, or you'll slice out a partial lap and the seam score will lie to you. And if seam_info keeps saying "not settled yet", don't blame the node - render one more lap.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| frames | IMAGE | — | |
| cycle_frames | INT | 1202–100000 | — |
| take | COMBO | last | 2 options: last, first |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| frames | IMAGE | — |
| seam_info | STRING | — |