본 기사는 Claude Code(Anthropic의 AI 코딩 도구)와 함께 실험하며 작성했습니다. 영상 생성 실행, 스크립트, 원고 초안, 그림 제작은 Claude Code가 담당했고, 소재 선정, 결과물 판단, 방향 결정은 제가 진행했습니다. 영상의 좋고 나쁨 여부는 모두 제가 직접 보고 판단했습니다. 수치는 생성할 때마다 남긴 기록 파일에서 옮겼습니다.
영상 생성을 하는 분들에게는 당연한 내용일 수도 있습니다. 저도 같은 것을 시도해 본 기록입니다.
- 이전 프레임을 영상 생성 모델에 전달하는 것만으로는 동일 인물을 유지하며 컷을 전환할 수 없었습니다. 전달 방식을 8가지로 시도했지만, 모두 실패했습니다.
- 이미지 생성 모델로 캐릭터 시트를 만들고 얼굴이나 전신을 잘라내어 참조(reference)로 전달하자, 인물이 컷을 넘어서도 유지되었습니다.
- 컷을 너무 세밀하게 자르면 컷의 수가 많아집니다. 이전 클립의 마지막 5프레임을 고정하고 이어서 만들자, 컷 없이 계속 이어갈 수 있었습니다.
- 잘 안 된 점도 남았습니다. 연속이 끝날 때 인물이 카메라 쪽으로 나아가는 움직임은 원고로 막을 수 없었습니다. 마지막 클로즈업은 이전 구도와의 공간적 연결성이 어색한 상태였습니다.
하나의 장면에서 주로 2가지 무작위 시드를 사용하여 실험한 결과입니다. 성공률을 나타내는 것은 아닙니다.
| 용어 | 의미 |
|---|
| MiniMax H3 | 영상과 음성을 함께 만드는, 330억 파라미터 모델. 가중치(weight)가 공개되어 있습니다. 본 기사에서는 보조 가중치를 붙이지 않은 원본을 사용했습니다 |
| ... | |
- GPU는 RTX 4080(16GB)입니다. 2장의 장비로, 각각 한 장씩 사용하여 구동했습니다.
- 해상도는 832×480, 192프레임(8초), 20단계, 음성 없음입니다. 보조 가중치는 붙이지 않고 원본 H3를 그대로 사용했습니다. 하나의 생성에 6~15분이 걸렸습니다.
- 생성을 빠르게 하는 방법은 다른 기사에 정리했습니다.
영상을 만들기 전에 등장하는 인물의 캐릭터 시트를 영상 생성 모델이 아닌 이미지 생성 모델로 만들어 둡니다. 이번에는 GPT(ChatGPT의 이미지 생성)를 사용했습니다. 얼굴 정면・사선・측면・뒷모습, 표정, 전신, 요리 등을 담은 트레이 등을 한 장에 배치하도록 했습니다.
이 시트에서 얼굴이나 전신을 잘라내어 영상 생성 모델에 참조로 전달합니다. 사용 방법은 후속 절에 작성했습니다.
만드는 순서대로 사용한 이미지와 원고의 요점을 3장의 그림으로 만들었습니다. 컷 전환 지점은 파란색 화살표, 이전 클립의 마지막 5프레임을 고정하여 이어간 곳은 빨간색 화살표입니다. 원고의 요점은 각 컷에서 실제로 사용한 영어 원문에서 추출한 것입니다. 그림은 Graphviz로 그렸습니다.
먼저 캐릭터 시트에서 참조를 잘라낼 준비 과정입니다.
다음으로, 컷을 전환하여 만든 전반부 3개의 컷입니다.
마지막으로, 이전 클립의 마지막 5프레임을 고정하여 컷 없이 이어서 만든 두 개의 '위로 올려다보는 클로즈업'과 '연결 장면'입니다.
미국식 다이너의 아침, 웨이트리스가 아침 식사를 손님에게 가져다주고(컷 전환), 손님이 맛있게 먹는 모습이 이어집니다. 다음으로 계산대에서 손님이 카드를 찾느라 허둥지둥하다가 발견하고 안도하며, 웨이트리스가 미소 지으며 받는 장면입니다. 마지막은 웨이트리스의 미소 클로즈업으로 끝납니다.
처음에는 시트를 사용하지 않고 시도했습니다. '웨이트리스가 상차림을 하는' 컷 1을 원고만으로 만들고, 컷 2(손님이 먹는 모습)에 전달하는 방식을 8가지로 바꿔보았습니다.
| 방식 | 컷 2의 전달 방식 | 제가 직접 본 평가 |
|---|---|
| 1 | 원고만 | 인물도 상차림도 따로 나오고, 좌우가 반대로 되었다 |
| ... |
프레임 전체를 전달하자, 구도가 복사되어 고정되었습니다. 구도의 단서를 줄이자, 이번에는 인물이 바뀌었습니다. 인물을 유지하려는 작용과 구도를 바꾸려는 작용이 같은 입구에서 경쟁하는 것처럼 보였습니다.
다음으로 준비한 캐릭터 시트를 사용했습니다. 시트에서 얼굴, 측면, 전신, 트레이를 잘라내어 3배로 확대(트레이는 2배)하여 참조로 전달합니다. 원고에서는
첫 번째 컷 2에서는 좌우가 반대로 되었습니다. 컷 1에서는 손님(客) 입장에서 트레이가 화면 왼쪽에 있었지만, 컷 2에서는 트레이가 화면 오른쪽에 나왔습니다. 이는 손님과 트레이를 연결하는 선을 카메라가 가로지르는 형태로, 이매지너리 라인(imaginary line) 위반에 해당합니다. 원인은 이전 버전의 컷 1 방향을 전제로 문구를 작성했기 때문이었습니다. 시트의 옆모습이 왼쪽을 향하고 있어, '왼쪽 방향, 트레이는 좌하단'이라고 문구에 명확히 기재하여 수정했습니다.
소품(小物)은 참조를 사용하지 않으면 다른 것으로 바뀌었습니다. 트레이를 참조로 사용하지 않으니 요리가 갈색의 다른 음식으로 변했습니다. 트레이 이미지를 참조로 하고, 문구를 'Picture 6의 트레이'로 변경하자 팬케이크, 베이컨, 계란, 머그, 콜라가 나왔습니다. 이 비교는 참조와 문구 두 가지를 동시에 변경하고 있습니다.
랜덤 시드(乱数種)에 따라 움직임이 달라졌습니다. 같은 문구라도 랜덤 시드 7에서는 후반부에 카메라가 트레이 쪽으로 내려가고, 손님이 화면 밖으로 나갔습니다.
컷 3(계산대 놓기)의 시작은, 손님이 '이미 먹고 있는' 상태에서 시작하는 것이 더 자연스럽다고 생각하여 다시 작성했습니다. 두 랜덤 시드 모두 초반에 먹는 움직임이 나왔습니다.
계산 과정은 카드 찾기, 발견하기, 전달하기, 받기 순서로 이어집니다. 이를 컷별로 자르자 컷의 수가 너무 많아졌습니다. 그래서 이전 클립의 마지막 5프레임을 ffmpeg로 잘라내어 새로운 생성(192 프레임)의 시작 부분에 고정하고 이어서 만들었습니다. 참조도 함께 전달합니다. 연결할 때는, 고정된 프레임을 버리고 다음 6번째 프레임부터 추가했습니다.
고정하는 프레임 수는 5프레임으로 했습니다. 다른 영상 생성 실험에서는, 고정하는 프레임을 늘리면 움직임이 나오기 어려워졌기 때문입니다. 참조와 병용하는 것은 이 실험이 처음이었지만, 인물은 유지되었습니다.
다음 부분에서는 두 가지 점을 수정했습니다.
첫 번째는 포크를 든 손이 컷 전환 시 갑자기 내려가는 지점입니다. 다음 문구에 '포크를 든 채로, 먼저 접시에 놓은 후'라고 추가하자 수정되었습니다.
두 번째는 마지막 클로즈업이 하향식(俯瞰)이 된 점입니다. 앉아 있는 손님의 눈높이에서 서 있는 웨이트리스를 보기 때문에, 원래는 올려다보는 형태가 되어야 합니다. 문구에 '앉아 있는 손님의 낮은 시선에서 올려다보기', '배경에 천장 조명과 창문 상부'를 추가하자 천장 조명이 비치게 되었습니다.
다음 부분의 끝에서 웨이트리스가 카메라 쪽으로 걸어 나옵니다. 문구에 '같은 위치에 서 있는 채로', '발을 움직이지 않는다'고 추가해도 멈추지 않았기 때문에, 걸어 나오기 전 4.5초 지점에서 영상을 잘라 피했습니다.
마지막 클로즈업은 직전 두 사람의 구도와의 공간 연결이 제 눈으로 보기에도 어색합니다. 원인은 분리해내지 못했습니다.
컷 1~3, 컷 없음 이어가기 2개, 마지막 클로즈업 6개를 이어서 총 44초짜리 영상입니다. 배경음악(BGM)은 다른 AI(ACE-Step 1.5)로 만들었습니다. 결과물에 대해서는 '별로 잘 안되지만, 뭐 이걸로 OK'라고 판단했습니다.
영상은 YouTube에 비공개로 올렸습니다. 이미지를 누르면 재생됩니다.
-
시도한 것은 한 장면과 두 인물이 주를 이루며, 랜덤 시드는 주로 101과 4044의 두 가지입니다.
-
평가는 저 혼자 눈으로 본 것입니다. 인물이 같아 보이는 것을 수치로 측정하지는 않았습니다.
-
좌우 배치는, 두 인물의 장면에서는 효과가 있었지만, 움직임이 많은 장면에서도 유지될지는 확인하지 못했습니다.
-
시트는 이미지 생성 모델로 만들고, 얼굴, 옆모습, 전신, 소품을 잘라 확대하여 참조로 사용합니다. 문구에서는 'Picture N'과 번호로 불러 지정합니다.
-
좌우(손님이 왼쪽, 웨이트리스가 오른쪽)는 시트의 방향과 문구 양쪽에서 맞춥니다.
-
컷 없이 이어갈 때는, 이전 클립의 마지막 5프레임을 시작 부분에 고정하고 참조도 함께 전달합니다.
-
MiniMax H3 (MiniMaxAI, Hugging Face): 원본 모델 및 배포처 라이선스
-
ComfyUI: 실행 환경
-
ChatGPT: 캐릭터 시트 생성에 사용한 이미지 생성
-
ACE-Step 1.5: BGM 생성에 사용한 음악 생성
-
Graphviz: 전체 흐름도 작성
-
생성을 빠르게 하는 방법 측정은 다른 기사에 정리했습니다.