크라우니 미디어생성도구 (crowny-media) — 사진생성도구 + Seedance 2.0 프로토타입
날짜 2026-07-22 · 경로 /Users/ef/crowny-media · 스펙 SSOT SPEC.md
개요
사용자 지시: "사진생성도구를 만들자. 시댄스(Seedance) 2.0 영상제작 도구 프로토타입 만들기 준비. 제미나이도 좋음, 기본 플랫폼 가리지 않음." → 프로바이더에 묶이지 않는 어댑터 구조로 설계. 어댑터 파일 하나 추가하면 새 프로바이더가 붙는다.
착수 근거 (실측)
| 사실 | 실측 |
|---|---|
기존 crowny-webskin/도구/이미지생성.sh가 Gemini 하드코딩 + webskin 전용 | reallux 재사용 불가 |
Gemini 키 10일째 limit: 0 | 2026-07-22 429 generate_content_free_tier_requests, limit: 0 재실측 |
imagen-4.0-fast | 실측 404 "no longer available to new users" — 기존 기록의 "400 유료플랜 전용"과 다름, 설정.psv 정정 |
| 이 머신 = M2 Max / 32GB / MLX 0.30.6 설치됨 | API 없이 로컬 생성 가능한 하드웨어 |
산출물
/Users/ef/crowny-media/
SPEC.md SEEDANCE-프로토타입.md
크라우니미디어 ← CLI (생성/상태/비용/설치/검증/주입)
한선씨/미디어판정.한선 ← 판정 SSOT (36/36 PASS)
한선씨/지시서검증.한선 ← 스키마 검증 (13/13 PASS)
어댑터/ 8종 + 각 .한선 동반
템플릿/ 3종 + 각 .한선 동반
지시서/reallux.psv ← 실제 상품 16종 (products.json에서 실값)
산출/reallux/RL-*/1.jpg ← 실제 생성된 16장
로그/생성로그.psv
어댑터 8종 (오늘 상태 실측)
| ID | 종류 | 오늘 | 실측 사유 |
|---|---|---|---|
local-render | 이미지 | ✅ 가능 | Chrome headless + sips |
local-mlx | 이미지 | ❌ | mflux 미설치(opt-in, 자동설치 금지) |
gemini-image | 이미지 | ❌ | 429 limit: 0 |
imagen | 이미지 | ❌ | 404 신규 사용자 폐지 |
openai-image | 이미지 | ❌ | 키 없음 |
ideogram | 이미지 | ❌ | 키 없음 |
seedance | 영상 | ❌ | ARK_API_KEY 없음 |
veo | 영상 | ❌ | 키는 있으나 429 |
4상 판정 (한선씨 SSOT)
티=실행 / 옴=폴백 / 타=거부 / 음=예산초과 승인대기. bash는 판정을 재구현하지 않고.toau를 호출한다.Seedance 2.0 프로토타입
- 비동기 3단:
POST {BASE}/contents/generations/tasks→ 폴링GET .../tasks/{id}→video_url다운로드(24시간 만료라 즉시 저장) - 모델
doubao-seedance-2-0-260128, 인증Bearer $ARK_API_KEY, 경로 Volcengine Ark(중국) / BytePlus ModelArk(해외) - ~$0.14~0.16/초 (1080p)
- ⚠ 이 스펙은 공식 문서 렌더 실패로 전량 [3자] 재인용이다. 어댑터에
--검증모드를 넣어 키가 생기면 최소 1건으로 스키마를 실측한 뒤 배치를 돌린다. 실측 전 대량 실행 금지 — 코드·문서에 반복 명시함. - 부수 성과:
veo.sh실호출로 문서 없이 파라미터 제약을 역산 —durationSeconds ∈ {4,6,8},aspectRatio ∈ {16:9, 9:16}(그 외 400)
검증 (게이트 9종)
G1~G8 실측 PASS. G9(주입) FAIL → 메인 세션이 수리 후 재검증 PASS.
메인 세션이 직접 수리한 결함 4건
| 등급 | 내용 | 수리 |
|---|---|---|
| P0 | 주입이 /api/admin/login을 호출하지 않아 업로드·PUT·audit이 전부 401로 실패 → 그걸 "업로드할 이미지 없음"으로 오표시해 진짜 원인을 숨김 | 토큰 발급 + 전 요청에 Bearer, 실패 시 서버 응답 원문 출력 |
| P1 | 어댑터가 exit3(429) 소진 시 폴백하지 않고 죽은 어댑터만 재시도하다 실패 | 어댑터별 재시도 카운터 분리 → 소진 시 다음 어댑터로 폴백 |
| P1 | exit3 소진 실패가 로그에 아예 안 남음(감사 공백) | 재시도소진-exit3 로그 기록 |
| P2 | 폴백으로 무료 어댑터가 성공했는데 로그 비용이 최초 요청 어댑터 단가로 기록 | 실제 성공 어댑터 단가로 기록 |
| (추가) | exit4(영구실패)도 체인을 끊어 imagen 404가 나면 local-render까지 못 감 | exit4도 폴백 |
gemini-image(429×3) → imagen(404) → openai-image(키없음) → ideogram(키없음) → local-mlx(미설치) → local-render 성공(273,841B)주입 종단 실측: 생성 → 주입(인증) → audit 한 흐름에서 RL-101이 연계불가 → 보완필요(R09,R10), EP포함=true로 전환됨을 확인. 테스트 후 전량 원복(images=[], uploads 0건, audit 연계불가:16 복귀).
정직성 / 정책
local-render산출물은 플레이스홀더이지 상품사진이 아니다. 이미지 안에 "AI PLACEHOLDER" 배지를 넣고, IPTC 메타에CROWNY-MEDIA PLACEHOLDER를 심고, 파일 로그에도 표기한다.- Google Merchant Center는 AI 이미지에 IPTC 태그를 요구하고 제거를 금지 → 후처리에서 지우지 않는다.
- 한국 AI기본법(2026-01-22 시행) 제31조 투명성 의무 — 계도기간 중이나 표시를 기본값으로.
- 네이버쇼핑의 AI 이미지 정책은 확인되지 않았다(unknown). 생성 이미지를 상품 대표컷으로 EP에 올리는 것은 검수 리스크가 있다.
잔여 / 다음
- 실사 상품사진이 없다 — reallux 16종은 여전히
연계불가. 플레이스홀더로는 네이버 검수를 통과할 수 없다. 실촬영본 또는 유료 생성이 필요. - 오늘 유료 생성 경로가 0개 — Gemini billing 활성화 또는 다른 프로바이더 키가 있어야 실사 생성 가능.
설치 mlx하면 API 없이 무제한 로컬 생성 가능(FLUX.1-schnell 4bit, M2 Max). 수 GB 다운로드라 명시적 승인 필요로 설계됨 — 아직 미실행.- Seedance 스키마는 키가 생긴 뒤
크라우니미디어 검증 seedance로 실측 후 배치. local-mlx.sh생성 경로는 작성됐으나 미검증(mflux 미설치).
관련 파일
- CLI:
/Users/ef/crowny-media/크라우니미디어 - 판정 SSOT:
/Users/ef/crowny-media/한선씨/미디어판정.한선 - Seedance:
/Users/ef/crowny-media/어댑터/seedance.sh,SEEDANCE-프로토타입.md - reallux 연동:
크라우니미디어 주입 reallux [슬러그]