Commit Graph
1207 Commits
Author SHA1 Message Date
Aryan Kumar 98be07412e [misc]: regenerate env docs for NVFP4 FA4 Q/K transform and BF16 block variables 2026-11-01 03:58:50 -08:00
Aryan Kumar 47bb2539f8 [feat]: NVFP4 FA4 deploy path applies exact Q/K preconditioning and per-block BF16 attention opt-out 2026-11-01 02:22:35 -08:00
Aryan Kumar 3d4f02673d [feat]: exact smooth-K / Hadamard Q/K preconditioning and BF16 blocks for dense FP4 attention QAD 2026-11-01 01:51:08 -07:00
Aryan Kumar 90be006f7e [misc]: FP4 attention probe skips CUDA-graph capture and always writes its report 2026-11-01 01:41:43 -07:00
Aryan Kumar fdabeffc68 [feat]: --nvfp4-dit loads packed NVFP4 Pika H3 Flex DiT exports 2026-11-01 01:35:56 -07:00
Aryan Kumar 53f4ed0a77 [misc]: probe exact Q/K transforms for Pika H3 Flex FP4 attention 2026-11-01 01:30:33 -07:00
Aryan Kumar ffaafb255a [bugfix]: dense FP4 attention QAD also covers the SDPA fallback of FLASH_ATTN 2026-10-31 23:08:28 -07:00
Aryan Kumar 72f4928065 [feat]: dense FP4 attention QAD for Pika H3 Flex (FA4 NVFP4 Q/K numerics)
fp4_dense_qat routes FlashAttention layers through the FP4 training kernel with every
key block listed (Q/K NVFP4, P and V BF16, straight-through gradients), matching the
FlashAttention-4 NVFP4 deployment; qad.fp4_attention enables it in the Flex profile.
check_fp4_attention_parity.py compares it with the real FA4 NVFP4 kernel on a GPU.
2026-10-31 21:26:55 -07:00
Aryan Kumar 300a5b1e5c [feat]: load Pika H3 Flex checkpoints whose trunk already contains the adapter
A pika_h3_flex_merged.json marker (e.g. in an NVFP4 QAD export, where the adapter is
merged before quantization) makes the Pika pipeline load the trunk as is instead of
applying the released adapter a second time.
2026-10-31 16:12:29 -07:00
Aryan Kumar 4d06f795dc [feat]: Pika H3 Flex FL2VA QAD data path (T2VA / I2VA / L2VA / FL2VA keyframe rows)
The FL2VA profile reads keyframe-anchor rows (build_packed_sequence anchors, noised
like inference); the coverage builder's --mode fl2va makes them from the v4 rows'
exact first/last frames re-encoded at the canvas size with the FL2VA Qwen3-VL
presentation; the keyframe-fidelity guard covers the FL2VA tasks.
2026-10-31 11:04:04 -07:00
Aryan Kumar e6979289ca [misc]: Pika H3 Flex Ref2VA QAD run kit, pinned calibration table, final recipe config 2026-10-30 13:57:47 -07:00
Aryan Kumar 72424d0692 [bugfix]: FASTVIDEO_PG_TIMEOUT_MIN sets the training process-group timeout
Multi-node FastH3/Flex QAD runs outlast the default 10-minute collective timeout
while rank 0 loads and scatters the teacher and student; the OmniRef QAD carried
this as an uncommitted patch.
2026-10-30 11:07:19 -07:00
Aryan Kumar 5bc3c0902d [feat]: optional Theseus warm-up for the FastH3 QAD method
theseus_steps > 0 trains teacher-forced segment reconstruction first, widening
from single blocks to the whole stack (JustQuant, arXiv:2609.33601), then hands off
to the configured objective.
2026-10-30 01:15:45 -07:00
Aryan Kumar c96df0af5f [bugfix]: balance Flex calibration shards across resolutions 2026-10-29 23:45:56 -07:00
Aryan Kumar 13d21947b3 [bugfix]: decode Flex coverage references tiled; retry skipped rows 2026-10-29 23:15:04 -07:00
Aryan Kumar 0955c3d1f1 [feat]: build Flex coverage rows from stored v4 latents (no source media)
Decode each reference from its stored latents with the H3 VAE / audio VAE, then
prepare and re-encode it at Flex's tier sizing; compose the new cases from rows of
the same asset.
2026-10-29 22:24:38 -07:00
Aryan Kumar a224c577b0 [feat]: Pika H3 Flex Ref2VA coverage rows from the OmniRef v4 sources
Re-encode references and Qwen3-VL conditioning with Flex's tier sizing (1024 short edge
below 768p) and add audio-reference, mixed image+video, 6-9 image and two-video rows,
reusing the v4 target latents.
2026-10-29 22:13:55 -07:00
Aryan Kumar af8750a879 [feat]: Pika H3 Flex NVFP4 FFN calibration (collect, candidates, MSE, choose)
Port the FastH3 OmniRef static-scale calibration onto the Flex QAD harness: per-row
FFN input amax on the teacher's six-forward trajectory, clip candidates, deployed
NVFP4 GEMM output error per candidate, and the per-layer MSE-optimal table.
2026-10-29 21:27:49 -07:00
Aryan Kumar 69a746c4ce [feat]: Pika H3 Flex NVFP4 QAD profile (Ref2VA + FL2VA, six-forward re-noise ladder)
Add MiniMaxH3FlexRef2VAModel / MiniMaxH3FlexFL2VAModel for OmniRefPDDQADMethod:
dense attention, Pika's shifted 1000..40 ladder, re-noise steps whose noise is a
function of (row seed, forward, modality), NVFP4 linears only. Add an offline
fp32 adapter merge script and QAD configs for both adapters. Let model profiles
pick their attention backend and receive the prepared row in schedulers().
2026-10-29 19:12:47 -07:00
Aryan Kumar b25ec2ffbd [misc]: merge #1989 FastH3 QAD recipe onto #2038 Pika H3 Flex
Resolve the FP4 attention kernel and backend conflicts with main's #1980 versions
(re-adding install_fp4_vsa_attention), keep main's FP32 FSDP grouping, and keep both
save_inference and save_tagged in the checkpointer.
2026-10-29 19:04:10 -07:00
Aryan Kumar ec00e035db [docs]: add Pika H3 Flex to the cookbook
Three source recipes (T2VA, keyframes, Ref2VA) on one model page under
MiniMax H3, with knobs for task, resolution tier, aspect bucket,
duration, NVFP4 decoder and text encoder, offload mode, and GPU count.
The page uses the official Pika-Labs Hugging Face avatar.
2026-10-29 18:51:52 -07:00
Aryan Kumar f7e6c9750f [docs]: document FA4, bucket, duration, and offload choices for Pika H3 Flex
The runbook now gives the FASTVIDEO_ATTENTION_BACKEND=FLASH_ATTN
FASTVIDEO_FA4=1 launch prefix and the SDPA fallback, the tier override,
and measured GB200 timings and memory. The example selects the bucket
with --resolution/--aspect, the frame count with --duration, and
--offload resident|lazy.
2026-10-29 18:51:52 -07:00
Aryan Kumar 6e2cd716f0 [misc]: summarize wrapped layers an adapter has no weights for
An adapter that trains a subset of the wrapped linears (Pika skips the
AdaLN projections) logged one warning per layer, about 200 per run.
Log one summary with the count and a few names.
2026-10-29 18:51:52 -07:00
Aryan Kumar c36105ae56 [docs]: classify the Pika H3 Flex pipeline config fields 2026-10-29 18:51:52 -07:00
Aryan Kumar fd9f06654e [bugfix]: apply pika_resolution_tier when a request omits its size
The sampling param and presets fill 768x1344 before input preparation, so
an exact p768 bucket always won and the configured tier never applied.
Resolve the omitted canvas in apply_request_constraints, where explicit
request fields are still distinguishable; explicit sizes keep their tier
and one-sided sizes are rejected.
2026-10-29 18:51:52 -07:00
Aryan Kumar 1168003d1f [bugfix]: keep released lazy modules released when an adapter attaches
Applying the automatic Pika adapter inside the transformer's lazy load ran
_drop_pinned_host_copies, which read __dict__ through every LazyModule
proxy and reloaded the already-released text encoder and both VAEs.
Skip unmaterialized proxies and clear the real module of resident ones.
2026-10-29 18:51:52 -07:00
aryan5v 62fc354824 [feat]: wire NVFP4 decoder and text encoder into Pika H3 Flex
Expose the exported H3 NVFP4 VAE decoder through ComponentConfig and map it to FastVideoArgs, alongside the existing text-encoder weight override. Add example flags and docs for the 36L quality and 8L fast decoder tiers, including the 8L depth-cut and no-NVFP4-VAE-encoder caveats. Add compat translation tests.
2026-10-29 17:53:58 -07:00
Aryan Kumar a9b3e7a5fc [bugfix]: don't reload a lazy module from inside its own materialize transform
The constructor LoRA adapter (Pika H3 Flex's released adapter) reads
param_names_mapping through the LazyModule proxy while the materialize
transform is still running. Nothing was published yet, so the access
re-entered materialize and reloaded the 66 GB transformer repeatedly,
ending in CUDA OOM with lazy_module_load=True (the example default).
Publish the loaded instance before running the transform.
2026-10-29 17:37:52 -07:00
aryan5v b69b52b938 [bugfix]: fix Pika H3 Flex example inputs and docs
Remove the unsupported pipeline.preset selection from the example; the compatibility adapter rejects it before model loading. Load the last image as a PIL image because the request adapter does not do it for the stage. Document that the local Ref2VA path enforces reference counts and the 22-frame video floor, but not Pika's hosted per-clip/per-modality duration caps.
2026-10-29 17:37:52 -07:00
aryan5v dcbaed504f [feat]: add Pika H3 Flex inference support
Add Pika H3 Flex (MiniMax-H3 plus the released fl2va/ref2va rank-128 adapters) as a FastVideo model family: registry/config/presets, bucket geometry with tiered reference sizing, automatic adapter selection and manifest validation, the fixed six-forward re-noise sampler, T2VA/I2VA/L2VA/FL2VA/Ref2VA pipeline support, an example, docs, and CPU unit tests.

GPU end-to-end validation is still pending. This change does not add PDD, VSA, or new kernel paths.
2026-10-29 17:37:52 -07:00
Aryan Kumar 7203b4976e [bugfix]: compile only the LoRA delta, not the wrapped base layer
BaseLayerWithLoRA.forward was decorated with torch.compile, so wrapping a linear also compiled its base layer.
Compiling a packed NVFP4/FP8 linear on its own changes its numerics, so a wrapped layer at strength 0 could differ
from the unwrapped layer. forward now adds no compiled region: the base layer runs exactly as it would unwrapped
(eagerly, or traced with a caller's compiled block), and only the adapter delta is compiled.
2026-10-28 14:49:15 -07:00
Aryan Kumar 6bb444eef1 [bugfix]: run the base layer while a LoRA wrapper has no adapter 2026-10-28 14:49:15 -07:00
Aryan Kumar 6743f4b4b7 Revert "[new-model] Add PAN2 text-to-video and image-to-video" (#2025) 2026-10-27 18:03:59 -07:00
465654d900 [bugfix] Reject missing CFG negative conditioning during input validation (#2011)
Co-authored-by: Weiers <16632241+zoechen1212@user.noreply.gitee.com>
Co-authored-by: Aryan Kumar <156166681+aryan5v@users.noreply.github.com>
Co-authored-by: aryan5v <aryan5v@users.noreply.github.com>
2026-10-27 08:45:21 +00:00
69b3829293 [bugfix] Normalize local and HF-cache model paths before registry lookup (#1997)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Aryan Kumar <156166681+aryan5v@users.noreply.github.com>
2026-10-27 07:47:20 +00:00
William Linandaryan5v a0e6cf1f50 [new-model] Add PAN2 text-to-video and image-to-video (#1961)
Co-authored-by: aryan5v <email.aryan1005@gmail.com>
2026-10-25 20:20:00 -07:00
Loay RashidandAryan Kumar 0d05b09c57 [new-model] Add initial Qwen-Image-2.1 inference (#1918)
Co-authored-by: Aryan Kumar <156166681+aryan5v@users.noreply.github.com>
2026-10-25 17:28:49 +00:00
Kyle HuandAryan Kumar a92c5c1578 [docs]: add spark4 CI backend routing (#2014)
Co-authored-by: Aryan Kumar <aryank@Aryans-Mac-Studio.local>
2026-10-24 16:29:44 -07:00
Aryan KumarandAryan Kumar dfc5550c35 [ci] Add FA2-enabled Spark CI image and GB10 reference setup (#2017)
Co-authored-by: Aryan Kumar <aryank@Aryans-Mac-Studio.local>
2026-10-24 16:16:25 -07:00
posiposi443-opsandAryan Kumar 8db2d71ef2 [perf] Cache MLX H3 text refinement and speed up attention (#2002)
Co-authored-by: Aryan Kumar <aryan5v@users.noreply.github.com>
2026-10-23 12:40:47 -07:00
Aryan Kumar 1a1e7216d2 [ci]: Run macOS MLX smoke when a draft PR is marked ready 2026-10-23 12:01:17 -07:00
Aryan Kumar 33bdd2528b [ci]: Require macOS MLX smoke for PRs that touch MLX code 2026-10-23 12:01:17 -07:00
Aryan Kumar 9bbdd18548 [ci]: Fix env-policy and schema-parity contract tests
The unit lane fails on main in two contract tests. All three failures are
bookkeeping that drifted from the code, not runtime bugs:

- `test_env_policy.py::test_env_doc_table_matches_registry`: the generated
  table in docs/contributing/env_vars.md is stale for
  FASTVIDEO_MLX_QUANT_GEMM. Regenerated with the documented command
  (`python fastvideo/tests/contract/test_env_policy.py`).
- `test_env_policy.py::test_env_access_follows_policy`: two new violations.
  - fastvideo/tests/mlx/test_mlx_affine_dq_gemm.py wrote
    FASTVIDEO_MLX_QUANT_GEMM through monkeypatch.setenv; now uses the
    registered field's override() through the env_overrides fixture.
  - fastvideo/tests/train/models/test_load_kandinsky5.py read
    FASTVIDEO_ATTENTION_BACKEND with `not in os.environ`; now uses
    envs.FASTVIDEO_ATTENTION_BACKEND.is_set() and override(). Its entry in
    KNOWN_VIOLATIONS is deleted, as the shrinking-list rule requires.
- `test_schema_parity_inventory.py::..._extension_fields_are_classified`:
  MiniMaxH3PipelineConfig declares video_scheduler_shift and
  audio_scheduler_shift (training-time noise clocks rejected by
  check_pipeline_config at inference); both are added to
  pipeline_config_extensions.internal_only.

Test plan (CPU, no GPU required):

  python -m pytest fastvideo/tests/contract/test_env_policy.py \
      fastvideo/tests/api/test_schema_parity_inventory.py \
      fastvideo/tests/mlx/test_mlx_affine_dq_gemm.py -q
  # 45 passed

  python -m pytest fastvideo/tests/contract/ fastvideo/tests/api/ -q -m "not gpu"
  # 501 passed
2026-10-23 11:08:37 -07:00
Aryan KumarandAryan Kumar 7c2b447264 [ci] Run single-GPU CI lanes on a DGX Spark runner; weekly full suite on main (#2007)
Co-authored-by: Aryan Kumar <aryan5v@users.noreply.github.com>
2026-10-22 13:44:55 -07:00
William Lin e136c2b7f8 [infra]: fix the DGX Spark (GB10) Docker image: importable flashinfer, sm_121a kernels, native-matching output (#1986) 2026-10-22 11:59:31 -07:00
Aryan KumarandAryan Kumar fa2d1324c6 [feat]: FastH3 Omni (Ref2VA) on Apple Silicon MLX (#2000)
Co-authored-by: Aryan Kumar <aryan5v@users.noreply.github.com>
2026-10-21 12:01:54 -07:00
William Lin cdda1b7535 [feat] Add H3 PDD/DMPDD training and packed Ref2VA preprocessing (#1984) 2026-10-20 11:15:57 -07:00
Aryan KumarandAryan Kumar 089a5a55a0 [feat] Cookbook serving, hardware catalog, and landing page (#1999)
Co-authored-by: Aryan Kumar <aryan5v@users.noreply.github.com>
2026-10-20 09:10:29 -07:00
Aryan Kumar 137d9110ca [docs] Make cookbook copy actions explicit and hardware opt-in (#1992) 2026-10-20 09:00:56 -07:00
d4f144581d [feat] Add capacity metadata to existing cookbook model manifests (#1983)
Co-authored-by: leo <yixingwang@YIXINGs-MacBook-Pro.local>
Co-authored-by: aryan5v <email.aryan1005@gmail.com>
Co-authored-by: Aryan Kumar <aryan5v@users.noreply.github.com>
2026-10-20 08:24:19 +00:00