Nodes/Disco Diffusion/Disco Diffusion Extra Settings
ComfyUI Node

Disco Diffusion Extra Settings

The knobs Disco Diffusion hides from you by default

By space-nuko·Created 3 years ago·Updated 2 years ago· 62
Disco Diffusion Extra Settings
    • DISCO_DIFFUSION_EXTRA_SETTINGS
    eta0.80
    cutn16
    cutn_batches2
    cut_overview[12]*400+[4]*600
    cut_innercut[4]*400+[12]*600
    cut_ic_pow[1]*1000
    cut_icgray_p[0.2]*400+[0]*600
    clamp_max0.05
    clip_denoised
    perlin_init
    perlin_mode
    use_horizontal_symmetry
    use_vertical_symmetry

    The Disco Diffusion Sampler works fine out of the box. This node exists for the moment it doesn't - when the output is mushy, or too chaotic, or you remember that Disco Diffusion was famous for a specific painterly texture and you want that. It's an optional settings bundle: build one, wire it into the sampler's extra_settings input, and everything it sets overrides the sampler's defaults.

    What's actually in here

    • cutn (16) and cutn_batches (2) - the quality-vs-speed core. cutn is how many random crops of the image get graded by CLIP at each step; more crops means a firmer steer and slower steps. cutn_batches runs the whole cutout-and-loss pass multiple times per step. Crank both for better results, drop them for speed.
    • cut_overview / cut_innercut - the classic Disco trick, and the fiddliest inputs on the node. They're strings describing schedules, like [12]*400+[4]*600: 12 whole-image crops for the first 400 steps, then 4. Overview cuts see the whole composition (good for structure), inner cuts are zoomed crops (good for detail). The defaults split 16 total cuts across a 1000-step timeline, which is why they match the default cutn.
    • cut_ic_pow and cut_icgray_p - inner-cut size and greyscale probabilities over the timeline. Leave them unless you're chasing a specific look.
    • eta (0.8) - the DDIM stochasticity knob. Only affects ddim sampling mode; lower it toward 0 for more deterministic, higher for more variation.
    • clamp_max (0.05) - clamps the CLIP gradient magnitude. The sampler's whole failure mode is overshoot producing noise and NaNs; this is the lever that keeps guidance sane.
    • perlin_init and perlin_mode - start from Perlin noise instead of Gaussian. This is where Disco's signature grainy, textured init comes from, and it's the one toggle people specifically come looking for.
    • use_horizontal_symmetry / use_vertical_symmetry - mirrors the image during sampling. Genuinely useful for symmetrical subjects (faces, architecture) and a real time-saver, since you can halve the prompt's compositional work.

    How it works

    The output is a single DISCO_DIFFUSION_EXTRA_SETTINGS object - a plain dict under the hood - that the sampler unpacks onto its internal settings. One thing worth knowing: the schedule strings like cut_overview get passed through Python's eval() to become lists, indexed by timestep. That's the author's design, and it means you shouldn't paste schedule values from sketchy workflows you don't trust - it's running as code. It's a real consideration for a beginner, not a reason to panic; the defaults are safe.

    Installing it

    Same pack as the sampler, so same install. ComfyUI Manager, search "Disco Diffusion", or:

    cd ComfyUI/custom_nodes
    git clone --recursive https://github.com/space-nuko/ComfyUI-Disco-Diffusion
    cd ComfyUI-Disco-Diffusion
    pip install -r requirements.txt   # into the venv your ComfyUI uses
    

    What's actually worth touching

    Honest take: most people never need this node. If you want a single upgrade, cutn and cutn_batches are it. If you want the look Disco was famous for, perlin_init is the switch. The symmetry toggles are a sleeper pick. Everything else is fine-tuning you'll only appreciate after a dozen runs that felt close but not quite - and by then you'll know which one you wanted. The pack's 2023 vintage caveat applies here too: it's a legacy node on a legacy pack, so if your ComfyUI won't start after installing, this pack is the usual suspect.

    Categorysampling

    Inputs (13)

    NameTypeDefaultDescription
    etaFLOAT0.80-1–1
    cutnINT161–32
    cutn_batchesINT21–16
    cut_overviewSTRING[12]*400+[4]*600
    cut_innercutSTRING[4]*400+[12]*600
    cut_ic_powSTRING[1]*1000
    cut_icgray_pSTRING[0.2]*400+[0]*600
    clamp_maxFLOAT0.050–1
    clip_denoisedCOMBO2 options: False, True
    perlin_initCOMBO2 options: False, True
    perlin_modeCOMBO3 options: mixed, color, gray
    use_horizontal_symmetryCOMBO2 options: False, True
    use_vertical_symmetryCOMBO2 options: False, True

    Outputs (1)

    NameTypeDescription
    DISCO_DIFFUSION_EXTRA_SETTINGSDISCO_DIFFUSION_EXTRA_SETTINGS