Strobe
Make your footage blink to a beat — without paying per node
- video
- video
Strobe is the video-editing equivalent of a blinking neon sign: frames go dark (or flash white, or freeze) on a regular rhythm. It's the effect behind every music-video cut that pulses to the kick drum, and it's one of the cheapest ways to make a boring AI-generated clip feel like it was edited on purpose.
This is a ComfyTV stage, which means it's part of that pack's big idea: every operation is its own node with its own Run button, and results flow downstream as snapshots instead of dragging the whole graph through the queue. You wire a video into video, hit Run on this stage, and you get a strobed clip back without re-running whatever generated it.
What you actually set
- interval (default 3, 1–120) - the strobe cycle length in frames, not seconds. At 3 you get a fast chop; crank it toward 120 for a slow, almost-stroboscopic flutter.
- strobe_mode -
black(default),white, orhold. Black blinks to black, white flashes to white, hold freezes the last shown frame instead of blanking it. - invert - flips the pattern so the opposite frames get strobed.
That's the whole surface. The project_id, parent_output_id, and force_run_token inputs are internal bookkeeping the frontend fills in - leave them alone.
How it works
Strobe runs as a tiny torch op over the frame sequence, not as a re-encode. It keeps a frame counter and blanks (or holds) every frame past the halfway point of each interval window. Because it's a per-frame function, it's trivial to preview live in the node and it plays perfectly in a chain.
That last bit is the part worth caring about. Like most ComfyTV FX stages, Strobe doesn't necessarily commit to disk when it runs - it appends its effect to a spec that travels with the video payload. Stack Strobe after a color grade and before an FX Chain, and the whole stack renders in a single pass with one encode, not three. In ComfyTV's own words, FX stages stack and render "in a single pass, with a live preview of the combined result." So don't be surprised that Run feels instant: the expensive part only happens when a file actually has to be produced.
Install
ComfyTV ships ~190 stages in one pack, so installing the pack installs Strobe too.
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV
Restart ComfyUI (a real backend restart, not a browser refresh) and find it under the ComfyTV → VideoFX submenu. ComfyUI Manager can find it too if you search "ComfyTV". No model downloads, and the pack's pyproject declares zero Python dependencies - the one genuinely pleasant thing about the install. On ComfyUI Desktop or macOS, the README warns the relative cd can land in the wrong ComfyUI instance; read the startup log for the running instance's absolute path and clone there instead.
Troubleshooting
- Run does nothing / no output file. Strobe needs an upstream video wired in;
_need_videowill error with "needs an upstream video." It's an FX stage, so a Run with no downstream consumer that needs a file may produce just a preview - feed it into an FX Chain or export stage to force the bake. - The blink is on the wrong beats.
intervalis frame-based, so at 24 fps an interval of 3 is 8 chops per second. If you want it locked to music, pick an interval that divides into your framerate, or drive it with ComfyTV's audio-reactive automation.
Strobe is a one-trick node, but it's a good trick, and the fact that it doesn't force a re-encode every time you tweak it is the whole reason it beats doing this with a full video editor.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| force_run_token | INT | 00–2147483647 | Internal — bumped on Run to invalidate ComfyUI's input cache. |
| project_id | STRING | Internal — populated by the projectStore on the frontend. | |
| parent_output_id | INT | 00–2147483647 | Internal — lineage parent set by spawn handlers on the frontend. |
| interval | INT | 31–120 | — |
| strobe_mode | COMBO | black | 3 options: black, hold, white |
| invert | BOOLEAN | false | — |
| videoopt | COMFYTV_VIDEO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | COMFYTV_VIDEO | — |