Nodes/Ultimate Face Fix/Ultimate Face Fix (Process)
ComfyUI Node

Ultimate Face Fix (Process)

The other half that puts it all back

By Merserk·Created 2 months ago·Updated 2 months ago· 20
Ultimate Face Fix (Process)
  • extract_image
  • face_fix_context
  • model
  • vae
  • positive
  • negative
  • face_parser
  • sam_model
  • fixed_image
  • original_face_crops
  • processed_face_crops
  • face_mask
  • debug_preview
repair_modecustom
custom_denoise0.40
seed0
steps25
cfg5.5
sampler_nameeuler
schedulerbeta
mask_presetcore_face
sam_refineauto
mask_grow_percent1.5
mask_feather_percent2.5
color_match_strength0.65
blend_modemultiband

Extract pulled the faces out; Process is what repairs them and puts them back. Ultimate Face Fix (Process) is the second half of the split pipeline - it takes the crops (after whatever you did to them in between) plus the face_fix_context from the matching Extract node, runs the generation-model repair on each crop, builds the semantic mask, matches colors, blends, and returns the fixed image.

Think of it as the integrated Ultimate Face Fix node with the detection half surgically removed. Everything downstream of detection lives here: the model/vae/positive/negative inputs for the crop img2img, the sampling controls (repair_mode, custom_denoise, seed, steps, cfg, sampler_name, scheduler), and the compositing controls (face_parser, mask_preset, sam_refine, mask_grow_percent, mask_feather_percent, color_match_strength, blend_mode). Outputs are the same five as the integrated node: fixed_image, original_face_crops, processed_face_crops, face_mask, and debug_preview.

The inputs that matter are the ones you already learned on the integrated node. repair_mode picks the denoise preset - Detail 0.28, Repair 0.42, Reconstruct 0.58, or Custom (the default), which reads custom_denoise (0.4). mask_preset (core_face / portrait_safe / head) only really shines when face_parser is connected. blend_mode: multiband hides seams best, alpha is faster - leave it on multiband unless speed is the problem. And a small but genuinely good detail from the source: each face gets a deterministic derived seed (base seed plus a per-region offset), so a crowd of repaired faces doesn't converge into clones the way chained detailer passes famously do.

The contract with Extract is strict, and the node is vocal about it: face_fix_context must come from the matching Extract node, extract_image must be the same batch in the same order, and every crop must stay square. The source validates all of it and throws a clear error if you've resized or reordered the crops. Uniform scaling or enhancement is fine; dropping a face or changing alignment isn't.

The point of the split is custom enhancement before repair. Upscale the extracted crops, then let Process repair them at that higher resolution and blend back into the original - a genuinely better finishing order than repairing tiny crops and upscaling after. The README frames it exactly that way: "custom face upscaling or enhancement before the normal generation-model repair."

Install is the shared pack setup: ComfyUI Manager → search Ultimate Face Fix → Install, restart, or the manual git clone + pip install -r requirements.txt + python scripts/prepare_models.py --comfy-root ../.. steps from the pack page. If the integrated node already does everything you need, Process is unnecessary ceremony; the moment you want your own upscaler or enhancer in the middle, Extract + Process is the whole game.

Categoryultimate face fix

Inputs (21)

NameTypeDefaultDescription
extract_imageIMAGE
face_fix_contextULTIMATE_FACE_FIX_CONTEXTConnect face_fix_context from the matching Ultimate Face Fix (Extract) node.
modelMODELGeneration model used for crop img2img.
vaeVAE
positiveCONDITIONING
negativeCONDITIONING
repair_modeCOMBOcustom4 options: detail, repair, reconstruct, custom
custom_denoiseFLOAT0.400–1
seedINT00–18446744073709550000
stepsINT251–200
cfgFLOAT5.50–100
sampler_nameCOMBOeuler44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBObeta9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
mask_presetCOMBOcore_face3 options: core_face, portrait_safe, head
sam_refineCOMBOauto3 options: auto, always, off
mask_grow_percentFLOAT1.50–15
mask_feather_percentFLOAT2.50–15
color_match_strengthFLOAT0.650–1
blend_modeCOMBOmultiband2 options: multiband, alpha
face_parseroptFACE_FIX_PARSERConnect Load Face Fix Parser. When omitted, SAM/landmark/geometry fallback masks are used.
sam_modeloptMODELConnect the MODEL output from the supplied SAM 3.1 checkpoint.

Outputs (5)

NameTypeDescription
fixed_imageIMAGE
original_face_cropsIMAGE
processed_face_cropsIMAGE
face_maskMASK
debug_previewIMAGE