⚛️FAI_Voronoi_Generator⚛️
Voronoi noise, batched, on the GPU, with a kaleidoscope setting
- x_schedule
- y_schedule
- scale_schedule
- detail_schedule
- randomness_schedule
- seed_schedule
- images
- batch_size
FAI_Voronoi_Generator batch-generates Voronoi noise - one image per frame of video. Voronoi noise is the classic "spray points on a plane, fill space with the region nearest each point" pattern, the thing that gives you those organic, vaguely alien blobs and webs. The author is upfront that this isn't a from-scratch node: it's a reworked version of the grayscale Voronoi from get-salt-AI's SaltAI_AudioViz, revised to add six new distance metrics that produce effects the original couldn't.
Why you'd reach for it: in audio-reactive video workflows you take these images and convert them to masks (via ImageToMask or MaskFromColor) to drive ControlNet regions, IP-Adapter color masks, or scene backgrounds. Because each frame is a fresh Voronoi and you can schedule the seed, scale, and randomness per frame, you get patterns that morph instead of sitting static - which is the whole game with video: per-frame conditioning is what makes a clip feel alive rather than like a slideshow.
The mechanism is refreshingly direct. For each frame it lays out a grid of seed points spaced by the square root of detail, jitters them by randomness, shifts them by the x/y schedules, scales by scale_schedule, then computes every pixel's distance to the nearest point under the chosen distance_metric. Min distances get normalized to 0–1 and repeated into a 3-channel IMAGE. It runs per-frame on cuda by default, so a 64-frame batch is quick.
Inputs that matter:
batch_size- number of frames, 1–4096.width/height- default 64, minimum 64. That default is a thumbnail; for anything that'll actually be used as a mask, bump it up.distance_metric- 10 options. The four classics (euclidean, manhattan, chebyshev, minkowski) plus the author's six: elliptical and five kaleidoscope variants (star, wave, and three radiation flavors). The kaleidoscope ones invert and contrast-boost the distances, so they come out sharp and crystalline instead of soft.
The optional schedule inputs are the interesting part: x_schedule, y_schedule, scale_schedule, detail_schedule, randomness_schedule, and seed_schedule - each a LIST with one value per frame. seed_schedule gives you per-frame reproducibility. Shorter lists pad with the last value rather than erroring, so keep lengths matched to batch_size or motion freezes at the tail. device lets you fall back to CPU.
Outputs: images (IMAGE, one per frame) and batch_size (INT), which is handy for wiring the frame count forward into downstream nodes.
Install via ComfyUI Manager (search "FAI-Node") or:
cd ComfyUI/custom_nodes
git clone https://github.com/alanhuang67/ComfyUI-FAI-Node
then restart. No model downloads. One heads-up from the pack's README: the full example workflows assume SaltAI_AudioViz is installed too - worth grabbing it if you're following along, since the pack's philosophy is "revise what exists," and SaltAI's nodes are the neighbors this one expects.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| batch_size | INT | 1–4096 | — |
| width | INT | 6464–4096 | — |
| height | INT | 6464–4096 | — |
| distance_metricopt | COMBO | 10 options: euclidean, manhattan, chebyshev, minkowski, elliptical, kaleidoscope_star, +4 | |
| x_scheduleopt | LIST | — | |
| y_scheduleopt | LIST | — | |
| scale_scheduleopt | LIST | — | |
| detail_scheduleopt | LIST | — | |
| randomness_scheduleopt | LIST | — | |
| seed_scheduleopt | LIST | — | |
| deviceopt | COMBO | 2 options: cuda, cpu |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| batch_size | INT | — |