From 434d0ca9c03dab7f2c6318d614a69739e98adaa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=84=B1=EA=B2=BD?= Date: Tue, 11 Aug 2026 11:03:04 +0900 Subject: [PATCH] =?UTF-8?q?chore(generator):=20=EC=9D=B4=EB=AF=B8=EC=A7=80?= =?UTF-8?q?=20=EB=AA=A8=EB=8D=B8=EC=9D=84=20flash=20=EB=A1=9C=20=EB=82=AE?= =?UTF-8?q?=EC=B6=94=EA=B3=A0=20=EC=98=A4=EB=94=94=EC=84=B8=EC=9D=B4=20?= =?UTF-8?q?=EC=BA=A1=EC=85=98=20=ED=94=84=EB=A1=AC=ED=94=84=ED=8A=B8=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- generator/animation_greekroman/render.py | 2 +- generator/animation_odyssey/gen.py | 12 ------------ generator/animation_odyssey/render.py | 2 +- 3 files changed, 2 insertions(+), 14 deletions(-) diff --git a/generator/animation_greekroman/render.py b/generator/animation_greekroman/render.py index 3831b88..c6e489c 100644 --- a/generator/animation_greekroman/render.py +++ b/generator/animation_greekroman/render.py @@ -42,7 +42,7 @@ NARR_SIZE = 48 # 나레이션 자막 기본 글자 크 NARR_MIN_SIZE = 30 # 자동 축소 하한(이보다 작아지진 않음) BRAND_TITLE = "썰박스" # 상단 밴드 제목(옆에 '×' + AI O2O 로고 결합) BRAND_LOGO = str(Path(__file__).parent / "fonts" / "brand_logo.png") # 제목 옆 AI O2O 로고(흰배경·검정) -IMG_MODEL = "gemini-3-pro-image" # 최상위 이미지 모델(인체·화풍 품질 우선). 저렴하게: gemini-3.1-flash-image +IMG_MODEL = "gemini-3.1-flash-image" # 인체·화풍 품질과 비용 절충. 최상위: gemini-3-pro-image, 더 저렴하게: gemini-2.5-flash-image VISION_MODEL = "gemini-2.5-flash" # 실제 사진 내용 분석 + 장면 매칭용 TTS_MODEL = "gemini-2.5-pro-preview-tts" # 최상위 TTS(발음 품질 우선). 저렴하게: gemini-3.1-flash-tts-preview TTS_VOICE = "Puck" diff --git a/generator/animation_odyssey/gen.py b/generator/animation_odyssey/gen.py index f01d4ac..1a81197 100644 --- a/generator/animation_odyssey/gen.py +++ b/generator/animation_odyssey/gen.py @@ -155,18 +155,6 @@ NARR_SYSTEM = """\ - 한국어 나레이션 기준 약 {seconds}초 분량 = {lo}~{hi}자. full_narration 은 반드시 이 글자수 범위로. - 이 범위를 넘기지 마라. 너무 길면 TTS가 빨라져 병맛이 죽고 영상도 길어진다. 간결하게. -[SNS 캡션] (sns_caption 필드 — 유튜브/인스타/틱톡에 그대로 붙여넣을 업로드 설명) -- 아래 '형식'을 지켜라. 이모지를 적극 사용(나레이션과 달리 캡션은 이모지 OK). 줄바꿈으로 구분. -- 형식: - 1) 첫 줄: 후킹 카피 한 줄 (예: "7년 스토킹 당한 오디세우스 썰 풉니다.") - 2) 본문 1~2줄: 오디세이아 썰 ↔ 가게를 잇는 재밌는 소개 (이모지 곁들여) - 3) 셀링 한 줄: 인물이 반할 식으로 가게 핵심 (예: "오디세우스도 반할 OO시장 숨은 맛집 'OOO' 🐟") - 4) 📍 가게명 (위치) ← 가게명/위치 모르면 이 줄 생략 - 5) 🔥 대표 메뉴·포인트 나열 ← 모르면 생략 - 6) 👉 방문 팁 또는 행동유도 한 줄 - 7) 마지막 줄: 해시태그 나열. #오디세이 #오디세우스 를 앞에 두고, 가게·지역·메뉴·병맛 태그 + #shorts #AIO2O 로 끝. -- 가게 정보(이름·위치·메뉴)는 '마케팅 대상' 텍스트에서 뽑아라. 없으면 그 줄은 자연스럽게 빼라(억지로 지어내지 마라). - [출력] - 반드시 지정된 JSON 스키마로만 응답. 설명/사족 금지. - full_narration 은 hook+story+pivot+cta 를 자연스럽게 이어붙인 '읽는 그대로의' 최종 나레이션. diff --git a/generator/animation_odyssey/render.py b/generator/animation_odyssey/render.py index 198f0c8..aa7d40a 100644 --- a/generator/animation_odyssey/render.py +++ b/generator/animation_odyssey/render.py @@ -42,7 +42,7 @@ NARR_SIZE = 48 # 나레이션 자막 기본 글자 크 NARR_MIN_SIZE = 30 # 자동 축소 하한(이보다 작아지진 않음) BRAND_TITLE = "썰박스" # 상단 밴드 제목(옆에 '×' + AI O2O 로고 결합) BRAND_LOGO = str(Path(__file__).parent / "fonts" / "brand_logo.png") # 제목 옆 AI O2O 로고(흰배경·검정) -IMG_MODEL = "gemini-3-pro-image" # 최상위 이미지 모델(인체·화풍 품질 우선). 저렴하게: gemini-3.1-flash-image +IMG_MODEL = "gemini-3.1-flash-image" # 인체·화풍 품질과 비용 절충. 최상위: gemini-3-pro-image, 더 저렴하게: gemini-2.5-flash-image VISION_MODEL = "gemini-2.5-flash" # 실제 사진 내용 분석 + 장면 매칭용 TTS_MODEL = "gemini-2.5-pro-preview-tts" # 최상위 TTS(발음 품질 우선). 저렴하게: gemini-3.1-flash-tts-preview TTS_VOICE = "Puck"