← Index
2026-10-10 — Experiment

Prefix mask 채널 + K=0 50% pilot (경계 유지 & 첫 chunk 화질 회복)

Exo-to-Ego_Wan2.1_finetune | 261009 collapse 원인 분리 후속

TL;DR

1.20x
89f 경계 중앙값
6/6
129f 경계 통과
100–319
첫 chunk 선명도
3.5–5.3x
학습 전 경계

1 배경 / 목적

261009 대조 실험으로 prefix 조건 자체가 첫 chunk 붕괴 원인임을 확인. 기존 구현은 clean latent만 넣고 "주어진 프레임" 신호가 없으며 step의 75%가 prefix 샘플. 둘을 고쳐 경계 연속성과 첫 chunk 화질을 동시에 얻을 수 있는지 검증. 통과 기준: (1) 경계 차이 ≤ chunk 내부 중앙값 1.5x, (2) 첫 chunk 화질이 기존 LoRA 대비 나빠지지 않을 것.

2 작업 내용

PREFIX_MASK=1 PREFIX_NONE_PROB=0.5 DATA=dataset/train_full TRAIN_STEPS=1500 bash scripts/finetune_prefix.sh # 4 GPU, lr 2e-5, checkpoint-10000 시작, 3,508클립, job 185694 (6:53:28, preempt 없음) # 출력: training/EgoX_prefix_mask_v3

평가: 89f(2 chunk) 3클립×seed {42,1,2} (tmp/long/eval_final.py), 첫 chunk를 같은 seed 기존 LoRA와 비교, 129f(3 chunk) 3클립 seed 42 (results/auto_ego_long129, job 186312–186314, 각 약 34분).

3 결과

step 1,500, 89f 경계(48→49) 차이 / chunk 내부 중앙값:

클립seed 42seed 1seed 2
호떡1.2x2.0x1.9x
야구장0.8x1.0x0.6x
대장간1.0x1.4x1.3x

9회 중 7회 ≤1.5x, 중앙값 1.20x, 최대 2.05x. step별(seed 42): step 250 = 1.8/1.5/1.2x, step 750 = 2.7/1.6/1.8x, step 1,500 = 1.2/0.8/1.0x.

첫 chunk 밝기 / 선명도 (괄호: 같은 seed 기존 LoRA)

클립seed 42seed 1seed 2
호떡55.4/140 (62.1/68)52.1/100 (67.4/80)43.6/104 (67.5/103)
야구장48.1/117 (59.9/139)39.1/117 (57.6/101)50.8/157 (60.5/161)
대장간83.5/319 (75.2/146)85.4/251 (78.9/190)75.5/316 (58.2/144)
이전 prefix 방식 @1500(야구장 40.2/70, 대장간 42.0/53)과 달리 선명도 100–319로 붕괴하지 않음.
호떡·야구장은 기존 LoRA보다 어두움(−11~−35%), 대장간은 더 밝음. 야구장 seed 42, 1은 첫 프레임이 거의 검고 마지막 프레임(48)은 정상 (tmp/long/final_v3_1500.jpg, 원인 미확인). step 750에서는 첫 chunk가 가장 밝았고(95.7/87.2/152.9) 경계는 가장 나빴음.

129f(3 chunk), seed 42

클립경계1 (48→49)경계2 (88→89)선명도 0–39→80–119밝기 0–39→120–128
호떡1.4x0.9x99→147~51→73
야구장1.1x1.5x129→139~42→54
대장간1.0x1.5x317→360~85→101

경계 6개 모두 ≤1.5x, 3번째 chunk에서 선명도 하락 없음. 세 클립 모두 chunk당 밝기 약 +6~+11 누적. 앞단(ViPE, SAM3D, prior 렌더)은 129f에서 수정 없이 동작.

4 Takeaway

mask 채널 신호 + K=0 50%로 "경계는 이어지고 첫 chunk는 무너지지 않는" 상태를 처음 얻었다. 기준 1은 89f 7/9, 129f 6/6 충족. 기준 2는 붕괴 해소, 단 일부 클립 밝기 저하와 야구장 첫 프레임 문제 잔존. 두 변경을 함께 넣어 어느 쪽이 효과였는지는 분리되지 않았고, 3클립·최대 3 chunk 기준이라 일반화는 미검증.

5 Next Steps

LORA_PATH=training/EgoX_prefix_mask_v3/checkpoint-1500/pytorch_lora_weights.safetensors OVERLAP_CLEAN=1 OVERLAP_MASK=1 NUM_FRAMES=129 bash scripts/auto_ego/run.sh <영상> [이름]