Nodes/Comfyui-EasyIllustrious/⟲ Multi-Pass Sampler
ComfyUI Node

⟲ Multi-Pass Sampler

Structure first, detail second, one node instead of two

By regiellis·Created 12 months ago·Updated 4 months ago· 82
⟲ Multi-Pass Sampler
  • model
  • positive
  • negative
  • latent_image
  • sigmas
  • structure_latent
  • final_latent
seed0
structure_steps12
structure_cfg6.5
structure_denoise0.70
structure_samplerdpm_2
structure_schedulerkarras
detail_steps10
detail_cfg4.2
detail_denoise0.20
detail_samplereuler
detail_schedulernormal
adaptive_transitiontrue
preserve_compositiontrue
reuse_noisefalse
detail_seed_offset1
model_versionauto
Version Preset Overridedisabled

If you've ever chained two KSamplers together - a rough high-denoise pass to lock in composition, then a low-denoise pass over an upscaled latent to add detail without disturbing it - this node is that pattern built in, with both stages pre-tuned instead of you guessing at a second set of steps/CFG/sampler values.

The two passes

The structure pass runs first: higher denoise (0.7 default), higher CFG (6.5, right at the top of Illustrious's usable range), and dpm_2 as the default sampler - a heavier, more deliberate sampler suited to laying out composition rather than speed. The detail pass runs second at low denoise (0.2) and lower CFG (4.2) with euler, refining texture and fine detail without meaningfully moving anything the structure pass already committed to.

That two-CFG split matters more than it looks: a single CFG value has to compromise between "obey the prompt enough to get the composition right" and "don't burn the fine detail," and this node just gives each job its own number instead of averaging them.

preserve_composition and adaptive_transition both work against the same risk - that the detail pass drifts the pose or layout the structure pass established. preserve_composition keeps the base layout stable across the handoff; adaptive_transition gently re-anchors it specifically when the structure pass ran at high denoise, since a higher structure denoise gives the detail pass more room to wander if left unchecked. reuse_noise reuses the structure pass's noise seed for detail sampling too, for tighter coupling between the two - if you want the detail pass to feel like a continuation rather than a fresh roll, turn this on.

The inputs and outputs that matter

  • model, seed, positive, negative, latent_image - required, same as any sampler.
  • structure_cfg (6.5) and detail_cfg (4.2) are the two knobs worth understanding before you touch anything else - they're deliberately not the same number.
  • Version Preset Override - force EPS or VPred-tuned presets if you know your checkpoint and don't trust auto-detection; leave on disabled otherwise.
  • detail_seed_offset (default 1) gives the detail pass its own seed relative to the base, so it's not identical noise unless reuse_noise is also on.

Outputs: structure_latent (decode it if you want to inspect the intermediate composition) and final_latent (after both passes - what you'd normally send to VAE Decode).

Installing it

ComfyUI Manager: search "EasyIllustrious," install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/regiellis/ComfyUI-EasyIllustrious
pip install -r ComfyUI-EasyIllustrious/requirements.txt

No downloads beyond the pack - this is pure sampling logic against your existing checkpoint.

Common issues

Output looks oversaturated or overcooked. structure_cfg defaults right at the ceiling of Illustrious's comfortable CFG range. Trim it toward 5.5–6 before touching anything else - this is the same fix the pack recommends generally for burned output, applied to the pass that's actually running hot.

Composition shifts noticeably between the structure and detail pass. Make sure preserve_composition is on (it is by default) and try enabling reuse_noise - a fresh noise seed for the detail pass, combined with a high structure denoise, is the most common cause of visible drift.

Running a vpred checkpoint and getting flat or static-looking output. This sampler's default CFG pairing assumes standard epsilon prediction. Set Version Preset Override to VPred explicitly rather than trusting auto-detect - vpred wants a different CFG regime than either of this node's default numbers.

CategoryEasy Illustrious / Sampling

Inputs (22)

NameTypeDefaultDescription
modelMODELUNet diffusion model to sample with (SDXL / Illustrious).
seedINT00–18446744073709550000Base random seed; use different seeds for different outputs.
positiveCONDITIONINGPositive prompt conditioning (what you want to see).
negativeCONDITIONINGNegative prompt conditioning (what to avoid).
latent_imageLATENTStarting latent tensor (shape [B,4,H/8,W/8]).
structure_stepsoptINT125–50Steps for the structure pass (coarse layout).
structure_cfgoptFLOAT6.53–8CFG for structure (higher = obey prompt more).
structure_denoiseoptFLOAT0.700.4–1Denoise strength for structure pass.
structure_sampleroptCOMBOdpm_2Sampler for structure pass.
structure_scheduleroptCOMBOkarrasScheduler for structure pass.
detail_stepsoptINT105–50Steps for the detail pass (fine features).
detail_cfgoptFLOAT4.22–7CFG for detail (higher = more literal to prompt).
detail_denoiseoptFLOAT0.200.05–0.7Denoise strength for detail pass.
detail_sampleroptCOMBOeulerSampler for detail pass.
detail_scheduleroptCOMBOnormalScheduler for detail pass.
adaptive_transitionoptBOOLEANtrueGently re-anchor structure if denoise was high.
preserve_compositionoptBOOLEANtrueKeep the base composition stable across passes.
reuse_noiseoptBOOLEANfalseReuse structure noise for detail for tighter coupling.
detail_seed_offsetoptINT10–10000Seed offset for the detail pass.
model_versionoptCOMBOautoExplicit version to nudge CFG if desired (leave on auto for neutrality).
Version Preset OverrideoptCOMBOdisabledForce EPS or VPred-optimized presets regardless of model detection
sigmasoptSIGMASDirect schedule tensor (SIGMAS) from a scheduler node.

Outputs (2)

NameTypeDescription
structure_latentLATENT
final_latentLATENT