ComfyUI Node
TimeSlice Dual
Dual-source angled slit-scan. Interleaves slices from two clips, each with its own time offset. Great for transitions and split-reality looks.
TimeSlice Dual
- images_a
- images_b
- mask
- images
- mask
- num_frames
- slice_edges
◄num_slices20►
◄offset_a1►
◄offset_b1►
◄angle0►
◄spacing▾►
◄direction▾►
◄pattern▾►
◄loop_mode▾►
◄blend_width0►
◄mix0.50►
◄seed0►
◄cascade_curve▾►
◄slice_jitter0►
◄animatefalse►
◄num_slices_end60►
◄offset_a_end6►
◄offset_b_end6►
◄angle_end0►
◄temporal_curve▾►
◄frame_count0►
CategorySystms/effects
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| images_a | IMAGE | First source clip (A). | |
| images_b | IMAGE | Second source clip (B). Resized to match A if their dimensions differ. | |
| num_slices | INT | 201–2000 | Number of slices to divide the frame into |
| offset_a | INT | 1-120–120 | Frame offset step for A-source slices |
| offset_b | INT | 1-120–120 | Frame offset step for B-source slices |
| angle | FLOAT | 0-180–180 | Slice angle in degrees. 0 = vertical, 90 = horizontal. |
| spacing | COMBO | How slice widths are distributed across the frame: even (linear), eased toward one side, or random. | |
| direction | COMBO | Which slices carry the most time offset: building from one edge (forward/reverse), from the centre, or from both edges. | |
| pattern | COMBO | How slices are assigned to the A and B clips across the frame. | |
| loop_mode | COMBO | How out-of-range frame indices are handled: wrap around (loop), bounce back (ping_pong), or shorten the clip (trim). | |
| blend_width | INT | 00–400 | Soft blend width (px) across boundaries. 0 = hard edges. |
| mix | FLOAT | 0.500–1 | Balance between A and B. 0.5 = equal. |
| seed | INT | 00–4294967295 | Seed for 'random' spacing, slice jitter and mix balancing |
| cascade_curveopt | COMBO | How the per-slice offset grows across slices. | |
| slice_jitteropt | INT | 00–60 | Random +/- frames added per slice (seeded). Adds glitchy irregularity. |
| animateopt | BOOLEAN | false | Animate slices/offsets/angle from start -> end over the clip. |
| num_slices_endopt | INT | 601–2000 | Target slice count reached at the end of the animation. |
| offset_a_endopt | INT | 6-120–120 | Target A-source offset at the end of the animation. |
| offset_b_endopt | INT | 6-120–120 | Target B-source offset at the end of the animation. |
| angle_endopt | FLOAT | 0-180–180 | Target slice angle (degrees) at the end of the animation. |
| temporal_curveopt | COMBO | Easing applied to the start -> end animation over time. | |
| frame_countopt | INT | 00–100000 | Frames over which the animation completes. 0 = use clip length. |
| maskopt | MASK | Optional mask. Slicing is applied only inside the white area; outside keeps the original A frame. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| mask | MASK | — |
| num_frames | INT | — |
| slice_edges | MASK | — |