Photo — AI 사진 보정
이미지 분석 → 보정 계획 수립 → Photoshop MCP를 통한 비파괴 편집. Adjustment Layer 기반으로 원본을 건드리지 않으며, MAE(Mean Absolute Error) 가드가 과보정을 방지합니다. 인물 배치 평균 92.2점.
Claude Vision
Photoshop MCP
PIL + Camera Raw
MAE < 20
배치 모드
개요
사진 한 장 또는 폴더를 입력하면, Claude Vision이 각 이미지를 분석해 어떤 보정이 필요한지 구체적 계획(밝기/대비/색온도/채도/선명도)을 만들고, Photoshop에 비파괴 편집을 지시합니다. 조정 레이어만 추가되므로 원본 픽셀은 그대로 유지됩니다.
왜 비파괴인가 — 클라이언트가 "이 부분만 좀 덜해달라" 요청했을 때 특정 레이어의 opacity만 조절하면 됨. 처음부터 다시 돌릴 필요 없음.
설치 (Photoshop MCP)
# Adobe UXP 패널 (Photoshop 안에서 실행되는 플러그인)
cd photo
./install.sh # UXP 패널 + Python MCP 서버 설정
# Photoshop 실행 → Plugins → Comad Photo 패널 활성화
# Claude Code에서 MCP 연결 확인
claude mcp list | grep adobe-photoshop
# → adobe-photoshop: ... ✓ Connected
Photoshop은 반드시 실행 중이어야 합니다. UXP 플러그인이 Photoshop 내부에 로드되고, Python MCP 서버가 WebSocket으로 UXP와 통신. 3단 구조 → Photoshop ↔ UXP ↔ Python MCP ↔ Claude.
보정 워크플로우
대화형 (단일 이미지)
You: 이 사진 좀 보정해줘 (파일: portrait.jpg)
Claude:
1. 이미지 분석 (Claude Vision):
- 인물 사진, 실내 인공광
- 노출 약간 부족 (-0.3 EV)
- 화이트밸런스 따뜻함 편향 (tint +8 magenta)
- 피부톤 채도 살짝 낮음
2. 보정 계획:
[1] Levels: input 12-245 (그림자 리프트)
[2] Color Balance: Midtones +3 Cyan, -3 Yellow
[3] Hue/Saturation: Reds +8 saturation, oranges +6
[4] Selective Color (skin): Yellows -5, Reds +2
3. Photoshop MCP 실행 중...
✓ Levels adjustment layer 추가
✓ Color Balance adjustment layer 추가
✓ Hue/Sat adjustment layer 추가
✓ Selective Color adjustment layer 추가
✓ MAE: 14.2 (< 20 threshold)
Total: 4 adjustment layers. 원본 픽셀 무변경.
"이 부분만 되돌리려면 해당 레이어의 opacity를 조절하세요."
동작하는 MCP 도구 (주요)
mcp__adobe-photoshop__add_brightness_contrast_adjustment_layermcp__adobe-photoshop__add_color_balance_adjustment_layermcp__adobe-photoshop__add_black_and_white_adjustment_layermcp__adobe-photoshop__add_vibrance_adjustment_layermcp__adobe-photoshop__apply_gaussian_blurmcp__adobe-photoshop__apply_motion_blurmcp__adobe-photoshop__remove_background(generative)mcp__adobe-photoshop__generate_image(Firefly)mcp__adobe-photoshop__generative_fillmcp__adobe-photoshop__select_sky/select_subject- 레이어 전체 관리 (duplicate/group/rename/visibility)
- 문서 저장 (
save_document_asPSD/JPG/PNG)
MAE 가드
Mean Absolute Error — 원본과 보정본의 픽셀 차이 평균. 20을 넘으면 과보정으로 판단하고 가장 강한 조정 레이어의 opacity를 낮추거나 제거합니다.
MAE 측정 (grayscale 기준):
< 10: 너무 보수적 (거의 변화 없음)
10-20: 자연스러운 보정 (권장)
20-30: 눈에 띄는 차이 (스타일 변경)
> 30: 과보정 (원본 분위기 손상)
실측 결과 (v0.4.0) — 인물 사진 15장 테스트: 평균 92.2점 (최저 86), MAE 평균 14.8. 배치 모드에서도 품질 일관성 확보.
배치 모드
You: ~/Photos/wedding/ 폴더 전체 보정해줘
Claude:
발견: 47 images (JPG)
로딩 후 일괄 분석...
[1/47] IMG_0001.jpg → 기준 톤 샘플 (reference)
[2/47] IMG_0002.jpg → reference 기준 매칭
...
[47/47] IMG_0047.jpg ✓
Batch complete:
성공: 45
MAE 경계 초과: 2 (수동 검토 필요)
저장: ~/Photos/wedding/edited/*.psd
배치 모드의 비밀은 첫 이미지를 reference tone으로 삼아 나머지를 매칭한다는 것. 한 이벤트에서 촬영된 사진들이 같은 톤으로 통일됩니다.
운영 팁
레이어 병합 금지
보정 후 레이어를 합치면 재조정 불가. PSD로 저장하고 필요할 때 JPG로 export만.
CU + AppleScript 금지
Photoshop 제어는 오직 MCP 도구만 사용. AppleScript/System Events로 UI 조작은 비결정적이라 배치 실패 원인 1위.
CU wait 최소 1초
컴퓨터 유즈(CU)로 Photoshop UI 관찰할 때 wait 1초 미만은 렌더 완료 전이라 false state 잡힘. sleep 1 이상.
관련 파일: photo/, ~/adb-mcp/mcp/ps-mcp.py