Index
2026-10-06 — Experiment

학습 없는 overlap 조건으로 long video 생성 시도 (89프레임, 2 chunk)

Exo-to-Ego_Wan2.1_finetune | Wan2.1 I2V 14B + LoRA rank 256, 49f 고정 → 89f

TL;DR

3
테스트 클립
37–39 dB
overlap 재현 PSNR
3.5–5.3x
경계 차이/내부 중앙값
0
연속성 확보 클립

1 배경 / 목적

EgoX(Wan2.1 I2V 14B + LoRA rank 256)는 49프레임 고정(run.sh NUM_FRAMES=49, inference_all_fast.py num_frames=49, LoRA도 49f 학습). 더 긴 ego 영상을 만들 수 있는지 확인. 선택지: (A) 49f chunk 독립 생성 후 연결, (B) 학습 없이 이전 chunk 끝을 다음 chunk 앞에 고정, (C) EgoX_wan2.2_long 학습 재개(step 6000/100k 중단). 사용자가 B 선택.

2 작업 내용

제약: WanHBHImageToVideoPipeline은 latent를 [exo 98 | ego 56]으로 붙여 ego만 디노이즈. ego 조건 채널은 ego prior가 차지하고 mask=0이라 Wan I2V 첫 프레임 mask 방식으로 이전 chunk를 넣을 자리가 없고, VAE는 첫 latent=1프레임 + 이후 4프레임씩이라 이전 latent 재사용 시 정렬이 어긋난다. → latent 덮어쓰기 채택.

core/finetune/models/wan_i2v/sft_trainer.py __call__: overlap_ego_video 인자 추가 이전 chunk 디코딩 ego 끝 9프레임을 VAE 재인코딩(latent 3칸) 매 step latents[:, :, :3, :, exo_w:] = (1-σ)·z + σ·noise (σ=t/1000, 초기 noise 고정) 마지막 step 뒤 clean z로 고정. 인자 없으면 기존 경로와 동일 core/inference/wan.py generate_video_for_fast: frame_start, overlap_ego_video 추가 inference_all_fast.py: --num_frames(49+40k), --overlap_frames(기본 9), --no_overlap_condition scripts/auto_ego/run.sh: NUM_FRAMES, OVERLAP_FRAMES, NO_OVERLAP_COND, OUT_DIR 스케줄: chunk 49 / overlap 9 / stride 40 → 89f = chunk0(0–48) + chunk1(40–88) 테스트: seed 42, 기존 49f 캡션 재사용 평가: tmp/long/eval_seam.py, tmp/long/cmp_videos.py

1차 클립: yt_snLDhKuJLbI_018126(호떡). 원인 분리용 2차 클립: prior 일치도 지표(|prior − 생성| 평균)로 선별 — 호떡 102.0(9개 중 최악), yt_1oBUZOK-uRI_000650(야구장) 48.3, yt_3igI4KJGKfo_004289(대장간) 51.7.

3 결과

SLURM(1 GPU, extra): 176096 egox_reg49 12분 05초, 176097 egox_long89 25분 30초, 176130 egox_indep89 19분 18초; 176449/176450(야구장 27:49 / 20:20), 176451/176452(대장간 27:00 / 19:07).

클립방식겹친 9f PSNR (dB)경계(48→49) 차이chunk 내부 중앙값배수
호떡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

4 Takeaway

학습 없는 latent 덮어쓰기(B)는 3클립 모두 실패, prior 품질과 무관. 독립 chunk(A)도 경계가 4.0–6.7배로 끊겨 그대로 사용 불가.
long video 인프라(전체 길이 앞단, chunk 스케줄, 이어붙이기, baseline 플래그, 평가 스크립트)는 갖춰졌고 49f 경로는 그대로 유지.

5 Next Steps