# FaceDetailer 재렌더 해상도 A/B — 미디엄샷 얼굴 완성도 (t_c6a9f7154325)

CEO verbatim 2026-09-04: *"클로즈업은 이쁜데 미디엄샷에서 얼굴이 완성도가 떨어진다니까. max_size 1536 상향시걸로 비교해보자"*

## 볼 것 = `face-crop-ABC.png` (얼굴 2배 확대 · 좌→우 A/B/C)
전체본 = `full-A-1024.png` · `full-B-1536.png` · `full-C-1536-guide768.png` (910×1600)

## ★결론 먼저 — `max_size` 만 올리면 1536 은 **안 쓰인다**
| 안 | 설정 | 재렌더 | 화소 | 디테일러 비용(격리) |
|---|---|---|---|---|
| **A 현행** | max 1024 · guide 512 | 787×1024 | 0.81 MP | **1.86 s** |
| **B** | max **1536** · guide 512 | 1022×1330 | 1.36 MP | 2.70 s (**+45%**) |
| **C** | max **1536** · guide **768** | 1181×1536 | 1.81 MP | 2.87 s (**+54%**) |

**B 는 1536 에 안 붙는다.** 자연 배율이 `guide_size 512 / bbox 짧은변 256.3 = 1.998` 이라 목표가 1330 이고
1536 은 그 위라 캡으로 작동하지 않는다 — 즉 이 구도에선 **1330 이상 아무 값이나 같은 결과**다
(1528 로 재확인 · 잡 #299634). 발주 DoD2 의 *"1536 판이 1536 에 붙는지"* 는 B 설정에선 **원리적으로 성립 불가**.

★**캡이 걸리는 조건은 얼굴 「크기」가 아니라 「종횡비」다.** 캡에 걸렸을 때 재렌더 크기는
`guide_size × crop_factor × max(bbox)/min(bbox)` 이고 **얼굴 크기와 무관**하다. 기본 조합(512×2)에서
실효 상한 = `1024 × 종횡비` ⇒ 1024 는 종횡비 > 1.0 이면 **항상** 걸리고(얼굴은 늘 세로가 길다),
1536 은 **종횡비 > 1.5 일 때만** 걸린다. 이 얼굴의 종횡비는 1.30 이다.

⇒ **1536 의 여유를 실제로 쓰려면 `guide_size` 를 같이 올려야 한다**(= C안). C 는 A 대비 화소 **2.24배**로,
발주가 예상한 "2.25배" 와 일치한다.

## 실물 증거 — ComfyUI 로그 (선언이 아니라 실행 로그)
```
A #299630  max 1024 guide 512 : crop (512,666) x1.5381 -> ( 787,1024)  ← ★1024 캡에 붙음
B #299631  max 1536 guide 512 : crop (512,666) x1.9977 -> (1022,1330)  ← 캡 안 걸림(자연배율)
C #299671  max 1536 guide 768 : crop (512,666) x2.3072 -> (1181,1536)  ← ★1536 캡에 붙음
```
셋 다 같은 seed(20260904)·같은 프롬프트·같은 bbox(256.3×333.2) — **재렌더 해상도만 다르다.**

## 비용 (DoD 4)
위 표는 **상류 전부 캐시된 상태에서 디테일러 단계만** 격리 실측한 값이다(같은 구도).
잡 전체(웜 9.06 s) 기준으로 B 는 약 **+10%**, C 는 약 **+11%**.
★전체 wall 로 직접 대조하지 않은 이유 = 같은 seed 의 두 번째 잡은 상류가 **캐시 히트**라
(#299631 = 2.39 s) 그 숫자가 「1536 이 더 싸다」로 읽힌다 — 대조가 뒤집히는 자리다.

## 고주파 수치 (DoD 3) — ★이 지표로는 못 가른다
- 얼굴박스 Δ(A→B) = **+3.92%**
- ★그런데 **디테일러 무접촉 대조군 39개**의 Δ = 평균 **+7.05%** (범위 +1.2~+14.2%) → 신호가 잡음 바닥 **안**.
  최종 webp 재인코딩이 화면 전체의 고주파를 흔든다.
- 파일 내부 정규화(얼굴 ÷ 같은 파일 얼굴 밖)로 그 잡음을 상쇄하면 **−3.45%** — 방향이 뒤집힌다.
  더 큰 해상도로 그린 뒤 원 크기로 되돌리면 에일리어싱이 줄어 **더 매끄러워질 수 있고**, 그게 좋은지는
  수치가 답할 수 없다(라플라시안은 디테일과 과선명을 못 가른다).
⇒ **판정은 육안**이다(발주가 그렇게 지시했다). "잴 수 없었다"까지가 정직한 결론.

## 지금 리포에 착지한 것 / 안 한 것
- ✅ `runner_inputs` 에 `max_size`·`guide_size` **개방**(+`ui_expose: true`) — JSON 수정 없이 잡 제출로 A/B 가 된다.
- ❌ 정본 기본값은 **그대로 1024/512** — 값 확정은 CEO 육안 판정 뒤 별건(발주 구성 절이 그 순서를 못박았다).

## 잡 목록
#299630(A) #299631(B) #299671(C) — seed 20260904 · #299632~#299634·#299669·#299670 = 비용 격리·경계 확인용(seed 20260905)
