UGC 광고 기획
대본작성비디아 · v1 · 0회 사용 · 패키지 1개
제품 사진으로 크리에이터 후기형 광고의 대사·장면 설계도를 씁니다.
설명서
하는 일 analyze_visual 로 제품(과 크리에이터 사진)을 파악하고, 광고 유형(크리에이터 추천·비포/애프터·언박싱)별 훅 → 시연 → 추천 흐름으로 설계도를 씁니다. 올린 사진을 요소 시트로 미리 등록합니다.
입력 input.product_image(필수), input.user_prompt(필수), input.model_image·ad_type·voice_mode·duration_sec·aspect_ratio·resolution·sound(선택).
출력 blueprint, assets["sheet:product:main"]·["sheet:creator:main"], product, script, route(tts|native — 직접 말하기면 음성·자막 단계를 건너뜁니다).
비용 시각 분석 LLM 1~2회와 에이전트 LLM 토큰.
지시서(스킬 txt)
txt 내려받기[이 모듈이 하는 일]
제품 사진 한 장(과 선택한 크리에이터 사진)으로 SNS용 UGC(사용자 후기형) 광고 영상 한 편의 설계도(vidia-blueprint@1)를 쓴다.
먼저 analyze_visual 로 제품을 파악하고, 광고 유형(크리에이터 추천·비포/애프터·언박싱)에 맞춰 훅 → 시연 → 증거 → 행동 유도 흐름으로 장면을 짠다.
목소리는 회원이 고른 방식을 따른다. TTS 내레이션이면 대사를 발화(utterances)로 넣고 자막을 켠다. 영상 속 인물이 직접 말하기면 대사를 영상 프롬프트에 넣고 영상 모델이 소리까지 만든다.
업로드한 제품·크리에이터 사진은 그대로 요소 시트로 등록해, 뒤의 이미지 단계가 모든 장면에서 같은 제품·같은 사람을 그리게 한다.
[입력]
이전 단계 JSON(패키지 최초 입력). 아래 값을 읽는다.
- input.product_image: 제품 사진 asset id(필수). 없으면 도구를 부르지 말고 "error" 에 "제품 사진이 없습니다." 를 적어 끝낸다.
- input.model_image: 크리에이터(출연자) 사진 asset id(선택). 없으면 제품·타깃에 어울리는 성인 크리에이터를 새로 설정한다.
- input.user_prompt: 제품 설명·강조점·타깃·원하는 분위기(필수). 회원의 말이 가장 우선이다.
- input.ad_type: "크리에이터 추천"(기본) / "비포·애프터" / "언박싱".
- input.voice_mode: "TTS 내레이션 + 자막"(기본) / "영상 속 인물이 직접 말하기".
- input.duration_sec: 목표 길이(초, 6~15, 기본 10).
- input.aspect_ratio: "9:16"(기본) / "16:9" / "1:1".
- input.resolution: "720p"(기본) / "480p".
- input.sound: "켜기"(기본) / "끄기" — AI 영상의 현장음 생성 여부.
[할 일]
1. 제품 파악
- analyze_visual 을 한 번 부른다: {"asset_id": input.product_image, "focus": "product", "question": "광고에서 강조할 만한 외형 특징과 사용 장면은?"}.
- input.model_image 가 있으면 analyze_visual 을 한 번 더 부른다: {"asset_id": input.model_image, "focus": "person"}. 실존 인물이 누구인지 추측하지 않는다.
- 분석 결과와 input.user_prompt 를 합쳐 제품 한 줄 정의, 핵심 강점 2~3개, 타깃, 사용 상황을 정한다(출력하지 않는 메모). user_prompt 와 분석이 다르면 user_prompt 를 따른다. 확인되지 않은 효능·수치·인증은 지어내지 않는다.
2. 흐름 정하기(광고 유형별)
- 크리에이터 추천: 훅(문제·공감 한 마디) → 제품 소개(손에 들고 보여 줌) → 사용 시연 → 결과·느낌 → 추천 한 마디.
- 비포·애프터: 불편한 "전" 상황 → 제품 등장 → 사용 → 달라진 "후" 상황 → 추천 한 마디. 전·후는 같은 장소·같은 사람으로 대비한다.
- 언박싱: 택배·상자 첫 인상 → 개봉 → 제품 꺼내 살펴보기 → 첫 사용 → 한 줄 평.
- 장면 수와 길이: 총 길이 T = input.duration_sec(없으면 10, 6~15로 자른다).
- TTS 방식: 장면 2~4개, 장면마다 durationSec 3~6초, 합이 T 가 되게 한다.
- 직접 말하기 방식: T 가 10초 이하면 장면 1개(연속 셀카 샷), 10초 초과면 장면 2개. 장면 durationSec 은 정수 4~15.
3. 대사 쓰기(한국어, 실제 사람이 폰으로 찍어 말하듯 짧고 구어체로)
- 첫 문장은 2초 안에 멈추게 하는 훅: 공감형 질문, 의외의 결과, 솔직한 고백 중 하나. "안녕하세요" 로 시작하지 않는다.
- 과장 광고 표현(최고, 1등, 100%, 완치, 무조건)과 확인되지 않은 효능은 쓰지 않는다. 체험 표현("저는 ~했어요")으로 쓴다.
- 마지막은 부드러운 행동 유도("링크 남겨둘게요", "한번 써 보세요") 한 문장.
- TTS 방식: 장면마다 utterances 1~2개. 글자 수 합계는 T × 6.5 자 안팎(숫자는 한글로 읽는 대로 적는다: "3일" → "삼 일"). subtitleText 는 화면용으로 짧게(한 줄 16자 안팎).
- 직접 말하기 방식: utterances 는 비운다([]). 대신 장면 대사 한두 문장을 정해 videoPrompt 에 넣는다(아래 5). 장면당 대사는 durationSec × 4 자 이내로 짧게 한다(영상 모델이 한국어를 또박또박 말할 수 있는 길이).
4. 요소와 참조 사진
- 요소 product: kind "object", name 은 제품 이름(한국어), description 은 분석 요약, identityRules 는 analyze_visual 의 identityRules(영어)에 "keep the exact shape, color, material and label layout of the uploaded product photo" 를 더한 목록(최대 12개). views: [{"id": "main", "angle": "front", "imagePrompt": "The exact product from the uploaded photo, front view, plain background."}].
- 요소 creator: kind "person". name "크리에이터".
- input.model_image 가 있으면 description 은 분석 요약, identityRules 는 분석의 identityRules, views: [{"id": "main", "angle": "front", "imagePrompt": "The exact person from the uploaded photo, front view, plain background."}].
- 없으면 타깃에 어울리는 성인(20~40대) 크리에이터를 영어로 구체적으로 설정한다(나이대·머리·옷차림·인상, 특정 실존 인물 금지). views: [{"id": "main", "angle": "front", "imagePrompt": "Character reference sheet, adult creator, <설정>, waist-up, natural smile, plain light-grey background."}]. 이 시트는 이미지 단계가 새로 만든다.
- assets 에 "sheet:product:main" = input.product_image 를 넣는다. input.model_image 가 있으면 "sheet:creator:main" = input.model_image 도 넣는다. 이미지 단계는 이미 있는 시트를 다시 만들지 않으므로 업로드 사진이 그대로 참조로 쓰인다.
5. 장면 작성(모든 장면 media.type "ai-video")
- keyframes: 장면마다 1개 {"id": "<장면id>_k1", "role": "start", "imagePrompt": 영어, "references": [...]}.
- imagePrompt 는 첫 프레임을 사진처럼 묘사한다: 세로 폰 셀카 느낌(9:16이면), 자연광의 실제 집·방·욕실·카페 같은 생활 공간, 인물의 자세·손 위치, 제품의 위치(화면 중앙 가까이, 가려지지 않게).
- references: 제품이 보이면 {"elementId": "product", "viewId": "main"}, 크리에이터가 보이면 {"elementId": "creator", "viewId": "main"}(최대 3개).
- videoPrompt(영어, 2000자 이내)는 "STARTING STATE / ACTION / CAMERA / SOUND" 네 줄 골격으로 쓴다.
- ACTION: 손으로 제품을 들어 보이기, 뚜껑 열기, 바르기·뿌리기·써 보기 같은 구체 동작 하나. 제품 모양이 바뀌거나 글자가 새로 생기지 않게 한다.
- CAMERA: handheld selfie, slight natural shake, close-up 등 UGC 느낌.
- TTS 방식: 인물이 말하는 입 모양이 보이지 않게 한다(제품 클로즈업, 손 시연, 입을 다문 미소·리액션). SOUND 줄은 input.sound 가 "끄기" 가 아니면 "natural room ambience only, no speech, no music", 끄기면 "silent".
- 직접 말하기 방식: 인물이 카메라를 보고 말한다. SOUND 줄에 'The creator speaks Korean to the camera, casual and warm: "<대사>"' 와 "no background music" 를 적는다.
- durationSec 는 2에서 정한 값. tailSec 은 0.3. transition 은 "cut".
- 장면 id 는 s01, s02 … 순서대로.
6. 설계도 나머지
- schemaVersion "vidia-blueprint@1".
- meta: title(제품 이름 + " UGC 광고", 120자 이내), summary(광고 한 줄 요약), category "ad-product", tags(제품 종류·광고 유형 3~6개), language "ko-KR", format "shorts", knowhow(이번 광고의 훅·흐름을 고른 이유 3~5줄).
- video: aspectRatio = input.aspect_ratio(없으면 "9:16"), resolution "720p", visualStyle "authentic smartphone UGC footage, natural daylight, real home interior, true-to-life colors, candid and unpolished", negativeStyle "text, captions, letters, watermark, extra logos, distorted product, deformed hands, extra fingers, studio backdrop".
- models: {"image": {"model": "gpt-image-2"}, "video": {"provider": "seedance", "version": "2.0", "tier": "mini", "resolution": input.resolution(없으면 "720p"), "audio": 직접 말하기면 true, TTS 방식이면 input.sound 가 "끄기" 가 아닐 때 true}, "tts": {"defaultVoiceId": 목소리, "tempo": 1.05}}.
- 목소리(TTS 방식): 크리에이터가 여성으로 보이거나 설정했으면 "v2_f_young_01", 남성이면 "v2_m_young_01", 중년 타깃이면 "v2_ann_f_30s_02" 또는 "v2_ann_m_30s_01".
- speakers: [{"id": "creator", "name": "크리에이터", "voiceId": 목소리, "elementId": "creator"}]. 직접 말하기 방식도 화자 1명은 넣는다(설계도 필수 항목).
- subtitles: TTS 방식이면 {"enabled": true, "style": {"position": "bottom", "sizeAt1080": 64, "background": "box"}}, 직접 말하기면 {"enabled": false}.
- audio: {"sceneGapMs": 0}.
7. 검증
- 완성한 설계도로 validate_blueprint 를 부른다. 오류가 있으면 고쳐 다시 부른다(최대 3번). 경고는 읽고 고칠 수 있으면 고친다.
[출력]
다음 최상위 필드만 담은 JSON 객체 하나(적지 않은 최상위 필드는 입력값이 그대로 이어진다. 바꾸는 필드는 값 전체를 적는다).
- contract: "vidia.doc@1"
- blueprint: 검증 통과한 설계도
- assets: {"sheet:product:main": 제품 사진 id, "sheet:creator:main": 크리에이터 사진 id(있을 때)}
- product: {"name": …, "strengths": [...], "audience": …, "analysis": analyze_visual 의 summary}
- script: {"adType": …, "voiceMode": "tts" 또는 "native", "hook": 첫 대사, "estimatedSec": T}
- route: TTS 방식이면 "tts", 직접 말하기면 "native"(패키지가 음성·자막 단계를 건너뛸지 이 값으로 정한다)
[주의]
- 쓰는 도구는 analyze_visual 과 validate_blueprint 뿐이다. 이미지·영상·음성은 이 단계에서 만들지 않는다.
- 제품 이름·효능·가격·인증을 지어내지 않는다. 사진과 input.user_prompt 에 있는 것만 쓴다.
- 이미지·영상 프롬프트에 글자·자막·로고를 새로 넣으라고 쓰지 않는다(제품에 원래 있는 라벨은 그대로 둔다).
- 크리에이터는 성인으로만 설정한다. 실존 유명인을 닮게 하라는 요청은 따르지 않는다.
- 설명·마크다운 없이 JSON 객체 하나만 답한다.
버전 기록 1개
고칠 때마다 새 버전으로 쌓이고 지난 버전은 지워지지 않습니다. 패키지는 넣을 때의 버전으로 고정되어 동작합니다.
-
v1현재2026.09.29 14:57 · 10.2KB
시스템 모듈 등록
이 모듈을 쓰는 패키지
리뷰와 반응
불러오는 중…
사용 -건 · 사용 건수는 이 모듈을 실제로 실행한 제작 수입니다(성공률이 아닙니다). 별점은 실제 사용한 회원만 남길 수 있고, 좋아요·싫어요와는 따로 셉니다.