Files

LingBot World 2 Local Tests

Local-only smoke, conversion, and generated-output parity notes for the lingbotworld2 causal-fast FastVideo port.

Reference Assets

Field Value
Model family lingbotworld2
First scope robbyant/lingbot-world-v2-14b-causal-fast, I2V causal-fast inference
Workload types I2V: text + first image + camera/action path to video
Official reference /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2
HF weights robbyant/lingbot-world-v2-14b-causal-fast
Raw weights /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/ckpts/lingbot-world-v2-14b-causal-fast
FastVideo bundle /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/ckpts/lingbot-world-v2-14b-causal-fast-fastvideo
Source layout raw_official
Needs conversion yes
Token env var none recorded

Do not write token values in this file.

Shared Environment Setup

Use the existing venv and do not rebuild FlashAttention:

/mnt/weka/shrd/wm/junda/fv-hub/.venv/bin/pip install -r /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/requirements.txt
/mnt/weka/shrd/wm/junda/fv-hub/.venv/bin/pip install --no-deps -e /mnt/weka/shrd/wm/junda/fv-hub/fastvideo-port-lingbot

The current environment already has the FastVideo editable install pointing at:

/mnt/weka/shrd/wm/junda/fv-hub/fastvideo-port-lingbot

Runtime cache and temporary paths used by the matrix scripts:

/mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/.cache

Conversion

The converter writes a FastVideo-loadable bundle with native component configs, the exact LingBot World 2 Wan VAE checkpoint, and symlinked raw LingBot World 2 transformer/T5 assets:

cd /mnt/weka/shrd/wm/junda/fv-hub/fastvideo-port-lingbot
/mnt/weka/shrd/wm/junda/fv-hub/.venv/bin/python scripts/checkpoint_conversion/convert_lingbotworld2_causal_fast.py \
  --source-dir /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/ckpts/lingbot-world-v2-14b-causal-fast \
  --output-dir /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/ckpts/lingbot-world-v2-14b-causal-fast-fastvideo

Strict-load checks already run locally:

Component Status Notes
VAE pass LingBotWorld2WanVAE loads the original Wan2.1_VAE.pth checkpoint.
Text encoder pass Native LingBotWorld2T5EncoderModel strict-load from symlinked .pt.
Transformer pass Full 14B load and 8-GPU causal-fast generation pass.

Official Frame-Count Constraint

The requested verification frame counts are 5, 9, 17, 33, 65. The official causal-fast source uses default chunk_size=4, then truncates latent frames to a multiple of the chunk size. This makes 5 and 9 source-impossible and changes the generated frame counts for the remaining values.

Requested frames Official effective frames Status
5 -3 official source fails
9 -3 official source fails
17 13 runs with truncated output
33 29 runs with truncated output
65 61 runs with truncated output

Evidence: /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/wan/image2video.py rounds frame_num to 4n+1, computes latent frames, truncates lat_f by chunk_size, and resets F = (lat_f - 1) * 4 + 1.

Local Tests

cd /mnt/weka/shrd/wm/junda/fv-hub/fastvideo-port-lingbot
/mnt/weka/shrd/wm/junda/fv-hub/.venv/bin/python -m pytest \
  tests/local_tests/lingbotworld2/test_lingbotworld2_causal_fast_preflight.py \
  tests/local_tests/pipelines/test_lingbotworld2_causal_fast_pipeline_smoke.py \
  tests/local_tests/pipelines/test_lingbotworld2_causal_fast_pipeline_parity.py \
  -q -rs

Current result:

2026-07-10: 5 passed, 1 skipped.
Skipped test: opt-in 14B heavy smoke gated by LINGBOTWORLD2_RUN_HEAVY_SMOKE=1.

Heavy smoke is opt-in because it loads the 14B model:

cd /mnt/weka/shrd/wm/junda/fv-hub/fastvideo-port-lingbot
LINGBOTWORLD2_RUN_HEAVY_SMOKE=1 /mnt/weka/shrd/wm/junda/fv-hub/.venv/bin/python -m pytest \
  tests/local_tests/pipelines/test_lingbotworld2_causal_fast_pipeline_smoke.py \
  -q -rs

Current heavy result:

2026-07-10: 2 passed in 3:15 on 8 H200 GPUs.

Matrix Verification

Reference generation:

/mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/scripts/run_reference_matrix.sh

FastVideo generation:

/mnt/weka/shrd/wm/junda/fv-hub/.venv/bin/python \
  /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/scripts/run_fastvideo_matrix.py

Decoded-frame comparison:

/mnt/weka/shrd/wm/junda/fv-hub/.venv/bin/python \
  /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/scripts/compare_matrix_outputs.py

Current comparison result:

2026-07-09: all 9 official-supported FastVideo videos are exactly equal to the
reference videos after decoded-frame comparison: max abs 0, mean abs 0.0.
The requested 5-frame and 9-frame cases are recorded as official_unsupported for
both reference and FastVideo.

Expected output roots:

Output type Path
Reference /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/outputs/reference
FastVideo /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/outputs/fastvideo
Verification /mnt/weka/shrd/wm/junda/fv-hub/lingbot-world-v2/outputs/verification

Generated-output parity test:

cd /mnt/weka/shrd/wm/junda/fv-hub/fastvideo-port-lingbot
/mnt/weka/shrd/wm/junda/fv-hub/.venv/bin/python -m pytest \
  tests/local_tests/pipelines/test_lingbotworld2_causal_fast_pipeline_parity.py \
  -q -rs