YouTube Shorts 시각적 감독 및 이미지 생성 스킬
이 스킬은 에이전트가 Antigravity의 네이티브 generate_image 기능을 사용하여 응집력 있고 시네마틱한 9:16 수직 장면을 생성하도록 안내합니다.
1. 시각적 일관성 프레임워크 (캐릭터 및 세계관 동기화) 👥🌍
쇼츠용 5~20개의 이미지를 생성할 때 스타일이나 캐릭터의 변화(drift)를 피하는 것이 매우 중요합니다. 캐릭터의 얼굴, 옷, 환경이 장면 사이에서 무작위로 바뀌면 영상의 몰입감이 깨집니다.
장면 간 동기화의 3가지 기둥:
-
캐릭터 DNA 청사진:
- 캐릭터가 등장하는 모든 장면에서 동일한 5가지 캐릭터 공식을 그대로 사용합니다.
[이름 + 나이/성별] + [헤어스타일 및 색상] + [얼굴 특징] + [정확한 의상 아이템 및 색상] - 예시:
"마야, 26세 여성 고고학자, 흐트러진 곱슬 검은 머리를 포니테일로 묶음, 주근깨, 올리브색 린넨 사파리 셔츠와 황동 나침반 목걸이를 착용" - "그녀는 ~처럼 보인다" 또는 "그 여자는" 같은 일반적인 용어로 대체하지 마십시오.
- 캐릭터가 등장하는 모든 장면에서 동일한 5가지 캐릭터 공식을 그대로 사용합니다.
-
세계관 및 조명 앵커:
- 모든 장면 프롬프트 앞에 공유 환경 설명을 정의합니다.
[배경] + [주 광원 및 색온도] + [그림자 스타일] + [분위기] - 예시:
"지하 고대 이집트 사암 무덤, 깊은 깜박이는 그림자를 드리우는 따뜻한 호박색 횃불, 떠다니는 황금빛 먼지 입자, 어두운 코발트색 배경."
- 모든 장면 프롬프트 앞에 공유 환경 설명을 정의합니다.
-
시각적 참조 체이닝 (
ImagePaths파라미터) 🔗:- Antigravity의
generate_image도구는 네이티브로ImagePaths(이전 이미지를 시각적 조건 참조로 전달)를 지원합니다. - 워크플로우:
- 장면 1 생성 (마스터 캐릭터와 조명 설정).
scene_1.jpg저장.- 장면 2, 3, 4... 에 대해
generate_image호출 시ImagePaths: ["<path_to_scene_1.jpg>"]전달. - 이렇게 하면 장면 1의 시각적 잠재 특징이 Imagen 3에 직접 전달되어 후속 모든 장면에서 얼굴 형태, 의상 색상, 환경 톤을 고정합니다!
- Antigravity의
2. 사전 검증 및 사용자 승인 🛑
필수 요구 사항 (토큰 낭비 제로):
generate_image 호출을 실행하기 전에:
- 사전 점검 스토리보드 검증기 실행:
.\backend\venv\Scripts\python.exe backend\scripts\storyboard_validator.py --json "path/to/script.json"- 차단 오류가 0개여야 합니다 (예: 금지된 텍스트 토큰 없음, 유효한 9:16 신호, 60초 쇼츠 상한선 이내).
- 검증된 스토리보드 및 아트 스타일을 검증 통계와 함께 사용자에게 제시합니다.
- 명시적인 사용자 승인을 요청합니다:
"스토리보드가 모든 사전 안전 검사를 통과했습니다 (오류 0개, 예상 길이 ~X초). 이 [N]개의 9:16 이미지 생성을 진행할까요, 아니면 먼저 특정 장면이나 스타일 파라미터를 수정하시겠습니까?"
- 사용자가 명시적으로 확인할 때까지 이미지를 생성하지 마십시오.
3. Antigravity generate_image로 이미지 생성
(사용자 승인 후) 스토리보드의 각 장면에 대해:
-
생성 전 중복/캐시 확인 🛑:
- 대상 폴더(
backend/output/<job_id>/)에scene_{X}.jpg또는scene_{X}.png가 이미 존재하고 유효한지(>10KB) 확인합니다. - 이미 존재하는 경우, 사용자가 해당 장면을 명시적으로 재생성/재시도하도록 요청하지 않는 한 재생성을 건너뜁니다 (토큰 낭비 방지).
- 대상 폴더(
-
최종 프롬프트 합성 (고유한 카메라 프레이밍 보장):
[세계관 앵커] + [캐릭터 앵커] + [장면 액션 및 별개의 카메라 각도] + [전체 아트 스타일 템플릿] + [9:16 수직 구성]- 이전 장면과 다른 카메라 샷(예: 와이드 vs 매크로 vs 반응)을 사용하여 시각적으로 동일한 스틸이 생성되지 않도록 합니다.
-
도구 호출: 다음 파라미터로
generate_image를 호출합니다:AspectRatio:"9:16"ImageName:scene_1,scene_2,scene_3등 (장면별로 엄격하게 고유해야 함).Prompt: 합성된 프롬프트.ImagePaths: 장면 2..N의 경우 시각적 컨디셔닝을 위해["<path_to_scene_1.jpg>"]를 전달합니다.
-
배치 생성: 장면을 순차적으로 또는 장면 그룹별로 생성합니다 (쇼츠당 최대 20개).
4. YTShorts 파이프라인에 에셋 배포
Antigravity가 이미지를 생성한 후:
-
Antigravity는 생성된 이미지를 대화 아티팩트 디렉토리에 저장합니다:
C:\Users\<user>\.gemini\antigravity-ide\brain\<conversation-id>\*.png -
이미지를 YTShorts 출력/작업 디렉토리로 복사하거나 링크합니다:
d:\WorkSpace\YTShorts\backend\output\<job_id>\백엔드에서 요구하는 표준 명명 규칙:scene_1.pngscene_2.pngscene_3.png- ...
-
스토리보드 JSON과 쌍을 이룹니다:
script.json을 같은 디렉토리에 저장합니다:d:\WorkSpace\YTShorts\backend\output\<job_id>\script.json
5. 비디오 렌더링 트리거 🚀
이미지와 script.json이 backend/output/<job_id>/에 준비되면 독립형 어셈블리 도구를 실행합니다:
.\backend\venv\Scripts\python.exe backend\scripts\assemble_short.py --job_dir "backend/output/<job_id>" --voice in_female --caption_style tiktok --music lofi --resolution 1080p --transition dynamic
이 단일 명령은 자동으로:
- 고품질 TTS 내레이션을 합성합니다 (Edge-TTS / KittenTTS).
- Whisper를 통해 단어 수준 동기화 ASS 자막을 생성합니다.
- 광학 전환(
xfade), Ken Burns 팬/줌 모션, 배경 음악(오디오 덕킹 포함), 자막 번인을 한 번에 렌더링하여 최종 1080p/4K.mp4비디오를 생성합니다!
6. 채널 브랜딩 및 커뮤니티 에셋 생성 🎨📊
9:16 수직 스토리 장면 외에도, 시각적 감독은 Antigravity의 네이티브 generate_image 도구를 사용하여 마케팅 에셋을 생산합니다:
-
커뮤니티 탭 이미지 투표 (1:1 정사각형):
- 캐릭터를 1024x1024 정사각형 카드로 생성하거나 중앙을 기준으로 자릅니다.
backend/output/community_poll_assets/에 카드를 저장합니다 (예:poll_1_character.jpg).- 이미지 투표는 새 채널에서 일반 텍스트 게시물보다 3~5배 더 많은 도달률을 생성합니다.
-
채널 아바타 마스코트 (1:1 정사각형):
- 반짝이는 표정의 눈을 가진 중앙 정렬 1024x1024 3D 픽사 캐릭터 초상화를 생성하고, 빛나는 스토리북을 들고 있습니다.
backend/output/channel_branding/channel_avatar_1024x1024.jpg에 저장합니다.
-
파노라마 채널 배너 (16:9 가로):
- 채널의 반복되는 세계를 보여주는 16:9 파노라마 시네마틱 풍경을 생성합니다.
- Lanczos 필터로 2560x1440으로 업스케일합니다.
backend/output/channel_branding/channel_banner_2560x1440.jpg에 저장합니다.
-
외부 API 사용 금지:
- 항상 Antigravity의 네이티브
generate_image도구를 우선시합니다. 검증되지 않은 무료 외부 이미지 API로 대체하지 마십시오.
- 항상 Antigravity의 네이티브