SDXL Sampler v2 (Searge)
The base+refiner engine at the heart of Searge SDXL
- base_model
- base_positive
- base_negative
- refiner_model
- refiner_positive
- refiner_negative
- latent_image
- sampler_name
- scheduler
- LATENT
This is where the actual image gets made. SeargeSDXLSampler2 is the pack's combined base-plus-refiner sampler: it takes both SDXL models, both sets of conditioning, and a starting latent, then runs the denoising in two handoffs - most of the steps on the base model, the final stretch on the refiner - and spits out a finished latent. Everything else in the Searge workflow exists to feed this node.
The design reflects when the pack was born. Back in mid-2023, when Searge SDXL first landed, SDXL's headline feature was its two-stage ensemble: a base model for composition and a refiner for fine detail like skin texture. This node bakes that pipeline in so you don't hand-wire two KSamplers and a latent handoff yourself. Its category is Searge/_deprecated_/Sampling, so it's a v2-era engine - kept working for backward compatibility while the current v4.x workflow uses its own internal sampling.
How it works
You give it a base model and a refiner model, each with its own positive and negative conditioning, plus a latent to sample into. It denoises with the base up to a cutoff, then switches to the refiner for the remainder. The base_ratio sets that cutoff - 0.8 means 80% base, 20% refiner. A couple of optional knobs let you tune the transition: how the refiner receives the partially-denoised latent, and how strongly it acts.
One honest note the community learned over time: the refiner earns its keep less than SDXL's launch marketing suggested. Once fine-tuned checkpoints matured, most people set base_ratio to 1.0 (all base) or dropped the refiner entirely. This node fully supports that - it's built for the two-stage flow, but it doesn't force it on you.
The inputs and outputs that matter
Required plumbing: base_model, base_positive, base_negative, refiner_model, refiner_positive, refiner_negative, and latent_image. The knobs you'll actually set:
- steps (20), cfg (7), sampler_name (default
ddim), scheduler (defaultddim_uniform) - standard sampling controls. For SDXL,dpmpp_2m+karrasis the stronger default than the built-inddimpair. - base_ratio (0.8) - the base/refiner split. Push toward 1.0 to lean on the base.
- denoise (1.0) - full for txt2img; lower it for img2img.
- Optional: refiner_prep_steps, noise_offset, refiner_strength - fine control over the refiner handoff. Leave them at defaults unless you're chasing a specific artifact.
Output is a single LATENT - send it to a VAE Decode to get your image.
How to install it
ComfyUI Manager: search SeargeSDXL, install, restart. Manual: python -m pip install opencv-python in ComfyUI's Python env (required), then cd ComfyUI/custom_nodes && git clone https://github.com/SeargeDP/SeargeSDXL.git, restart. Windows portable has an installer script.
This node needs the actual checkpoints in place: SDXL base (~7 GB) and, if you're using the refiner leg, the SDXL refiner (~6 GB), both in ComfyUI/models/checkpoints. Grab the fp16-fix VAE too (ComfyUI/models/vae) - it's the fix for the classic all-black SDXL output.
Where people get burned
- Black images. That's the fp16 VAE bug, not this node. Install the fixed SDXL VAE and select it.
ddimdefaults feeling flat. Switch todpmpp_2m+karras. SDXL is DDPM-style, so Karras is a real fit - don't let flow-matching-era "avoid Karras" advice steer you wrong here.- Forcing the refiner. If results look over-processed, cut base_ratio toward 1.0. The refiner is optional in practice, whatever SDXL's original two-stage pitch said.
Inputs (17)
| 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 | 201–200 | — |
| cfg | FLOAT | 7.00–30 | — |
| sampler_name | SAMPLER_NAME | ddim | — |
| scheduler | SCHEDULER_NAME | ddim_uniform | — |
| base_ratio | FLOAT | 0.800–1 | — |
| denoise | FLOAT | 1.000–1 | — |
| refiner_prep_stepsopt | INT | 00–10 | — |
| noise_offsetopt | INT | 10–1 | — |
| refiner_strengthopt | FLOAT | 1.000.01–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |