Dreamy Look (dreamcore)
The dreamcore look, minus the seed lottery
- image
- image
Dreamy Look is the finishing pass from the ComfyUI-RealisticBokeh pack, and it exists because "dreamy" is a miserable thing to leave to a prompt. Ask a model for soft glow, haze and pastel tones and you get an inconsistent bake - half the image glowing, the other half not, and a fresh roll of the dice every time you change one word. This node does the dreamcore aesthetic as a deterministic pixel pass after the fact: image in, dreamy image out, no model rerun, no new seed.
If that philosophy sounds familiar, it's the same one the whole pack runs on: the photorealism crowd has known for years that AI bokeh and finish look fake because they're uniform and wrong (AI background blur's wrong falloff patterns are a standing tell), and post-processing lore makes the same point about grain and glow - these are old, cheap, deterministic operations, not diffusion passes. Dreamy Look stacks exactly that toolkit.
What's actually in the stack
Feed it one image (IMAGE in, IMAGE out - that's the whole contract), and it runs a chain of effects in order, each one a toggle with its own strength:
- glow (on by default) - Orton-style bloom. It takes the bright areas above
glow_threshold, blurs them into a halo, and screens them back over the image.glow_radiuscontrols the halo size. This is the heart of the look. - diffusion (on) - Pro-Mist softening: blends a blurred copy in at
diffusion_strength. A little goes a long way; the default is 0.05 for a reason. - haze (off) - lifts the blacks toward a milky, faded tone via
haze_amount. - halation (off) - a warm red/orange glow bleeding around highlights, the filmic light-bleed thing you see shooting into the sun on old stocks.
- streaks (off) - the star/cross light streaks from bright points, plus
streak_rainbowto spread them into prism dispersion. This is the "dreamcore" signature move, and it's the one you'll turn on first. - grain (on) - film grain with a development-curve model, so
grain_shadowsandgrain_highscontrol how much lands in the darks vs the highlights, andgrain_colorblends mono toward coloured grain. It's seeded, so changeseedto reshuffle. - grade -
warmth,tintandsaturation, the pastel push.overall_strengththen blends the whole result back toward the original, which is the master "how dreamy" dial.
What a beginner actually sets
Wire any image in and leave the defaults alone for an instant soft pass - that genuinely works. Then the two controls that matter for the actual dreamcore look are turning streaks on (with streak_rainbow if you want the prism dispersion) and pulling overall_strength down if it's too much. glow_strength, glow_radius, haze_amount and grain_strength are the four you'll keep returning to once you're past that.
One trap worth knowing: streak_threshold defaults to 0.99999, which means only the very brightest speculars qualify to streak. That's deliberate - you don't want every streetlight spawning a star - but if you toggle streaks and see nothing, raise glow/check for actual bright points rather than assuming it's broken. And streak_smooth_threshold (off by default) changes the behaviour so that raising the threshold dims streaks gradually instead of just narrowing which points streak - turn it on if the plain threshold feels too touchy.
Install
It ships in the RealisticBokeh pack, so ComfyUI Manager gets you there by searching ComfyUI-RealisticBokeh, or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/marcsole96/ComfyUI-RealisticBokeh.git
Restart ComfyUI. There are no extra runtime dependencies - it runs on the torch and numpy ComfyUI already ships (the requirements.txt is only Pillow, and only for regenerating the pack's docs images). The node appears under image/postprocessing.
When to reach for it
Drop it after a bokeh pass from the same pack (EasyBokeh or the advanced node) for the full "subject in dreamy bokeh + glow" photo, or on top of any generation you want to push off the crisp AI look. Like film grain, it's one of those cheap post moves that does more for "captured on film" credibility than a whole LoRA stack. It can't fix composition or add detail - it's a finish, not a fix.
Inputs (30)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| overall_strength | FLOAT | 1.000–1 | — |
| glowopt | BOOLEAN | true | — |
| glow_strengthopt | FLOAT | 0.500–1 | — |
| glow_radiusopt | FLOAT | 0.0150.005–0.5 | — |
| glow_thresholdopt | FLOAT | 0.900–1 | — |
| diffusionopt | BOOLEAN | true | — |
| diffusion_strengthopt | FLOAT | 0.050–1 | — |
| hazeopt | BOOLEAN | false | — |
| haze_amountopt | FLOAT | 0.100–1 | — |
| halationopt | BOOLEAN | false | — |
| halation_strengthopt | FLOAT | 1.000–1 | — |
| streaksopt | BOOLEAN | false | — |
| streak_strengthopt | FLOAT | 0.250–1 | — |
| streak_lengthopt | FLOAT | 0.070.02–1 | — |
| streak_armsopt | INT | 31–8 | — |
| streak_angleopt | FLOAT | 280–180 | — |
| streak_rainbowopt | BOOLEAN | false | — |
| streak_thresholdopt | FLOAT | 1.00000–1 | — |
| streak_smooth_thresholdopt | BOOLEAN | false | — |
| grainopt | BOOLEAN | true | — |
| grain_strengthopt | FLOAT | 0.350–1 | — |
| grain_sizeopt | FLOAT | 0.5000.5–8 | — |
| grain_shadowsopt | FLOAT | 0.800–1 | — |
| grain_highsopt | FLOAT | 0.100–1 | — |
| grain_coloropt | FLOAT | 0.500–1 | — |
| warmthopt | FLOAT | 0.00-1–1 | — |
| tintopt | FLOAT | 0.00-1–1 | — |
| saturationopt | FLOAT | 1.000–2 | — |
| seedopt | INT | 19960–4294967295 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |