FL Fractal KSampler
The experimental recursive-detail sampler
- model
- vae
- positive
- negative
- latent_image
- LATENT
- VAE
This one's a toy in the best sense - an experimental sampler filed under Fill-Nodes' WIP drawer that generates images by recursively slicing and re-sampling. It is not a production upscaler, and if you came here looking for the reliable way to add detail, the honest answer is SeedVR2 or a tiled ControlNet upscale, not this. But if you want to play with a weird, self-similar detail-hallucination process and see what falls out, FL_FractalKSampler is a genuinely interesting sandbox.
How it works
The recursive trick: it upscales the latent by scale_factor, divides it into four quadrants, samples each quadrant with a reduced denoise, and then composites the results back together with a blend_factor. Do that for a few fractal_levels and you get detail introduced at multiple scales, each pass working on a smaller region so the model paints finer structure into it. The name comes from that self-similar, subdivide-and-repeat shape.
Because each level multiplies the number of regions being sampled, this can balloon in compute fast - that's the main thing to respect about it. It outputs a LATENT (and passes through the VAE) rather than a finished image, so you decode it yourself downstream.
The inputs that matter
model,vae,positive,negative- the usual sampler wiring, plus a VAE because it works across the latent/pixel boundary during the recursion.fractal_levels- how many recursive passes (1–5). This is the compute bomb. Each level subdivides again, so going from 2 to 4 is not "twice the work," it's a lot more. Start at 2.scale_factor- how much it upscales the latent each level (1.1–2.0).blend_factor- how strongly each level's re-sampled quadrants blend back against the parent (0–1). This is the knob that controls how much the fractal process rewrites versus refines.denoise- the base denoise; the recursion uses reduced values below this, which is what keeps deeper levels adding detail rather than replacing the image.
Outputs are LATENT and VAE. Decode the latent to see your result.
Installing it
Part of the Fill-Nodes pack. ComfyUI Manager: search ComfyUI_Fill-Nodes, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
then restart. Expect the "Machine Delusions" splash banner in your console - it's just the pack's logo.
Where people get tripped up
- It's WIP, and it behaves like it. Results are unpredictable and change a lot with
blend_factoranddenoise. Treat it as an art tool, not a deterministic upscaler. If you need a face to stay itself, this will not respect that. fractal_levelswill eat your GPU. The recursion multiplies work per level. Crank it and you'll wait a long time or run out of VRAM. Build up slowly.- Don't confuse it with real upscaling. Recursive re-sampling introduces invented detail, similar in spirit to how generative upscalers hallucinate - which is great for texture and terrible for fidelity. For "make it bigger and keep it faithful," use a pixel upscaler or SeedVR2; for "make it weirder and more detailed," this is your node.
- It outputs a latent, not an image. Forgetting the VAE decode after it is the most common "why is nothing showing" mistake.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| vae | VAE | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 7.000–100 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| denoise | FLOAT | 1.000–1 | — |
| scale_factor | FLOAT | 1.251.1–2 | — |
| blend_factor | FLOAT | 0.500–1 | — |
| fractal_levels | INT | 21–5 | — |
| latent_imageopt | LATENT | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |
| VAE | VAE | — |