Nodes/CRT-Nodes/SEGS Enhancer Multi (CRT)
ComfyUI Node

SEGS Enhancer Multi (CRT)

SEGS Enhancer Multi (CRT)

By PGCRT·Created 2 years ago·Updated a day ago· 132
SEGS Enhancer Multi (CRT)
  • image
  • segs
  • model
  • positive
  • negative
  • vae
  • enhanced_image
  • enhanced_face
  • cropped_face_before
  • enhanced_face_alpha
  • base_face_alpha
sampler_namelcm
schedulersimple
cfg1.0
steps2
denoise1.00
seed1
edit_model_flux2kleinfalse
upscale_megapixel1.5
resize_back_to_originalfalse
multi_face_resolution_strategyoptimal
pre_crop_factor1.00
post_mask_expand10
post_mask_blur12.0
post_mask_taper_borders8
stage1_sigma_factor1.010
stage2_sigma_factor0.990
stage1_sigma_start0.100
stage2_sigma_end1.000
details_amount_stage10.05
details_amount_stage20.10
enable_noise_injectionenable
injection_point0.50
injection_strength0.05
normalize_injected_noiseenable
enhancement_mix1.00
color_match_strength1.00

SEGS Enhancer Multi (CRT) is the composable version of the CRT face detailer. Where Ultralytics Enhancer (CRT) runs its own YOLO detection, this node consumes a SEGS input - you bring the detections, it does the enhancing. That one swap is the whole story, and it's what makes this node more powerful than its sibling: SEGS can describe faces, hands, people, or anything else a detector or mask pipeline found, so this becomes a general "refine every detected region" node rather than a face-only tool.

SEGS is Impact Pack's structured segmentation format - a list of detected regions, each carrying a bounding box, a mask, and confidence. If you've built any Impact Pack graph, you've already got SEGS flowing around (from a BBOX or SAM detector provider, or a SEGM (Ultralytics) node). The KB treats SEGS as the composable backbone of ComfyUI detailing: Detailer (SEGS) is the go-to when you want detection and refinement controlled separately. This node is in that same family - it takes your SEGS, and for every entry it runs the same two-stage, noise-injection-enabled refine-and-composite loop as the face enhancer.

The execution per region is identical to its sibling: crop the region, upscale it to upscale_megapixel (default 1.5) so the refine pass has real budget, run the low-step sampler (defaults: lcm, cfg 1.0, steps 2 - tuned for distilled models), then feather the result back with enhancement_mix and color_match_strength over a masked blend controlled by post_mask_expand, post_mask_blur and post_mask_taper_borders. The full stage1/stage2 sigma and details_amount_* controls are here too, along with the noise-injection block (enable_noise_injection, injection_point, injection_strength, normalize_injected_noise) and edit_model_flux2klein for edit-model reference conditioning.

Inputs that matter: image, segs (from your detector), model, positive, and the sampler quartet - plus upscale_megapixel, resize_back_to_original, enhancement_mix, color_match_strength. Optional negative and vae again. The outputs are the same five as the face version: enhanced_image (use this), enhanced_face, cropped_face_before, and the enhanced_face_alpha / base_face_alpha layers for custom compositing.

The honest difference from the face-only node: garbage in, garbage out. Since detection is upstream, the regions you enhance are exactly what your SEGS source hands you - if your detector emits noise, this node will happily "enhance" noise. That's also its superpower: feed it SEGS for hands, or clothing seams, or product regions, and you've built a general region-detailer without writing a new node. The common trap is double-detecting - if you already ran a face-detailing pass, don't feed those same SEGS back in; the "second pass on an already-fine region" problem the KB flags applies here too.

Install is the pack's: ComfyUI Manager → search "CRT-Nodes", or clone https://github.com/plugcrypt/CRT-Nodes.git into custom_nodes, pip install -r requirements.txt, restart. You'll also want Impact Pack installed (for the SEGS generators) and, if you're doing your own detection with the pack's Ultralytics nodes, a model in models/ultralytics/segm or bbox. Given the December 2024 Ultralytics supply-chain incident documented in the KB, pin your ultralytics install to a post-incident version. If regions come back unchanged or the console complains about a missing SEGS producer, check that your detector's threshold is sane before blaming the enhancer.

CategoryCRT/Sampling

Inputs (32)

NameTypeDefaultDescription
imageIMAGE
segsSEGS
modelMODEL
positiveCONDITIONING
sampler_nameCOMBOlcm44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBOsimple9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
cfgFLOAT1.00–100Classifier Free Guidance scale. Higher values follow the prompt more closely.
stepsINT21–100
denoiseFLOAT1.000–1Amount of denoising to apply. 1.0 = full denoising (txt2img), 0.5-0.8 typical for img2img.
seedINT10–18446744073709550000
edit_model_flux2kleinBOOLEANfalseEnable per-crop reference latent conditioning for edit models like flux2klein
upscale_megapixelFLOAT1.50.1–16Target megapixels used to upscale each crop before enhancement
resize_back_to_originalBOOLEANfalseIf disabled, the whole input is upscaled so refined crops can keep higher detail
multi_face_resolution_strategyCOMBOoptimalUsed only when resize_back_to_original is False to decide global upscale for multi-face inputs
pre_crop_factorFLOAT1.000.1–1Tightens each SEGS crop around its center before enhancement. Lower is tighter.
post_mask_expandINT10-64–64
post_mask_blurFLOAT12.00–64
post_mask_taper_bordersINT80–128Fades the mask edges to black to prevent hard clipping lines
stage1_sigma_factorFLOAT1.0100–100
stage2_sigma_factorFLOAT0.9900–100
stage1_sigma_startFLOAT0.1000–1
stage2_sigma_endFLOAT1.0000–1
details_amount_stage1FLOAT0.05-5–5
details_amount_stage2FLOAT0.10-5–5
enable_noise_injectionCOMBOenableEnable noise injection during sampling
injection_pointFLOAT0.500–1Percentage of steps after which to inject noise
injection_strengthFLOAT0.05-20–20Strength of injected noise
normalize_injected_noiseCOMBOenableNormalize injected noise to match latent statistics
enhancement_mixFLOAT1.000–1Mix between original (0.0) and enhanced (1.0) face. 0.5 = 50/50 blend
color_match_strengthFLOAT1.000–2Strength of color matching between original and enhanced face. 0.0 = disabled, 1.0 = full matching
negativeoptCONDITIONING
vaeoptVAE

Outputs (5)

NameTypeDescription
enhanced_imageIMAGE
enhanced_faceIMAGE
cropped_face_beforeIMAGE
enhanced_face_alphaIMAGE
base_face_alphaIMAGE