SDXL Sampler v1 (Searge)
SDXL base + refiner in one node (now deprecated)
- base_model
- base_positive
- base_negative
- refiner_model
- refiner_positive
- refiner_negative
- latent_image
This is the node that made Searge SDXL useful in the first place: a single sampler that runs SDXL's base model for the first chunk of steps and then hands the latent to the refiner for the rest, without you wiring up two KSamplers and an intermediate handoff yourself. Back in mid-2023, when SDXL 1.0 had just launched and everyone was arguing about how to chain base and refiner, that was a real convenience.
Note the category, though: Searge/_deprecated_/Sampling. This is a v1-era node. It still works - the pack stays backward-compatible with old workflows - but the current EVOLVED workflow does its sampling inside the Magic Box pipeline, not with this standalone node. If you loaded an old Searge graph and found this, fine. If you're building fresh, you probably want the integrated pipeline instead.
How it works
SDXL was designed as a two-stage model: a 3.5B base that does most of the work, and a refiner specialized for the final denoising detail like skin texture. This node implements that split. It samples with the base model, then switches to the refiner for the tail end of the schedule, controlled by base_ratio - at the default 0.8, the base handles 80% of the steps and the refiner finishes the last 20%.
Historical footnote worth knowing: the community mostly abandoned the refiner. Once fine-tuned checkpoints (Juggernaut, RealVis and friends) matured, people decided the refiner's quality gain wasn't worth the extra model in VRAM, and today it survives mainly in occasional hi-res workflows. So this node's headline feature is a technique that's since fallen out of fashion - which is part of why it's deprecated. You can still run it base-only in spirit by pointing both model inputs at the base checkpoint, but at that point a plain KSampler is simpler.
The inputs and outputs that matter
It wants both models and both conditioning pairs, plus a latent to sample:
base_model/refiner_model(MODEL) and theirbase_positive/base_negative/refiner_positive/refiner_negative(CONDITIONING) - the two-stage setup. The refiner takes its own conditioning.latent_image(LATENT) - an empty latent for txt2img.base_ratio(default0.8) - the base/refiner split. The one Searge-specific knob here.steps(default30),cfg(default7),sampler_name(defaultdpmpp_2m),scheduler(defaultkarras),denoise(default1) - standard sampling controls. The defaults are sane for SDXL;dpmpp_2monkarrasis the community's long-standing SDXL default.
Output is a LATENT - this node samples, it doesn't decode. Run the result through a VAE decode to get an image.
How to install it
ComfyUI Manager: search SeargeSDXL, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/SeargeDP/SeargeSDXL.git
then restart. Manual installers need python -m pip install opencv-python run once in ComfyUI's Python environment. You'll also want the SDXL base checkpoint (required) and, to use the refiner path at all, the SDXL refiner checkpoint - both are in the README's download list.
Common issues
If you don't have a separate refiner loaded, this node isn't the right tool - its whole reason to exist is the two-stage split. Getting black images out of the VAE decode afterward is an SDXL-in-fp16 problem, not a Searge problem: grab the sdxl-vae-fp16-fix VAE (the README lists it specifically to fix black images) or force fp32 decode. And since it's deprecated, treat it as legacy: it's here for old workflows, and new builds should sample inside the Magic Box pipeline. The pack-wide rule still holds - update Searge after a ComfyUI update, and keep the workflow JSON and nodes on the same version.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| base_model | MODEL | — | |
| base_positive | CONDITIONING | — | |
| base_negative | CONDITIONING | — | |
| refiner_model | MODEL | — | |
| refiner_positive | CONDITIONING | — | |
| refiner_negative | CONDITIONING | — | |
| latent_image | LATENT | — | |
| noise_seed | INT | 00–18446744073709550000 | — |
| steps | INT | 301–1000 | — |
| cfg | FLOAT | 7.00–100 | — |
| sampler_name | COMBO | dpmpp_2m | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduler | COMBO | karras | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| base_ratio | FLOAT | 0.800–1 | — |
| denoise | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | — |