Nodes/Difforum/Difforum · Loop Take (settled lap)
ComfyUI Node

Difforum · Loop Take (settled lap)

Render three laps, keep the one that settled

By chillithebillis·Created 3 months ago·Updated about a month ago· 7
Difforum · Loop Take (settled lap)
  • frames
  • frames
  • seam_info
cycle_frames120
takelast

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.

CategoryDifforum/loop

Inputs (3)

NameTypeDefaultDescription
framesIMAGE
cycle_framesINT1202–100000
takeCOMBOlast2 options: last, first

Outputs (2)

NameTypeDescription
framesIMAGE
seam_infoSTRING