Nodes/Skoogeer-Noise/Latent Worley Noise
ComfyUI Node

Latent Worley Noise

Cellular noise for cracks, bubbles, and organic tessellation

By ttulttul·Created 9 months ago·Updated 3 months ago· 14
Latent Worley Noise
  • latent
  • mask
  • LATENT
seed0
feature_points16
octaves3
persistence0.65
lacunarity2.0
distance_metriceuclidean
jitter0.35
strength0.50
channel_modeshared
temporal_modelocked

Perlin and simplex give you smooth clouds. Worley gives you cells. Instead of interpolating between lattice gradients, it scatters a set of feature points across the plane and measures the distance to the nearest one at every pixel. The result is that honeycomb / cracked-mud / biological-cell look - think dried earth, frog skin, lizard scales, bubble wrap at the macro level. When you're generating patterns, that's exactly the vocabulary you need for things Perlin can't do: discrete, tessellated structure.

In latent space, that translates to a perturbation that imposes cell boundaries on your image. Low strength, low feature_points gives you subtle organic dappling - the kind of thing that makes skin or stone read as "grown" rather than "rendered." Higher feature_points with a big strength pushes hard toward cracked, mosaic, and split-viz texturing. It's the node in this pack you reach for when the brief says biological or geological and plain noise isn't cutting it.

The inputs that matter

The fBm stack is there (octaves, persistence, lacunarity), but Worley's distinctive controls are what you should learn:

  • feature_points (default 16) - the number of cell centers scattered across the plane. Fewer = bigger cells, fewer of them. This is your cell-size dial.
  • distance_metric - euclidean (default) for round-ish organic cells, manhattan for diamond/angular faceting, chebyshev for square-ish, blocky cells. This is the single most interesting option on the node and people sleep on it.
  • jitter (0.35) - how far each feature point can drift inside its cell. 0 gives perfectly regular honeycomb; 1 gives chaotic, overlapping organic blobs. Higher jitter is usually what you want for "grown" rather than "printed" textures.
  • strength (0.5) - how hard the pattern hits, scaled to the latent's standard deviation.
  • channel_mode - shared keeps one cellular field across channels; per_channel reseeds per channel for multicolored breakup.
  • temporal_mode - locked reuses one pattern across frames, animated reseeds each frame for 5D video latents.

seed for repeatability, optional mask to localize the injection, one LATENT output.

Installing and using it

It's in the Skoogeer-Noise pack. ComfyUI Manager → search "Skoogeer-Noise", or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/ttulttul/Skoogeer-Noise

Restart ComfyUI. No models or API keys - the only deps (torch, numpy, einops, pyyaml) ship with ComfyUI already.

Common issues

The big gotchas are the same shape as the other noise nodes: strength too low → "nothing happened," octaves too high → "everything melted." For Worley specifically, most people's first run looks too regular - that's jitter at 0.35 with euclidean giving you textbook honeycomb. Crank jitter toward 0.7–1.0 and flip the distance_metric around if you want something that looks alive instead of machined. One more: the feature_points count is a base that gets multiplied per octave by lacunarity, so a high feature_points with 4+ octaves explodes the cell count fast - drop octaves first if the texture turns to static. And on Flux.2, wrap it with Unpatchify Flux.2 LatentPatchify Flux.2 Latent like any latent-space op in this pack.

CategoryLatent/Noise

Inputs (12)

NameTypeDefaultDescription
latentLATENTLatent to perturb with Worley (cellular) noise.
seedINT00–18446744073709550000Seed for the feature point distribution.
feature_pointsINT161–4096Base number of feature points scattered across the plane.
octavesINT31–8Number of cellular layers to accumulate.
persistenceFLOAT0.650–1Amplitude multiplier between Worley octaves.
lacunarityFLOAT2.01–6Multiplier for the feature point count between octaves.
distance_metricCOMBOeuclideanDistance metric used when measuring feature proximity.
jitterFLOAT0.350–1How far feature points can drift inside each cell.
strengthFLOAT0.500–5Scale of the normalized Worley noise relative to the latent's standard deviation.
channel_modeCOMBOsharedShared noise for all channels or reseeded per channel.
temporal_modeCOMBOlockedlocked reuses a single noise pattern per frame; animated reseeds each frame.
maskoptMASKOptional mask (often image-sized) to limit the noise injection to masked areas. The mask is resized to latent resolution (bicubic when downscaling).

Outputs (1)

NameTypeDescription
LATENTLATENT