Nodes/Power Noise Suite for ComfyUI/Linear Cross-Hatch Power Fractal 🦚
ComfyUI Node

Linear Cross-Hatch Power Fractal 🦚

Linear Cross-Hatch Power Fractal

By WASasquatchΒ·Created 3 years agoΒ·Updated 2 years agoΒ· 81
Linear Cross-Hatch Power Fractal 🦚
  • optional_vae
  • latents
  • previews
β—„batch_size1β–Ί
β—„width512β–Ί
β—„height512β–Ί
β—„resamplingβ–Ύβ–Ί
β—„frequency320.000β–Ί
β—„gain0.250β–Ί
β—„octaves12β–Ί
β—„persistence1.500β–Ί
β—„add_noise0.000β–Ί
β—„linear_range16β–Ί
β—„linear_tolerance0.050β–Ί
β—„angle_degrees45.00β–Ί
β—„brightness0.000β–Ί
β—„contrast0.000β–Ί
β—„seed0β–Ί
β—„deviceβ–Ύβ–Ί

Most noise nodes give you clouds or static. This one gives you hatching - the dense parallel lines you see in steel engravings and old-school pen-and-ink illustrations, except they're generated as a fractal and handed to you as a latent. If you've ever wanted to seed a generation that starts life looking like a sketch, Linear Cross-Hatch Power Fractal is the node that does it.

It's the "linear" sibling of the plain Cross-Hatch Power Fractal in this pack. The difference is in how it treats the values: instead of mapping the pattern to a handful of discrete colors like its cousin, this one quantizes the noise into a staircase of levels and shades it continuously - which is why it reads as clean, ordered line work rather than a colored mosaic. Both start from the same idea: take a cross-hatch pattern, layer it across fractal octaves, and let angle_degrees rotate the whole thing.

How it works

Under the hood it's CrossHatchLinearPowerFractal from the pack's latent_noise.py - a fractal summed over octaves (each octave adds finer, higher-frequency lines on top of the last), with gain controlling the amplitude of each layer and persistence deciding how fast that amplitude decays as octaves stack up. frequency sets how many lines you get (higher = denser hatching), linear_range is the number of discrete levels the output is quantized into, and linear_tolerance controls how strictly values snap to those levels. add_noise throws a bit of randomness back in so the lines aren't sterile.

The inputs that matter

For a first run, touch exactly these:

  • angle_degrees - direction of the hatching. Default 45Β° is the classic engraving diagonal.
  • frequency - line density. Low values give big loose strokes; high values get dense and fine.
  • linear_range - how many tone levels. 16 gives a nice sketchy gradient; crank it up and it becomes near-continuous shading.
  • octaves / persistence / gain - fractal detail. More octaves = more fine line detail. Leave these at defaults until you have a look you like.
  • resampling - how the pattern is shrunk to latent size; area and bilinear soften it, nearest-exact keeps the lines crisp.

Everything else (brightness, contrast, seed, device, optional_vae) behaves like the other noise nodes in the pack: brightness/contrast are tonal trims, seed makes it reproducible, and optional_vae - as with the rest of the suite - is usually best left empty unless you specifically want a real VAE encode.

Outputs are latents (your seed material) and previews (so you can look at the hatching without running a sampler).

Where it fits

Generate a cross-hatch latent, then run a KSampler at low denoise and the model will preserve those directional lines as structure - it's a fantastic way to force sketch-like, line-art-adjacent compositions, or to add engraving texture that pure prompt language struggles to pin down. You can also use it standalone as a texture generator and composite the result with Blend Latents.

Install

It's one node in Power Noise Suite, so you install the pack once. ComfyUI Manager β†’ search "Power Noise Suite", or:

cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/PowerNoiseSuite

Restart, and you're done. No model downloads; torch is the only dependency and ComfyUI already ships it.

Gotchas

Two honest warnings. First, the defaults are tuned for a look, not for subtlety - at frequency 320 with 12 octaves you're getting bold hatching, so dial it back if you wanted a whisper of texture. Second, remember that a raw latent of line noise is not the same as a VAE-encoded sketch: the model reads it as starting noise, so the lines steer composition and structure, they don't appear literally in the output. If you want literal hatching in the final image, you're better off generating the pattern as an image and layering it afterward. This node is for shaping how the image forms, not for watermarking the result.

CategoryPower Noise Suite/Noise

Inputs (17)

NameTypeDefaultDescription
batch_sizeINT11–64β€”
widthINT51264–8192β€”
heightINT51264–8192β€”
resamplingCOMBO5 options: nearest-exact, bilinear, area, bicubic, bislerp
frequencyFLOAT320.0000.001–1024β€”
gainFLOAT0.2500–1β€”
octavesINT121–32β€”
persistenceFLOAT1.5000.001–2β€”
add_noiseFLOAT0.0000–1β€”
linear_rangeINT162–256β€”
linear_toleranceFLOAT0.0500.001–1β€”
angle_degreesFLOAT45.000–360β€”
brightnessFLOAT0.000-1–1β€”
contrastFLOAT0.000-1–1β€”
seedINT00–18446744073709550000β€”
deviceCOMBO2 options: cpu, cuda
optional_vaeoptVAEβ€”

Outputs (2)

NameTypeDescription
latentsLATENTβ€”
previewsIMAGEβ€”