Nodes/FAI-Node/⚛️FAI_Voronoi_Generator⚛️
ComfyUI Node

⚛️FAI_Voronoi_Generator⚛️

Voronoi noise, batched, on the GPU, with a kaleidoscope setting

By alanhuang67·Created 2 years ago·Updated 2 years ago· 15
⚛️FAI_Voronoi_Generator⚛️
  • x_schedule
  • y_schedule
  • scale_schedule
  • detail_schedule
  • randomness_schedule
  • seed_schedule
  • images
  • batch_size
batch_size
width64
height64
distance_metric
device

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.

Category⚛️FAI_Node⚛️

Inputs (11)

NameTypeDefaultDescription
batch_sizeINT1–4096
widthINT6464–4096
heightINT6464–4096
distance_metricoptCOMBO10 options: euclidean, manhattan, chebyshev, minkowski, elliptical, kaleidoscope_star, +4
x_scheduleoptLIST
y_scheduleoptLIST
scale_scheduleoptLIST
detail_scheduleoptLIST
randomness_scheduleoptLIST
seed_scheduleoptLIST
deviceoptCOMBO2 options: cuda, cpu

Outputs (2)

NameTypeDescription
imagesIMAGE
batch_sizeINT