VideoCoCo - Code-as-CoT for Physically-Consistent Video Generation via an Agentic Dual-Engine System
H. Li, T. Ren, X. Ma, C. Qing, et al., "VideoCoCo: Code-as-CoT for Physically-Consistent Video Generation via an Agentic Dual-Engine System," arXiv:2607.27380, 2026.
텍스트에서 영상을 만드는 모델은 두 가지를 동시에 해야 합니다. 사건이 시간에 따라 어떻게 전개되는지 알아내는 일과, 그것이 어떻게 보이는지 그려내는 일입니다. 프롬프트는 앞의 것을 거의 알려주지 않습니다. "마른 얼음이 온도가 오르면서 승화한다"는 문장에 승화 과정 자체는 들어 있지 않습니다.
논문은 이 간극을 인과 불투명성(Causal Opacity)이라 부릅니다. 해법은 단순합니다. 그리기 전에 써놓게 합니다.
저자
28명, 열한 개 기관입니다. CUHK, USTC, SCUT, HKU, NTU, PKU, SJTU, CMU, THU, HUST, MBZUAI.
공동 1저자이자 프로젝트 리더는 Haodong Li입니다. 교신저자는 SCUT의 Chunmei Qing, USTC의 Feng Zhao, 그리고 CUHK의 Pheng-Ann Heng입니다.
왕핑안이 시니어로 붙어 있는 것이 이 논문의 성격을 설명합니다. 30년 가까이 의료 VR과 수술 시뮬레이션, 컴퓨터 그래픽스를 해온 사람입니다. 확산 모델 연구자만 모인 팀이었다면 물리 일관성을 학습으로 푸는 쪽으로 갔을 가능성이 높습니다. 시뮬레이터를 파이프라인의 일급 구성요소로 놓겠다는 결정에는 시뮬레이션 쪽 감각이 필요합니다.
배경
영상 생성에 사고 사슬을 붙이려는 시도는 세 갈래로 이미 있었습니다.
첫째는 계획형입니다. 플래너가 텍스트 계획, 키프레임, 레이아웃을 내놓고 그걸로 영상 생성기를 조건화합니다. 둘째는 테스트타임 탐색형입니다. 후보 영상을 여러 개 뽑고 추론 시점에 고치거나 고릅니다. 셋째는 시각 상태형입니다. 생성된 영상 안의 중간 시각 상태를 거쳐 추론합니다.
논문이 지적하는 공통 한계는 두 가지입니다. 이 중간물들은 실행 불가능하거나(텍스트, 레이아웃), 시간적으로 성깁니다(고립된 키프레임). 어느 쪽도 완전한 과정을 실체화하지 못하고, 따라서 검사하거나 수정할 대상이 되지 못합니다.
VideoCoCo는 중간 표현을 실행 가능한 Blender 파이썬 프로그램으로 바꿉니다. 저자들이 이 선택의 근거로 드는 세 가지가 곧 논문의 논지입니다. 명시적입니다. 모든 객체와 운동과 상호작용을 선언해야 하므로 텍스트 계획 특유의 미지정이 남을 자리가 없습니다. 실행 가능합니다. 프로그램은 에이전트를 서술이 아닌 구체적 과정에 묶습니다. 검사 가능합니다. 코드는 읽고, 고치고, 다시 실행할 수 있으므로 중간 추론이 잠재 활성값 안에 숨지 않습니다.
어떻게 만들었나
두 엔진으로 나뉩니다.
1단계, 실행 가능 시뮬레이션 엔진. 프롬프트 \(p\)가 들어오면 코딩 에이전트 \(A_{\text{code}}\)가 자기완결적인 Blender 파이썬 프로그램을 씁니다.
\[c = A_{\text{code}}(p)\]
이 프로그램은 장면, 객체와 그 물리 속성, 그리고 목표 사건의 시간 전개를 명시합니다. 그다음 격리된 Blender 환경 \(B\)에서 실행해 초안 \(d\)를 렌더링합니다.
\[d = B(c)\]
샌드박스로 돌리는 이유가 중요합니다. 표준화된 프리미티브를 제공하고 결정론적 동작을 강제하므로 같은 프로그램이 항상 같은 초안을 만듭니다. 그리고 렌더링 오류가 조용한 실패로 남지 않고 코드 수정용 진단 신호로 돌아옵니다.
초안은 의도적으로 저품질입니다. 사실적 재질도 복잡한 조명도 없는 흰 점토 시뮬레이션입니다. 대신 시간적으로 조밀합니다. 모든 프레임이 프로그램된 과정의 물리적으로 실체화된 상태에 대응합니다. 초안은 후보 출력이 아니라 구조적 발판입니다. 무엇이 언제 일어나는지를 고정하고, 어떻게 보일지는 다음 엔진에 넘깁니다.
2단계, 생성 영상 엔진. 원래 프롬프트 \(p\)와 렌더링된 초안 \(d\)는 서로 다른 입도로 목표를 기술합니다. 프롬프트는 압축돼 있고 사건이 무엇인지에 치우쳐 있고, 초안은 조밀하고 양식화돼 있고 사건이 어떻게 전개되는지에 치우쳐 있습니다. 그래서 지시 에이전트 \(A_{\text{edit}}\)이 둘을 읽고 외양에 초점을 둔 편집 지시를 씁니다.
\[e = A_{\text{edit}}(p, d)\]
지시 \(e\)는 대상 피사체, 재질, 조명, 시네마틱 스타일을 기술하고, 초안에 이미 들어 있는 운동을 재정의하지 말라고 명시적으로 억제됩니다. \(d\)는 무엇이 일어나는지를, \(e\)는 그것이 어떻게 보이는지를 지시합니다.
최종 영상은 초안 조건부 영상 편집기 \(G_\theta\)가 만듭니다.
\[\hat{v} = G_\theta(d, e)\]
이 분해에서 \(G_\theta\)가 하는 일은 이미 실체화된 과정에 스타일을 다시 입히는 것이지, 과정을 처음부터 상상하는 것이 아닙니다. 텍스트-투-비디오 직접 생성보다 상당히 쉬운 문제이고, 현대 영상 편집 모델의 강점과 잘 맞습니다.
VideoCoCo-3K. 문제는 기성 편집 모델이 흰 점토 시뮬레이션 스타일을 학습 분포 밖으로 본다는 것입니다. 그 운동을 무시하거나, 초안과 충돌하는 외양을 만들어냅니다. 공개된 영상 편집 데이터셋은 전부 자연 영상 쌍이라 시뮬레이션 초안과 같은 시공간 과정을 공유하는 사실적 영상의 쌍이 존재하지 않습니다.
그래서 파이프라인 자체를 대규모로 돌려 데이터를 만듭니다. 각 프롬프트 \(p_i\)에 대해 초안 \(d_i\)와 편집 지시 \(e_i\)를 생성하고, 고품질 교사 편집기 \(G_T\)를 한 번 호출해 사실적 목표를 얻습니다.
\[y_i = G_T(d_i, e_i)\]
\(G_T\)는 Seedance 2.0입니다. 사실적 프레임을 만들면서도 초안이 담은 운동을 충실히 보존하는 두 성질을 동시에 만족하기 때문에 골랐다고 밝힙니다. 결과가 3천 개 삼중항입니다.
\[\mathcal{D}_{\text{VideoCoCo-3K}} = \{(d_i, e_i, y_i)\}_{i=1}^{3000}\]
평가 벤치마크의 프롬프트와 그 근접 중복은 전부 제외했습니다. 원본 프롬프트와 Blender 프로그램은 메타데이터로 남겨 데이터셋을 검사하거나 확장하거나 재생성할 수 있게 했습니다.
학습은 표준 조건부 디노이징 목적함수입니다. 목표 \(y\)의 잠재를 \(z_0\), 확산 시점 \(t\)에서의 노이즈 버전을 \(z_t\)라 두면
\[\mathcal{L}(\theta) = \mathbb{E}_{(d,e,y),\, t,\, \epsilon} \left[ \left\| \epsilon - \epsilon_\theta(z_t, t, d, e) \right\|_2^2 \right]\]
이고 \(\epsilon \sim \mathcal{N}(0, I)\)입니다. \(G_\theta\)는 OmniWeaving 기본 생성기에서 초기화합니다.
추론은 프롬프트 하나로 끝까지 돕니다. 정답 초안도, 사람 주석도, 보조 입력도 필요 없습니다.
결과
두 벤치마크를 씁니다. PhyGenBench는 역학, 광학, 열, 재질 네 범주에서 물리 상식을 평가하며 GPT-4o를 MLLM 판정자로 쓰는 공식 프로토콜을 따릅니다. VBench-2.0은 표면 품질을 넘어선 내재적 충실도를 겨냥하고, 여기서는 물리 차원 세 가지(역학, 열역학, 재질)만 씁니다.
먼저 판정 방식을 짚어두겠습니다. PhyGenBench 점수는 GPT-4o가 매깁니다. 아래 숫자들은 사람이 센 것이 아니라 MLLM 판정자가 매긴 값입니다.
PhyGenBench
구분 |
방법 |
역학 |
광학 |
열 |
재질 |
평균 |
|---|---|---|---|---|---|---|
폐쇄 |
Pika |
0.35 |
0.56 |
0.43 |
0.39 |
0.44 |
폐쇄 |
Gen-3 |
0.45 |
0.57 |
0.49 |
0.51 |
0.51 |
폐쇄 |
Kling |
0.45 |
0.58 |
0.50 |
0.40 |
0.49 |
오픈 |
CogVideoX |
0.39 |
0.55 |
0.40 |
0.42 |
0.45 |
오픈 |
Open-Sora V1.2 |
0.43 |
0.50 |
0.44 |
0.37 |
0.44 |
오픈 |
HunyuanVideo |
0.33 |
0.39 |
0.26 |
0.30 |
0.33 |
오픈 |
Wan2.2-TI2V-5B |
0.55 |
0.58 |
0.53 |
0.50 |
0.54 |
오픈 |
Cosmos-Predict2.5 |
0.30 |
0.33 |
0.41 |
0.39 |
0.35 |
오픈 |
LTX-Video-2B |
0.51 |
0.58 |
0.48 |
0.45 |
0.51 |
기준 |
OmniWeaving |
0.48 |
0.56 |
0.43 |
0.39 |
0.48 |
제안 |
|
0.56 |
0.61 |
0.51 |
0.53 |
0.56 |
(표는 소수 둘째 자리 반올림이고, 본문의 정본 수치는 평균 0.475에서 0.558입니다.)
OmniWeaving에 VideoCoCo를 붙이면 평균이 0.475에서 0.558로 올라가고 표 전체에서 가장 높습니다. 최강 오픈 베이스라인 Wan2.2-TI2V-5B의 0.544를 앞섭니다. 역학, 광학, 재질에서 1위이고 열에서만 Wan2.2에 근소하게 뒤집니다.
주목할 것은 이득이 어디서 나오는지입니다. 기본 모델 대비 가장 큰 상승은 재질(+0.133)과 열(+0.078)입니다. 저자들의 해석대로 외양 기반 생성기가 명시적 동역학 참조 없이 가장 약한 범주가 정확히 이 둘입니다. 코드가 표면 사실감이 아니라 물리 동역학을 기여한다는 주장의 근거입니다.
VBench-2.0
구분 |
방법 |
역학 (%) |
열역학 (%) |
재질 (%) |
평균 (%) |
|---|---|---|---|---|---|
폐쇄 |
Sora |
62.22 |
43.36 |
64.94 |
56.84 |
폐쇄 |
Kling 1.6 |
65.55 |
59.46 |
68.00 |
64.34 |
오픈 |
HunyuanVideo |
76.09 |
56.52 |
64.37 |
65.66 |
오픈 |
CogVideoX-1.5 |
80.80 |
67.13 |
83.19 |
77.04 |
기준 |
OmniWeaving |
62.79 |
52.08 |
41.67 |
52.18 |
제안 |
|
92.31 |
72.92 |
68.42 |
77.88 |
52.18%에서 77.88%, 25.70점 상승이라는 헤드라인 숫자는 여기서 나옵니다. 다만 이 숫자를 읽을 때 두 가지를 함께 봐야 합니다.
첫째, 상승 폭이 큰 이유의 절반은 출발점이 낮았기 때문입니다. OmniWeaving의 재질 점수 41.67%는 표에서 최하위입니다. 기본 모델이 유독 약한 축에서 붙였으니 개선 폭이 커 보입니다.
둘째, 도착점은 그만큼 극적이지 않습니다. 평균 77.88%는 CogVideoX-1.5의 77.04%를 0.84점 앞선 것입니다. 25.70점 상승과 0.84점 우위는 다른 이야기입니다. 재질에서는 여전히 CogVideoX-1.5(83.19%)에 15점 가까이 뒤집니다. VideoCoCo가 확실히 압도하는 곳은 역학(92.31%)과 열역학(72.92%)이고, 이건 Blender 물리 엔진이 잘 표현하는 영역과 정확히 겹칩니다.
어느 단계가 기여하는가
방법 |
역학 |
광학 |
열 |
재질 |
평균 |
|---|---|---|---|---|---|
OmniWeaving |
0.48 |
0.56 |
0.43 |
0.39 |
0.48 |
|
0.50 |
0.53 |
0.48 |
0.51 |
0.51 |
|
0.51 |
0.61 |
0.51 |
0.49 |
0.54 |
|
0.56 |
0.61 |
0.51 |
0.53 |
0.56 |
이 절제 실험이 논문에서 가장 설득력 있는 부분입니다. 세 변형 모두 같은 실행 초안 생성 파이프라인을 쓰고 편집기를 어떻게 적응시키는지만 다릅니다.
튜닝 없는 변형, 즉 손대지 않은 OmniWeaving 편집기를 시뮬레이션 초안으로 조건화하기만 한 경우가 이미 0.475에서 0.506으로 올라갑니다. 편집기 파라미터를 하나도 갱신하지 않았으므로 이 이득은 전적으로 실행 가능 초안에서 옵니다. 물리 동역학을 공급하는 것은 추가 학습이 아니라 초안이라는 주장이 여기서 확인됩니다.
흥미로운 것은 LoRA(0.558)가 전체 파인튜닝(0.535)을 이긴다는 점입니다. 저자들의 설명은 적응의 성격이 좁다는 것입니다. 편집기는 일반 영상 사전지식을 다시 배울 필요가 없고, 흰 점토 초안을 운동을 보존한 채 사실적 영상으로 다시 스타일링하는 기술만 얻으면 됩니다. 저랭크 부분공간으로 제한하면 기본 생성기의 강한 시각 사전지식이 남고, 전체 파인튜닝은 제한된 삼중항 데이터에 과적합해 그 사전지식에서 이탈하기 쉽습니다.
정성 비교
논문이 고른 예시가 주장을 잘 보여줍니다. 마른 얼음의 승화, 공기를 빼면서 찌그러지는 밀폐 페트병, 거친 바위에 세게 던져져 깨지는 달걀, 물그릇 표면에 살며시 놓이는 나무 장난감. OmniWeaving은 보기에는 그럴듯하지만 요청된 동역학을 위반하는 영상을 자주 만듭니다. 페트병이 안 찌그러지거나, 달걀이 안 깨지거나 하는 식입니다.
회고
저자들이 결론에서 인정하는 한계가 둘입니다.
추론 지연이 늘어납니다. 프롬프트 하나에 코드 생성, 샌드박스 렌더링, 지시 작성, 영상 편집이 순차로 붙습니다. 논문은 구체적인 지연 수치를 제시하지 않습니다. 텍스트-투-비디오 직접 생성 대비 몇 배인지가 실무 채택을 가르는 숫자인데 비어 있습니다.
Blender의 표현력이 상한입니다. 난류 유체처럼 복잡한 현상은 제로샷으로 합성하기 어렵다고 명시합니다. 이것이 이 접근의 근본 트레이드오프입니다. 검사 가능성을 얻는 대신, 시뮬레이터가 표현할 수 있는 물리 안에 갇힙니다. 학습된 이산 표현으로 같은 문제를 푸는 접근과 정확히 반대 방향입니다. 그쪽은 표현력의 상한이 데이터에 있고 검사 가능성이 없습니다. VideoCoCo는 상한이 Blender API에 있고 대신 중간물을 사람이 읽을 수 있습니다. 향후 방향으로 Taichi 같은 전문 물리 엔진 통합, 그리고 실행 사전지식을 종단간 모델에 증류해 추론 시 시뮬레이션을 없애는 쪽을 언급합니다.
여기에 논문이 다루지 않은 한계를 몇 개 더 짚겠습니다.
실패가 두 곳에서 나는데 분리 측정이 없습니다. 이 파이프라인은 코딩 에이전트가 물리를 틀리게 짜는 경우와, 편집기가 옳게 짜인 초안을 안 따르는 경우 두 가지로 실패할 수 있습니다. 성격이 전혀 다른 실패입니다. 앞의 것은 코드 에이전트의 물리 상식 문제이고 뒤의 것은 조건부 편집의 충실도 문제입니다. 논문은 최종 점수만 보고하고 이 둘을 나눠 재지 않습니다. 코드는 검사 가능하다는 것이 이 접근의 핵심 주장인데, 정작 그 검사 가능성을 이용한 오류 분석이 없습니다.
코드 생성 성공률이 없습니다. 렌더링 오류를 진단 신호로 돌려 코드를 수정한다고 적혀 있지만, 몇 번 만에 실행 가능한 프로그램이 나오는지, 끝내 실패하는 프롬프트 비율이 얼마인지가 없습니다. 이 수치가 없으면 파이프라인의 실제 비용을 추정할 수 없습니다.
3천 개는 작습니다. 저자들도 전체 파인튜닝이 제한된 삼중항 데이터에 과적합한다고 인정합니다. 새로운 물리 시나리오, 특히 학습 삼중항에 없던 종류의 초안 스타일에 일반화되는지가 실용성의 관문입니다.
교사가 Seedance 2.0입니다. VideoCoCo-3K의 목표 영상은 전부 폐쇄 상용 모델이 만들었습니다. 학습된 편집기의 성능 상한이 교사에 묶이고, 데이터셋 재생성이 그 API 접근에 의존합니다.
코딩 에이전트와 지시 에이전트의 정체가 없습니다. 어떤 모델이 Blender 프로그램을 쓰고 편집 지시를 작성했는지가 본문에 명시되지 않습니다. 파이프라인의 성능이 이 에이전트 모델의 능력에 얼마나 민감한지는 재현에서 가장 중요한 변수인데 열려 있습니다.
정리
- 중간 표현을 실행 가능한 코드로 두는 것이 이 논문의 전부입니다. 텍스트 계획은 미지정을 허용하고 키프레임은 시간적으로 성깁니다. Blender 프로그램은 모든 객체와 운동을 선언하게 강제하고, 실행되며, 사람이 읽고 고칠 수 있습니다. 검사 가능성을 얻는 대가로 시뮬레이터가 표현할 수 있는 물리 안에 갇힙니다.
- 이득의 출처가 절제 실험으로 분리됩니다. 편집기를 전혀 건드리지 않고 초안으로 조건화만 해도 0.475에서 0.506으로 오릅니다. 물리 동역학을 공급하는 것은 학습이 아니라 초안입니다. LoRA가 전체 파인튜닝을 이긴 것도 같은 이야기입니다. 적응해야 할 것이 좁습니다.
- 헤드라인 숫자와 도착점을 나눠 봐야 합니다. VBench-2.0의 25.70점 상승은 출발점이 낮아서 큰 것이고, 도착한 평균 77.88%는 CogVideoX-1.5의 77.04%를 0.84점 앞섭니다. 확실한 우위는 역학과 열역학, 즉 Blender가 잘 다루는 영역에 있습니다.