Nodes/MKRShift_Nodes/Fractal Texture
ComfyUI Node

Fractal Texture

Fractal texture overlay for surface and atmosphere

By criskb·Created 7 months ago·Updated 5 months ago· 0
Fractal Texture
  • image
  • mask
  • image
  • mask
  • fractal_info
settings_json{"fractal_strength":0.0,"fractal_scale":96.0,"fractal_octaves":4,"fractal_seed":23,"fractal_contrast":1.0,"fractal_drift":0.1,"mask_feather":12.0,"invert_mask":false}

Plain random noise looks like TV static; real-world surfaces don't look like static, they look like layered noise - clouds, rust, terrain, film grain - where big shapes contain smaller shapes that contain smaller shapes. That's a fractal (multi-octave) noise field, and it's what x1Fractal generates on top of your image. If you need to break up a too-clean render or give a flat surface texture, this is the cheap organic answer.

It's part of MKRShift Nodes by Cris K B, under MKRShift Nodes/VFX/Stylize.

How it works

The node builds a procedural multi-octave noise field - fractal_octaves (default 4) layers of noise at increasing frequencies, summed so the fine detail sits on top of broad structure. fractal_scale (default 96) sets the base feature size in pixels, fractal_seed (default 23) randomizes the pattern, and fractal_contrast (default 1.0) shapes how contrasty the texture is. fractal_drift (default 0.1) - this one's a little unusual - slowly varies the noise field, which matters if you're animating: a small drift gives the texture a living, shimmering quality across frames instead of a frozen static overlay. fractal_strength (default 0) blends the whole field over your image, so the node starts inert until you turn it up.

The result is that "material" look: you can use it at low strength to add surface texture that reads as organic rather than synthetic, or at high strength for a full noise-field texture pass.

The inputs that matter

Inside the settings_json:

  • fractal_strength - how much of the noise shows (default 0; you have to turn it up).
  • fractal_scale - base feature size; lower = finer, higher = broader shapes.
  • fractal_octaves - how many detail layers stack (default 4; more = finer detail, slower).
  • fractal_seed / fractal_contrast - pattern variation and punch.
  • fractal_drift - the temporal variation for video.

Optional mask input plus mask_feather / invert_mask, and outputs image, mask, and a fractal_info string.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes

Restart ComfyUI, or install via ComfyUI Manager (search MKRShift_Nodes). No requirements.txt, no models, no keys.

Where it fits

The honest positioning: for material texturing, the pack's own procedural texture nodes (its x1Texture* family) go deeper. This is the quick "give it texture / give it weather" node. A common trick is to mask it to shadows or midtones so the texture sits in the shaded areas rather than over the whole frame - that's what keeps it looking like surface, not like a texture applied in Photoshop. And if you're animating, don't leave fractal_drift at 0 for video - static noise reads as a dirty sensor, a small drift reads as life.

CategoryMKRShift Nodes/VFX/Stylize

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
settings_jsonSTRING{"fractal_strength":0.0,"fractal_scale":96.0,"fractal_octaves":4,"fractal_seed":23,"fractal_contrast":1.0,"fractal_drift":0.1,"mask_feather":12.0,"invert_mask":false}
maskoptMASK

Outputs (3)

NameTypeDescription
imageIMAGE
maskMASK
fractal_infoSTRING