diff --git a/docs/assets/cookbook-recipes.json b/docs/assets/cookbook-recipes.json index d146b0522..11784e087 100644 --- a/docs/assets/cookbook-recipes.json +++ b/docs/assets/cookbook-recipes.json @@ -1,5 +1,5 @@ { - "version": 6, + "version": 7, "recipes": [ { "id": "fastwan21-t2v", @@ -437,6 +437,9 @@ "evidence": "Source-backed", "expected_artifact": "MP4 with synchronized audio at outputs/minimax_h3_t2v/minimax_h3_t2v.mp4", "modes": ["T2VA"], + "knobs": [ + {"key": "num_gpus", "label": "GPUs", "hint": "Sequence-parallel degree", "flag": "--num-gpus", "options": [1, 2, 4, 8], "default": 4} + ], "limitations": ["The checked-in example defaults to four-way sequence parallelism. It does not record a GPU model or memory requirement."] }, { @@ -467,6 +470,10 @@ "evidence": "Verified", "expected_artifact": "Warmup and measured MP4 files under outputs/fasth3/", "modes": ["T2VA", "4-step FastH3"], + "knobs": [ + {"key": "num_gpus", "label": "GPUs", "hint": "Sequence-parallel degree", "flag": "--num-gpus", "options": [1, 2, 4, 8], "default": 4}, + {"key": "video_decode_backend", "label": "VAE decode", "hint": "Fidelity vs. speed", "flag": "--video-decode-backend", "options": [{"value": "h3-vae", "label": "Full H3 VAE"}, {"value": "taeh3", "label": "TAEH3 preview"}], "default": "h3-vae"} + ], "limitations": ["The default all profile is the measured GB200 performance route and can change floating-point operation order. Use --profile strict --no-inference-torch-compile for the eager strict route."] }, { @@ -499,6 +506,9 @@ "evidence": "Verified", "expected_artifact": "MP4 with H.264 video and stereo AAC audio at outputs/fasth3_int6.mp4", "modes": ["T2VA", "temporal --fast", "spatial --fast-spatial", "opt-in VSA"], + "knobs": [ + {"key": "video_decode_backend", "label": "VAE decode", "hint": "Fidelity vs. speed", "flag": "--video-decode-backend", "options": [{"value": "h3-vae", "label": "Full H3 VAE"}, {"value": "taeh3", "label": "TAEH3 preview"}], "default": "h3-vae"} + ], "limitations": [ "The MLX path supports T2VA, optional temporal --fast, optional spatial --fast-spatial, and opt-in VSA on --include-vsa checkpoints. FL2VA, Ref2VA, and two-pass refinement are not wired." ] @@ -518,6 +528,9 @@ "evidence": "Source-backed", "expected_artifact": "MP4 with synchronized audio at outputs/minimax_h3_fl2va/minimax_h3_fl2va.mp4", "modes": ["FL2VA"], + "knobs": [ + {"key": "num_gpus", "label": "GPUs", "hint": "Sequence-parallel degree", "flag": "--num-gpus", "options": [1, 2, 4, 8], "default": 4} + ], "limitations": ["Pass --last-image to constrain the final frame. The checked-in source defaults to four GPUs."] }, { @@ -535,6 +548,9 @@ "evidence": "Source-backed", "expected_artifact": "MP4 with synchronized audio at outputs/minimax_h3_ref2va/minimax_h3_ref2va.mp4", "modes": ["Ref2VA"], + "knobs": [ + {"key": "num_gpus", "label": "GPUs", "hint": "Sequence-parallel degree", "flag": "--num-gpus", "options": [1, 2, 4, 8], "default": 4} + ], "limitations": ["Pass --reference-audio for an additional audio reference. The checked-in source defaults to four GPUs."] }, { @@ -558,6 +574,10 @@ "evidence": "Verified", "expected_artifact": "Warmup and measured MP4 files under outputs/fasth3_lora_preview/", "modes": ["T2VA", "FastH3 LoRA"], + "knobs": [ + {"key": "num_gpus", "label": "GPUs", "hint": "Sequence-parallel degree", "flag": "--num-gpus", "options": [1, 2, 4, 8], "default": 4}, + {"key": "video_decode_backend", "label": "VAE decode", "hint": "Fidelity vs. speed", "flag": "--video-decode-backend", "options": [{"value": "h3-vae", "label": "Full H3 VAE"}, {"value": "taeh3", "label": "TAEH3 preview"}], "default": "h3-vae"} + ], "limitations": ["Supply a compatible FastH3 adapter. The script infers dense or VSA attention from the adapter payload unless you override it."] }, { diff --git a/docs/assets/cookbook.js b/docs/assets/cookbook.js index 26d150ec8..65e80f95f 100644 --- a/docs/assets/cookbook.js +++ b/docs/assets/cookbook.js @@ -94,6 +94,31 @@ return `${count} GPU${count === 1 ? "" : "s"}`; }; + const knobsFor = (recipe) => recipe.knobs || []; + + const knobOptions = (knob) => + knob.options.map((option) => + option !== null && typeof option === "object" ? option : { value: option, label: String(option) }, + ); + + const knobDefaultLabel = (knob) => { + const match = knobOptions(knob).find((option) => option.value === knob.default); + return match ? match.label : String(knob.default); + }; + + // Knob flags are always shown explicitly in the displayed command, even at + // their default value, so the command stays copy-pasteable and precise + // about what it runs -- not just "trust the script's own default". + const appendKnobFlags = (commandText, knobs, knobValues) => { + const flags = knobs + .filter((knob) => knobValues[knob.key] !== undefined) + .map((knob) => `${knob.flag} ${knobValues[knob.key]}`); + if (!flags.length) return commandText; + const lines = commandText.split("\n"); + lines[lines.length - 1] = `${lines[lines.length - 1]} ${flags.join(" ")}`; + return lines.join("\n"); + }; + const runtimeFor = (recipe) => { const platform = recipe.hardware?.platform || "cuda"; if (platform === "mlx") { @@ -223,6 +248,7 @@ const servingPanel = root.querySelector("[data-cookbook-serving]"); const usage = root.querySelector("[data-cookbook-usage]"); const servingAvailability = root.querySelector("[data-cookbook-serving-availability]"); + const knobsContainer = root.querySelector("[data-cookbook-knobs]"); modelOptions.setAttribute("aria-label", "Recipe"); hardwareOptions.setAttribute("aria-label", "Runtime"); @@ -289,6 +315,63 @@ const clientDetails = servingPanel?.querySelector(".cookbook-serving__code"); if (clientDetails && query.has("client")) clientDetails.open = true; + const knobDefs = new Map(); + familyRecipes.forEach((recipe) => knobsFor(recipe).forEach((knob) => { + if (!knobDefs.has(knob.key)) knobDefs.set(knob.key, knob); + })); + const knobValues = {}; + knobDefs.forEach((knob, key) => { + const fromQuery = query.get(key); + const validValues = knobOptions(knob).map((option) => String(option.value)); + const useQueryValue = fromQuery !== null && validValues.includes(fromQuery); + const raw = useQueryValue ? fromQuery : knob.default; + knobValues[key] = typeof knob.default === "number" ? Number(raw) : raw; + }); + + const renderKnobs = (recipe, hidden) => { + if (!knobsContainer) return; + const knobs = knobsFor(recipe); + const renderedKeys = [...knobsContainer.querySelectorAll("[data-knob-row]")].map((row) => row.dataset.knobRow); + if (renderedKeys.join(",") !== knobs.map((knob) => knob.key).join(",")) { + knobsContainer.replaceChildren(); + knobs.forEach((knob) => { + const row = document.createElement("div"); + row.className = "cookbook-selection-row"; + row.dataset.knobRow = knob.key; + const labelWrap = document.createElement("div"); + labelWrap.className = "cookbook-selection-row__label"; + const strongLabel = document.createElement("strong"); + strongLabel.textContent = knob.label; + const hintLabel = document.createElement("span"); + hintLabel.textContent = knob.hint || ""; + labelWrap.append(strongLabel, hintLabel); + const grid = document.createElement("div"); + grid.className = "cookbook-option-grid cookbook-option-grid--hardware"; + grid.setAttribute("role", "group"); + grid.setAttribute("aria-label", knob.label); + knobOptions(knob).forEach((option) => { + const optionButton = document.createElement("button"); + optionButton.type = "button"; + optionButton.dataset.knobKey = knob.key; + optionButton.dataset.knobValue = String(option.value); + optionButton.setAttribute("aria-pressed", "false"); + const optionLabel = document.createElement("strong"); + optionLabel.textContent = option.label; + optionButton.append(optionLabel); + grid.append(optionButton); + }); + row.append(labelWrap, grid); + knobsContainer.append(row); + }); + } + knobsContainer.hidden = hidden || knobs.length === 0; + knobsContainer.querySelectorAll("button[data-knob-key]").forEach((optionButton) => { + const selected = String(knobValues[optionButton.dataset.knobKey]) === optionButton.dataset.knobValue; + optionButton.classList.toggle("cookbook-option--selected", selected); + optionButton.setAttribute("aria-pressed", String(selected)); + }); + }; + const renderRuntimeOptions = () => { const groupRecipes = groups.get(selectedGroupId) || []; const renderedIds = [...hardwareOptions.querySelectorAll("[data-recipe-id]")].map((option) => option.dataset.recipeId); @@ -340,6 +423,8 @@ const useServer = Boolean(profile && usagePreference === "server"); // The measured local profile and the server config have separate evidence. const activeRecipe = useServer ? { ...recipe, hardware: profile.hardware, evidence: "Source-backed" } : recipe; + const knobs = knobsFor(recipe); + renderKnobs(recipe, useServer); if (usage) { usage.querySelectorAll("[data-cookbook-mode]").forEach((option) => { @@ -418,17 +503,21 @@ source.href = `https://github.com/hao-ai-lab/FastVideo/blob/main/${useServer ? profile.source : recipe.source}`; source.textContent = useServer ? "View server configuration" : "Open example source"; modelLink.href = `https://huggingface.co/${recipe.model}`; - command.textContent = recipe.command; + command.textContent = useServer ? recipe.command : appendKnobFlags(recipe.command, knobs, knobValues); renderHardwareEvidence(hardwareState, hardwareBadge, activeRecipe); - const limitations = useServer ? [ + const knobCaveats = useServer ? [] : knobs + .filter((knob) => String(knobValues[knob.key]) !== String(knob.default)) + .map((knob) => `${knob.label} is set away from its recorded default (${knobDefaultLabel(knob)}). ` + + "The script accepts this value, but it has not been benchmarked here."); + const limitations = [...(useServer ? [ profile.runtime === "mlx" ? "This MLX server config has no recorded hardware run. Measurements from the Python recipe are not server memory requirements. Only text-to-video/audio is wired; reference inputs and fast modes are not exposed here." : "This server config has no recorded serving benchmark. Compilation is disabled, unlike the measured Python performance profile.", `${profile.sampling.width} × ${profile.sampling.height} · ${profile.sampling.num_frames} frames · ${profile.sampling.fps} fps. The server supplies these defaults; the client sends the model and prompt.`, "Generation is serialized. Job metadata is held in memory and is lost when the server restarts.", - ] : recipe.limitations || []; + ] : recipe.limitations || []), ...knobCaveats]; notes.replaceChildren(); notes.hidden = limitations.length === 0; if (limitations.length) { @@ -447,6 +536,10 @@ nextQuery.set("recipe", recipe.id); nextQuery.set("runtime", runtime.id); nextQuery.delete("gpus"); + knobDefs.forEach((knob, key) => { + if (knobs.some((activeKnob) => activeKnob.key === key)) nextQuery.set(key, String(knobValues[key])); + else nextQuery.delete(key); + }); if (usage) { nextQuery.set("use", useServer ? "server" : "python"); if (useServer && clientDetails?.open) nextQuery.set("client", selectedClient); @@ -484,6 +577,14 @@ selectedClient = option.dataset.cookbookClient; render({ historyMode: "push" }); }); + knobsContainer?.addEventListener("click", (event) => { + const option = event.target.closest("button[data-knob-key]"); + if (!option) return; + const knob = knobDefs.get(option.dataset.knobKey); + knobValues[option.dataset.knobKey] = typeof knob.default === "number" + ? Number(option.dataset.knobValue) : option.dataset.knobValue; + render({ historyMode: "push" }); + }); render(); @@ -496,6 +597,13 @@ usagePreference = workflow(nextQuery.get("use")); selectedClient = ["python", "javascript", "curl"].includes(nextQuery.get("client")) ? nextQuery.get("client") : "curl"; if (clientDetails) clientDetails.open = nextQuery.has("client"); + knobDefs.forEach((knob, key) => { + const fromQuery = nextQuery.get(key); + const validValues = knobOptions(knob).map((option) => String(option.value)); + if (fromQuery !== null && validValues.includes(fromQuery)) { + knobValues[key] = typeof knob.default === "number" ? Number(fromQuery) : fromQuery; + } + }); render({ historyMode: "none" }); }; bindFamilyPopstate(); diff --git a/docs/assets/custom.css b/docs/assets/custom.css index cbe0e90f6..66dd7cbbf 100644 --- a/docs/assets/custom.css +++ b/docs/assets/custom.css @@ -146,8 +146,7 @@ img { } .cookbook-section, -.cookbook-builder, -.cookbook-roadmap { +.cookbook-builder { scroll-margin-top: 4.5rem; } @@ -180,8 +179,7 @@ img { } .md-typeset .cookbook-section__heading h2, -.md-typeset .cookbook-builder__intro h2, -.md-typeset .cookbook-roadmap h2 { +.md-typeset .cookbook-builder__intro h2 { margin: 0; color: var(--md-default-fg-color); font-size: clamp(1.4rem, 2.6vw, 1.85rem); @@ -493,8 +491,7 @@ img { max-width: 45rem; } -.cookbook-builder__intro > p, -.cookbook-roadmap > p { +.cookbook-builder__intro > p { color: var(--md-default-fg-color--light); font-size: 0.75rem; line-height: 1.6; @@ -769,12 +766,6 @@ img { font-weight: 700; } -.cookbook-roadmap { - padding: 2.5rem 0; - margin: 3.5rem 0 1rem; - border-top: 1px solid var(--cookbook-border); -} - /* Lifecycle roadmap on family pages: inference is live; later stages are explicitly labelled planned and must not look runnable. */ .cookbook-lifecycle { @@ -1058,6 +1049,55 @@ img { overflow-wrap: anywhere; } +.cookbook-jumpnav { + display: flex; + flex-wrap: wrap; + gap: 1.1rem; + max-width: 48rem; + margin: 0 auto 1.75rem; + padding: 0.55rem 0; + border-top: 1px solid var(--cookbook-border); + border-bottom: 1px solid var(--cookbook-border); +} + +.md-typeset .cookbook-jumpnav a { + font-family: var(--md-code-font-family); + font-size: 0.7rem; + letter-spacing: 0.02em; + color: var(--md-default-fg-color--light); + text-decoration: none; +} + +.md-typeset .cookbook-jumpnav a:hover { + color: var(--cookbook-accent-strong); +} + +.cookbook-family-page details.cookbook-collapsible { + max-width: 48rem; + margin: 0 auto 0.75rem; + border-color: var(--cookbook-border); + box-shadow: none; +} + +.md-typeset details.cookbook-collapsible > summary { + background: var(--cookbook-surface-raised); + font-size: 0.85rem; +} + +.md-typeset .cookbook-collapsible__body { + font-size: 0.8rem; + line-height: 1.65; + color: var(--md-default-fg-color--light); +} + +.md-typeset .cookbook-collapsible__body .cookbook-eyebrow { + margin-top: 0.9rem; +} + +.md-typeset .cookbook-collapsible__body pre { + margin: 0.5rem 0 1rem; +} + .cookbook-family-page { max-width: 62rem; } @@ -1184,6 +1224,10 @@ img { margin-top: 0.55rem; } +[data-cookbook-knobs]:not(:empty) { + margin-top: 0.55rem; +} + .cookbook-selection-row__label { padding-inline-start: 0.15rem; } diff --git a/docs/cookbook/cosmos.md b/docs/cookbook/cosmos.md index 847fd5607..cb00bd510 100644 --- a/docs/cookbook/cosmos.md +++ b/docs/cookbook/cosmos.md @@ -5,7 +5,7 @@ hide: # Cosmos recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,23 +112,29 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • World-generation prompts work best describing a scene and camera motion; the built-in prompt in the example is a known-good starting point.
  • +
  • Gated or missing checkpoints: run huggingface-cli login and confirm you accepted the model's license on Hugging Face.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- World-generation prompts work best describing a scene and camera motion; the built-in prompt in the example is a known-good starting point. -- Gated or missing checkpoints: run `huggingface-cli login` and confirm you accepted the model's license on Hugging Face. - -## Evidence status - -All recipes on this page are **Source-backed**: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are **Unknown** and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources. +
+ Evidence status +
+

All recipes on this page are Source-backed: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are Unknown and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources.

+
+
diff --git a/docs/cookbook/flux.md b/docs/cookbook/flux.md index c1c784df0..e94cc3f31 100644 --- a/docs/cookbook/flux.md +++ b/docs/cookbook/flux.md @@ -5,7 +5,7 @@ hide: # FLUX recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,24 +112,30 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • FLUX.1 dev defaults to a local official_weights/FLUX.1-dev directory in the example; the cookbook command passes the Hugging Face ID explicitly instead.
  • +
  • Image outputs land under outputs/; adjust --output if that path is not writable.
  • +
  • Gated checkpoints (FLUX.1 dev): run huggingface-cli login and accept the license on Hugging Face first.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- FLUX.1 dev defaults to a local `official_weights/FLUX.1-dev` directory in the example; the cookbook command passes the Hugging Face ID explicitly instead. -- Image outputs land under `outputs/`; adjust `--output` if that path is not writable. -- Gated checkpoints (FLUX.1 dev): run `huggingface-cli login` and accept the license on Hugging Face first. - -## Evidence status - -All recipes on this page are **Source-backed**: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are **Unknown** and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources. +
+ Evidence status +
+

All recipes on this page are Source-backed: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are Unknown and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources.

+
+
diff --git a/docs/cookbook/glm-image.md b/docs/cookbook/glm-image.md index 4bb7eac20..ae15ace2e 100644 --- a/docs/cookbook/glm-image.md +++ b/docs/cookbook/glm-image.md @@ -5,7 +5,7 @@ hide: # GLM-Image recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,23 +112,29 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • The editing example reads assets/images/couple.jpg from the repository root, so run it from a repo checkout rather than an arbitrary working directory.
  • +
  • Output paths default under image_output/; pass --output to change them.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- The editing example reads `assets/images/couple.jpg` from the repository root, so run it from a repo checkout rather than an arbitrary working directory. -- Output paths default under `image_output/`; pass `--output` to change them. - -## Evidence status - -All recipes on this page are **Source-backed**: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are **Unknown** and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources. +
+ Evidence status +
+

All recipes on this page are Source-backed: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are Unknown and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources.

+
+
diff --git a/docs/cookbook/hunyuan.md b/docs/cookbook/hunyuan.md index 18b82486d..d0ed7e094 100644 --- a/docs/cookbook/hunyuan.md +++ b/docs/cookbook/hunyuan.md @@ -5,7 +5,7 @@ hide: # Hunyuan recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,24 +112,30 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • Out of memory: basic_hy15.py already enables dit/VAE/text-encoder CPU offload; further tradeoffs are described in Optimizations.
  • +
  • pin_cpu_memory errors on low-RAM machines are documented inline in the example; set it to false as the source comment suggests.
  • +
  • Gated or missing checkpoints: run huggingface-cli login and confirm you accepted the model's license on Hugging Face.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- Out of memory: `basic_hy15.py` already enables dit/VAE/text-encoder CPU offload; further tradeoffs are described in [Optimizations](../inference/optimizations.md). -- `pin_cpu_memory` errors on low-RAM machines are documented inline in the example; set it to false as the source comment suggests. -- Gated or missing checkpoints: run `huggingface-cli login` and confirm you accepted the model's license on Hugging Face. - -## Evidence status - -All recipes on this page are **Source-backed**: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are **Unknown** and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources. +
+ Evidence status +
+

All recipes on this page are Source-backed: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are Unknown and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources.

+
+
diff --git a/docs/cookbook/index.md b/docs/cookbook/index.md index 0dc666ad5..ec185b712 100644 --- a/docs/cookbook/index.md +++ b/docs/cookbook/index.md @@ -41,13 +41,14 @@ hide: MiniMax H3Video + stereo audio - 6 recipes + 7 recipes
  • T2VA
  • FL2VA
  • Ref2VA
  • MLX T2VA
  • +
  • 2-Spark SP
@@ -454,19 +455,6 @@ hide:
- -
-

Inference first, then the full workflow

-

- Inference is the first complete stage. Distillation, fine-tuning, - training, evaluation, optimization, and deployment will reuse the same - family-first structure as their recipes land. Each family page shows - which stages are available and which are planned. Two DGX Sparks: bring up - the QSFP Ray cluster first - (pair two Sparks), - then pick the FastH3 two-Spark recipe. -

-
diff --git a/docs/cookbook/kandinsky5.md b/docs/cookbook/kandinsky5.md index 139071652..ec8bc65a7 100644 --- a/docs/cookbook/kandinsky5.md +++ b/docs/cookbook/kandinsky5.md @@ -5,7 +5,7 @@ hide: # Kandinsky 5 recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,23 +112,29 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • Alternative Lite/Pro checkpoints are listed inline in the maintained examples; swap the model string only after checking its Hugging Face card.
  • +
  • Gated or missing checkpoints: run huggingface-cli login and confirm you accepted the model's license on Hugging Face.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- Alternative Lite/Pro checkpoints are listed inline in the maintained examples; swap the model string only after checking its Hugging Face card. -- Gated or missing checkpoints: run `huggingface-cli login` and confirm you accepted the model's license on Hugging Face. - -## Evidence status - -Both recipes map to checked-in FastVideo examples and recorded single-GPU B200 runs. The image-to-video run also records 10,365.89 MB peak GPU memory. These measurements describe the recorded runs; they are not minimum hardware requirements. +
+ Evidence status +
+

Both recipes map to checked-in FastVideo examples and recorded single-GPU B200 runs. The image-to-video run also records 10,365.89 MB peak GPU memory. These measurements describe the recorded runs; they are not minimum hardware requirements.

+
+
diff --git a/docs/cookbook/longcat.md b/docs/cookbook/longcat.md index ec1a3f0d6..ccddc92e8 100644 --- a/docs/cookbook/longcat.md +++ b/docs/cookbook/longcat.md @@ -5,7 +5,7 @@ hide: # LongCat recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,23 +112,29 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • Each LongCat script runs multiple passes (basic, distilled, refine); total runtime scales accordingly, and every pass prints its own output directory.
  • +
  • Out of memory: the sources already enable VAE and text-encoder CPU offload; further options are covered in Offloading.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- Each LongCat script runs multiple passes (basic, distilled, refine); total runtime scales accordingly, and every pass prints its own output directory. -- Out of memory: the sources already enable VAE and text-encoder CPU offload; further options are covered in [Offloading](../inference/offloading.md). - -## Evidence status - -All recipes on this page are **Source-backed**: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are **Unknown** and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources. +
+ Evidence status +
+

All recipes on this page are Source-backed: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are Unknown and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources.

+
+
diff --git a/docs/cookbook/ltx.md b/docs/cookbook/ltx.md index 39da7c157..23897e3b3 100644 --- a/docs/cookbook/ltx.md +++ b/docs/cookbook/ltx.md @@ -5,7 +5,7 @@ hide: # LTX recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,24 +112,30 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • The distilled recipe is source-configured for four GPUs; running it on fewer GPUs is unverified and may fail during distributed setup.
  • +
  • Audio-less output usually means the base checkpoint resolved instead of the distilled LTX-2 checkpoint with audio; check the loaded model ID in the logs.
  • +
  • Gated or missing checkpoints: run huggingface-cli login and confirm you accepted the model's license on Hugging Face.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- The distilled recipe is source-configured for four GPUs; running it on fewer GPUs is unverified and may fail during distributed setup. -- Audio-less output usually means the base checkpoint resolved instead of the distilled LTX-2 checkpoint with audio; check the loaded model ID in the logs. -- Gated or missing checkpoints: run `huggingface-cli login` and confirm you accepted the model's license on Hugging Face. - -## Evidence status - -All recipes on this page are **Source-backed**: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are **Unknown** and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources. +
+ Evidence status +
+

All recipes on this page are Source-backed: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are Unknown and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources.

+
+
diff --git a/docs/cookbook/matrix-game.md b/docs/cookbook/matrix-game.md index c417c5ebd..c9435bd0f 100644 --- a/docs/cookbook/matrix-game.md +++ b/docs/cookbook/matrix-game.md @@ -5,7 +5,7 @@ hide: # Matrix Game recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,23 +112,29 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • Matrix Game 3.0 downloads its reference input image from GitHub; offline machines should pre-download it and edit the IMAGE_URL constant locally.
  • +
  • Streaming variants of Matrix Game 2.0 exist under examples/inference/basic/basic_matrixgame2_streaming.py but are not included as cookbook recipes.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- Matrix Game 3.0 downloads its reference input image from GitHub; offline machines should pre-download it and edit the `IMAGE_URL` constant locally. -- Streaming variants of Matrix Game 2.0 exist under `examples/inference/basic/basic_matrixgame2_streaming.py` but are not included as cookbook recipes. - -## Evidence status - -All recipes on this page are **Source-backed**: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are **Unknown** and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources. +
+ Evidence status +
+

All recipes on this page are Source-backed: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are Unknown and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources.

+
+
diff --git a/docs/cookbook/minimax-h3.md b/docs/cookbook/minimax-h3.md index 188f178aa..686ba07e6 100644 --- a/docs/cookbook/minimax-h3.md +++ b/docs/cookbook/minimax-h3.md @@ -5,7 +5,7 @@ hide: # MiniMax H3 recipes -
+
All model families
@@ -16,7 +16,7 @@ hide:

Primary focus · Inference

MiniMax H3 recipes

Generate video and audio with H3. Run a server on CUDA or Apple Silicon MLX to iterate on prompts, or call the pipeline directly from Python.

- 6 maintained recipes + 7 maintained recipes
@@ -29,13 +29,20 @@ hide: Deployment planned
+
Compare H3 modes and options

Supported modes

CUDA covers T2VA, FL2VA, and Ref2VA on the full checkpoint, plus FastH3 - Preview and FastH3 LoRA. MLX is T2VA only. Temporal --fast, + Preview, FastH3 LoRA, and a two-node FastH3 Preview recipe over Ray + sequence parallel. MLX is T2VA only. Temporal --fast, spatial --fast-spatial, and opt-in VSA are flags on the same MLX script, not extra recipes.

@@ -84,6 +91,11 @@ hide: No cookbook recipe Not wired + + 2-Spark SP + FastH3 Preview across two DGX Sparks with Ray sequence parallel (sp_size=2) over QSFP RoCE + Not wired +
@@ -118,6 +130,8 @@ hide:
+
+

Loading recipe details...

@@ -217,36 +231,41 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+

CUDA

+
UV_TORCH_BACKEND=cu130 uv pip install -e ".[fasth3]"
+

Apple Silicon

+
uv pip install -e ".[mlx]"
+

Follow the Apple Silicon guide for the download, conversion, and storage requirements.

+

Two DGX Sparks

+
uv pip install ray
+

The 2-Spark recipe needs two DGX Sparks on an active QSFP link, the same FastH3 snapshot on both NVMes, and a Ray cluster on top. Follow pairing two Sparks before running it.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • The full CUDA H3 examples request four GPUs by default. Their sources do not claim a GPU model or memory minimum.
  • +
  • The FastH3 CUDA performance profile was measured on four GB200 GPUs. Use its strict profile when exact operation order matters more than the measured performance configuration.
  • +
  • The MLX source runtime supports T2VA, optional temporal --fast, optional spatial --fast-spatial, and opt-in VSA on --include-vsa checkpoints. FL2VA, Ref2VA, and two-pass refinement are not wired.
  • +
  • GPU count and VAE decode backend are configurable in the builder above for FastH3 recipes. Only the value shown by default has a recorded run; other supported values are unmeasured here.
  • +
  • The 2-Spark recipe fixes its own GPU count and execution backend in its YAML config and is not affected by the GPU count knob above. It requires a two-node Ray cluster on the QSFP interconnect; see the setup step above.
  • +
  • Gated or missing checkpoints: run huggingface-cli login and confirm you accepted the model's license on Hugging Face.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -CUDA FastH3 uses the pinned performance dependencies: - - UV_TORCH_BACKEND=cu130 uv pip install -e ".[fasth3]" - -Apple Silicon uses the native MLX extra and a locally converted H3 DiT: - - uv pip install -e ".[mlx]" - -Follow the [Apple Silicon guide](../getting_started/installation/mps.md#run-fasth3-preview) -for the download, conversion, and storage requirements. - -## Troubleshooting - -- The full CUDA H3 examples request four GPUs by default. Their sources do not claim a GPU model or memory minimum. -- The FastH3 CUDA performance profile was measured on four GB200 GPUs. Use its strict profile when exact operation order matters more than the measured performance configuration. -- The MLX source runtime supports T2VA, optional temporal `--fast`, optional spatial `--fast-spatial`, and opt-in VSA on `--include-vsa` checkpoints. FL2VA, Ref2VA, and two-pass refinement are not wired. -- Gated or missing checkpoints: run `huggingface-cli login` and confirm you accepted the model's license on Hugging Face. - -## Evidence status - -Every command, model ID, and flag on this page maps to a checked-in FastVideo source. Recipes marked **Verified** also have a recorded hardware path in linked FastVideo evidence. The full H3 CUDA examples remain **Source-backed** where the source records a GPU count but no GPU model or memory requirement. Unlisted hardware is unknown, not unsupported. +
+ Evidence status +
+

Every command, model ID, and flag on this page maps to a checked-in FastVideo source. Recipes marked Verified also have a recorded hardware path in linked FastVideo evidence. The full H3 CUDA examples remain Source-backed where the source records a GPU count but no GPU model or memory requirement. Unlisted hardware is unknown, not unsupported.

+
+
diff --git a/docs/cookbook/mmaudio.md b/docs/cookbook/mmaudio.md index c40037344..8489d7ad8 100644 --- a/docs/cookbook/mmaudio.md +++ b/docs/cookbook/mmaudio.md @@ -5,7 +5,7 @@ hide: # MMAudio recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,23 +112,29 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • If the example reports a missing local converted_weights/mmaudio/large_44k_v2 path, the MMAUDIO_MODEL_PATH env var from the cookbook command was not applied; export it in the same shell.
  • +
  • Alternatively convert upstream weights yourself with scripts/checkpoint_conversion/convert_mmaudio_to_diffusers.py and point the env var at the result.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- If the example reports a missing local `converted_weights/mmaudio/large_44k_v2` path, the `MMAUDIO_MODEL_PATH` env var from the cookbook command was not applied; export it in the same shell. -- Alternatively convert upstream weights yourself with `scripts/checkpoint_conversion/convert_mmaudio_to_diffusers.py` and point the env var at the result. - -## Evidence status - -All recipes on this page are **Source-backed**: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are **Unknown** and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources. +
+ Evidence status +
+

All recipes on this page are Source-backed: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are Unknown and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources.

+
+
diff --git a/docs/cookbook/stable-audio.md b/docs/cookbook/stable-audio.md index 2004c4f97..f7945a85e 100644 --- a/docs/cookbook/stable-audio.md +++ b/docs/cookbook/stable-audio.md @@ -5,7 +5,7 @@ hide: # Stable Audio recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,23 +112,29 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • Loader errors about monolithic checkpoints mean an upstream stabilityai/stable-audio-open-* ID was used; use the FastVideo converted repos from the recipes.
  • +
  • Duration and step knobs (audio_end_in_s, num_inference_steps) are documented inline in the example source.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- Loader errors about monolithic checkpoints mean an upstream `stabilityai/stable-audio-open-*` ID was used; use the FastVideo converted repos from the recipes. -- Duration and step knobs (`audio_end_in_s`, `num_inference_steps`) are documented inline in the example source. - -## Evidence status - -The Stable Audio Open 1.0 recipe maps to a checked-in example and a recorded single-GPU B200 run. The Stable Audio Open Small recipe remains **Source-backed** because the implementation PR did not record a full run for that gated checkpoint. Neither recipe claims a minimum VRAM requirement. +
+ Evidence status +
+

The Stable Audio Open 1.0 recipe maps to a checked-in example and a recorded single-GPU B200 run. The Stable Audio Open Small recipe remains Source-backed because the implementation PR did not record a full run for that gated checkpoint. Neither recipe claims a minimum VRAM requirement.

+
+
diff --git a/docs/cookbook/stable-diffusion.md b/docs/cookbook/stable-diffusion.md index 6ab7dcbec..c9a0f35ac 100644 --- a/docs/cookbook/stable-diffusion.md +++ b/docs/cookbook/stable-diffusion.md @@ -5,7 +5,7 @@ hide: # Stable Diffusion recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,23 +112,29 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • The example writes several PNGs under outputs/sd35/samples/; make sure the output directory is writable.
  • +
  • Gated checkpoints: Stability AI models require accepting the license and huggingface-cli login.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- The example writes several PNGs under `outputs/sd35/samples/`; make sure the output directory is writable. -- Gated checkpoints: Stability AI models require accepting the license and `huggingface-cli login`. - -## Evidence status - -All recipes on this page are **Source-backed**: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are **Unknown** and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources. +
+ Evidence status +
+

All recipes on this page are Source-backed: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are Unknown and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources.

+
+
diff --git a/docs/cookbook/turbodiffusion.md b/docs/cookbook/turbodiffusion.md index 59aa2b81f..6b9ad8fc5 100644 --- a/docs/cookbook/turbodiffusion.md +++ b/docs/cookbook/turbodiffusion.md @@ -5,7 +5,7 @@ hide: # TurboDiffusion recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,23 +112,29 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • TurboDiffusion paths load community-published loayrashid/TurboWan* checkpoints; availability is governed by those repos.
  • +
  • The SLA attention backend used by the I2V recipe is selected inside the example source; do not combine it with another FASTVIDEO_ATTENTION_BACKEND override in the same shell.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- TurboDiffusion paths load community-published `loayrashid/TurboWan*` checkpoints; availability is governed by those repos. -- The SLA attention backend used by the I2V recipe is selected inside the example source; do not combine it with another `FASTVIDEO_ATTENTION_BACKEND` override in the same shell. - -## Evidence status - -All recipes on this page are **Source-backed**: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are **Unknown** and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources. +
+ Evidence status +
+

All recipes on this page are Source-backed: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are Unknown and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources.

+
+
diff --git a/docs/cookbook/wan.md b/docs/cookbook/wan.md index 00452efb8..7c66d7008 100644 --- a/docs/cookbook/wan.md +++ b/docs/cookbook/wan.md @@ -5,7 +5,7 @@ hide: # Wan recipes -
+
All model families
@@ -29,8 +29,15 @@ hide: Deployment planned
+ -
+
+ Compare Wan modes and options

Supported modes

FastMetal MLX is T2V in the checked-in examples. Image-to-video and @@ -84,7 +91,7 @@ hide:

- +
@@ -163,26 +170,32 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • Out of memory on the A14B recipes: the checked-in sources already enable CPU offload; see Configuration for the offload surface before reducing resolution or frames.
  • +
  • The FastWan2.1 recipe requires VIDEO_SPARSE_ATTN; confirm the environment variable in the command was set in the same shell.
  • +
  • FastMetal MLX: install with uv pip install -e ".[mlx]", then follow the Apple Silicon guide. CUDA FastWan-QAD checkpoints are refused on the MLX runtime.
  • +
  • FastMetal 5B uses mlx_wan22_generate.py. 1.3B and 14B use mlx_wan_prompt_to_video.py.
  • +
  • Gated or missing checkpoints: run huggingface-cli login and confirm you accepted the model's license on Hugging Face.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- Out of memory on the A14B recipes: the checked-in sources already enable CPU offload; see [Configuration](../inference/configuration.md) for the offload surface before reducing resolution or frames. -- The FastWan2.1 recipe requires `VIDEO_SPARSE_ATTN`; confirm the environment variable in the command was set in the same shell. -- FastMetal MLX: install with `uv pip install -e ".[mlx]"`, then follow the [Apple Silicon guide](../getting_started/installation/mps.md). CUDA FastWan-QAD checkpoints are refused on the MLX runtime. -- FastMetal 5B uses `mlx_wan22_generate.py`. 1.3B and 14B use `mlx_wan_prompt_to_video.py`. -- Gated or missing checkpoints: run `huggingface-cli login` and confirm you accepted the model's license on Hugging Face. - -## Evidence status - -Every recipe on this page maps to a checked-in FastVideo source. The FastMetal MLX releases include the recorded M4 Max system memory, documented unified-memory floor, and measured peak MLX memory. CUDA entries remain **Source-backed** where the examples record a GPU count but no exact GPU model or VRAM. Unlisted hardware is unknown, not unsupported. +
+ Evidence status +
+

Every recipe on this page maps to a checked-in FastVideo source. The FastMetal MLX releases include the recorded M4 Max system memory, documented unified-memory floor, and measured peak MLX memory. CUDA entries remain Source-backed where the examples record a GPU count but no exact GPU model or VRAM. Unlisted hardware is unknown, not unsupported.

+
+
diff --git a/docs/cookbook/z-image.md b/docs/cookbook/z-image.md index eacc7c540..e3788abc8 100644 --- a/docs/cookbook/z-image.md +++ b/docs/cookbook/z-image.md @@ -5,7 +5,7 @@ hide: # Z-Image recipes -
+
All model families
@@ -28,6 +28,12 @@ hide: Deployment planned
+
@@ -106,23 +112,29 @@ hide:
-## Before you run +
+ Setup +
+

The generated commands expect a local clone:

+
git clone https://github.com/hao-ai-lab/FastVideo.git
+cd FastVideo
+

Use Configuration for supported Python and CLI settings, Optimizations for attention and memory tradeoffs, and the support matrix for the supported model and optimization surface.

+
+
-The generated commands expect a local clone: +
+ Troubleshooting +
+
    +
  • Output defaults to outputs/zimage/zimage_turbo.png; pass --output to redirect.
  • +
  • Gated or missing checkpoints: run huggingface-cli login and confirm you accepted the model's license on Hugging Face.
  • +
+
+
- git clone https://github.com/hao-ai-lab/FastVideo.git - cd FastVideo - -Use [Configuration](../inference/configuration.md) for supported Python and -CLI settings, [Optimizations](../inference/optimizations.md) for attention and -memory tradeoffs, and the [support matrix](../inference/support_matrix.md) for -the supported model and optimization surface. - -## Troubleshooting - -- Output defaults to `outputs/zimage/zimage_turbo.png`; pass `--output` to redirect. -- Gated or missing checkpoints: run `huggingface-cli login` and confirm you accepted the model's license on Hugging Face. - -## Evidence status - -All recipes on this page are **Source-backed**: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are **Unknown** and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources. +
+ Evidence status +
+

All recipes on this page are Source-backed: their commands, model IDs, and flags were validated against the checked-in FastVideo sources listed above (static validation). No runtime GPU validation is recorded for these recipes, so GPU model fit, memory use, throughput, and runtime duration are Unknown and deliberately not claimed. Runtime buttons show only the GPU counts configured in checked-in sources.

+
+
diff --git a/docs/generate_examples.py b/docs/generate_examples.py index 3e5724757..7f2fc26b9 100644 --- a/docs/generate_examples.py +++ b/docs/generate_examples.py @@ -163,6 +163,31 @@ def validate_cookbook() -> None: or any(not isinstance(item, str) or not item.strip() for item in modes)): raise ValueError(f"Cookbook recipe modes must be a non-empty list of strings: {recipe['id']}") + knobs = recipe.get("knobs", []) + if not isinstance(knobs, list): + raise ValueError(f"Cookbook recipe knobs must be a list: {recipe['id']}") + knob_keys: set[str] = set() + for knob in knobs: + if not isinstance(knob, dict): + raise ValueError(f"Cookbook recipe knob must be an object: {recipe['id']}") + required_knob = ("key", "label", "flag", "options", "default") + missing_knob = {key for key in required_knob if key not in knob} + if missing_knob: + raise ValueError(f"Cookbook recipe knob is missing: {recipe['id']}: {', '.join(sorted(missing_knob))}") + if knob["key"] in knob_keys: + raise ValueError(f"Duplicate cookbook recipe knob key: {recipe['id']}: {knob['key']}") + knob_keys.add(knob["key"]) + if not isinstance(knob["flag"], str) or not knob["flag"].startswith("--"): + raise ValueError(f"Cookbook recipe knob flag must start with --: {recipe['id']}: {knob['key']}") + options = knob["options"] + if not isinstance(options, list) or not options: + raise ValueError( + f"Cookbook recipe knob options must be a non-empty list: {recipe['id']}: {knob['key']}") + option_values = [option["value"] if isinstance(option, dict) else option for option in options] + if knob["default"] not in option_values: + raise ValueError( + f"Cookbook recipe knob default must be one of its options: {recipe['id']}: {knob['key']}") + source = (ROOT_DIR / recipe["source"]).resolve() if not any(source.is_relative_to(root.resolve()) for root in COOKBOOK_SOURCE_ROOTS): raise ValueError(f"Cookbook source is outside an approved directory: {recipe['source']}") @@ -170,6 +195,19 @@ def validate_cookbook() -> None: raise ValueError(f"Cookbook source does not exist: {recipe['source']}") source_text = source.read_text(encoding="utf-8") + if knobs: + # A script that shares its argument parser with a sibling module + # (e.g. `from . import basic_fasth3`) inherits that module's + # flags without the flag text appearing in its own source. + knob_source_text = source_text + for match in re.finditer(r'(?:from\s+\.\s+import|^\s*import)\s+(\w+)', source_text, flags=re.MULTILINE): + sibling = source.parent / f"{match.group(1)}.py" + if sibling.is_file() and sibling != source: + knob_source_text += "\n" + sibling.read_text(encoding="utf-8") + for knob in knobs: + if knob["flag"] not in knob_source_text: + raise ValueError(f"Cookbook recipe knob flag is not in its source: {recipe['id']}: {knob['flag']}") + # The model must be traceable to the checked-in source itself, or be # passed explicitly on the command line (e.g. --model-path or # MODEL_PATH=) when the source reads it from arguments/env.