FaceRefine Plus and method B: tests and examples
Measured, side-by-side tests of ComfyUI-H3-FaceRefine-Plus and of method B against the official ComfyUI-H3-FaceRefine, on small and medium faces in MiniMax H3 video shots. This repository holds no code: only the test videos and this page.
1. How the tests were run
Every refine of a shot uses the same shot, the same MiniMax H3 prompt, the same reference pictures (face reference, character sheet, keyref) and the same seed (42). Only the refine settings change. All times are real render times on one NVIDIA RTX 5090 with the models already loaded. Each video plays at normal speed, then again at half speed.
| Setting | Official FaceRefine (its example workflow) | FaceRefine Plus (one-shot example workflow) |
|---|---|---|
| Source | VHS Load Video | VHS Load Video FFmpeg, then RTX Video Super Resolution x2 |
| Face crop | H3 Face Track Crop, crop_factor 3.0 | H3 Face Track Crop, crop_factor 2.2 |
| Sampler | er_sde, 8 steps | er_sde, 8 steps |
| Denoise | 0.40 | 0.15 (standard) or 0.30 (strong) |
| Per-frame multiplier | 1.0 at 30 px down to 0.35 at 120 px face height | 1.0 at every size |
| Paste back | H3 Face Stitch (face_only, colour_match 1.0) | H3 Face Stitch Plus (freq_sep) on the 2x base |
| After the paste | nothing | H3 Face Flow Lock, H3 Face Tone Match (lip fix), scale back to the source size |
Note that the official multiplier lowers its own strength on bigger faces: at about 104 px the official refine runs at about 0.4 x 0.47 = 0.19, while Plus runs at its preset value on every frame.
Metrics
- Wobble: frame-to-frame change of the offset between the refined and the original facial features (phase correlation of the high-pass face), as a percentage of the face height. Lower = the face sits still on the head.
- Face sharpness: variance of the Laplacian inside the face box. Higher = more fine detail. The H3 original often scores high because of noise and compression texture, so compare the refines with each other.
- Colour vs original: mean CIELAB shift of the face box vs the original shot (dL lightness, db yellow-blue). Closer to 0 = the face keeps the shot's light and colour.
- Identity: ArcFace (buffalo_l) cosine similarity between the face in the shot and the same character's close-ups in the same clip. Higher = looks more like the character as H3 drew them in close-up.
2. Test 1: small face (mara, 41-62 px)
A wide shot from the example assets of the FaceRefine Plus repo: 107 frames (4.46 s) at 1536x896, face 41-62 px tall. mara is an invented character; nothing here shows a real person.
| mara wide shot (107 f, face 41-62 px) | Wobble | Face sharpness | Colour (dL / db) | Identity vs close-ups | RTX 5090 |
|---|---|---|---|---|---|
| H3 original | - | 3851 | - | 0.23 | - |
| Official FaceRefine | 0.70 % | 1613 | -0.9 / -2.2 | 0.60 | 87 s |
| FaceRefine Plus 0.15 | 0.42 % | 2979 | -0.2 / -0.5 | 0.41 | 256 s |
| FaceRefine Plus 0.30 | 0.45 % | 2948 | -0.2 / -0.5 | 0.68 | 239 s |
Plus keeps the face steadier (-40 % wobble), sharper (1.8x) and in the shot's colours. At the standard
strength it stays close to the face H3 drew, so identity vs the close-ups is lower than with the official refine, which
re-draws more (denoise 0.40). At the strong strength Plus overtakes the official on identity too
(0.68 vs 0.60) and keeps the same wobble, sharpness and colour. Plus takes about three times as long.
3. Refine strength: standard 0.15 vs strong 0.30
FaceRefine Plus has a preset node, H3 FaceRefine Plus Strength, for the sampler denoise. These videos show the whole source frame on top and one row of face zooms: original | official | Plus 0.15 | Plus 0.30. The two Plus versions differ only in the denoise.
| Wobble | Face sharpness | Colour (dL / db) | Identity vs close-ups | RTX 5090 | |
|---|---|---|---|---|---|
| mara, Plus 0.15 | 0.42 % | 2979 | -0.2 / -0.5 | 0.41 | 256 s |
| mara, Plus 0.30 | 0.45 % | 2948 | -0.2 / -0.5 | 0.68 | 239 s |
| Vespa, Plus 0.15 | 0.12 % | 1094 | -0.3 / -0.2 | 0.43 | 210 s |
| Vespa, Plus 0.30 | 0.12 % | 1009 | -0.3 / -0.2 | 0.42 | 208 s |
Doubling the strength does not add detail. On a small face it re-draws the face toward the reference pictures
(identity 0.41 to 0.68). On a medium face the two presets measure almost the same. Use strong when the face
must look more like the character; keep standard when it must stay the face H3 drew.
4. Method B: the same face in normal and refined shots
Method devised by the author of FaceRefine Plus. A refined wide shot can look like a slightly different person from the same character in the clip's close-ups, which H3 rendered straight from the reference. Method B makes the refined face the character's reference from the start:
- Render the clip from the original face reference.
- Run FaceRefine Plus on its wide shot.
- Turn the refined face into a new neutral reference portrait (Qwen Image 2.1 Edit).
- Rebuild the character sheet from it and re-render the clip from scratch: same prompt, same seed, new reference and sheet.
- Cut the new wide shot, make its keyref and run FaceRefine Plus on it again.
The workflows for every step are in the FaceRefine Plus repo.
Measured on the four example characters of the FaceRefine Plus repo (ArcFace cosine vs the close-up shot of the same clip; refined = the wide shot after FaceRefine Plus 0.15):
| Character | A: wide | A: refined | B: wide | B: refined |
|---|---|---|---|---|
| mara | 0.23 | 0.41 | 0.37 | 0.50 |
| teo | 0.45 | 0.57 | 0.57 | 0.76 |
| ines | 0.30 | 0.61 | 0.36 | 0.62 |
| bruno | 0.49 | 0.62 | 0.57 | 0.74 |
| mean | 0.37 | 0.55 | 0.47 | 0.65 |
Method B costs one extra clip render, so use it at the start of a new video, before the other clips: it changes the face a little, so don't switch mid-project. On a music video the same method took the refined face from 0.56 to 0.75.
5. Test 2: medium face (Vespa shot, 92-110 px)
Shot 1 of clip C05 of a music video (frames 0-89, 3.75 s at 1536x896): the singer's face only, 92-110 px tall. Same settings, prompt, five reference pictures and seed for every refine. For method B the whole C05 clip was re-rendered from scratch with a new reference of the singer made from his FaceRefine Plus face, and a character sheet made from it (same graph, prompt and seed), then the same Plus graph ran on the new shot.
| Vespa shot (90 f, face 92-110 px) | Wobble | Face sharpness | Colour (dL / db) | Identity vs close-up | RTX 5090 |
|---|---|---|---|---|---|
| H3 original | - | 1372 | - | 0.40 | - |
| Official FaceRefine | 0.20 % | 481 | -1.1 / -1.8 | 0.44 | 92 s |
| FaceRefine Plus 0.15 | 0.12 % | 1094 | -0.3 / -0.2 | 0.43 | 210 s |
| Method B + FaceRefine Plus | 0.11 % | 1413 | -0.3 / -0.2 | 0.33 (0.67 vs its new reference) | 476 s clip + 232 s |
On this bigger face the official multiplier lowers its strength, so the identity gap of the mara shot disappears (0.44 vs 0.43). The sharpness gap grows: the official result keeps 35 % of the original's face detail, Plus 80 %. Wobble is 40 % lower with Plus, as on mara. Method B is the only version sharper than the original. Its identity vs the old close-up is low by design, because method B gives the singer a new face; against its own new reference it scores 0.67.
6. The first music-video comparison
This was the first comparison, made while FaceRefine Plus was being developed. The tests above use the current settings and the same five reference pictures for every refine.
7. Summary
- Wobble: Plus is about 40 % steadier than the official refine on both faces.
- Detail: Plus keeps 1.8x (small face) to 2.3x (medium face) the face sharpness of the official refine.
- Colour: Plus stays within 0.5 of the shot's colour; the official refine shifts it by up to 2.2 (CIELAB).
- Identity: at
standard 0.15Plus stays with the face H3 drew; atstrong 0.30it beats the official refine on a small face (0.68 vs 0.60). On a medium face the two refines score the same. - Method B gives the best match between refined shots and close-ups (mean 0.65 vs 0.55 on four characters), at the cost of one extra clip render.
- Time: Plus takes about 2.3-2.9x as long as the official refine (RTX upscale, 2x base, Flow Lock and Tone Match).