Nodes/ComfyUI_tinyterraNodes/pipe > detailer_pipe
ComfyUI Node Runs on cloud

pipe > detailer_pipe

Pipe > detailer_pipe

By TinyTerraΒ·Created 3 years agoΒ·Updated 3 months agoΒ· 604
pipe > detailer_pipe
  • pipe
  • bbox_detector
  • sam_model_opt
  • segm_detector_opt
  • detailer_hook
  • detailer_pipe
  • pipe
β—„wildcardβ€”β–Ί

Impact Pack's DETAILER_PIPE is the fat bundle that powers FaceDetailer and the whole detect-crop-resample family: model, clip, vae, conditioning, a wildcard string, a detector, an optional SAM model and a detailer hook, all in one connection. It's what makes Impact Pack's refinement loop work - detect a face, crop it, re-run a sampling pass at proper resolution, paste it back.

But the DETAILER_PIPE isn't a ttN pipe. If you're building your whole pipeline out of tinyterraNodes and you want a FaceDetailer pass at the end, pipe > detailer_pipe (ttN pipe2DETAILER) is the adapter that gets you there.

How it works

You feed it your ttN pipe plus a bbox_detector - the face/YOLO detector that decides what gets cropped and refined. The node pulls the model, clip, vae, positive and negative out of the pipe and assembles the detailer pipe, stuffing your wildcard string into the slot where Impact's wildcard syntax goes (it's a multiline box with a placeholder that says "kept empty, this option will be ignored" - so leave it blank if you don't use wildcards). The original pipe comes out the other side untouched, so the rest of your tinyterra graph keeps working.

The optional inputs are the nice part:

  • sam_model_opt - a SAM model, for when you want segmentation-guided masking instead of just bounding boxes.
  • segm_detector_opt - a segmentation detector (SEGM) alternative to the plain bbox one.
  • detailer_hook - Impact Pack's hook mechanism, letting you inject custom processing before/after the detail pass (a second upscale, a different sampler, whatever).

Wire the detailer_pipe output into FaceDetailer (or any DETAILER_PIPE consumer) and you're done.

The mechanism

Straight from the source, the node builds the tuple by hand:

detailer_pipe = (pipe.get('model'), pipe.get('clip'), pipe.get('vae'),
                 pipe.get('positive'), pipe.get('negative'), wildcard,
                 bbox_detector, segm_detector_opt, sam_model_opt,
                 detailer_hook, None, None, None, None)

So the quality of your detail pass depends on what's in the pipe. Empty positive/negative conditioning in the pipe means an empty detailer, and a missing detector means the node won't even validate.

Install and gotchas

Same pack install as the rest of tinyterraNodes - Manager β†’ search ComfyUI_tinyterraNodes, or clone into ComfyUI/custom_nodes and restart. No extra deps from tinyterra itself.

Real-world gotchas, both from Impact Pack's side of the fence:

  • Impact Pack must be installed. The BBOX_DETECTOR and DETAILER_PIPE types come from Impact, not from tinyterra. Without it, this node can't exist.
  • The detector is the fiddly bit. Since Impact Pack v8.0, the YOLO-based UltralyticsDetectorProvider - the usual source of a bbox_detector - moved into a separately-installed Impact Subpack. So the full chain is: tinyterraNodes (pipe) + Impact Pack (DETAILER_PIPE type) + Impact Subpack (the detector that actually finds the faces). If your detailer silently does nothing, check that the bbox detector is a real loaded provider, not a leftover node from a template.
  • Wildcard syntax matters. If you populate the wildcard box, Impact's {a|b|c} / __wildcard__ rules apply. If you meant to paste a plain prompt, that's not what this box does.
Category🌏 tinyterra/pipe

Inputs (6)

NameTypeDefaultDescription
pipePIPE_LINEβ€”
bbox_detectorBBOX_DETECTORβ€”
wildcardSTRINGβ€”
sam_model_optoptSAM_MODELβ€”
segm_detector_optoptSEGM_DETECTORβ€”
detailer_hookoptDETAILER_HOOKβ€”

Outputs (2)

NameTypeDescription
detailer_pipeDETAILER_PIPEβ€”
pipePIPE_LINEβ€”