# task-853.1 완료 보고서: 순수 AI 이미지 생성 PoC

## SCQA

**S**: task-849.1에서 HTML+Playwright 방식(B안)으로 캐러셀 카드뉴스를 성공했으나, 글자만 있는 이미지의 한계가 있어 사진급 광고 이미지를 AI API로 직접 생성하는 PoC가 필요했다.

**C**: GPT Image 1과 Gemini Imagen 두 API를 테스트하려 했으나, GEMINI_API_KEY가 환경에 미설정 상태. GPT Image 1만 테스트 가능. 또한 .env.keys 파일의 API 키가 따옴표로 감싸져 있어 파싱 오류가 발생했다.

**Q**: GPT Image 1만으로 Meta 광고용 이미지를 생성할 수 있으며, 한글 텍스트 렌더링은 실전 투입 가능한 수준인가?

**A**: GPT Image 1로 3개 시나리오 모두 성공. 한글 텍스트 3/3 읽힘(시나리오 A에서 "보험대리점"→"보컬대리점" 오타 1건). 이미지 품질은 광고 투입 가능 수준. 평균 생성 시간 21.4초, 비용 $0.042/장. Gemini API 키 확보 후 추가 비교 테스트 권장.

## 생성 결과 상세

### GPT Image 1 (model: gpt-image-1, quality: medium, size: 1024x1024)

**시나리오 A — GA 리크루팅 광고**
- 생성 시간: 18.06초
- 파일 크기: 1,572,508 bytes (1.5MB)
- 비용: $0.042
- 한글 텍스트: "당신의 커리어, 새로운 시작" → 완벽히 읽힘
- 이슈: 하단 부가 텍스트 "보컬대리점 GA RECRUITING" — "보험대리점"이 "보컬대리점"으로 오류
- 광고 완성도: 높음 — 4인 전문 비즈니스 인물, 네이비+골드 배색, 프리미엄 분위기

**시나리오 B — 보험 전문성 브랜딩**
- 생성 시간: 25.47초
- 파일 크기: 1,563,144 bytes (1.5MB)
- 비용: $0.042
- 한글 텍스트: "보험의 모든것" → 읽을 수 있는 수준
- 광고 완성도: 높음 — 한국인 남성 프로페셔널, 서울 오피스 배경, 따뜻한 조명

**시나리오 C — 감성형 전직 유도**
- 생성 시간: 20.81초
- 파일 크기: 1,318,715 bytes (1.3MB)
- 비용: $0.042
- 한글 텍스트: "지금이 기회입니다" → 완벽히 읽힘
- 광고 완성도: 매우 높음 — 좌: 어둡고 스트레스, 우: 밝고 모던한 분할 이미지 정확 구현

### Gemini Imagen
- **스킵**: GEMINI_API_KEY 미설정
- 추후 키 확보 시 동일 스크립트로 테스트 가능 (`--api gemini --scenario A`)

## 비용/속도 요약

- GPT Image 1 medium: $0.042/장 × 3장 = **총 $0.126**
- 평균 생성 시간: **21.4초**
- 평균 파일 크기: **1.48MB**
- Gemini: 테스트 불가 (API 키 미설정)

## 한글 텍스트 렌더링 평가

- 메인 텍스트 (큰 글씨): 3/3 읽힘 — GPT Image 1의 한글 렌더링은 실전 투입 가능
- 보조 텍스트 (작은 글씨): 1건 오류 ("보험대리점" → "보컬대리점") — AI가 한글 세부 글자를 혼동
- 결론: **프롬프트에 한글 텍스트를 간결하게 지정하면 높은 정확도, 복잡한 한글은 오류 가능성 존재**

## 발견 이슈 및 해결

### 자체 해결 (2건)
1. **.env.keys 따옴표 파싱 오류** — `load_env_keys()`에 `v.strip("\"'")` 추가하여 따옴표 자동 제거
   - 수정: `generate_ai_image.py:64`
2. **Gemini API 키 부재** — 작업 지시에 따라 스킵 처리, 결과에 error 필드로 기록

### 범위 외 미해결 (1건)
1. **Gemini API 비교 테스트 미수행** — 범위 외 사유: GEMINI_API_KEY 미설정. 키 확보 후 `--api gemini` 옵션으로 즉시 테스트 가능

## 산출물

### 생성/수정 파일 목록
- `/home/jay/workspace/tools/ai-image-gen/generate_ai_image.py` — CLI 스크립트 (신규)
- `/home/jay/workspace/tools/ai-image-gen/output/gpt_A_medium.png` — 시나리오 A 이미지
- `/home/jay/workspace/tools/ai-image-gen/output/gpt_B_medium.png` — 시나리오 B 이미지
- `/home/jay/workspace/tools/ai-image-gen/output/gpt_C_medium.png` — 시나리오 C 이미지
- `/home/jay/workspace/tools/ai-image-gen/output/results.json` — 메타데이터

### 검증 결과
- pyright: 0 errors, 0 warnings
- black/isort: 통과
- --help: 정상 작동
- 이미지 생성: 3/3 성공 (GPT), 0/3 스킵 (Gemini: 키 미설정)

## 성공 기준 달성 여부

1. 최소 2개 API에서 이미지 생성 성공 → **부분 달성** (GPT 1개만 테스트, Gemini 키 부재)
2. 한글 텍스트가 읽을 수 있는 수준인지 확인 → **달성** (3/3 읽힘, 1건 세부 오타)
3. 광고로 쓸 수 있는 퀄리티인지 평가 → **달성** (3개 모두 실전 투입 가능 수준)
4. 비용/속도 비교 데이터 수집 → **부분 달성** (GPT 데이터만 수집, Gemini 비교 불가)

## QC 자동 검증

- **overall**: WARN (Gate PASS)
- **8 PASS, 4 SKIP, 2 WARN, 0 FAIL**
- pyright_check: WARN — 테스트 파일의 로컬 import 미해결 (실행에는 문제없음)
- two_pass_audit: WARN — INFO 수준 findings (Magic Numbers, Test Gaps)
- tdd_check: PASS — 테스트 파일 존재 확인
- style_check: PASS (black/isort OK)
- Health Score: 82/100
- .done 파일 자동 생성 완료
