Nodes/Comfyui-SynthidBypass/Synthid-Bypass-Facedetailer (Legacy)
ComfyUI Node

Synthid-Bypass-Facedetailer (Legacy)

The same face detailer under its old name — and why that's fine

By timothy692·Created 3 months ago·Updated 3 months ago· 0
Synthid-Bypass-Facedetailer (Legacy)
  • image
  • segs
  • model
  • clip
  • vae
  • positive
  • negative
  • refiner_model_opt
  • refiner_clip_opt
  • refiner_positive_opt
  • refiner_negative_opt
  • scheduler_func_opt
  • segs
  • cnet_images
  • denoise_values
  • denoise_report
guide_size512
guide_size_fortrue
max_size1024
seed0
steps8
cfg1.00
sampler_name
scheduler
denoise0.10
noise_masktrue
force_inpainttrue
refiner_ratio0.20
batch_size1
cycle1
inpaint_modelfalse
noise_mask_feather20
adaptive_denoisefalse
adaptive_modelargest_face
adaptive_ratio0.1000
adaptive_denoise_min0.05
adaptive_denoise_max0.35

If this node is in your list, it's probably because you loaded a workflow that was built before the pack cleaned up its naming. In the current pack it's registered as "Synthid-Bypass-Facedetailer (Legacy)", and here's the mildly anticlimactic truth: it is the exact same node as Synthid-Bypass-Facedetailer. Same class, same inputs, same behavior - the pack just registers the class twice, under a fresh name and this older one, so older workflows and downloaded JSON that reference SEGSDetailerModelSwap keep loading without breaking. If you're building a new graph, use the newer name; if you're reviving an old one, this page is the reassurance that nothing about it changed.

What it does (the mechanics, since you're here)

It's an Impact Pack SEGS detailer that skips the BASIC_PIPE and takes model, clip, vae, positive, and negative directly, so you can re-render detected faces with any loaded checkpoint - that's the "ModelSwap." The loop is the standard one from the Impact Pack playbook: crop each face from the SEGS input, upscale the crop toward guide_size (default 512, capped by max_size at 1024), run a masked sampling pass with the usual steps (8), cfg (1.0), sampler_name, scheduler, seed, and denoise (0.1), then hand you back refined SEGS to composite with SEGSPaste.

The interesting optional bit is adaptive_denoise. Toggle it on and denoise scales with face size instead of staying fixed:

applied_denoise = clamp(base_denoise * (face_ratio / adaptive_ratio), adaptive_denoise_min, adaptive_denoise_max)

adaptive_mode chooses between largest_face (one value from the biggest face, applied to all) and per_face (a value per detected face). adaptive_ratio (default 0.1) is the face share of the frame that maps to your base denoise, and the adaptive_denoise_min/max clamps (0.05/0.35) bound the whole thing. For the Synthid-Bypass workflow this is how the face pass avoids over-cooking a large face or under-treating a tiny one - but it's equally useful in a plain portrait pipeline where you just want the detail pass to behave sensibly across different shots.

Outputs are segs (into SEGSPaste), cnet_images (ControlNet previews), denoise_values (the applied denoise per segment), and denoise_report - a text log with each segment's bbox and exactly what denoise got applied, which is the fastest way to sanity-check the adaptive math.

Installing and troubleshooting

ComfyUI Manager won't auto-install this bundled pack, so do it by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/timothy692/Comfyui-SynthidBypass

then restart ComfyUI. No pip dependencies of its own, but it imports Impact Pack modules at load - ComfyUI-Impact-Pack must be installed and enabled, or the node errors on load. (RES4LYF is optional, only for matching the v2 workflow's sampler/scheduler exactly.) Other things that bite: the node rejects batched images (one image at a time), and if it's missing after restart, look for a nested Comfyui-SynthidBypass/Comfyui-SynthidBypass/ folder.

The one genuinely "legacy" thing about this node is the name. The behavior is current, maintained, and identical to its renamed sibling - so load that old workflow, breathe easy, and don't feel bad about keeping the old node in place.

CategorySynthidBypass

Inputs (33)

NameTypeDefaultDescription
imageIMAGE
segsSEGS
modelMODEL
clipCLIP
vaeVAE
positiveCONDITIONING
negativeCONDITIONING
guide_sizeFLOAT51264–16384
guide_size_forBOOLEANtrue
max_sizeFLOAT102464–16384
seedINT00–18446744073709550000
stepsINT81–10000
cfgFLOAT1.000–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO1 options: normal
denoiseFLOAT0.100.0001–1
noise_maskBOOLEANtrue
force_inpaintBOOLEANtrue
refiner_ratioFLOAT0.200–1
batch_sizeINT11–100
cycleINT11–10
refiner_model_optoptMODEL
refiner_clip_optoptCLIP
refiner_positive_optoptCONDITIONING
refiner_negative_optoptCONDITIONING
inpaint_modeloptBOOLEANfalse
noise_mask_featheroptINT200–100
adaptive_denoiseoptBOOLEANfalse
adaptive_modeoptCOMBOlargest_face2 options: largest_face, per_face
adaptive_ratiooptFLOAT0.10000.0001–1
adaptive_denoise_minoptFLOAT0.050.0001–1
adaptive_denoise_maxoptFLOAT0.350.0001–1
scheduler_func_optoptSCHEDULER_FUNC

Outputs (4)

NameTypeDescription
segsSEGS
cnet_imagesIMAGE
denoise_valuesFLOAT
denoise_reportSTRING