☁️BizyAir Restore Face 🌌 ReActor
BizyAir Restore Face 🌌 ReActor — ComfyUI Node Guide
- image
- IMAGE
Quick thing to clear up before anything else, because the category label is misleading: this node lives under BizyAir's "ReActor" section, but it does not swap faces. It restores them. If you've generated a face that came out slightly waxy, blurry, or a little off through an upscale or a low-res pass, this is the cleanup step - same family of tool as ADetailer's "restore faces" checkbox or the standalone GFPGAN/CodeFormer nodes you've probably seen in other packs.
What it does
The node runs a two-stage pipeline that should feel familiar if you've used any face-restoration tool before: first it detects the face location in your image, then it runs a dedicated restoration model over just that region to sharpen and clean it up. It's a post-process pass, not a generation-time technique - compare that to something like InstantID or PuLID, which inject identity during sampling. This runs after the image already exists.
Inputs that matter
- image - the image to restore.
- facedetection - which detector finds the face first:
retinaface_resnet50,retinaface_mobile0.25,YOLOv5l, orYOLOv5n. ResNet50 is the more accurate, heavier RetinaFace variant; mobile0.25 is the lighter one. The YOLOv5 options are a different detector family entirely - swap to one of those if RetinaFace is missing faces at odd angles in your particular image. - model - the actual restoration model:
none,codeformer-v0.1.0.pth,GFPGANv1.4.onnx,GPEN-BFR-2048.onnx, orRestoreFormer_PP.onnx. These are the standard names in this space - CodeFormer and GFPGAN in particular show up everywhere, from A1111's built-in "Restore faces" toggle to Impact Pack's detailer options.nonejust skips restoration and passes the image through, which is handy if you want to keep the detector logic in your graph but toggle restoration off without deleting the node. - visibility - 0 to 1, default 1, step 0.05. This is the blend strength between the restored face and the original - think of it as an opacity slider for the restoration effect. Dial it down if full restoration looks too smoothed-over or "plastic" for your taste.
- codeformer_weight - 0 to 1, default 0.5, step 0.05. Only matters when
modelis set to CodeFormer. This is CodeFormer's own fidelity-vs-quality knob: lower values lean toward the model's generative prior (smoother, more "fixed," less faithful to the original face), higher values lean toward fidelity (closer to the input, less aggressive cleanup). 0.5 is a reasonable middle ground to start from.
Output is a single IMAGE - the restored result, ready to save or feed onward.
How to install it
Standard BizyAir install, no separate steps for this node specifically.
ComfyUI Manager: search "BizyAir," Install, restart ComfyUI.
git clone:
cd ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAir.git
Then set your BizyAir API key on first use - every node in the pack, this one included, needs it before it'll actually execute.
Common issues and when to reach for something else
It won't fix a fundamentally bad face. Restoration models sharpen and denoise what's already there; they can't invent correct anatomy where the base generation went wrong (extra eyes, warped proportions, that kind of thing). For actual regeneration of a broken face, you want a detailer-style workflow that re-samples the face region - this node is for polish, not repair.
Over-restoration looks synthetic. This is the most commonly reported complaint about GFPGAN/CodeFormer-style restoration in general, not specific to BizyAir's implementation: push visibility to 1.0 with an aggressive model and skin can go smooth and doll-like, losing texture and pores. If your results look over-processed, drop visibility first before switching models.
Don't stack this with a face detailer on the same pass. If you're also running something like Impact Pack's FaceDetailer earlier in your graph, running this restoration node afterward on the same face region can fight the detailer's own resampling - pick one or the other for a given face, or run this only on faces the detailer didn't already touch.
API key / credits, same as always. Since the actual detection and restoration models run on BizyAir's servers, a missing or exhausted API key surfaces as an execution failure here rather than a local error you can debug by checking your node graph.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| facedetection | COMBO | 4 options: retinaface_resnet50, retinaface_mobile0.25, YOLOv5l, YOLOv5n | |
| model | COMBO | 5 options: none, codeformer-v0.1.0.pth, GFPGANv1.4.onnx, GPEN-BFR-2048.onnx, RestoreFormer_PP.onnx | |
| visibility | FLOAT | 1.000–1 | — |
| codeformer_weight | FLOAT | 0.500–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |