Nodes/ComfyTV/Slit Scan
ComfyUI Node

Slit Scan

The Time-Warp Effect That's More Than a Trend

By jtydhr88·Created 3 months ago·Updated about 16 hours ago· 725
Slit Scan
  • video
  • retime_image
  • video
force_run_token0
project_id
parent_output_id0
modehorizontal
gain24
offset0.0
filter_modelinear
invertfalse

Slit scan is the effect where a thin slice of each video frame gets stacked over time - the result looks like time itself being smeared across space. It's a staple of music videos and abstract intros, and it's one of those effects that sounds like it needs After Effects plus a tutorial; ComfyTV ships it as a single stage under ComfyTV/VideoFX.

The mechanism is honest and old-school: for each output column, sample a corresponding slice from the input video at a time offset determined by the effect parameters, then composite the slices into one frame. mode chooses the scan axis - horizontal (default) or vertical - which changes whether time smears left-to-right or top-to-bottom. gain (-120 to 120, default 24) is the time-speed knob: how far forward in time each slice reaches. Negative gain runs time backward, which is where the trippy versions live. offset (-60 to 60, default 0) shifts the whole scan window, filter_mode is nearest or linear (linear smooths the smear, nearest gives that crunchy digital edge), and invert flips the scan direction.

The hidden gem is the retime_image input. Wire a grayscale image into it and the node switches to map mode (it does this automatically if retime_image is present): instead of a linear time sweep, each pixel's brightness controls how far forward in time that pixel samples. A simple gradient in the map gives you the classic "time stretched across the frame" look with way more control than the linear modes. If you set mode to map but don't wire an image, the node stops you with its own error: "Slit Scan map mode needs a retime image - wire a grayscale map or switch to a slit mode."

When to reach for it

Slit scan is a flourish, not a utility - you use it when the footage should feel like time is pouring sideways. It's also a performance consideration: it's doing real per-frame sampling work, so keep it on short clips and check the live preview before committing to a full render. On a 5-second clip with defaults it's a safe toy; on a 2-minute timeline it'll make you wait.

Install

With ComfyTV:

cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV

Restart ComfyUI; under ComfyTV → VideoFX. ComfyUI Manager: search "ComfyTV". Desktop/macOS: clone into the running instance's absolute custom_nodes (startup-log path), fix any ComfyTV/ComfyTV/ nesting, full backend restart. No models, no extra Python deps.

Troubleshooting

  • "Slit Scan map mode needs a retime image." You set mode to map with no retime_image. Wire a grayscale image in (or switch to horizontal/vertical).
  • Output looks like static, not a smear. gain too high for the clip length, or filter_mode on nearest with fast footage. Lower gain, try linear.
  • The smear goes the wrong way. That's invert - flip it.
CategoryComfyTV/VideoFX

Inputs (10)

NameTypeDefaultDescription
force_run_tokenINT00–2147483647Internal — bumped on Run to invalidate ComfyUI's input cache.
project_idSTRINGInternal — populated by the projectStore on the frontend.
parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
modeCOMBOhorizontal3 options: horizontal, vertical, map
gainFLOAT24-120–120
offsetFLOAT0.0-60–60
filter_modeCOMBOlinear2 options: nearest, linear
invertBOOLEANfalse
videooptCOMFYTV_VIDEO
retime_imageoptCOMFYTV_IMAGE

Outputs (1)

NameTypeDescription
videoCOMFYTV_VIDEO