CoolFace
Modelpublic

hmkang/wam_wan22_dit4dit_robocasa300_hwabl_8latin

sourceHugging Faceupdated 1mo agoView on Hugging Face
0likes
Model Card

wamwan22dit4ditrobocasa300hwabl_8latin

Video-only continuation of huiwon's 4knob-A recipe, run as a history-length ablation: how much does the clean-latent context length matter?

backboneWan2.2-TI2V-5B (wan22_diffusers)
context8 latent slots (29 stride-2 pixel frames, 768 tokens)
prediction2 latent slots (192 tokens)
num_frames_in / num_frames_out57 / 73
training_modevideo
block-causalno
global batch64 (8 GPU x per-device 8 x GA 1)
scheduleWAN_FM_TRAIN_SHIFT=5.0, bell time weighting, wd 0.01, lr 1e-4, min-lr ratio 0.01
othercaption dropout 0.1, image aug, zero text pad, video EMA (warmup) saved

Every checkpoint carries both the live weights (backbone.extractor.transformer.*) and the EMA copy (backbone.extractor._video_ema_model.*, 825 tensors). All numbers below are measured on the EMA weights.

Sibling arms

The arms share every setting except the context length, so they are directly comparable at equal step count. Note that 6latin reaches the same global batch 64 with 4 GPUs x GA 2 instead of 8 GPUs x GA 1.

armcontext`num_frames_in`/`out`cond pixel framescond tokens
hwhist5 (2latin base)2 latent9 / 255192
hwabl_3latin3 latent17 / 339288
hwabl_4latin4 latent25 / 4113384
hwabl_6latin6 latent41 / 5721576
hwabl_8latin8 latent57 / 7329768

2latin is huiwon's original run, not one of these arms: it trains with training_mode: joint rather than video. It is included as the starting point of the ladder, not as a like-for-like fifth arm. A 5-latent arm was also trained under the same recipe but stopped before 100k steps, so it is not part of this comparison.

Video metrics (1-step, N=2048 robocasa val windows, EMA)

checkpointPSNRSSIMLPIPSFVD
checkpoint-2000020.8810.75180.2430139.19
checkpoint-4000021.1960.75770.2302126.99
checkpoint-6000021.4740.76360.2159115.32
checkpoint-8000021.7260.76860.199699.96
checkpoint-10000021.8230.77180.187188.34

Reference, same protocol: the 2-latent base run scores 20.772 / 0.7461 / 0.2458 / 142.56 at 20k and 21.513 / 0.7628 / 0.1968 / 94.48 at 100k.

Attentive probing (frozen features, 15-way primitive classification)

A single attentive-probe head is trained on frozen features from the checkpoint (condition = step1, N = 20,964 validation samples, 5 epochs, best epoch reported).

checkpointbest epochaccuracymacro recall
checkpoint-20000e30.67810.5891
checkpoint-40000e30.70570.6206
checkpoint-60000e30.71690.6361
checkpoint-80000e30.72760.6493
checkpoint-100000e30.73180.6471

Cross-arm comparison

FVD (lower is better) and probing accuracy (higher is better) at equal step count. * marks a probing run that has not finished its 5 epochs yet.

step2latin FVD3latin FVD4latin FVD6latin FVD8latin FVD2latin acc3latin acc4latin acc6latin acc8latin acc
20k—139.06140.45138.89139.19—0.67220.66810.68060.6781
40k—126.94126.97126.88126.99—0.68860.69010.70230.7057
60k—114.90114.10115.13115.32—0.70840.70690.71620.7169
80k—102.0897.5599.5399.96—0.71520.72540.72480.7276
100k—89.6086.26—88.34—0.72370.7282—0.7318

The two metrics disagree, consistently. On probing, the longer-context arms lead at every step that has been measured - 8latin is best at 40k, 60k, 80k and 100k, 6latin at 20k - and the gap over 3latin/4latin is roughly 1 to 1.5 points throughout. On FVD the same arms do not win: at 20k-60k all four sit within about 1 point of each other (40k spans 126.88-126.99, a 0.11 range), and once FVD does spread at 80k and 100k it is 4latin that leads, with 8latin second and 3latin last - no monotone relation to context length.

So a longer clean-latent context buys representation quality that a frozen probe can read out, without buying 1-step generation quality on this val set. Read probing and FVD as answers to different questions rather than as two views of the same ranking.

Machine-readable copies of every number above, for all four arms, are in `metrics/eval_metrics.json`.

Provenance and caveats

Derived from huiwon/wam_wan22_dit4dit_robocasa300_b64_4knobA_hist5 (run isaac_wan22_joint_b64_4knobA_plus_hist5in_emasaveW_actemaW_tdrop01_pd8ga1, 2 latent context). These arms are not a reproduction of it - the one deliberate change is training_mode: joint -> video, since the action flow-matching loss never reaches the video DiT in either mode. Everything else in the recipe is carried over unchanged.

Note when comparing against that base run at equal step count: these arms train at global batch 64 from step 0, so 100k steps here is 6.4M samples.

Optimizer state is not included - these are inference/eval checkpoints.