ComfyUI Node

Dreamy Look Advanced

The dreamy pass that decides what your image is before it finishes it

By marcsole96·Created 2 days ago·Updated 2 days ago· 0
Dreamy Look Advanced
  • image
  • texture_1
  • texture_2
  • texture_3
  • image
  • info
modeauto
detectorsiglip
painterly_threshold0.65
overall_strength1.00
texture_1_blendmultiply
texture_1_opacity0.35
texture_1_scale1.00
texture_1_displace4.0
texture_2_blendoverlay
texture_2_opacity0.35
texture_2_scale1.00
texture_2_displace4.0
texture_3_blendsoft_light
texture_3_opacity0.35
texture_3_scale1.00
texture_3_displace4.0
glowtrue
diffusiontrue
hazefalse
halationfalse
graintrue
texturestrue
glow_strength0.50
glow_radius0.015
glow_threshold0.90
diffusion_strength0.05
haze_amount0.10
halation_strength1.00
grain_strength0.35
grain_size0.500
grain_shadows0.80
grain_highs0.10
grain_color0.50
warmth0.00
tint0.00
saturation1.00
seed1996

ComfyUI-RealisticBokeh's plain Dreamy Look node applies the same dreamy treatment to everything you feed it. Dreamy Look Advanced is the version that checks what it's looking at first: it classifies your image as a photograph, an illustration, a digital illustration or a vintage illustration, then applies the treatment that fits. Glow, diffusion and grain for a photo; paper texture and displacement for a drawing; nothing but a soft touch for clean digital art. Same family, much smarter defaults.

How the detection works

The detector widget picks the classifier, and this is where the pack's one real decision hides:

  • siglip (default) - zero-shot SigLIP so400m, ~1.6 GB. It's often already cached by captioning workflows, and the README notes it falls back to CLIP, then to statistics, if it can't load.
  • clip - CLIP ViT-B/32, ~600 MB one-time download, the lightest model option.
  • statistics - pure torch heuristics (edge hardness, saturation, texture, tonal fade, palette size). Zero downloads, and honestly the least reliable on stylized AI art.

The model weights download on first use, not at install. If you have no interest in a 1.6 GB surprise download mid-workflow, set detector to statistics, or skip detection entirely by forcing a mode. For a photograph or a clean render you don't even need the classifier - the whole point of forcing mode is that detection is a convenience, not a requirement.

The detected class then selects which effects fire: photos get glow + diffusion + grain, illustrations get the texture stack (plus displacement), digital illustrations get glow + diffusion without grain or paper, vintage illustrations get grain plus the full paper treatment.

The controls that matter

  • mode - auto runs detection; or force photograph / illustration / digital_illustration / vintage_illustration; or pick manual to drive every toggle yourself (manual is what unlocks haze and halation, which the auto modes don't use).
  • painterly_threshold - only visible in auto mode. Per the tooltip, when the image reads as digital illustration, a second pass inspects native-resolution crops for visible brushwork and upgrades to illustration if the vote beats this number. 0.65 is calibrated for siglip; use ~0.55 for clip. The tooltip's own advice is the honest summary: raise it if painterly-ish digital art keeps getting paper texture it shouldn't.
  • overall_strength - the master blend back toward the original.

It takes up to three optional texture_1..3 image inputs, each with a blend mode (multiply, overlay, soft_light, screen, hard_light, linear_light, normal), opacity, scale (1 stretches to fit, higher tiles) and displace. The displace bit is the clever one: the texture's luma physically warps the image as a displacement map, so paper fibers push the "ink" around instead of just sitting on top. A slot at opacity 0 with displace > 0 acts as a pure displacement map. This is genuinely fiddly to get right - treat it as the advanced feature it is.

Two outputs, not one

It returns image plus an info string that reports the detected mode, the per-class scores and the measured statistics. Wire info into a text display once to see why it made the call. When a borderline image lands in the wrong class, that printed vote tells you exactly where to push painterly_threshold.

Real-world gotchas

Detection runs on the first frame of a batch. And the README is refreshingly honest about a known blind spot: soft-painterly images with no visible stroke texture (it names the zijzo style) read as digital under every tested detector. If you're working in that genre, just force mode and stop arguing with the classifier.

Honestly? If everything you feed it is photographs, the simpler Dreamy Look node gives you the same glow-diffusion-grain pass with fewer knobs. Reach for Advanced when your workflow mixes media - you're running a character sheet that's half render, half hand-drawn, or you want paper texture on sketches without it ever touching your photos.

Install is the same as the rest of the pack - ComfyUI Manager search for ComfyUI-RealisticBokeh, or:

cd ComfyUI/custom_nodes
git clone https://github.com/marcsole96/ComfyUI-RealisticBokeh.git

Restart ComfyUI and it shows up under image/postprocessing. No runtime dependencies beyond what ComfyUI ships; the only downloads are the siglip/clip detector weights on first use.

Categoryimage/postprocessing

Inputs (41)

NameTypeDefaultDescription
imageIMAGE
modeCOMBOauto6 options: auto, photograph, illustration, digital_illustration, vintage_illustration, manual
detectorCOMBOsiglip3 options: siglip, clip, statistics
painterly_thresholdFLOAT0.650–1auto mode: brushwork vote above this upgrades digital_illustration to illustration; 0.65 calibrated for siglip on the user dataset (use ~0.55 for clip); raise it if painterly-ish digital art gets textures it shouldn't
overall_strengthFLOAT1.000–1
texture_1optIMAGE
texture_1_blendoptCOMBOmultiply7 options: multiply, overlay, soft_light, screen, hard_light, linear_light, +1
texture_1_opacityoptFLOAT0.350–1
texture_1_scaleoptFLOAT1.000.25–8
texture_1_displaceoptFLOAT4.00–64
texture_2optIMAGE
texture_2_blendoptCOMBOoverlay7 options: multiply, overlay, soft_light, screen, hard_light, linear_light, +1
texture_2_opacityoptFLOAT0.350–1
texture_2_scaleoptFLOAT1.000.25–8
texture_2_displaceoptFLOAT4.00–64
texture_3optIMAGE
texture_3_blendoptCOMBOsoft_light7 options: multiply, overlay, soft_light, screen, hard_light, linear_light, +1
texture_3_opacityoptFLOAT0.350–1
texture_3_scaleoptFLOAT1.000.25–8
texture_3_displaceoptFLOAT4.00–64
glowoptBOOLEANtrue
diffusionoptBOOLEANtrue
hazeoptBOOLEANfalse
halationoptBOOLEANfalse
grainoptBOOLEANtrue
texturesoptBOOLEANtrue
glow_strengthoptFLOAT0.500–1
glow_radiusoptFLOAT0.0150.005–0.5
glow_thresholdoptFLOAT0.900–1
diffusion_strengthoptFLOAT0.050–1
haze_amountoptFLOAT0.100–1
halation_strengthoptFLOAT1.000–1
grain_strengthoptFLOAT0.350–1
grain_sizeoptFLOAT0.5000.5–8
grain_shadowsoptFLOAT0.800–1
grain_highsoptFLOAT0.100–1
grain_coloroptFLOAT0.500–1
warmthoptFLOAT0.00-1–1
tintoptFLOAT0.00-1–1
saturationoptFLOAT1.000–2
seedoptINT19960–4294967295

Outputs (2)

NameTypeDescription
imageIMAGE
infoSTRING