Index
2026-10-06 — Experiment

EgoX long video: 학습 없는 overlap 조건

EgoX_H200 (Wan2.1 I2V 14B + LoRA) | 89프레임, 2 chunk, 클립 3개

TL;DR

3.5x
경계 차이 / 내부 중앙값 (overlap)
4.0x
같은 값 (독립 chunk)
37–39 dB
겹친 9프레임 재현
25.5분
89f 전체 파이프라인 (1 GPU)

1 배경 / 목적

이 레포의 EgoX는 49프레임 고정이다. 49프레임보다 긴 ego 영상을 학습 없이 만들 수 있는지 확인했다. 이전 chunk의 끝을 다음 chunk의 앞에 고정하는 방식(B)을 골랐다.

제약: ego 쪽 조건 채널은 ego prior가 차지하고 mask가 0이라, Wan I2V의 첫 프레임 mask 방식으로는 이전 chunk를 넣을 수 없다. Wan VAE는 첫 latent가 1프레임, 이후 4프레임씩이라 끝 latent를 그대로 재사용할 수도 없다.

2 작업 내용

이전 chunk의 디코딩된 ego 끝 9프레임을 VAE로 다시 인코딩해 latent 3칸을 얻고, 디노이즈 매 step마다 ego 영역 앞 3칸을 현재 noise 수준으로 섞은 값으로 덮어쓴다. 마지막에는 clean 값으로 고정한다.

스케줄: chunk 49 / overlap 9 / stride 40 -> 89f = chunk0 (0-48) + chunk1 (40-88) core/finetune/models/wan_i2v/sft_trainer.py : __call__(overlap_ego_video=...) core/inference/wan.py : generate_video_for_fast(frame_start, overlap_ego_video) inference_all_fast.py : --num_frames --overlap_frames --no_overlap_condition scripts/auto_ego/run.sh : NUM_FRAMES / OVERLAP_FRAMES / NO_OVERLAP_COND / OUT_DIR 클립: yt_snLDhKuJLbI_018126 (129프레임까지 컷 없음), seed 42, 캡션은 기존 49f 것 재사용 SLURM: 176096 reg49 (12:05), 176097 long89 (25:30), 176130 indep89 (19:18)

3 결과

항목overlap 조건 (B)독립 chunk (A)
chunk 1 앞 9프레임 vs chunk 0 끝 9프레임 (PSNR)37.1–38.9 dB13.7–15.5 dB
이어붙인 영상의 경계(48→49) 프레임 차이31.63 (3.5x)36.10 (4.0x)
chunk 내부 프레임 차이 중앙값 / p959.03 / 16.239.11 / 17.27
선명도 (프레임 0–39 → 40–79)72 → 5472 → 54
경계 주변 프레임
Figure 1: 경계 주변 ego 프레임 45–52. 위는 overlap 조건, 아래는 독립 chunk. 두 방식 모두 48→49에서 장면이 바뀐다.
타임라인
Figure 2: 위에서부터 exo, ego prior, overlap 결과, 독립 생성한 chunk 1. 같은 시간대(40–48)를 chunk 0은 솥 옆에서, chunk 1은 위에서 본 장면으로 그린다.
동작한 것: 89프레임 앞단(ViPE, SAM3D, prior 렌더), chunk 스케줄, 이어붙이기, overlap 주입(37–39 dB), 49프레임 회귀(픽셀 동일).
실패: chunk 1 내부에서 overlap이 끝나는 지점(8→9)의 프레임 차이가 31.5다. 모델이 고정된 앞 프레임을 이어받지 않고 자기 해석대로 새 장면을 그린다.
섞인 요인: 이 클립은 prior가 장면을 약하게만 고정한다. 89f 실행의 chunk 0은 기존 49f 결과와 ego PSNR 13.1 dB로 다른데, prior와 카메라 경로는 두 실행이 거의 같다. 원인은 확인하지 않았다.

3b 추가: prior가 좋은 클립 2개

호떡 클립은 prior가 약했다(prior가 있는 픽셀의 |prior − 결과| 평균 102.0, 후보 9개 중 최악). prior가 잘 맞는 야구장(48.3), 대장간(51.7) 클립으로 같은 비교를 반복했다. 수동 pose 클립은 annotation이 49프레임까지만 있어 쓰지 못했다.

클립방식겹친 9프레임 PSNR경계 차이내부 중앙값배수
호떡overlap37.1–38.931.639.033.5x
호떡독립13.7–15.536.109.114.0x
야구장overlap37.1–37.718.524.244.4x
야구장독립15.5–15.623.794.275.6x
대장간overlap34.6–36.033.446.325.3x
대장간독립12.1–12.541.626.206.7x
야구장, 대장간 경계
Figure 3: 야구장(위 두 줄), 대장간(아래 두 줄)의 경계 주변 프레임 45–52. 장면 내용은 유지되지만 48→49에서 화각·구도·색조가 바뀐다. overlap 실행의 프레임 49는 독립 실행의 프레임 49와 거의 같다.
판정: prior가 좋아도 결과는 같다. 모델은 고정한 앞 프레임을 무시하고 prior만 보고 그린다. 독립 chunk도 같은 시간대를 12–16 dB 수준으로 다르게 그려 그대로는 쓸 수 없다.

4 Takeaway

의미

학습 때 ego 영역은 항상 전 프레임이 같은 noise 수준이었다. "앞은 clean, 뒤는 noise"인 상태에서 앞을 이어받도록 배운 적이 없으므로, 추론에서만 앞을 고정해도 연속성이 생기지 않는다는 것과 맞는 결과다. 3클립(seed 1개) 모두 같은 결과였고 prior 품질과 무관했다.

chunk 방식은 prior가 장면을 충분히 고정한다는 전제에 기대고 있다. prior가 약한 클립에서는 독립 chunk 방식도 쓸 수 없다.

5 Next Steps

prefix 조건 미세조정

compute_loss에서 ego 앞 K개 latent를 clean으로 두고 loss에서 빼는 LoRA 미세조정을 checkpoint-10000에서 이어서 한다. EgoX_wan2.2_long과 같은 방식이다.