pipeKSamplerSDXL v1 (Legacy)
The legacy SDXL sampler that runs base and refiner in one node
- sdxl_pipe
- optional_model
- optional_positive
- optional_negative
- optional_vae
- optional_refiner_model
- optional_refiner_positive
- optional_refiner_negative
- optional_refiner_vae
- optional_latent
- optional_clip
- sdxl_pipe
- model
- positive
- negative
- vae
- refiner_model
- refiner_positive
- refiner_negative
- refiner_vae
- latent
- clip
- image
- seed
SDXL workflows in the old days came with a second model bolted on: the refiner. You'd run most of your steps through the base model, then hand the latent to a refiner model for the final stretch to sharpen fine detail. ComfyUI's default way to do this was a chain of nodes and a model-switch somewhere in the middle. tinyterra's pipeKSamplerSDXL (ttN pipeKSamplerSDXL, v1, Legacy) was the compact answer: a single sampler that took an SDXL pipe, ran base and refiner, and gave you both pipes back.
It's legacy now, superseded by the v2 SDXL sampler in the pack. It still loads and runs in old workflows - that's the deal legacy nodes make - but if you're wiring something new, the v2 (and honestly, the modern habit of just skipping the refiner entirely, since base-model quality got good enough that most people dropped it) are where you want to be.
How it works
Input: sdxl_pipe (the SDXL pipe from pipeLoaderSDXL). Outputs: sdxl_pipe plus the whole breakdown - model, positive, negative, vae, refiner_model, refiner_positive, refiner_negative, refiner_vae, latent, clip, image and seed.
The sampling controls:
base_stepsandrefiner_steps- the split is the whole game. Run 20 base steps, thenrefiner_steps(say 5) through the refiner. Setrefiner_stepsto 0 and the refiner is skipped - the common modern configuration.cfg,sampler_name,scheduler- standard knobs.sampler_state- "Sample" or "Hold", to park the sampler without running it.upscale_method,factor,crop- a latent upscale before sampling.image_output/save_prefix- preview or save.
The optional_* inputs are overrides: optional_model, optional_positive, optional_negative, optional_vae, and the refiner trio optional_refiner_model / optional_refiner_positive / optional_refiner_negative / optional_refiner_vae, plus optional_latent and optional_clip. Same idea as the other v1 samplers - connect one to swap that slot for this run.
Install and gotchas
One-time pack install - ComfyUI Manager β search ComfyUI_tinyterraNodes, or git clone https://github.com/TinyTerra/ComfyUI_tinyterraNodes.git into ComfyUI/custom_nodes, then restart. No dependencies or model downloads - the refiner is a checkpoint you load yourself in the loader.
Real-world notes: if the refiner isn't loaded into the pipe, the refiner steps have nothing to run and the node errors - this is the most common failure with this node, and it's why refiner_steps = 0 is a sensible default until you've actually got a refiner. And it's SDXL-only; feeding it a standard pipe type won't work, which is precisely why the pack splits SDXL and regular pipe nodes. Like the rest of the legacy family, don't expect this to stretch to newer architectures - the v2 SDXL nodes cover that ground (up to a point), and past that you're in native-node territory.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| sdxl_pipe | PIPE_LINE_SDXL | β | |
| upscale_method | COMBO | 7 options: None, nearest-exact, bilinear, area, bicubic, lanczos, +1 | |
| factor | FLOAT | 2.000β10 | β |
| crop | COMBO | 2 options: disabled, center | |
| sampler_state | COMBO | 2 options: Sample, Hold | |
| base_steps | INT | 201β10000 | β |
| refiner_steps | INT | 200β10000 | β |
| cfg | FLOAT | 8.000β100 | β |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| image_output | COMBO | 4 options: Hide, Preview, Save, Hide/Save | |
| save_prefix | STRING | ComfyUI | β |
| seedopt | INT | 00β18446744073709550000 | β |
| optional_modelopt | MODEL | β | |
| optional_positiveopt | CONDITIONING | β | |
| optional_negativeopt | CONDITIONING | β | |
| optional_vaeopt | VAE | β | |
| optional_refiner_modelopt | MODEL | β | |
| optional_refiner_positiveopt | CONDITIONING | β | |
| optional_refiner_negativeopt | CONDITIONING | β | |
| optional_refiner_vaeopt | VAE | β | |
| optional_latentopt | LATENT | β | |
| optional_clipopt | CLIP | β |
Outputs (13)
| Name | Type | Description |
|---|---|---|
| sdxl_pipe | PIPE_LINE_SDXL | β |
| model | MODEL | β |
| positive | CONDITIONING | β |
| negative | CONDITIONING | β |
| vae | VAE | β |
| refiner_model | MODEL | β |
| refiner_positive | CONDITIONING | β |
| refiner_negative | CONDITIONING | β |
| refiner_vae | VAE | β |
| latent | LATENT | β |
| clip | CLIP | β |
| image | IMAGE | β |
| seed | INT | β |