ComfyUI Extension: TimeSlice Nodes
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
Temporal slit-scan / time-displacement effects for ComfyUI — angled, animated and dual-source slicing on a shared engine.
README
TimeSlice Nodes — SYSTMS
Temporal slit-scan / time-displacement effects for ComfyUI. A frame is divided into parallel bands ("slices") and each band is sampled from a different frame in the sequence — like a rolling shutter you can art-direct.
The pack contains three nodes built on a shared slicing engine, so angle, spacing, blending and masking behave identically across all of them:
| Node | What it does | |---|---| | TimeSlice Effect | Classic cascading slit-scan — each slice is offset further in time than the last | | TimeSlice Wave | Animated variant — slice offsets ripple over time following a travelling sine wave | | TimeSlice Dual | Two-input variant — interleaves slices from two clips, each with independent time offsets |
All three nodes can be found under Systms → effects.
Installation
ComfyUI Manager — search for "TimeSlice Nodes" and click Install.
Manual (git) — clone into your ComfyUI custom_nodes folder:
cd ComfyUI/custom_nodes
git clone https://github.com/systms-ai/TimeSlice-Nodes.git
Then restart ComfyUI. The only dependency is numpy (already present in ComfyUI); torch is provided by the ComfyUI runtime.
Shared concepts
Slicing geometry
- num_slices — how many bands the frame is divided into. More slices = finer, smoother displacement; fewer = bold, blocky steps.
- angle — slice orientation in degrees.
0= vertical slices,90= horizontal,45= diagonal. Any angle works. - spacing — how slice widths are distributed:
linear(equal widths),ease_in/ease_out/ease_in_out(slices compress toward one side or the middle), orrandom(seeded irregular widths).
Time handling
- loop_mode — what happens when a slice's offset reaches past the ends of the clip:
loop— wraps around to the other end (seamless for looping clips)ping_pong— bounces back and forthtrim— drops frames at the ends so no slice ever has to wrap. Output is shorter than the input.
Finishing
- blend_width — soft cross-fade (in pixels) across slice boundaries.
0= hard edges. Fully vectorised, so high slice counts and wide blends cost the same as low ones. - mask (optional) — restricts the effect to the white area of a mask; the rest of the frame stays untouched original footage.
- seed — drives
randomspacing and slice jitter, for repeatable results.
Outputs
Every node returns four sockets:
| Output | Type | Description |
|---|---|---|
| images | IMAGE | The sliced frames |
| mask | MASK | The input mask passed through (or solid white if none) |
| num_frames | INT | Output frame count — useful downstream when using trim |
| slice_edges | MASK | The boundary lines as a separate mask, for feeding glow / glitch overlays |
TimeSlice Effect
The core cascade. Slice 0 shows the current frame, and each subsequent slice is pushed further back (or forward) in time.
Key parameters
- offset — frame step between neighbouring slices.
1= subtle smear, higher = stretched time trails. Negative values reverse the time direction. - direction — which slices carry the most displacement:
forward,reverse,center_out(still in the middle, displaced at the edges) oredges_in(the inverse). - cascade_curve — how the offset grows across slices:
linear,ease_in,ease_out,ease_in_outorexponential. Exponential keeps most of the frame coherent and whips the far slices away. - slice_jitter — seeded random ± frames added per slice, for a glitchier, less mechanical cascade.
Animation (optional)
Enable animate to interpolate num_slices, offset and angle from their start values to num_slices_end / offset_end / angle_end over the clip, shaped by temporal_curve. By default the animation spans the full clip length; set frame_count to complete it over a specific number of frames instead.
TimeSlice Wave
Instead of a fixed cascade, slice offsets follow a sine wave that travels across the frame over time — an undulating, liquid temporal ripple.
Key parameters
- max_offset — peak frame displacement at the wave crest.
- wave_count — number of full sine cycles across the slices (spatial frequency: how many ripples are visible at once).
- wave_speed — number of full wave cycles over the whole clip (temporal frequency: how fast the ripple travels). Higher = faster. Whole-number values loop seamlessly with
loop_mode: loop.
Note on trim mode: because the wave swings both backwards and forwards in time, trim removes max_offset frames from both ends of the clip, so the output is input − 2 × max_offset frames.
TimeSlice Dual
Slices alternate between two video inputs — built for transitions, split-reality looks and A/B mashups. Input B is automatically resized to match A.
Key parameters
- offset_a / offset_b — independent cascade step for slices drawn from each source.
- pattern — how slices are assigned to sources:
alternate(ABAB),pairs(AABB repeating),aba,aabb,abba. - mix — balance between sources.
0.5keeps the pattern as-is; pushing toward0or1reassigns slices (seeded) so one source dominates. - Supports the same
direction,cascade_curve,slice_jitter, masking and start→end animation as TimeSlice Effect, with independentoffset_a_end/offset_b_endtargets.
Quick recipes
- Clean classic slit-scan — Effect:
num_slices 40+,offset 1,angle 90, everything else default. - Glitch smear — Effect:
spacing random,slice_jitter 4–10, withslice_edgesfed into a glow. - Liquid ripple loop — Wave:
wave_count 1–2,wave_speeda whole number,loop_mode loop,blend_width 20–60for a smooth undulation that cycles perfectly. - Two-clip transition — Dual: animate from
mix-heavy A to B-dominant offsets, or keyframenum_sliceslow→high for a shatter-style handover. - Effect only on the subject — feed a subject mask into any node's
maskinput; the background stays clean.
Performance notes
The slicing and blending are fully vectorised — blend cost does not scale with num_slices or blend_width, so even 2000 slices with wide blends runs fine. Memory is driven by clip size (frames × height × width), the same as any video node: very long, high-resolution clips need RAM regardless of settings.
License
MIT © 2026 SYSTMS. See LICENSE.
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.