Index
2026-05-19 — Engineering

I2V A14B 추론 스크립트 + seen/unseen 검증 경로

EgoX2 exp3 | Wan 2.2 I2V A14B robocasa 2x2 grid

TL;DR

2
파일 변경
0
trainer 변경
6600
최신 HCPT ckpt
미실행
디퓨전 smoke

1 배경 / 목적

robocasa Wan 2.2 I2V A14B (2x2 grid, native first-frame, dual-expert MoE)는 학습·실험까지 완료됐으나 추론 전용 경로가 없었다.

기존 한계: infer.py --task wan-i2v는 옛 EgoX exo→ego width-concat 파이프라인(WanWidthConcatImageToVideoPipeline)으로 이번 학습 모델과 무관. robocasa 추론은 T2V frame-0-clamp 경로만 존재, i2v용 launcher도 없음. 또한 학습 중 validation은 split_json val_demos(unseen)만 봐서 모델이 본 데이터(seen)를 얼마나 재현하는지(overfit/underfit) 확인 불가.

2 작업 내용

독립 추론 스크립트만 추가(학습 루프 무손상) — 사용자 결정. _main_wan_t2v_robocasa를 1:1 미러링, 파이프라인만 교체.

infer.py (추가만) + _main_wan_i2v_robocasa(args) WanRobocasaI2VPipeline (transformer + transformer_2 + boundary_ratio, CLIP 없음) transformer_2 LoRA = pytorch_lora_weights_transformer_2.safetensors transformer_2 / 그 LoRA 부재 → FileNotFoundError (조용한 오답 방지) 출력 스키마 = t2v robocasa 추론과 동일 (gt_vs_pred.mp4 / pred_view{1,2}.pt / norm.json / prompt.txt) + --robocasa_split_json, --robocasa_demo_split {val,train} split_json → {hdf5_path: train|val_demos} demo_ids_override → scan_robocasa_episodes 키 = str(path.resolve()) (dataset/training과 동일 매칭) + main() 디스패치 + parser.error(--robocasa_hdf5 필수) + --task choices 확장 scripts/run_robocasa_i2v_infer.sh (신규, run_robocasa_t2v_infer.sh 패턴) MODEL=Wan2.2-I2V-A14B-Diffusers TRAIN_OUTPUT_DIR=./results/Robocasa_I2V_A14B (최신 ckpt 자동) HEIGHT=224 EXO/EGO=384 NUM_FRAMES=81 BOUNDARY_RATIO=0.875 LORA_RANK=64 DEMO_SPLIT={val,train} OUT_DIR 자동 태깅 // #SBATCH 없음(추론) — 로그인 timeout 5400 / 대량 sbm. rgbonly override 지원
정합성 핵심: trainer i2v validation이 height=train_height(224), width=train_width(768), num_frames=81로 동일 공유 헬퍼/pipe를 호출 → infer가 같은 인자를 쓰면 학습 분포와 정확히 일치. validation half-resolution 트레이드오프는 기존과 동일하게 유지(범위 밖).

3 결과

검증 항목방법결과
infer.py 구문python -m py_compileOK
launcher 구문bash -n + chmod +xOK
argparse 통합egoxv2 env 실행task 인식 / parser.error 정상 / 신규 플래그 노출
모듈 importtorch / core.* top importOK (egoxv2)
전제 산출물ckpt / split JSON존재 — 즉시 실행 가능
실제 디퓨전 생성81f×50step×A14B미실행 (GPU 비용, 사용자 위임)
핵심 발견: HCPT checkpoint-6600pytorch_lora_weights.safetensors(838,937,952 B) + pytorch_lora_weights_transformer_2.safetensors(838,930,240 B) 둘 다 존재 → dual-expert LoRA 로드 코드 경로와 정확히 일치. RGB-only checkpoint-38600, robocasa_split.json(1,462,686 B)도 확인.
미완: 실제 mp4 생성·GT/Pred 정렬 눈검증은 미실행. 검증 가능한 모든 정적 레이어는 통과했으나 end-to-end 디퓨전 출력 확인은 다음 단계.

4 Takeaway

의미

학습 완료된 I2V A14B 체크포인트를 학습과 동일 분포로 오프라인 추론 가능해짐. DEMO_SPLIT 토글 하나로 unseen(일반화) vs seen(재현/overfit 진단)을 분리 평가 — 학습 루프 비용 0, trainer 무손상. T2V/I2V 추론이 동일 출력 스키마라 기존 PT 시각화·평가 파이프라인을 그대로 재사용한다.

5 Next Steps

추론 smoke (다음 즉시)

DEMO_SPLIT=train / val 각 1–2 샘플, NUM_INFERENCE_STEPS=10 로그인 timeout 5400 스모크로 mp4 생성·GT/Pred 정렬 눈검증. 본격 다수 샘플은 sbm(1 GPU).

미해결 한계

validation half-resolution(H_lat 224 기반) 트레이드오프는 그대로 — 별도 plan 우선순위 낮음. seen vs unseen PSNR/PT-거리 정량 비교는 아직 스크립트화 안 됨(현재 mp4 정성 비교 + raw .pt 저장까지).