Luma Wipe
The gradient wipe, from radial iris to your own artwork
- video_a
- video_b
- luma_image
- video
Some transitions are geometric, and some are shaped - a reveal that sweeps across a gradient, opening from a circle or ticking like a clock. That's a luma wipe, the classic compositor's move, and Luma Wipe is ComfyTV's version. It blends one clip into another by sweeping a threshold across a grayscale pattern: dark areas of the map reveal first, bright areas last (or reversed).
What it does
On ▶ Run it blends video_a (outgoing) into video_b (incoming) driven by a luma map, and outputs a single COMFYTV_VIDEO. Both clips are required, and the map can be built-in or yours:
- luma_map - a built-in pattern:
radial(default),linear_x,linear_y,bilinear_x/y,square,diamond,clock,symmetric_clock,spiral,burst,curtain,blinds_h/v,checker,cloud. Ignored when you wire your own image. - luma_image - an optional
COMFYTV_IMAGEinput with your own grayscale pattern. If set, it overridesluma_map. Ifluma_mapisnoneand no image is wired, the run stops and asks for one. - duration - transition length, 0.1–5.0s, default 1.0.
- softness - feathering of the wipe edge, 0–1, default 0.1. 0 = crisp graphic edge; higher = softer blend. This is the knob that hides seams in hand-drawn maps.
- invert - reverses the wipe direction (bright areas reveal first).
When no luma_image is connected, the node generates the chosen pattern at video_a's resolution, so you get a shaped reveal without hunting for a file.
Where it fits
Luma wipes are the stylized alternative to a straight crossfade - a radial iris into the next scene, a blinds reveal for a montage, or a custom wipe driven by your own grayscale artwork, which is a genuinely creative option (text, a logo silhouette, a gradient that tells the story). The natural companions: Video Transition for the geometric xfade menu, and the Sequence stage for assembling many clips with per-cut transitions in one node.
Install and troubleshooting
Pack-standard: git clone https://github.com/jtydhr88/ComfyTV into ComfyUI/custom_nodes, restart, under ComfyTV → Compose. No models, no GPU - PyAV processing.
- Run errors "pick a luma pattern or wire a luma_image" - you set
luma_maptononewithout connecting an image. Either pick a pattern or wire one in. - Wipe edge looks crunchy - raise
softness; especially with hand-drawn maps, a little feather hides the seams. - Reveal goes the wrong way - flip
invert.
Output is a COMFYTV_VIDEO snapshot; cross to native ComfyUI nodes with a ← ComfyTV Video Bridge.
Inputs (10)
| 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. |
| luma_map | COMBO | radial | 17 options: none, linear_x, linear_y, bilinear_x, bilinear_y, radial, +11 |
| duration | FLOAT | 1.000.1–5 | — |
| softness | FLOAT | 0.100–1 | — |
| invert | BOOLEAN | false | — |
| video_aopt | COMFYTV_VIDEO | — | |
| video_bopt | COMFYTV_VIDEO | — | |
| luma_imageopt | COMFYTV_IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | COMFYTV_VIDEO | — |