Nebula Generator
A whole space scene from noise and math, no model required
- IMAGE
Sometimes you don't want a diffusion model to imagine a nebula - you want a nebula now, at a specific size, that you can tint and twist and seed deterministically. That's what Nebula Generator is: a procedural texture generator that builds a full space scene from Perlin-style noise, layered color stops, and a pile of post-processing toggles. No checkpoint, no VRAM, no model. Just numpy doing the math in the time it takes your graph to even start loading weights.
The core is fBm - fractal Brownian motion, or layered noise. You pick a noise family (perlin, simplex, ridged, billow, turbulence), a number of octaves (layers of increasing frequency), and persistence/lacunarity (how each layer's amplitude and frequency grow), and the node builds a smooth, cloudy scalar field. That field is then colored by mapping values through a five-color gradient - color1 through color5, each with its own RGB sliders, defaulted to a purple-blue nebula palette - or one of the procedural color_modes like rainbow, radial, or plasma. Then the post stack kicks in: hue_shift, saturation_boost, brightness, contrast, gamma, plus toggles for warp, bloom, vignette, chromatic aberration, and even stars (star_density, star_brightness, with optional star_colors and star_twinkle).
The inputs that matter
Realistically you will not touch 40 inputs. The ones that do the heavy lifting:
width/height- canvas size. 64 to 4096, stepped by 64.scale- the zoom of the noise. Smaller values stretch the clouds out into big shapes; this is the single most important aesthetic knob.octaves- detail layers. 6 is default; more gets wispier.color_modeand the fivecolor1..5RGB stops - where the palette comes from.seed- note it's a float from 0–1, not an integer. Move it a little for a new cloud field.
star_density is a fun one: 0.001 gives a sprinkling, up to 0.01 is a full sky. And star_twinkle is a nice touch that costs nothing.
Where it fits
Think of it as a background generator and a compositing asset factory. A procedural nebula makes a great backdrop for a foreground subject, a depth map input for parallax, a texture for something you're going to distort anyway, or just a fast way to generate a sky to img2img against. Because it's fully seedable, you can lock a specific cloud field and re-render at different sizes with the same seed - the deterministic part of diffusion that diffusion itself doesn't give you.
Install
Part of Steaked-nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/StealthNinja1O1/Steaked-nodes
Restart, or install via ComfyUI Manager ("Steaked-nodes"). Dependencies are torch, numpy, Pillow - all standard.
Common issues
The classic mistake is leaving scale at its tiny default and wondering why everything is one giant blur - that's the stretched-cloud look, and it's intentional; raise scale toward 0.05 for finer detail. If your colors all collapse into one blob, check that your five color stops are actually distinct and that contrast/gamma aren't crushing the range. And if the output looks flat, vignette and chromatic are cheap realism boosters. Stars won't show if star_density is 0 - remember it's a density, not a count.
Inputs (44)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 80064–4096 | — |
| height | INT | 60064–4096 | — |
| scale | FLOAT | 0.0100.001–0.05 | — |
| octaves | INT | 61–8 | — |
| persistence | FLOAT | 0.50.1–1 | — |
| lacunarity | FLOAT | 2.01–3 | — |
| seed | FLOAT | 0.5000–1 | — |
| color_mode | COMBO | custom | 8 options: custom, rainbow, spectrum, radial, angular, gradient, +2 |
| noise_type | COMBO | perlin | 5 options: perlin, simplex, ridged, billow, turbulence |
| color1_r | FLOAT | 0.020–1 | — |
| color1_g | FLOAT | 0.020–1 | — |
| color1_b | FLOAT | 0.060–1 | — |
| color2_r | FLOAT | 0.100–1 | — |
| color2_g | FLOAT | 0.060–1 | — |
| color2_b | FLOAT | 0.240–1 | — |
| color3_r | FLOAT | 0.470–1 | — |
| color3_g | FLOAT | 0.160–1 | — |
| color3_b | FLOAT | 0.590–1 | — |
| color4_r | FLOAT | 1.000–1 | — |
| color4_g | FLOAT | 0.390–1 | — |
| color4_b | FLOAT | 0.780–1 | — |
| color5_r | FLOAT | 1.000–1 | — |
| color5_g | FLOAT | 1.000–1 | — |
| color5_b | FLOAT | 1.000–1 | — |
| gradient_rotation | FLOAT | 00–360 | — |
| gradient_scale | FLOAT | 1.00.1–3 | — |
| hue_shift | FLOAT | 00–360 | — |
| saturation_boost | FLOAT | 0.0-1–1 | — |
| brightness | FLOAT | 1.00.1–2 | — |
| contrast | FLOAT | 1.00.1–3 | — |
| gamma | FLOAT | 1.00.1–3 | — |
| invert_colors | BOOLEAN | false | — |
| warp_strength | FLOAT | 0.00–2 | — |
| warp_frequency | FLOAT | 0.0100.001–0.05 | — |
| star_density | FLOAT | 0.00100–0.01 | — |
| star_brightness | FLOAT | 0.80–1 | — |
| star_colors | BOOLEAN | false | — |
| star_twinkle | BOOLEAN | false | — |
| bloom | BOOLEAN | false | — |
| bloom_intensity | FLOAT | 0.50–1 | — |
| vignette | BOOLEAN | false | — |
| vignette_intensity | FLOAT | 0.30–1 | — |
| chromatic | BOOLEAN | false | — |
| chromatic_intensity | FLOAT | 0.100–0.5 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |