AI 뮤직비디오 제작을 가사 설계부터 최종 출력까지 혼자 처음부터 끝까지 해봤습니다. 촬영장도 배우도 세션 연주자도 없이, 노트북 한 대와 클로드·Suno·Higgsfield 세 가지 도구만으로 3분 54초짜리 펠굿 뮤직비디오를 완성했습니다. 씬은 총 34개, 최종 출력은 1920×1080 h264에 음원 라우드니스는 -14 LUFS로 맞췄습니다.
이 글에서는 AI 뮤직비디오 제작 전 과정을 순서대로 공개합니다. 클로드로 가사와 노래 스타일 프롬프트를 설계하는 단계, Suno로 음원을 뽑고 고르는 단계, 다시 클로드로 34씬 프롬프트 시트를 만드는 단계, Higgsfield MCP와 클로드 코드로 34씬을 자동 생성하는 단계, 마지막으로 합본과 음원 싱크를 맞추는 단계까지 다섯 단계입니다. 그리고 34씬 프롬프트 전문을 글 후반부에 그대로 공개합니다.
이 글에서 제가 가장 값지다고 생각하는 부분은 성공 사례가 아니라 실패 기록입니다. 34씬을 실제로 돌리면서 로그로 확인한 Higgsfield 함정 네 가지가 있습니다. 두 명 이상 등장하는 씬이 전멸하는 문제, 오디오 참조를 넣으면 생성이 즉시 실패하는 문제, 레퍼런스 사진의 배경이 클립 앞부분에 새어나오는 문제, 그리고 실패한 생성에도 크레딧이 빠져나가는 비용 구조입니다. 이 네 가지를 모르고 배치를 돌리면 크레딧과 시간을 그대로 태웁니다. 저는 태웠습니다. 그래서 실패 로그 원문까지 그대로 인용해두겠습니다.
읽는 순서는 이렇습니다.
- STEP 1. 클로드로 가사와 노래 스타일 프롬프트 설계하기
- STEP 2. Suno로 음원을 생성하고 고르기
- STEP 3. 클로드로 34씬 프롬프트 시트 만들기
- STEP 4. Higgsfield MCP와 클로드 코드로 34씬 자동 생성하기, 그리고 실측 함정 네 가지
- STEP 5. 합본과 음원 싱크 맞추기
- 마지막 손질과 세로 숏폼 파생본
- 34씬 프롬프트 세트 전문 공개

STEP 1. 클로드로 가사와 노래 스타일 프롬프트 설계하기
AI 뮤직비디오 제작에서 가장 먼저 정해야 하는 것은 영상이 아니라 곡입니다. 곡이 먼저 있어야 몇 초에 어떤 컷이 들어갈지 계산할 수 있기 때문입니다. 저는 이 단계를 클로드와 함께 진행했습니다.
가사부터 시작합니다. 저는 곡 하나에 붙일 가사를 만들 때 클로드에게 다음 여섯 가지를 먼저 정해달라고 요청합니다. 주제를 한 문장으로 압축한 로그라인, 화자의 시점, 후렴에서 반복될 훅 문구, 절이 진행될수록 화자의 상태가 어떻게 변하는지의 서사 곡선, 관객이 따라 부를 콜앤리스폰스 지점, 그리고 마지막에 남을 아웃트로 장치입니다. 이번 곡의 로그라인은 흐린 아침에 혼자 시작한 사람이 거리를 걸으며 사람들을 하나씩 만나 골든아워의 대합창으로 끝나는 이야기였습니다. 이 로그라인 하나가 나중에 34씬 전체의 순서를 결정하게 됩니다.
콜앤리스폰스 지점과 아웃트로 장치를 가사 단계에서 미리 박아두는 이유는 영상 때문입니다. 저는 후렴에서 관객이 받아치는 문구를 넣고, 브레이크다운 구간에는 짧은 구호를 넣고, 마지막에 다 같이 지르는 한마디와 휘슬 훅을 배치했습니다. 이 네 지점은 나중에 영상에서 크라우드 샷, 원형 구호 샷, 실루엣 마무리 샷으로 그대로 번역됩니다. 가사에 관객 참여 지점이 없으면 영상에도 크라우드를 넣을 근거가 사라집니다.
가사가 정리되면 노래 스타일 프롬프트를 씁니다. 여기서 지정해야 하는 항목이 여섯 개입니다. 이 여섯 개를 비워두면 결과물이 매번 다른 장르로 나와서 고르는 데 시간을 다 씁니다.
| 지정 항목 | 왜 지정해야 하는가 | 이번 곡에서 잡은 값 |
|---|---|---|
| 장르 | 안 쓰면 무난한 팝으로 수렴합니다 | 펑크 기반 펠굿 팝에 소울과 가스펠을 섞은 구성 |
| 무드 | 영상의 색보정 방향이 여기서 결정됩니다 | 흐린 아침에서 골든아워로 밝아지는 상승 곡선 |
| 악기 구성 | 악기별 등장 시점이 곧 씬 분할선이 됩니다 | 어쿠스틱 기타, 핑거스냅, 핸드클랩, 카혼, 슬랩베이스, 월리처, 브라스 섹션, 와우와우 펑크 기타, 신스 키타, 해먼드 B3 오르간, 로즈, 일렉트릭 기타, 탬버린, 가스펠 코러스, 스트링 |
| 템포와 박자 | 컷 길이의 하한선을 결정합니다 | 중상 템포 4분의 4박자, 손박수로 그루브 유지 |
| 보컬 스타일 | 등장 인물 수와 성별 구성이 여기서 나옵니다 | 남성 리드 보컬, 브릿지의 여성 솔로, 후반 갱보컬 콜앤리스폰스 |
| 섹션 구조 | 영상 구조와 1대1로 대응됩니다 | 인트로, 버스1, 프리코러스1, 코러스1, 버스2, 프리코러스2, 코러스2, 브릿지, 기타 솔로, 브레이크다운, 파이널 코러스, 아웃트로 |
이 표에서 가장 중요한 항목은 악기 구성과 섹션 구조입니다. AI 뮤직비디오 제작의 관점에서 보면 악기 목록이 그대로 등장 인물 목록이 됩니다. 카혼을 넣으면 카혼을 치는 버스커가 등장해야 하고, 브라스 섹션을 넣으면 트럼펫과 색소폰을 든 연주자가 화면에 들어와야 합니다. 해먼드 B3 오르간을 넣었기 때문에 오르간을 카트에 실어 밀고 오는 씬이 만들어졌습니다. 곡에 악기를 하나 추가하는 결정이 영상에 등장 인물을 하나 추가하는 결정과 같다는 것을 이 작업에서 확실히 체감했습니다.
섹션 구조를 명시하는 이유도 같습니다. 브릿지에 여성 솔로를 배치하겠다고 곡 단계에서 정해두면, 영상에서도 그 구간만 조명과 톤을 완전히 바꿀 수 있습니다. 실제로 이번 영상의 브릿지 세 씬은 유일하게 해가 진 저녁이고, 유일하게 조용합니다. 그 대비가 이어지는 기타 솔로의 폭발력을 만듭니다.
STEP 2. Suno로 음원을 생성하고 고르기
AI 뮤직비디오 제작에서 음원 단계는 되돌릴 수 없는 결정입니다. 여기서 고른 곡 하나가 이후 34씬의 길이와 순서를 전부 확정하기 때문입니다. 가사와 스타일 프롬프트가 준비되면 Suno에 그대로 입력합니다. 스타일 프롬프트는 위 표의 여섯 항목을 쉼표로 이어 붙인 한 덩어리로 넣고, 가사는 섹션 라벨을 붙여서 넣습니다. 인트로, 버스, 프리코러스, 코러스, 브릿지, 아웃트로처럼 구간 이름을 붙여두면 구조가 훨씬 안정적으로 잡힙니다.
생성은 한 번으로 끝나지 않습니다. 저는 여러 버전을 뽑아놓고 그중 하나를 골랐습니다. 고를 때 본 기준은 네 가지였고, 이 기준은 전부 영상 작업을 염두에 둔 것입니다.
첫째, 섹션 경계가 뚜렷한지를 봤습니다. 나중에 컷을 나눠야 하기 때문에 코러스가 시작되는 지점에서 악기가 확 늘어나는 버전이 훨씬 편합니다. 경계가 흐릿하면 어디서 크레인 업 샷을 넣어야 하는지 판단할 근거가 사라집니다.
둘째, 후반부 빌드가 살아 있는지를 봤습니다. 브레이크다운에서 다시 쌓아올려 파이널 코러스로 터지는 구조가 영상에서 가장 강력한 무기입니다. 이 구간이 밋밋한 버전은 아무리 곡이 좋아도 탈락시켰습니다.
셋째, 보컬 톤이 곡 전체에서 일관된지를 봤습니다. 같은 인물이 부르는 것처럼 들려야 영상에서 한 명의 주인공을 붙일 수 있습니다.
넷째, 인트로와 아웃트로가 잘려 있지 않은지를 확인했습니다. 첫 5초와 마지막 10초는 영상에서 오프닝과 엔딩을 담당하는 가장 중요한 구간인데, 여기가 뭉개진 버전은 쓸 수가 없습니다.
이렇게 고른 음원의 실제 길이는 3분 54.4초, 정확히는 234.44초였습니다. 이 숫자가 이후 모든 계산의 기준선이 됩니다.
음원을 고른 다음 영상으로 넘어가기 전에 반드시 해야 하는 작업이 하나 있습니다. 파형을 보고 섹션 경계 타임코드를 뽑는 일입니다. 인트로가 몇 초에 끝나고 코러스가 몇 초에 시작하는지를 초 단위로 적어둬야 합니다. 저는 이 타임코드 목록을 만들어놓고 다음 단계로 넘어갔습니다. 이 목록이 없으면 34씬의 길이를 정할 수가 없습니다.
STEP 3. 클로드로 34씬 프롬프트 시트 만들기
이제 곡 구조를 영상 구조로 번역합니다. AI 뮤직비디오 제작에서 이 단계가 사실상 설계도를 그리는 작업입니다. 저는 앞서 뽑은 섹션 타임코드와 악기 등장 순서를 클로드에게 주고, 각 섹션을 몇 개의 씬으로 쪼갤지부터 함께 정했습니다.
결과적으로 234초를 34개 씬으로 나눴습니다. 섹션별 배분은 이렇습니다.
| 섹션 | 구간 | 씬 수 | 씬 |
|---|---|---|---|
| 인트로 | 0:00~0:09 | 2 | S1, S2 |
| 버스 1 | 0:09~0:31 | 3 | S3, S4, S5 |
| 프리코러스 1 | 0:31~0:40 | 2 | S6, S7 |
| 코러스 1 | 0:40~1:02 | 3 | S8, S9, S10 |
| 버스 2 | 1:02~1:24 | 3 | S11, S12, S13 |
| 프리코러스 2 | 1:24~1:33 | 2 | S14, S15 |
| 코러스 2 | 1:33~1:55 | 3 | S16, S17, S18 |
| 브릿지 | 1:55~2:17 | 3 | S19, S20, S21 |
| 기타 솔로 | 2:17~2:40 | 3 | S22, S23, S24 |
| 브레이크다운 | 2:40~3:02 | 3 | S25, S26, S27 |
| 파이널 코러스 | 3:02~3:40 | 5 | S28, S29, S30, S31, S32 |
| 아웃트로 | 3:40~3:54 | 2 | S33, S34 |
씬 하나의 길이는 3초에서 10초 사이로 제한했습니다. 하한을 3초로 둔 이유는 그보다 짧으면 생성 모델이 동작을 완성하지 못하고 정지 화면처럼 나오기 때문입니다. 상한을 10초로 둔 이유는 길어질수록 인물의 얼굴이 프롬프트에서 이탈할 확률이 높아지고, 실패했을 때 버리는 크레딧도 그만큼 커지기 때문입니다. 곡에서 가장 긴 씬은 브레이크다운의 S27과 파이널의 S32로 각각 10초입니다. 둘 다 긴장을 쌓아 터뜨리는 구간이라 컷을 끊으면 힘이 빠지기 때문에 예외적으로 길게 뒀습니다.
Global Style을 한 덩어리로 압축하기
34개 프롬프트를 각각 쓰다 보면 톤이 흔들립니다. 어떤 씬은 필름룩이고 어떤 씬은 디지털룩으로 나옵니다. 그래서 저는 모든 씬에 공통으로 들어가는 문구를 하나로 압축해두고 전 씬 프롬프트 끝에 붙였습니다. 실제로 사용한 Global Style 문구는 이것입니다.
Sunny Miami, Art-Deco pastel architecture, palm trees, golden-hour warm light, funky feel-good music video, cinematic 35mm film look, vibrant saturated colors, shallow depth of field, joyful energy.
여기에는 장소, 건축 양식, 시간대, 광질, 장르, 렌즈룩, 채도, 심도, 감정까지 아홉 가지가 들어 있습니다. 이 아홉 개를 매 씬에 반복해서 넣는 것이 톤 통일의 전부입니다. 문구를 줄이거나 순서를 바꾸면 바로 톤이 어긋납니다.
캐릭터 태그 체계와 의상 고정
AI 뮤직비디오 제작에서 가장 자주 무너지는 지점은 인물의 얼굴과 옷이 씬마다 달라지는 문제입니다. 3분 54초 동안 주인공이 다섯 번 다른 사람으로 바뀌면 뮤직비디오 자체가 성립하지 않습니다.
저는 이 문제를 태그 체계로 풀었습니다. 프롬프트 시트에 캐릭터마다 태그를 하나씩 부여하고, 어떤 씬에 누가 나오는지를 태그로 표기했습니다. 이번 작업의 캐릭터는 다섯 명입니다.
| 태그 | 역할 | 등장 씬 |
|---|---|---|
| jin | 남성 메인 보컬, 주인공 | 34씬 중 24씬 |
| angel | 여성 솔로 보컬, 브릿지 담당 | S19, S20, S21, S29, S31 |
| guitarist | 일렉트릭 기타 솔로 | S22, S23, S24, S29, S32 |
| brass | 브라스 섹션, 트럼펫 담당 | S8, S10, S16, S18, S27, S28, S29, S32 |
| chorus | 가스펠 코러스 리드 | S9, S18, S28, S29, S32 |
태그만으로는 부족합니다. 같은 레퍼런스 사진을 넣어도 옷이 씬마다 바뀝니다. 그래서 캐릭터별로 의상 고정 문구를 한 번 정해두고, 해당 캐릭터가 나오는 모든 씬 프롬프트 뒤에 그 문구를 통째로 붙였습니다. 실제로 사용한 의상 고정 문구를 전부 공개합니다.
jin — The young man is a Korean man in his 20s with tousled light-brown hair, wearing a cream short-sleeve t-shirt, beige chino pants, white sneakers and a black smartwatch on his left wrist.
angel — The woman is a Korean woman in her 20s with long wavy caramel-brown hair, wearing a teal-and-orange horizontally striped knit sweater and blue jeans.
guitarist — The electric guitarist is a Korean man with round black glasses and short black hair, wearing a black polo shirt and dark jeans.
brass — The brass player is a Korean man with glasses wearing a cream short-sleeve shirt and white trousers, playing a golden trumpet.
chorus — The chorus singer is a Korean woman with a short black bob wearing a white blouse, leading the clapping backing singers.
이 다섯 문구를 씬 프롬프트에 자동으로 이어 붙이도록 설정 파일에 넣었습니다. 설정 구조는 이렇게 생겼습니다.
{
"title": "Golden Light",
"song": "Golden Light.mp3",
"runtime": 234.44,
"model": "seedance_2_0",
"resolution": "720p",
"aspect_ratio": "16:9",
"headroom": 2,
"use_audio_ref": false,
"characters": {
"jin": { "ref": "_refs/jin.jpg", "lock": "The young man is a Korean man in his 20s with tousled light-brown hair, wearing a cream short-sleeve t-shirt, beige chino pants, white sneakers and a black smartwatch on his left wrist." }
},
"scenes": [
{ "id": "S8", "start": 40, "dur": 7, "refs": ["jin", "brass"], "section": "CHORUS 1", "prompt": "The man throws both hands up on the sidewalk as a brass section steps into frame..." }
],
"in_default": 1.0
}
씬마다 refs 배열에 태그를 적어두면, 실행기가 그 태그에 해당하는 의상 고정 문구를 찾아 프롬프트 끝에 붙입니다. 실제 결합 로직은 한 줄입니다.
locks = " ".join(chars[r]["lock"] for r in s["refs"] if r in chars)
prompt = (s["prompt"] + (" " + locks if locks else "")).strip()
이 방식의 장점은 의상을 바꾸고 싶을 때 설정 파일의 문구 한 줄만 고치면 그 캐릭터가 나오는 모든 씬에 일괄 적용된다는 점입니다. 프롬프트 34개를 일일이 고칠 필요가 없습니다.
STEP 4. AI 뮤직비디오 제작의 실전 구간 — Higgsfield MCP와 클로드 코드로 34씬 자동 생성하기
프롬프트 시트가 완성되면 실제 생성입니다. 여기가 이 글에서 가장 길고 가장 중요한 부분입니다. AI 뮤직비디오 제작의 성패는 사실상 이 단계에서 갈립니다.
34개 씬을 브라우저에서 하나씩 복사해 붙여넣고 결과를 기다렸다가 다운로드하는 방식으로는 현실적으로 끝낼 수 없습니다. 저는 씬당 최소 2분 30초에서 5분 30초가 걸렸는데, 34개를 순차로 돌리면 대기 시간만 두 시간을 넘습니다. 여기에 실패 재시도까지 붙으면 더 길어집니다. 그래서 Higgsfield MCP와 클로드 코드를 붙여서 러너 스크립트를 하나 만들고, 생성과 다운로드와 재시도를 전부 자동화했습니다.
러너가 실제로 만들어내는 명령은 이런 형태입니다.
higgsfield generate create seedance_2_0 \
--prompt "<씬 프롬프트 + 캐릭터 의상 고정 문구>" \
--medias @medias.json \
--duration 9 \
--resolution 720p \
--aspect_ratio 16:9 \
--wait --wait-timeout 25m --json
핵심은 medias 인자입니다. 캐릭터 레퍼런스를 어떻게 전달하느냐가 이 작업의 성패를 갈랐습니다. 그리고 여기서 첫 번째 함정에 걸렸습니다.
러너를 설계할 때 잡아둔 원칙은 세 가지였습니다. 첫째, 재실행이 안전해야 합니다. 저는 결과 파일이 이미 존재하는 씬은 완료로 판정하고 건너뛰게 만들었습니다. 중간에 중단되거나 크레딧이 떨어져도 다시 실행하면 못 만든 씬만 이어서 만듭니다. 둘째, 업로드는 한 번만 해야 합니다. 캐릭터 레퍼런스 다섯 장의 업로드 ID를 캐시 파일에 저장해두고 34씬 내내 재사용했습니다. 같은 사진을 34번 올리면 시간도 낭비고 무엇보다 업로드마다 ID가 달라져서 일관성이 깨집니다. 셋째, 특정 씬만 다시 뽑을 수 있어야 합니다. 결과가 마음에 안 드는 씬은 번호만 지정해서 재생성할 수 있게 했습니다.
python generate_mv.py # 미완성 씬만 생성
python generate_mv.py --only S8,S29 # 특정 씬만
python generate_mv.py --force S12 # 완료분 무시하고 재생성
python assemble_mv.py # 합본 + 음원 싱크 + 라우드니스 정규화
함정 1. image 플래그로는 두 명 이상 등장하는 씬을 만들 수 없습니다
처음에는 캐릭터 레퍼런스를 CLI의 이미지 플래그로 넘겼습니다. 한 명만 나오는 씬은 정상적으로 생성됐습니다. 그런데 두 명 이상 나오는 씬이 전부 실패했습니다. 로그에 남은 오류 원문은 이것입니다.
Error: Value error, ‘medias’ can contain at most one start_image
CLI가 이미지 플래그를 start_image 역할로 자동 매핑하는데, 이 역할은 요청당 하나만 허용됩니다. 그래서 두 명이 나오는 씬은 세 번 재시도하고도 전부 같은 오류로 죽었습니다. 실제 로그입니다.
15:11:34 S10 실패(rc=3): Error: Value error, ‘medias’ can contain at most one start_image
15:17:40 S16 실패(rc=3): Error: Value error, ‘medias’ can contain at most one start_image
15:17:59 S16 최종 실패
이 문제 때문에 코러스와 파이널 구간이 전멸했습니다. 두 명 이상 등장하는 씬이 34개 중 열 개가 넘었기 때문에 사실상 뮤직비디오가 성립하지 않는 상황이었습니다. AI 뮤직비디오 제작에서 합창과 밴드 구간을 포기하는 것은 곡의 절정을 포기하는 것과 같습니다.
해결책은 플래그를 쓰지 않고 medias JSON을 직접 만들어 역할을 image로 지정하는 것입니다. image 역할은 복수가 허용됩니다.
[{"data": {"id": "<upload_id_1>", "url": "<url_1>", "type": "media_input"}, "role": "image"},
{"data": {"id": "<upload_id_2>", "url": "<url_2>", "type": "media_input"}, "role": "image"}]
이 파일을 medias 인자에 파일 참조로 넘기면 됩니다. 이 방식으로 바꾼 뒤에는 캐릭터 다섯 명이 한 프레임에 동시에 등장하는 S29까지 정상적으로 생성됐습니다.
medias = []
for r in s["refs"]:
medias.append({"data": {"id": refup[r]["id"], "url": refup[r]["url"],
"type": "media_input"}, "role": "image"})

함정 2. audio 역할 medias를 넣으면 생성이 즉시 실패합니다
두 번째 함정이 더 까다로웠습니다. 저는 원래 씬별로 곡의 해당 구간을 잘라서 audio 역할로 함께 넣을 계획이었습니다. 그러면 인물의 동작과 립싱크가 실제 곡의 리듬에 맞을 것이라고 기대했습니다. 실제로 초반 몇 씬은 그렇게 넣고도 성공했습니다.
그런데 어느 시점부터 audio를 포함한 요청이 전부 실패하기 시작했습니다. 특징이 아주 뚜렷했습니다. 생성이 5초에서 13초 만에 끝나고 상태만 failed로 돌아옵니다. 오류 메시지가 아예 없습니다. 응답은 이렇게 생겼습니다.
{ “id”: “82c4979b-3763-4276-ab68-bc0596d43c1a”, “status”: “failed”, “display_name”: “Seedance 2.0”, “job_set_type”: “seedance_2_0”, “result_url”: “”, “params”: { “width”: 1280, “height”: 720 } }
메시지가 없으니 프롬프트 문제인지, 길이 문제인지, 레퍼런스 문제인지 알 수 없습니다. 저는 프롬프트를 줄여보고, 길이를 바꿔보고, 레퍼런스를 빼보면서 하나씩 통제했습니다. 그 과정의 로그가 이렇습니다.
15:46:03 S7 결과 없음 (status=failed) / 15:46:17 S7 결과 없음 (status=failed) / 15:46:30 S7 결과 없음 (status=failed) / 15:46:44 S7 결과 없음 (status=failed) / 15:46:52 S7 실패
같은 씬이 네 번 연속 같은 방식으로 죽었습니다. 그리고 동일한 씬에서 audio만 제거하니 한 번에 성공했습니다. 이걸로 원인이 확정됐습니다.
숫자로 대조하면 더 분명합니다. audio를 포함해 돌렸을 때 실패한 씬 13개를 모아서 audio만 제거하고 다시 돌렸습니다. 결과는 13개 전부 첫 시도에 성공, 실패 0건이었습니다.
16:01:06 S7 시도 1 → 16:03:58 S7 완료 3.4MB
16:04:03 S9 시도 1 → 16:08:00 S9 완료 8.0MB
16:46:51 결과: 생성 13 / 캐시 0 / 실패 0 (전체 13)
그래서 오디오 참조는 완전히 포기했습니다. AI 뮤직비디오 제작에서 오디오 참조는 있으면 좋은 기능이지 없으면 안 되는 기능이 아니라는 점을 이 과정에서 확인했습니다. 대신 음악 싱크는 합본 단계에서 씬별 정확 트림으로 확보했습니다. 결과적으로 영상 품질 손실은 없었습니다. 어차피 씬 길이를 곡의 섹션 경계에 맞춰 자를 것이기 때문에, 생성 단계에서 오디오를 참조하지 않아도 최종 결과물의 싱크는 동일하게 맞습니다. 잘라둔 씬별 음원 슬라이스 34개는 나중에 서비스가 바뀌었을 때 재시도하려고 그대로 보관해뒀습니다.
한 가지 덧붙이면, 초반 일부 씬은 audio를 넣고도 성공했다가 이후 전부 실패했습니다. 서비스 쪽 동작이 중간에 바뀐 것으로 보입니다. 그래서 다시 시도할 때는 반드시 씬 하나로 검증한 다음 배치를 돌리는 편이 안전합니다.
함정 3. 레퍼런스 사진의 배경이 클립 첫 1~2초에 새어나옵니다
세 번째는 눈으로 보지 않으면 절대 모르는 문제입니다. 그래서 AI 뮤직비디오 제작에서는 생성이 끝난 뒤 반드시 첫 프레임을 전수 검사하는 절차를 넣어야 합니다. 생성된 클립의 첫 프레임을 전부 뽑아서 확인해보니, 몇몇 씬의 시작 1~2초가 프롬프트에 쓴 장소가 아니라 레퍼런스 사진을 찍은 장소로 나왔습니다.
키타 연주자와 함께 야자수 거리를 걷는 씬은 첫 프레임이 사무실 로비였습니다. 여성 솔로가 저녁 중정에 서는 씬은 첫 프레임이 밝은 카페 내부였습니다. 2초가 지나면 프롬프트대로 정상으로 넘어갑니다. 모델이 레퍼런스 이미지에서 인물만 가져오는 게 아니라 그 사진의 환경까지 초반 프레임에 반영해버리는 현상입니다.

위 이미지의 각 행 맨 왼쪽 프레임이 문제 구간입니다. 첫 행은 사무실 로비, 둘째 행은 카페, 셋째 행은 밝은 실내에서 시작합니다. 그 오른쪽으로 갈수록 프롬프트에 지정한 야자수 거리와 저녁 중정으로 정상 전환되는 것이 보입니다.
해결 방법은 단순합니다. 필요한 길이보다 2초 더 길게 생성하고, 합본 단계에서 앞부분을 잘라내는 것입니다. 저는 이 여유분을 headroom으로 설정에 넣고, 씬마다 잘라낼 인점을 따로 지정했습니다.
기본 인점은 1.0초로 뒀습니다. 블리드가 확인된 씬은 2.0초로 올렸습니다. 반대로 오프닝 동작 자체가 중요한 씬은 0으로 뒀습니다. 첫 씬의 느린 푸시인과 브레이크다운의 웅크렸다 폭발하는 동작은 시작 프레임부터 살려야 하기 때문입니다.
clip_dur = float(probe(src) or 0)
want_in = float(s.get("in", cfg.get("in_default", 1.0)))
in_pt = max(0.0, min(want_in, max(0.0, clip_dur - dur)))
이 계산의 요점은 인점이 여유분을 넘지 않도록 클램프한다는 것입니다. 잘라낸 만큼 길이가 짧아지면 곡의 섹션 경계가 밀리기 때문에, 인점은 반드시 여유분 안에서만 소비되어야 합니다. 이렇게 하면 앞부분을 버려도 최종 씬 길이는 계획한 값 그대로 유지됩니다.
이 문제를 미리 알고 여유분을 2초 확보해둔 것이 이번 작업에서 가장 다행이었던 결정입니다. 여유분 없이 정확한 길이로 뽑았다면 블리드된 씬을 전부 다시 생성해야 했고, 그건 크레딧으로 직결됩니다.
함정 4. 비용 구조와 실패한 생성에도 붙는 과금
네 번째는 돈 문제입니다. 저는 이 부분을 늦게 계산해서 손해를 봤습니다. AI 뮤직비디오 제작은 씬 수가 곧 비용이기 때문에, 해상도를 결정하기 전에 총 생성 초수를 먼저 계산해야 합니다.
해상도에 따른 크레딧 단가가 정확히 두 배 차이입니다. 1080p는 초당 9크레딧, 720p는 초당 4.5크레딧입니다. 34씬을 여유분 2초씩 포함해 계산하면 총 생성 길이가 302초입니다. 1080p로 전부 뽑으면 2,718크레딧, 720p로 뽑으면 1,359크레딧입니다.
| 항목 | 1080p | 720p |
|---|---|---|
| 초당 크레딧 | 9 | 4.5 |
| 302초 전체 생성 | 2,718크레딧 | 1,359크레딧 |
| 재시도 여유 | 없음 | 확보 가능 |
제 잔액이 2,246크레딧이었기 때문에 1080p는 애초에 불가능했습니다. 그래서 720p로 전량 생성하고 합본 단계에서 1920×1080으로 업스케일하는 방식을 택했습니다. 실제 총 사용량은 재시도 포함 약 1,503크레딧이었고 잔액은 743크레딧이 남았습니다. 720p를 고른 덕분에 재시도 여유가 생겼고, 앞서 설명한 함정들을 해결하는 과정에서 그 여유를 전부 썼습니다.
여기서 반드시 알아야 할 사실이 하나 더 있습니다. 실패한 생성에도 소액이 과금됩니다. 함정 2에서 같은 씬을 네 번씩 실패시킨 배치가 여러 번 있었는데, 그 실패분도 전부 크레딧을 소모했습니다. 원인을 모르는 상태로 34씬 배치를 통째로 돌리면 아무 결과물 없이 크레딧만 사라집니다. 그래서 저는 이후 원칙을 하나 세웠습니다. 설정을 바꿀 때마다 씬 하나로 먼저 검증하고, 성공한 다음에 배치를 돌립니다.
동시 실행도 주의할 부분입니다. 저는 처음에 3~4개 샤드로 병렬 실행했는데 실패율이 눈에 띄게 높았습니다. 실패 원인의 대부분은 앞서 설명한 함정 1과 2였지만, 병렬도가 높을 때 실패가 더 몰리는 경향이 있었습니다. 순차 또는 2병렬 정도가 안전합니다.
마지막으로 오디오 자동 생성 옵션이 기본값 참으로 켜져 있습니다. 실제 곡을 쓰는 뮤직비디오에서는 AI가 만든 소리가 섞이므로 주의해야 합니다. 저는 합본 단계에서 영상의 오디오 트랙을 통째로 버리는 방식으로 처리했습니다. 명시적으로 끄는 플래그를 넘기려고 시도했다가 오히려 실패 변수가 늘어났기 때문에, 결국 플래그를 아예 넘기지 않고 합본에서 버리는 쪽이 안전하다는 결론에 도달했습니다.
캐릭터 일관성은 같은 레퍼런스와 같은 문구의 반복으로 만들어집니다
함정 네 가지를 정리한 뒤 남는 결론은 하나입니다. AI 뮤직비디오 제작에서 캐릭터 일관성은 특별한 기능이 아니라 반복으로 만들어집니다.
지킨 규칙은 두 개뿐입니다. 첫째, 같은 캐릭터가 나오는 모든 씬에 같은 레퍼런스 사진을 넣습니다. 업로드 ID를 캐시해서 재사용한 이유가 여기 있습니다. 둘째, 같은 캐릭터가 나오는 모든 씬에 같은 의상 고정 문구를 토씨 하나 바꾸지 않고 넣습니다.
이 두 개만 지켰는데 결과가 상당히 정확했습니다. 주인공의 왼쪽 손목에 찬 검은 스마트워치가 24개 씬 내내 유지됐습니다. 크림색 반팔 티셔츠와 베이지 치노, 흰 스니커즈도 그대로 유지됐습니다. 손목시계처럼 작은 소품까지 문구에 명시해두면 그것까지 따라온다는 것이 이번에 확인한 부분입니다.
한 가지 실무 팁을 덧붙이면, 레퍼런스 사진은 업로드 전에 크기를 정규화해야 합니다. 제가 준비한 사진 중 하나는 원본이 5504×3072에 18.9MB였는데 업로드 한도 때문에 실패했습니다. 가로 1536픽셀로 줄여서 넣었더니 정상적으로 처리됐고, 인물 일관성에는 아무 영향이 없었습니다.
STEP 5. 합본과 음원 싱크 맞추기
34개 클립이 모이면 합본입니다. 이 단계의 목표는 하나입니다. 각 씬의 길이를 곡의 섹션 경계에 정확히 일치시키는 것입니다. AI 뮤직비디오 제작에서 완성도가 갈리는 지점은 화질이 아니라 이 싱크입니다.
합본 스크립트가 하는 일은 순서대로 네 가지입니다. 첫째, 씬마다 인점을 잘라내고 계획한 길이로 정확히 트림합니다. 둘째, 720p 클립을 1920×1080으로 스케일하고 프레임레이트를 통일합니다. 셋째, 34개 세그먼트를 이어 붙입니다. 넷째, 곡을 얹고 라우드니스를 정규화합니다.
트림과 스케일 부분의 실제 코드입니다.
vf = (f"scale={W}:{H}:flags=lanczos:force_original_aspect_ratio=increase,"
f"crop={W}:{H},fps={FPS},setsar=1,"
f"tpad=stop_mode=clone:stop_duration=3")
inputs = (["-ss", f"{in_pt:.3f}"] if in_pt > 0.01 else []) + ["-i", src]
여기서 크롭을 함께 쓰는 이유는 생성된 클립의 가로세로비가 미세하게 다를 수 있기 때문입니다. 비율을 늘려서 채운 뒤 정확한 화면비로 잘라내면 검은 여백 없이 이어 붙습니다. 뒤에 붙인 tpad는 마지막 프레임을 복제해 3초를 늘려두는 장치입니다. 트림 계산이 반 프레임 어긋나도 검은 프레임이 튀어나오지 않게 하는 보험입니다.
음원을 얹는 부분은 이렇습니다.
ff(["-i", silent, "-i", song, "-filter_complex",
f"[1:a]aresample=48000,afade=t=out:st={max(0, song_dur-2.5):.2f}:d=2.5,"
f"loudnorm=I=-14:TP=-1.5:LRA=11[a]",
"-map", "0:v", "-map", "[a]", "-c:v", "copy",
"-c:a", "aac", "-b:a", "256k", "-ar", "48000", "-ac", "2",
"-shortest", "-movflags", "+faststart", out])
라우드니스를 -14 LUFS로 맞춘 이유는 유튜브를 포함한 주요 플랫폼의 정규화 기준이 그 근처이기 때문입니다. 이 값보다 크게 만들면 플랫폼이 알아서 깎으면서 다이내믹이 눌립니다. 실제 측정값은 -14.05 LUFS로 나왔습니다. 트루피크는 -1.5dB로 여유를 뒀습니다.
프레임레이트는 반드시 확인해야 합니다. 생성된 클립이 24fps였기 때문에 합본도 24fps로 맞췄습니다. 여기서 30fps로 올리면 프레임을 복제해 끼워 넣기 때문에 저더가 생깁니다. 소스가 몇 fps인지 확인하지 않고 관성적으로 30fps로 출력하는 것이 가장 흔한 실수입니다.
마지막 씬은 예외 처리를 했습니다. 계획 길이와 무관하게 곡이 끝나는 지점까지 커버하도록 늘리고, 마지막 1.5초에 페이드아웃을 걸었습니다. 곡보다 영상이 먼저 끝나면 검은 화면에 소리만 남는 최악의 마무리가 나옵니다.
첫 합본 결과는 3분 54.5초로 나왔습니다. 음원이 3분 54.4초이니 0.1초 차이입니다. 1920×1080, 24fps, h264에 AAC 48kHz 스테레오, 228MB였습니다.

마지막 손질은 결국 사람 손으로 했습니다
솔직하게 적겠습니다. 자동 합본 결과물이 살짝 아쉬웠습니다.
이유는 명확합니다. 씬 길이의 근거였던 타임코드가 파형을 보고 잡은 근사치였기 때문입니다. 초 단위로는 맞지만 프레임 단위로는 어긋납니다. 특히 기타 솔로와 브레이크다운처럼 연주가 리듬을 주도하는 구간에서 그 어긋남이 귀에 걸렸습니다. 컷이 바뀌는 순간과 악기가 치고 들어오는 순간이 반 박자 정도 밀리면, 이유를 설명할 수 없는데도 뭔가 어색하게 느껴집니다.
그래서 마지막에 필모라를 열었습니다. 합본 파일을 타임라인에 올리고 연주와 음악의 리듬에 맞춰 컷 일부를 다시 손봤습니다. 브라스가 찍고 들어오는 지점에 컷 전환을 정확히 맞추고, 기타 솔로 구간의 컷 길이를 조금씩 조정하고, 브레이크다운의 구호 리듬에 맞춰 컷을 다시 끊었습니다. 그렇게 수정한 뒤 다시 출력한 최종본은 3분 54.4초, 236MB입니다.
한 가지 주의할 점이 있습니다. 편집 도구에서 재출력하면 프레임레이트가 도구의 기본값으로 바뀔 수 있습니다. 제 최종본은 30fps로 나왔습니다. 24fps 소스를 30fps로 재출력한 것이라 이론상 손해지만, 컷 타이밍을 사람 귀에 맞춘 이득이 그보다 컸다고 판단해 그대로 뒀습니다. 프레임레이트를 유지하고 싶다면 출력 설정에서 소스와 같은 값으로 명시해야 합니다.
정리하면 자동화가 90퍼센트를 처리하고 마지막 10퍼센트는 사람이 귀로 채웠습니다. AI 뮤직비디오 제작에서 이 마지막 10퍼센트를 생략하면 결과물이 딱 자동 생성처럼 보입니다. 반대로 이 단계만 붙이면 같은 소재로도 완성도가 확실히 달라집니다.
세로 숏폼 파생본 만들기
AI 뮤직비디오 제작의 마지막 이득은 파생본입니다. 가로 완성본이 나오면 파생본은 거의 공짜입니다. 저는 같은 소스에서 세로 숏폼용 60초 버전과, 가로 그대로 길이만 줄인 짧은 버전을 함께 뽑았습니다.
세로 변환은 화면을 그냥 잘라내면 인물이 프레임 밖으로 나갑니다. 그래서 중앙 영역을 그대로 살리고 위아래는 같은 화면을 크게 확대해 흐리게 깐 구조로 만들었습니다. 크라우드 와이드 샷이 많은 뮤직비디오에서는 이 방식이 인물을 잃지 않는 가장 안전한 선택입니다.

34씬 프롬프트 세트 전문 공개
여기서부터는 실제 AI 뮤직비디오 제작에 사용한 34씬 프롬프트 전문입니다. 각 씬은 타임코드, 길이, 등장 캐릭터 태그, 프롬프트 순서로 적었습니다. 앞서 설명한 Global Style 문구가 각 프롬프트 끝에 압축 반영되어 있고, 캐릭터가 등장하는 씬은 실행기가 의상 고정 문구를 자동으로 덧붙입니다.
콘셉트는 이렇습니다. 주인공이 흐린 아침에 혼자 시작하고, 마이애미 거리를 지나며 사람들이 하나둘 합류하고, 악기별 연주자가 차례로 등장해, 골든아워의 대합창으로 끝납니다.
INTRO — 어쿠스틱 기타와 핑거스냅 (0:00~0:09)
S1 · 0:00~0:05 (5초) · 캐릭터 jin
A young man sits alone on a pastel Miami apartment balcony at dawn, overcast gray morning, gently strumming a muted acoustic guitar, pensive but a faint hopeful smile. Slow push-in on his face. Cinematic 35mm, soft morning light, shallow depth of field.
S2 · 0:05~0:09 (4초) · 캐릭터 jin
Close-up detail of fingers softly snapping to a beat, then camera tilts up to his face lifting as the first ray of sun breaks through the clouds. Warm lens flare, intimate, cinematic 35mm.
VERSE 1 — 어쿠스틱과 핑거스냅에서 핸드클랩과 카혼으로 (0:09~0:31)
S3 · 0:09~0:16 (7초) · 캐릭터 jin
The man steps onto a quiet Ocean Drive sidewalk in gray morning light, hands in pockets, singing softly to himself with a little weight on his shoulders. Tracking dolly beside him, pastel Art-Deco buildings, cinematic.
S4 · 0:16~0:23 (7초) · 캐릭터 jin
Sun bursts through the clouds over pastel Art-Deco facades, golden light sweeps across his face — he perks up, playful grin, starts a light bounce in his step. Low tracking shot, warm lens flare, vibrant Miami morning.
S5 · 0:23~0:31 (8초) · 캐릭터 jin
A Latino street busker starts tapping a cajon drum on a South Beach corner while a bystander claps along; the young man points and grins, catching the rhythm. Handheld, warm morning glow, feel-good energy, cinematic 35mm.
PRE-CHORUS 1 — 슬랩베이스와 월리처 (0:31~0:40)
S6 · 0:31~0:36 (5초) · 캐릭터 jin
Tight shot on white sneakers tapping and shuffling on the sunny sidewalk, then a quick whip-pan up to his cheeky, delighted face. Funky feel-good, vibrant, Miami.
S7 · 0:36~0:40 (4초)
A cool bassist leaning on a pastel classic convertible drops a funky slap-bass line; the crowd energy starts to rise, arms beginning to move. Dolly-in, golden warmth, cinematic. Sunny Miami, Art-Deco pastel architecture, palm trees, golden-hour warm light, funky feel-good music video, cinematic 35mm film look, vibrant saturated colors.
CHORUS 1 — 풀밴드와 브라스 스탭, 가스펠, 탬버린 (0:40~1:02)
S8 · 0:40~0:47 (7초) · 캐릭터 jin, brass
The man throws both hands up on the sidewalk as a brass section steps into frame on the corner hitting punchy trumpet-and-sax stabs, golden sun flares. Crane up, energetic, euphoric, vibrant Miami.
S9 · 0:47~0:54 (7초) · 캐릭터 jin, chorus
A group of joyful Miami locals — roller skaters, a fruit vendor, a couple — throw their hands up together, tambourine shaking, gospel-choir women clapping, while he dances down the middle high-fiving people. Steadicam push, feel-good, cinematic.
S10 · 0:54~1:02 (8초) · 캐릭터 jin, brass
Wide shot of Ocean Drive: he leads a growing crowd, everyone bouncing, brass players marching, palm trees and pastel facades, golden confetti of light. Big crane wide shot, euphoric, cinematic 35mm.
VERSE 2 — 와우와우 펑크 기타와 신스 키타 (1:02~1:24)
S11 · 1:02~1:09 (7초) · 캐릭터 jin
He struts through a Wynwood alley of colorful graffiti murals, playfully knocking on a painted door that swings open to reveal dancers. Tracking shot, saturated street-art colors, cheeky and fun, cinematic.
S12 · 1:09~1:16 (7초)
A funk guitarist plays chicken-scratch wah-wah rhythm on a fire escape stoop; the lead trades a cheeky look and air-guitars back. Low angle, vibrant, funky feel-good, Miami afternoon light, cinematic 35mm, vibrant saturated colors.
S13 · 1:16~1:24 (8초) · 캐릭터 jin
A keytar player in a bright retro outfit roller-skates alongside as he and the growing crew dance up a palm-lined street, hands linking. Side tracking dolly, vibrant, joyful, cinematic 35mm.
PRE-CHORUS 2 — 해먼드 B3 오르간 (1:24~1:33)
S14 · 1:24~1:29 (5초)
Several pairs of feet in a line stomping in rhythm on the wooden boardwalk. Tight low shot, quick whip up, funky, sunny. Miami golden-hour warm light, cinematic 35mm film look, vibrant saturated colors.
S15 · 1:29~1:33 (4초)
A player pushes a rolling Hammond B3 organ on a cart down the street, warm pad swelling; the crowd leans in grinning. Dolly-in, golden warmth, feel-good, Sunny Miami, Art-Deco pastel architecture, palm trees, cinematic 35mm.
CHORUS 2 — 브라스 펀칭과 가스펠 리프트 (1:33~1:55)
S16 · 1:33~1:40 (7초) · 캐릭터 jin, brass
Bigger hands-up moment on the beach boardwalk — real crowd, brass punching, the lead center-frame leading everyone jumping. Crane up wide, euphoric, golden hour, cinematic.
S17 · 1:40~1:47 (7초) · 캐릭터 jin
He runs a gauntlet of outstretched hands — kids, an abuela, a lifeguard, a skater — high-fiving everyone, laughing. Fast tracking shot, playful, vibrant Miami, feel-good.
S18 · 1:47~1:55 (8초) · 캐릭터 jin, brass, chorus
Full band and dancers on South Beach sand, palm trees, a gospel choir in bright robes clapping, tambourines, golden-hour glow. Sweeping crane shot, euphoric, cinematic 35mm.
BRIDGE — 여성 솔로, 로즈와 소프트 베이스, 단일 트럼펫 (1:55~2:17)
S19 · 1:55~2:03 (8초) · 캐릭터 angel
Energy pulls back, dusk falls; warm string lights over a quiet Little Havana courtyard. A woman steps into a soft spotlight, singing tenderly. Slow push-in, intimate, warm bokeh lights, cinematic.
S20 · 2:03~2:10 (7초) · 캐릭터 angel, jin
She walks among seated tired travelers and locals, gently touching shoulders reassuringly; the young man listens from the edge, visibly moved. Slow dolly, warm amber tones, emotional, cinematic.
S21 · 2:10~2:17 (7초) · 캐릭터 angel, jin
A lone trumpeter under a streetlamp holds one warm note; the woman and the young man share a hopeful look as the crowd hums and raises candle-like phone lights. Gentle crane, glowing, cinematic 35mm.
GUITAR SOLO — 일렉트릭 기타 솔로 (2:17~2:40)
S22 · 2:17~2:24 (7초) · 캐릭터 guitarist
Everything lifts — an electric guitarist steps onto the hood of a classic convertible, ripping a soaring solo, shirt and hair catching the wind against a sunset sky. Low hero angle, dramatic, cinematic, vibrant.
S23 · 2:24~2:31 (7초) · 캐릭터 guitarist
The crowd sways and shouts along; fast cuts between the guitarist’s fingers on the fretboard and ecstatic faces. Snap zooms, energetic, golden light, cinematic 35mm, vibrant saturated colors.
S24 · 2:31~2:40 (9초) · 캐릭터 guitarist, jin
The guitarist and the young man rock out back-to-back as the sky glows orange-pink over the Miami skyline, crowd circling and dancing. Orbiting camera, euphoric, cinematic 35mm.
BREAKDOWN — 핸드클랩과 스톰프, 크라우드 구호 (2:40~3:02)
S25 · 2:40~2:46 (6초) · 캐릭터 jin
Music drops to rhythmic claps and stomps — the whole crowd in a tight circle chanting, the young man in the center hyping them up. Handheld, punchy, warm spotlight in the blue dusk, cinematic.
S26 · 2:46~2:52 (6초)
Fast rhythmic montage: stomping feet, clapping hands, sweaty joyful faces, dust kicked up on the boardwalk. Quick cuts, high energy, cinematic 35mm, Miami dusk, vibrant saturated colors.
S27 · 2:52~3:02 (10초) · 캐릭터 jin, brass
Bass creeps back and brass swells; camera slowly rises above the crowd as they crouch low, then explode upward with arms raised. Rising crane, tension building to release, euphoric, cinematic 35mm.
FINALE — 전 악기와 가스펠, 스트링, 키체인지 (3:02~3:40)
S28 · 3:02~3:09 (7초) · 캐릭터 jin, brass, chorus
Explosive hands-up golden-light moment — a massive crowd on Ocean Drive at magic hour, full brass, gospel choir belting, streamers flying, the young man leaping. Huge crane wide shot, golden, euphoric, cinematic 35mm.
S29 · 3:09~3:16 (7초) · 캐릭터 jin, angel, guitarist, brass, chorus
All key performers in one frame — the lead singer, the female singer, the electric guitarist, the brass player, the chorus singer, keytar, bassist, cajon, organ — dancing together in a joyful street parade. Sweeping tracking shot, vibrant, feel-good, golden hour, cinematic 35mm.
S30 · 3:16~3:23 (7초)
Everyone sings into the sky with hands linked, palm trees swaying, string lights glowing; a drone lifts to reveal the whole street packed with people. Drone pull-up reveal, cinematic, golden hour, Sunny Miami, Art-Deco pastel architecture, vibrant saturated colors.
S31 · 3:23~3:30 (7초) · 캐릭터 jin, angel
The female singer and the young man duet the hook face to face, laughing and spinning, as the crowd echoes back in call-and-response. Orbiting camera, radiant, joyful, cinematic.
S32 · 3:30~3:40 (10초) · 캐릭터 jin, brass, guitarist
Peak euphoria — rapid jump cuts of dancing, high-fives, raised brass, confetti, gospel choir, the guitarist soloing, all bathed in golden light. Energetic montage, cinematic 35mm, feel-good.
OUTRO — 브라스가 빠지고 어쿠스틱과 휘슬 훅으로 (3:40~3:54)
S33 · 3:40~3:47 (7초) · 캐릭터 jin
Energy settles warmly — the crowd sways gently as the sun dips; the young man picks the lone acoustic guitar again with a satisfied smile, friends’ arms around his shoulders. Slow push-in, tender golden glow, cinematic.
S34 · 3:47~3:54 (7초) · 캐릭터 jin
Wide silhouette of the whole group against a pink-orange Miami sunset, one last gang-vocal moment with hands raised, holding on a warm final frame. Slow crane out, cinematic, emotional.
AI 뮤직비디오 제작 프롬프트 시트를 쓸 때 지킨 규칙
프롬프트 34개를 쓰면서 정리한 규칙도 함께 적어둡니다. 이 규칙들은 다른 곡으로 다시 작업할 때 그대로 재사용할 수 있습니다.
씬마다 카메라 워크를 반드시 한 개 명시합니다. 푸시인, 트래킹 달리, 크레인 업, 오비팅, 드론 풀업, 윕팬, 스냅 줌처럼 구체적인 이름을 써야 합니다. 카메라 워크를 비워두면 모델이 정적인 화면을 뽑습니다.
코러스 진입 씬에는 크레인 업을 배치합니다. S8, S16, S28이 모두 크레인 업으로 시작합니다. 시야가 넓어지는 동작이 곡이 커지는 순간과 만나면 체감 임팩트가 훨씬 큽니다.
브레이크다운에서 파이널로 넘어가는 지점에는 웅크렸다 폭발하는 동작을 넣습니다. S27에서 크라우드가 낮게 웅크렸다가 팔을 들어 올리며 터지는 동작이 비트 드랍과 맞물립니다. 이 한 지점이 영상 전체에서 가장 강한 순간이 됐습니다.
인물이 반복 등장하는 씬은 같은 레퍼런스와 같은 의상 문구를 반복합니다. 앞에서 이미 설명한 규칙이지만, 프롬프트를 쓰는 단계에서부터 이걸 전제로 문장을 짜야 나중에 고칠 일이 없습니다.
씬 길이는 계획보다 1~2초 길게 뽑습니다. 편집에서 비트에 맞춰 자를 여유가 생기고, 레퍼런스 배경 블리드를 잘라낼 여유도 여기서 나옵니다.
마무리 — AI 뮤직비디오 제작 다섯 단계 정리와 다음에 시도할 것
전체를 다시 압축하면 다섯 단계입니다. 클로드로 가사와 노래 스타일 프롬프트를 설계하고, Suno로 음원을 뽑아 섹션 타임코드를 확보하고, 다시 클로드로 34씬 프롬프트 시트를 만들고, Higgsfield로 34씬을 자동 생성하고, 합본에서 씬별 정확 트림으로 음원과 싱크를 맞춥니다. 마지막에 편집 도구로 리듬을 다듬으면 끝입니다.
이 중에서 어려운 기술은 하나도 없습니다. 진짜 변수는 세 가지였습니다. 두 명 이상 등장하는 씬을 어떻게 전달하느냐, 오디오 참조를 포기할 결단을 언제 내리느냐, 그리고 레퍼런스 배경 블리드를 잘라낼 여유분을 미리 확보했느냐입니다. 이 세 가지를 미리 알고 시작하면 제가 태운 크레딧과 시간의 상당 부분을 아낄 수 있습니다.
다음에 시도할 것도 정리해뒀습니다. 크레딧을 충전한 뒤 히어로 씬 다섯 개만 1080p로 재생성하는 것이 첫 번째입니다. 기타 솔로와 파이널의 다섯 씬만 올려도 체감 화질이 달라질 것으로 보고 있습니다. 두 번째는 오디오 참조를 씬 하나로 다시 검증해보는 것입니다. 서비스 동작이 바뀐 것으로 추정되기 때문에 시간이 지나면 다시 쓸 수 있을 가능성이 있습니다. 세 번째는 브릿지 두 번째 씬입니다. 내용은 맞지만 톤이 밝은 실내로 나와서 저녁 분위기와 어긋났습니다. 이 씬 하나만 재생성 후보로 남겨뒀습니다.
같은 방식으로 캐릭터 일관성을 지키며 AI 액션영상을 만든 과정도 따로 정리해뒀습니다. 캐릭터 고정 블록 설계와 레퍼런스 파일명 규칙을 더 자세히 보고 싶다면 Higgsfield로 AI 액션영상 만든 전 과정도 함께 참고하면 도움이 됩니다. 뮤직비디오와 액션영상은 장르가 완전히 다르지만, 캐릭터를 흔들리지 않게 붙잡는 원리는 똑같았습니다.
이 글에 공개한 34씬 프롬프트 세트와 의상 고정 문구는 그대로 가져가서 쓰셔도 됩니다. 곡이 다르면 섹션 구조와 씬 길이만 바꾸면 되고, 캐릭터가 다르면 의상 고정 문구만 교체하면 됩니다. 직접 만든 결과물이 있다면 댓글로 보여주시면 좋겠습니다. 저는 다음 곡에서 씬 수를 줄이고 씬당 길이를 늘리는 방향으로 실험해볼 계획입니다. 씬이 적으면 컷 리듬은 느려지지만 인물 연기가 살아나는 구간이 늘어나는데, 펠굿 장르에서 그 교환이 이득인지 손해인지 확인해보고 싶습니다.