ComfyUI Extension: comfyui-diversityboost
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
Restore composition diversity for distilled diffusion models. Training-free frequency-domain phase injection.
README
ComfyUI-DiversityBoost
Restore composition diversity for distilled diffusion models. Training-free, single-step, zero model modification.
The Problem
Step-distilled models (FLUX2.[Klein], z-image-turbo, etc.) generate high-quality images in few steps, but suffer from composition collapse: different seeds produce nearly identical layouts. A portrait prompt always puts the subject dead-center; a landscape prompt always uses the same horizon line.
Root cause: distillation freezes the spatial distribution of token norms across seeds, locking the model into a single "average" composition regardless of the initial noise.
The Fix (V3)
DiversityBoost V3 applies a single post-CFG hook with polynomial frequency modulation and a DCT composition push:
- Polynomial frequency modulation — smooth, continuous attenuation of high-frequency amplitude. Token-grid normalized (resolution-independent). Near-DC frequencies are protected to prevent brightness/color shift.
- DCT composition push — applies a random low-frequency spatial field that redistributes energy across the latent, nudging the model toward different compositions per seed.
The model then freely reconstructs coherent details at subsequent steps, with per-seed noise driving different reconstruction paths.
Zero model modification. Zero training. One node.
How It Works
- Convert the model's prediction to raw latent space
- Polynomial frequency modulation — smooth HF attenuation in the frequency domain, token-grid normalized via DiT patch_size. DC is zeroed for diversity; near-DC frequencies are protected to preserve structure.
- DCT spatial field — synthesize a random 4x4 low-frequency field (zero DC, pink/white/blue noise weighted), normalize to unit std, scale by strength
- Multiplicative push —
modulated * (1 + field), clamped to prevent dead zones - Convert back
Primary effect at step 0. Optional progressive decay (linear/cosine schedule) extends HF attenuation into early steps for stronger diversity.
Nodes
Two nodes are provided for backward compatibility:
| Node | Class Type | Description |
|------|-----------|-------------|
| Diversity Boost (V3) | DiversityBoostCoreV3 | Polynomial frequency modulation, token-grid normalized, near-DC protected. Recommended. |
| Diversity Boost | DiversityBoostCore | Legacy Butterworth LPF (n_periods parameter). Kept for old workflows. |
Installation
cd ComfyUI/custom_nodes
git clone https://github.com/facok/ComfyUI-DiversityBoost.git
No extra dependencies — only requires PyTorch (ships with ComfyUI).
Usage
MODEL -> [Diversity Boost (V3)] -> MODEL -> KSampler
- Add the Diversity Boost (V3) node (category:
sampling) - Connect your model to the input, output to KSampler
- Generate with different seeds — compositions will vary
Parameters (V3)
| Parameter | Default | Range | Description |
|-----------|---------|-------|-------------|
| strength | 2.0 | 0.0 – 2.0 | Composition push amplitude. 0 = cleanup only, 1.0 = moderate, 2.0 = strong. |
| clamp | 0.5 | 0.1 – 3.0 | Upper bound for the multiplicative scale factor. Scale is clamped to [0.1, 1+clamp]. |
| noise_type | pink | pink / white / blue | Frequency spectrum of random DCT coefficients. Pink boosts low-freq composition modes. |
| dc_preserve | 0.0 | 0.0 – 1.0 | DC amplitude preservation (step 0 only). 0 = max diversity. 1 = preserve original brightness. |
| energy_compensate | False | — | Rescale output RMS to match original. Off by default. |
| hf_factor | 1.0 | 0.0 – 1.0 | High-frequency attenuation strength. 1.0 = full HF zeroing. |
| lf_factor | 0.3 | 0.0 – 1.0 | Low-frequency amplification. 1.0 = +50% boost. |
| transition | 2.0 | 0.5 – 4.0 | Polynomial transition shape. 0.5 = steep, 1.0 = linear, 2.0 = smooth, 4.0 = very smooth. |
| schedule | linear | flat / linear / cosine | Timestep schedule. flat = step 0 only (safe for all samplers). linear/cosine = progressive decay. |
schedule Guide
| Mode | Effect | Sampler Compatibility | |------|--------|----------------------| | flat | Frequency modulation + DCT push at step 0 only. Model has all remaining steps to recover. | All samplers (1st and 2nd order) | | linear | HF attenuation decays linearly over first ~3 steps. DCT push still at step 0 only. | 2nd-order samplers (res_2m, heunpp2) | | cosine | HF attenuation decays with cosine curve. Smoother than linear. | 2nd-order samplers (res_2m, heunpp2) |
Note: First-order samplers (euler) are sensitive to denoised modification at step 1+. Use flat schedule with 1st-order samplers.
strength Guide
| Value | Effect | |-------|--------| | 0.0 | HF cleanup only (no composition push) | | 0.5 | Subtle composition variation | | 1.0 | Moderate composition changes | | 2.0 | Strong composition changes (default) |
hf_factor Guide
| Value | Effect | |-------|--------| | 0.0 | No HF attenuation (cleanup only) | | 0.5 | Moderate HF attenuation (HF ~50%) | | 0.7 | Strong HF attenuation (HF ~30%) | | 1.0 | Full HF zeroing (default) |
Legacy Node (V2)
The old Diversity Boost node (class type DiversityBoostCore) is preserved for backward compatibility. It uses the original Butterworth LPF with the n_periods parameter.
| Parameter | Default | Range | Description | |-----------|---------|-------|-------------| | strength | 0.5 | 0.0 – 2.0 | Composition push amplitude | | clamp | 1.0 | 0.1 – 3.0 | Upper bound for scale factor | | noise_type | pink | pink / white / blue | DCT coefficient spectrum | | n_periods | 2 | 1 – 10 | Butterworth cutoff — spatial periods to preserve | | dc_preserve | 0.0 | 0.0 – 1.0 | DC amplitude preservation | | energy_compensate | False | — | Rescale output RMS |
Tips
- Start with V3 defaults — they are tuned for strong diversity with minimal side effects
- First-order sampler (euler)? Use
schedule=flatto avoid incomplete denoising - Second-order sampler (res_2m)?
schedule=linearworks well for progressive HF release - Want more diversity? Raise
strengthorhf_factor - Want cleanup only? Set
strength=0— pure HF attenuation, no composition push - Compatible with other model patches (ControlNet, etc.) — operates on a different hook
Tested Models
| Model | Status | |-------|--------| | FLUX2.[Klein] 9B | Tested | | z-image-turbo | Tested |
Feel free to report results with other distilled models.
License
MIT
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.