SpectrumSEAKSamplerModGuidance
The old SEA sampler, now an alias
- model
- positive
- negative
- latent_image
- clip
- LATENT
Another retired class name, same story as its sibling SpectrumKSamplerModGuidance. This one used to be "KSampler (Spectrum SEA + Mod Guidance)" - the version of the sampler built specifically around SEA content-aware step scheduling. When the pack unified its sampler nodes, this one folded into the same place: KSampler (Spectrum). The class key is kept as a hidden alias purely so that saved workflows referencing it keep loading - it no longer shows up if you search for it in the Add Node menu.
What SEA was, and why it's not a separate node anymore
SEA (Spectral-Evolution-Aware scheduling) is the smarter alternative to Spectrum's plain fixed-cadence caching window. Instead of always doing an actual forward every N cached steps regardless of what's happening in the image, SEA tracks the accumulated latent distance and only forces a real forward when that distance crosses a calibrated threshold - so compute gets spent on the steps that are actually moving the image, not on a metronome. It used to be its own node; now it's just the refresh_ratio dial on the unified sampler, which is exactly the schema this alias still carries:
refresh_ratio-0(default) is SEA auto: content-aware placement, calibrated so the total speed matches the plain window schedule at your step count.-1turns SEA off entirely, giving you the plain growing-window schedule with no calibration delay. Anything above0is an explicit refresh ratio you set by hand - lower is faster and less faithful. The first run at a given resolution/steps/cfg/refresh_ratio combination pays a one-time calibration cost and caches the result to your ComfyUI user directory, so expect the very first render at a new config to be a touch slower.- The rest of the schema matches the unified sampler exactly: standard KSampler inputs, optional
clip+quality_tags/quality_neg/mod_w_profilefor modulation guidance,adaptive_smc_alphafor detail recovery,xattn_boostfor text adherence, andfsgfor the heavier Foresight Guidance path. Output isLATENT.
What to actually do
Old workflow using this node? Leave it - it loads and behaves exactly as before. New workflow? Add KSampler (Spectrum) instead; refresh_ratio is right there on it, same as it always was on this one.
Installing it
Same pack as every node here - ComfyUI Manager: search SpectrumKSampler, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/sorryhyun/ComfyUI-Spectrum-KSampler
Restart. Modulation guidance's ~12MB adapter auto-downloads to ComfyUI/models/anima_mod_guidance/ the first time you actually use it with a CLIP wired in.
Common issues & troubleshooting
Can't find it in the node search. Intentional - it's a hidden legacy alias. Use KSampler (Spectrum) going forward; the SEA dial is refresh_ratio on that node.
Speed varies between the first render and later ones at the same settings. That's SEA's calibration pass, not a bug - it only happens once per unique (resolution, steps, cfg, refresh_ratio) combination, then reuses the cached threshold.
Want the fastest possible first run with zero calibration wait? Set refresh_ratio = -1 to skip SEA and use the plain window schedule from frame one.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The model used for denoising the input latent. | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 281–10000 | — |
| cfg | FLOAT | 4.00–100 | — |
| sampler_name | COMBO | 45 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +39 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| latent_image | LATENT | — | |
| denoise | FLOAT | 1.000–1 | — |
| quality_tags | STRING | highres, best quality, score_7 | Quality tags to steer generation toward via modulation. |
| quality_neg | STRING | score_1, score_2, score_3, worst quality, lowres, old, bad hands, bad anatomy | Quality-negative baseline for the mod-guidance steering axis (delta = proj(quality_tags) − proj(quality_neg)). Leave EMPTY to reuse the CFG negative (legacy behavior). Set a clean counter-pole (e.g. 'worst quality, score_1') to decouple the quality axis from the broad CFG negative, which is anti-correlated with the intended quality direction. Does NOT change the CFG negative itself. |
| mod_w_profile | COMBO | step_i8_skip27 | Per-block guidance schedule preset. 'off' disables modulation guidance entirely (no adapter download, no extra hook). 'step_i8_skip27' (default) protects early tonal-DC blocks 0–7 and the final compensation block 27, applying w=3 to blocks 8–26 — best overall quality but can occasionally show minor anatomy drift on drift-prone LoRAs. 'step_i14' is the SAFE option: steers only from block 14 onward, reliably stays inside the trained manifold at the cost of a slightly less expressive result. 'uniform_w3' recovers pre-0413 behavior (not recommended — prone to pink-collapse). |
| refresh_ratio | FLOAT | 0.00-1–1 | SEA scheduling dial. -1 = SEA off (plain growing-window schedule; accelerates from the first run, no calibration). 0 = SEA auto (match the window schedule's refresh fraction at this step count — same speed, smarter step placement). >0 = explicit refresh ratio (lower = faster, less faithful). The first run at each (resolution / steps / cfg / refresh_ratio) does a one-time full-compute calibration pass, then caches δ to the ComfyUI user dir for later runs. |
| adaptive_smc_alpha | FLOAT | 0.100–1 | α-adaptive Sliding-Mode Control CFG gain. 0 disables (vanilla CFG combine). 0.2 = production default — k_t := α·mean(|v_cond − v_uncond|) per step keeps the bang-bang correction in-band across CFG/σ/sample (paper's fixed k=0.1 was ~14× off on Anima at CFG=4). Recovers detail (fingers, eyes, text); outputs run slightly darker. Auto-disabled when CFG=1. |
| xattn_boost | FLOAT | 1.001–3 | Front-loaded cross-attn boost λ. 1.0 = off (exact identity). Scales every block's cross-attn residual on the conditional forward at high σ (the plan-writing window where text drive lives), strengthening weak-tag adherence and relation/attribute bindings without changing the render style. Norm-matched by default (renorm 'img' ρ0.5 — tunable on the Advanced node) so the boosted state stays on the trained norm shell instead of burning saturation. ~1.5 recommended; up to 3.0 for stubborn tags (higher λ can amplify unwanted caption tags like framing/crop priors). Boosts only actual forwards; forecast steps extrapolate from the boosted features. Composes with SMC-CFG / CFG++ / FSG / mod-guidance. |
| fsg | BOOLEAN | false | Foresight Guidance toward the golden path (one switch = the validated production stack: CFG++ λ=1.5 substrate + FSG band [0.59,0.75], K=3, on the 1024 tier @ ~28 steps). Needs CFG != 1. Because CFG++ replaces the cond/uncond combine, turning this ON disables SMC-CFG (they are mutually exclusive). Adds ~3·K forwards per in-band step. Band/K/Δσ/γ and the CFG++ λ are tunable on the Advanced node; re-tune if you change steps/resolution (the band moves). |
| clipopt | CLIP | CLIP encoder for encoding positive quality tags. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |