← Sandbox

📸 인물 사진 리터칭 로컬 환경

선거 포스터·프로필용 정면 인물 사진의 피부를 자연스럽게 다듬고, 요청하면 체형도 살짝 보정한다. Photoshop 없이 Claude Code가 Python(OpenCV)으로 처리하고, 원본은 그대로 둔 채 옆에 _retouched 사본을 만든다. 2026-10-22 서울본부장 선거 포스터 사진 작업에서 시작했다.

파이프라인

검출
OpenCV Haar로 얼굴 위치 → 이후 모든 좌표를 얼굴 크기 대비 비율로 정한다
피부
주파수 분리 — 저주파(톤·얼룩)만 가장자리 보존 평활, 고주파(모공·질감)는 유지하고 어두운 잡티만 약화. 눈썹·눈·입술은 마스크에서 제외, 붉은기 10% 완화
전역
아주 약한 S커브 + 출력 샤픈(피부엔 덜) · 색 프로파일(Adobe RGB 등)·해상도 그대로
체형
(요청 시) --waist 허리 높이 중심 국소 가로 압축(기본 5%) · --global 사진 전체 가로 압축(기본 3%, 얼굴도 같이 줄어듦, 양옆은 배경 반사로 채움)
확인
전/후 비교 이미지와 100% 확대를 Claude가 직접 보고, 애매하면 옷 폭을 여러 높이에서 재서 비율로 보고

설계 판단

참고한 커뮤니티 스킬

adobe-retouch-portraits
Adobe for creativity 커넥터(MCP)의 도구를 부르는 스킬 — 커넥터가 없으면 동작하지 않아 설치하지 않음
design-photo-retouching-workflow
NAPP/Kelby식 작업 순서·규칙 문서(실행 도구 아님) — 전역 보정 → 주파수 분리 → 색 → 출력 샤픈, 원본 불변, 과보정 금지, 100% 확인. 이 규칙을 스킬에 그대로 옮겼다

구성

스택
Python 3.9 · opencv-python-headless<5(5에는 얼굴 검출이 빠졌다) · numpy · Pillow
위치
맥 ~/claude-config/skills/portrait-retouch/(SKILL.md + portrait.py) — 이 서버에는 없음
실행
“사진 리터칭해줘”, “체형보정해줘” 같은 말 또는 /portrait-retouch · 하위 명령 retouch / slim / compare
한계
정면 한 명 사진 기준 · 체형 위치는 허벅지까지 나온 전신·반신 기준(상반신만이면 --waist 0)

※ 코드는 맥에 있어 명세만 표시합니다. 인물 사진은 개인 자료라 서버·저장소에 올리지 않습니다. 체형·얼굴 보정은 사진 속 본인의 동의를 전제로 합니다.