FromDetailer (SDXL/pipe)
Unpack a base+refiner detailer pipe, refiner included
- detailer_pipe
- detailer_pipe
- model
- clip
- vae
- positive
- negative
- bbox_detector
- sam_model_opt
- segm_detector_opt
- detailer_hook
- refiner_model
- refiner_clip
- refiner_positive
- refiner_negative
This is the SDXL-aware sibling of FromDetailerPipe. Where the plain unpacking node only exposes the base model's pieces, FromDetailer (SDXL/pipe) also pulls out the refiner's model, clip, and conditioning - the full set you'd have bundled in with ToDetailerPipeSDXL or BasicPipe -> DetailerPipe (SDXL) for a proper base+refiner detail pass. Per the README, this and its companion nodes "are pipe functions used in Detailer for utilizing the refiner model of SDXL."
How it works
Same unpacking principle as the plain node - nothing transformed, every member handed back as its native type - just with the refiner fields included, and with the original pipe re-emitted alongside them rather than consumed.
The input and outputs
detailer_pipe(DETAILER_PIPE, required) - the SDXL-flavored bundle to unpack. Only input.
Fourteen outputs. First, the pass-through: detailer_pipe - the same bundle you fed in, unchanged, so you don't need a second wire to keep it flowing. Then the base set: model, clip, vae, positive, negative, bbox_detector, sam_model_opt, segm_detector_opt, detailer_hook - identical to what plain FromDetailerPipe gives you. Finally the refiner set: refiner_model, refiner_clip, refiner_positive, refiner_negative.
How to install it
Ships with the Impact Pack. ComfyUI Manager: search ComfyUI Impact Pack, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack
then pip install -r requirements.txt in ComfyUI's Python env (portable: python_embeded\python.exe -m pip ...), restart. No models of its own - you supply the base and refiner checkpoints wherever the pipe was originally built.
Common issues & troubleshooting
refiner_model/refiner_clip/refiner_positive/refiner_negative come out empty or unusable. The source detailer_pipe never had a refiner in it - it was built with the plain ToDetailerPipe or BasicPipe -> DetailerPipe rather than the SDXL variants. Use plain FromDetailerPipe in that case; there's nothing for this node's extra outputs to unpack.
You don't actually need the refiner fields. If you're only ever consuming the base model side, plain FromDetailerPipe gives you the same base outputs with less clutter in your graph. Reach for this node specifically when your pipe genuinely carries a refiner and you need to pull it out - for editing, inspection, or feeding it to a separate refiner-aware sampler.
Wiring got tangled after unpacking. With fourteen outputs on one node, it's easy to grab the wrong one - positive/refiner_positive and clip/refiner_clip sit close together and are easy to cross. Double-check socket names when a detail pass comes out using the wrong model's conditioning.
Just want the pipe passed through without the SDXL refiner fields. That's FromDetailerPipe_v2 - same pass-through convenience, but for a plain (non-refiner) detailer pipe.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| detailer_pipe | DETAILER_PIPE | — |
Outputs (14)
| Name | Type | Description |
|---|---|---|
| detailer_pipe | DETAILER_PIPE | — |
| model | MODEL | — |
| clip | CLIP | — |
| vae | VAE | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| bbox_detector | BBOX_DETECTOR | — |
| sam_model_opt | SAM_MODEL | — |
| segm_detector_opt | SEGM_DETECTOR | — |
| detailer_hook | DETAILER_HOOK | — |
| refiner_model | MODEL | — |
| refiner_clip | CLIP | — |
| refiner_positive | CONDITIONING | — |
| refiner_negative | CONDITIONING | — |