The pymatting solve costs roughly 90 ms per megapixel of paste window,
per frame - 48 ms for the 768x768 window a 1024x1024 frame produces,
106 ms for the 1440x816 window from 1080p, measured on a 16-thread
desktop CPU. A video batch with the toggle on therefore ran to the end
with no feedback and no way out. The spread now checks for a cancel and
reports progress between frames, through the same seams the LaMa helper
uses, and stops at the next frame boundary.
It also hands pymatting float32 instead of float64. The estimator casts
whatever it is given down to float32 before solving, so the wider
temporary bought nothing: outputs stay bitwise identical across the
toggle, batch and rescale paths, and writing frames into one buffer
instead of stacking them cuts peak memory growth by about a third on a
48-frame 1024x1024 batch.
Node help now carries the measured per-frame cost and says plainly that
the toggle is for finishing a chosen take, not for a long exploratory
batch.