25초 결투에 상처 4개를 담지 못한 이유
25초 AI 결투에서 상처 4개를 흔적 3개로 줄였습니다. 동작이 읽히는 시간과 프롬프트 길이, 검열, 공방의 전개를 함께 고친 과정입니다.

25초 결투에 상처 4개는 들어가지 않았습니다.
이전 프롬프트는 샷을 6개 구간으로 나눴습니다. 구간마다 4.1초가 주어졌습니다. 수정본에서는 결투를 4개 구간에 걸친 3개의 흔적으로 줄였고, 각 구간에 6.25초를 배정했습니다.
그 정도는 되어야 동작을 알아볼 수 있었습니다.
저는 한 샷에 너무 많은 사건을 요구하고 있었습니다. 동시에 모델에 전달되지도 않거나 결과를 방해하는 지시에 프롬프트 공간을 쓰고 있었습니다. 상처 수를 줄인 것은 더 큰 수정의 일부였지만, 핵심 문제를 먼저 드러낸 것은 시간 배분이었습니다.
계산이 삭제를 결정했습니다
저는 시간 배분에 관한 결정을 이렇게 기록했습니다.
**3. Cuatro heridas en 25 segundos no caben.** Con seis bloques eran 4,1 segundos cada uno.
Bajado a tres marcas y cuatro bloques: 6,25 segundos, que es donde una acción se lee.
원래 구성에서는 모든 구간이 같은 문제를 안고 있었습니다. 4.1초 안에 움직임을 보여주고, 접촉을 알아볼 수 있게 만들고, 다음 사건으로 넘어가야 했습니다.
수정한 구성에서는 구간마다 6.25초를 배정했습니다.
늘어난 시간은 상처 하나를 더 넣는 데 쓰지 않았습니다. 오히려 하나를 빼야 하는 이유였습니다. 타임라인에 사건을 더 채우는 대신 남은 동작이 눈에 들어오게 하는 것이 목표였습니다.
이 지점에서 제 결투 프롬프트는 일어나는 일을 나열한 목록에서 리듬이 있는 시퀀스로 바뀌었습니다. 흔적은 3개면 충분했습니다. 4개는 무리였습니다.
모델이 읽기도 전에 프롬프트가 잘리고 있었습니다
이전 버전은 약 9,000자였습니다. 웹 인터페이스는 경고 없이 약 5,787자에서 프롬프트를 잘라냅니다.
POSITIVE LOCKS 블록 전체가 그 한도 뒤에 있었습니다. 가장 중요한 지시들이었지만 모델에는 전달되지 않았습니다.
이 사실을 알고 수정본의 모든 문장을 판단하는 방식이 달라졌습니다. 25초짜리 샷에는 시간 예산이 있고, 프롬프트에는 길이 제한도 있었습니다. 동작 구간을 많이 유지할수록 전환, 접촉, 상태를 더 많이 설명해야 했습니다. 그런데 프롬프트는 이미 마지막 부분이 아무 경고 없이 사라질 만큼 길었습니다.
이 실패는 오류 메시지로 나타나지 않았습니다. 프롬프트가 불완전한 상태로 전달됐을 뿐입니다.
결투를 동작 구간 4개로 줄이자 시간 배분이 명확해졌습니다. 실제로 전달되는 프롬프트 범위 안에 핵심 지시를 넣을 수도 있게 됐습니다.
부정형 지시가 엉뚱한 단어를 주입하고 있었습니다
이전 프롬프트에는 부정형 명령이 16개 들어 있었습니다. 제가 확인한 바로는 모델은 “no”를 처리하지 않습니다. 그 뒤의 단어를 봅니다.
저는 슬로 모션을 막으려고 “slow motion”을 7번이나 썼습니다.
수정본에서는 그런 부정형 명령을 샷이 해야 할 일을 직접 설명하는 긍정형 문장으로 바꿨습니다. 실제 프롬프트 문장은 다음과 같습니다.
Playback speed stays exactly constant from the first frame to the last.
The camera keeps travelling through every contact and arrives somewhere new.
It runs beside the two men, slides past a shoulder and re-finds them on the other side.
Both men stay physically engaged for the whole 25 seconds.
각 문장은 원하는 결과를 직접 설명합니다.
첫 문장은 재생 속도를 일정하게 고정합니다. 두 번째는 접촉 장면에 머물거나 이를 되풀이하지 않고 카메라가 계속 이동하게 합니다. 세 번째는 카메라에 물리적인 이동 경로를 줍니다. 네 번째는 두 검객이 샷 전체에서 계속 맞붙게 합니다.
이 문장들은 시간 배분에 관한 결정도 뒷받침합니다. 카메라가 계속 이동하고 두 사람이 계속 맞붙어야 한다면 모든 흔적은 연속된 움직임 안에서 생겨야 합니다. 방금 무슨 일이 일어났는지 설명하려고 샷을 멈출 수는 없습니다.
상처가 4개일 때 저는 각 사건에 시간을 적게 주면서 카메라에는 그 모두를 통과하라고 요구하고 있었습니다. 흔적을 3개로 줄이자 각 구간에 동작을 알아볼 여유가 생겼고, 끊임없이 움직여야 한다는 원칙도 유지할 수 있었습니다.
흔적을 묘사한 표현은 이미 검열에 걸린 적이 있었습니다
이전 버전에는 상처를 설명하는 이런 표현들이 들어 있었습니다.
A clean cut opens
fresh blood
the wound reveal
이 어휘 때문에 앞선 생성 묶음에서는 플레이트 7개 중 7개가 검열로 거부됐습니다.
수정본에서는 전제를 바꿨습니다. 맨 위에 이 흔적들이 촬영용 분장임을 명시했습니다. 이어 피나 상처가 벌어지는 모습을 언급하지 않고 각 흔적에 해당하는 플레이트를 가리켜 설명했습니다.
이것은 또 하나의 유용한 제한이 됐습니다. 결투에 필요한 것은 더 노골적인 표현이 아니었습니다. 명확한 레퍼런스와 알아볼 수 있는 시간 배분이 필요했습니다.
흔적을 4개에서 3개로 줄이면서 기존 플레이트로 설명할 수 있는 사건에 시퀀스를 집중시켰습니다. 이미 실패한 어휘로 접촉마다 더 강한 인상을 주려는 부담도 덜었습니다.
결투에는 반복이 아니라 전개가 필요했습니다
이전 결투는 고조되지 않고 반복됐습니다.
수정본에서는 모든 흔적에 이동 방향의 결과를 부여했습니다. 흔적을 입은 사람이 물러나지 않고 전진합니다.
Toshiro가 밀어붙여 자리를 차지한 뒤 흔적을 남깁니다. Sadao가 흐름을 뒤집고 흔적을 남깁니다. 세 번째는 두 사람 모두 이미 만신창이가 된 상태에서, 어느 쪽도 멈추지 않는 가운데 생깁니다.
이 구성에서 3개의 흔적은 결투 안에서 서로 다른 위치를 차지합니다. 같은 공방을 따로 변주한 것이 아닙니다. 흔적 하나가 생길 때마다 움직임을 이끄는 사람이 바뀝니다.
저는 수정 내용을 이렇게 설명했습니다.
Ahora, **después de cada marca el que la recibe
AVANZA en vez de retroceder**. Toshiro empuja y gana terreno, marca. Sadao le da la vuelta y
marca. La tercera cae con los dos ya rotos y sin parar.
이것이 4개 구간의 진짜 용도였습니다. 단지 25초를 고르게 나누기 위한 구간이 아니었습니다. 결투 내내 압박의 변화를 이어가는 구간이었습니다.
한 검객이 상대를 밀어붙입니다. 다른 검객이 흐름을 뒤집습니다. 둘 다 지친 뒤 마지막 흔적이 생기고, 움직임은 계속됩니다.
시간 배분과 긴장 고조가 하나의 구성이 됐습니다.
무엇을 갖춰야 완성인가
원래의 상처 4개를 프롬프트에 모두 욱여넣었다고 샷이 완성되는 것은 아니었습니다. 남은 흔적 3개를 알아볼 시간이 충분하고, 4개 구간이 결투를 전개하며, 두 검객이 25초 내내 맞붙어 있어야 완성이었습니다.
핵심 지시가 웹 인터페이스의 잘림 한도 안에 남아 있어야 한다는 뜻이기도 했습니다. 부정형 명령은 실제로 해야 할 움직임을 설명하는 문장으로 바꿔야 했습니다. 흔적 설명은 검열로 거부된 표현을 반복하지 않고 플레이트를 가리켜야 했습니다.
이 제약들은 연결돼 있습니다. 동작 계획이 빽빽하면 다른 모든 부분에도 부담이 생깁니다. 프롬프트가 길어집니다. 각 사건에 돌아가는 화면 시간이 줄어듭니다. 카메라가 접촉을 지나 이동할 여유도 줄어듭니다. 흔적을 서로 구분하려고 갈수록 노골적인 설명에 의존하게 됩니다.
상처 하나를 빼자 샷 전체에 여유가 생겼습니다.
오늘은 문장을 다듬기 전에 샷의 길이를 동작 구간 수로 나눠 보세요. 각 사건에 4.1초밖에 돌아가지 않고, 자신의 자료에서 동작을 알아보려면 6.25초가 필요하다는 사실이 드러났다면 지시를 더하기 전에 사건 하나를 빼세요.
지금까지 1개의 샷을 결정 하나하나로 나누어 살펴봤습니다. 어느 것도 우연히 들어간 결정이 아닙니다.


