Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions docs/src/content/docs/concepts/video-generation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,9 @@ The bundles are independent; installing both totals ~56 GB (shared components ar

### MiniMax H3

MiniMax H3 is a single **FL2VA** model — *first/last-frame to video with audio*. One checkpoint covers every conditioning mode the panel offers (text-to-video, first frame, last frame, both, and extend), and every generation includes a **jointly generated stereo soundtrack**, muxed into the MP4 as AAC.
MiniMax H3 ships as two task transformers that share every other component. **FL2VA** — *first/last-frame to video with audio* — covers text-to-video, first frame, last frame, both, and extend. **Ref2VA** — *reference to video with audio* — conditions a new clip on **reference media**: up to 3 videos and 9 images, in an order you choose (order changes the result). Every generation from either includes a **jointly generated stereo soundtrack**, muxed into the MP4 as AAC.

The panel switches task by transformer: select the Ref2VA single-file transformer in **Model Components** and the conditioning sections become the ordered **References** list; select the FL2VA transformer to get the five frame/extend modes back. A video reference can contribute its image track, its soundtrack, or both — soundtrack-only references must be paired with at least one visual reference. Image references default to a high-detail 2048 px encoding ("Max"); the "Match generation size" option is several times faster at some fidelity cost.

What makes it different from Wan in practice:

Expand All @@ -190,11 +192,13 @@ What makes it different from Wan in practice:

#### Installing MiniMax H3

The **MiniMax H3** starter bundle (~62 GB) installs the working set:
The **MiniMax H3** starter bundle (~85 GB) installs the working set:

* **MiniMax H3 Components** (~11 GB) — the Diffusers-format main: tokenizer, processor, and the video + audio VAEs. **This is the model you select in the Video panel.**
* **MiniMax H3 FL2VA Transformer (int8, pruned)** (~21 GB) and **MiniMax H3 Text Encoder (int8)** (~27 GB) — single-file builds that slot into the panel's **Model Components** overrides (the bundled templates and the panel wire them the same way).
* **MiniMax H3 Turbo LoRA** and **MiniMax H3 LightX2V Turbo LoRA** — two independent step-distillation LoRAs (both Apache 2.0); the Turbo toggle picks one automatically.
* **MiniMax H3 FL2VA Transformer (int8, pruned)** and **MiniMax H3 Ref2VA Transformer (int8, pruned)** (~21 GB each) plus **MiniMax H3 Text Encoder (int8)** (~27 GB) — single-file builds that slot into the panel's **Model Components** overrides (the bundled templates and the panel wire them the same way). The transformer you pick decides the task: FL2VA for the frame/extend modes, Ref2VA for reference conditioning.
* **MiniMax H3 Turbo LoRA**, **MiniMax H3 LightX2V Turbo LoRA**, and **MiniMax H3 Ref2V Turbo LoRA** — independent step-distillation LoRAs; the Turbo toggle picks the one matching the selected task (the Ref2V build is trained against the Ref2VA transformer only).

Reference conditioning adds rows to every denoising step roughly linearly: a few references typically cost ~1–2 GiB of extra activation memory, but a full-detail 2048×2048 image reference alone adds ~4096 rows (about 1 GiB), and three full-length video references can triple the packed sequence. Prefer "Match generation size" for image references and trimmed clips for video references on smaller cards.

H3 is the heaviest local video option — With 16 GB VRAM, `enable_partial_loading` enabled and 32 GB of system RAM it can create a full 345 frame video (about 14s) at 768x768 resolution, but for larger or longer videos a high-VRAM GPU (24 GB+) is strongly recommended.

Expand Down
7 changes: 4 additions & 3 deletions docs/src/content/docs/features/video-workflows.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ lastUpdated: 2026-08-22

import { Card, CardGrid, Steps, LinkButton } from '@astrojs/starlight/components';

InvokeAI ships **fifteen ready-made video workflows** — ten for **Wan 2.2** and five for **MiniMax H3** — so you can start generating video without wiring up nodes yourself. Each one is a complete recipe — open it from the **Workflows** library, pick your models, type a prompt (and/or drop in an image), and press **Invoke**.
InvokeAI ships **sixteen ready-made video workflows** — ten for **Wan 2.2** and six for **MiniMax H3** — so you can start generating video without wiring up nodes yourself. Each one is a complete recipe — open it from the **Workflows** library, pick your models, type a prompt (and/or drop in an image), and press **Invoke**.

This page helps you choose the right workflow and run it. For how the models work under the hood, VRAM details, and troubleshooting, see the [Video Generation guide](/concepts/video-generation/).

Expand Down Expand Up @@ -34,7 +34,7 @@ Whenever a workflow won't run because a model field is empty, open its **Notes**

## Which workflow should I use?

The Wan workflows come in three families — **Text to Video**, **Image to Video**, and **Extend Video** — each with a high-quality option, a "concept LoRA" variant, and a lighter low-VRAM option — plus an **Interpolate** workflow that bridges two images and an **Extend Video to Image** variant that steers a continuation toward a target frame. The five **MiniMax H3** workflows cover the same conditioning modes with one model — and add sound.
The Wan workflows come in three families — **Text to Video**, **Image to Video**, and **Extend Video** — each with a high-quality option, a "concept LoRA" variant, and a lighter low-VRAM option — plus an **Interpolate** workflow that bridges two images and an **Extend Video to Image** variant that steers a continuation toward a target frame. The six **MiniMax H3** workflows cover the same conditioning modes — plus reference-conditioned generation — and add sound.

| I want to… | Use | Notes |
|---|---|---|
Expand All @@ -44,6 +44,7 @@ The Wan workflows come in three families — **Text to Video**, **Image to Video
| Make a video that *ends on* an image | **Last Frame to Video - MiniMax H3** | H3 only — the video builds toward your image. |
| Make a video between two images | **Interpolate 2 Images to Video - Wan 2.2 Lightning** or **First and Last Frame to Video - MiniMax H3** | Provide a start and end image; the model interpolates between them. |
| Make a video longer than one generation | **Extend Video - Wan 2.2 Lightning** or **Extend Video - MiniMax H3** | Continues an existing video and stitches the pieces together. |
| Make a clip **in the style/likeness of reference media** | **Reference to Video - MiniMax H3** | Conditions on up to 3 reference videos and 9 images (Ref2VA transformer required); reference order changes the result. |
| Extend a video toward a specific end frame | **Extend Video to Image - Wan 2.2 Lightning** | Continues a video and interpolates the new part to a target image. |
| Add my own style/subject LoRAs | the **w/ Concept LoRAs** variant of a Wan workflow | Same as the base workflow, plus slots for your LoRAs. |
| Run on a smaller GPU (≈12–16 GB) | a **TI2V-5B (Low Quality)** workflow | Smaller model, lower memory, lower quality. |
Expand Down Expand Up @@ -128,7 +129,7 @@ Because the endpoint is pinned to your image, it's ideal for bridging a clip to

## Bundled MiniMax H3 workflows

One model, five workflows, every conditioning mode — and every output is an MP4 with a **jointly generated stereo soundtrack**. All five default to the **Turbo** step-distillation LoRA (6 steps); H3 has no CFG or negative prompt to tune, and always renders at 24 fps.
One model family, six workflows, every conditioning mode — and every output is an MP4 with a **jointly generated stereo soundtrack**. All default to a **Turbo** step-distillation LoRA (6 steps for FL2VA, 4 for Ref2VA); H3 has no CFG or negative prompt to tune, and always renders at 24 fps. **Reference to Video** needs the Ref2VA transformer selected in the model loader; the other five use FL2VA.

<CardGrid>
<Card title="Text to Video - MiniMax H3" icon="pencil">
Expand Down
22 changes: 21 additions & 1 deletion invokeai/app/invocations/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,16 +194,31 @@ def invoke(self, context: InvocationContext) -> MetadataOutput:
"minimax_h3_lf2v",
"minimax_h3_flf2v",
"minimax_h3_extend_video",
"minimax_h3_ref2v",
"minimax_h3_txt2img",
]


class MiniMaxH3ReferenceMetadataField(BaseModel):
"""One recorded Ref2VA reference: names and options only, in conditioning order."""

kind: Literal["image", "video"] = Field(description="Whether the reference was an image or a video.")
image_name: Optional[str] = Field(default=None, description="The reference image's name.")
video_name: Optional[str] = Field(default=None, description="The reference video's name.")
conditioning: Optional[str] = Field(
default=None, description="A video reference's conditioning choice (video_audio / video / audio)."
)
detail: Optional[str] = Field(default=None, description="An image reference's sizing choice (max / match).")
start_frame: Optional[int] = Field(default=None, description="A video reference's trim start (inclusive).")
end_frame: Optional[int] = Field(default=None, description="A video reference's trim end (inclusive).")


@invocation(
"core_metadata",
title="Core Metadata",
tags=["metadata"],
category="metadata",
version="2.4.0",
version="2.5.0",
classification=Classification.Internal,
)
class CoreMetadataInvocation(BaseInvocation):
Expand Down Expand Up @@ -299,6 +314,11 @@ class CoreMetadataInvocation(BaseInvocation):
default=None,
description="The single-file MiniMax H3 Qwen3-VL text encoder used in place of the main model's",
)
minimax_h3_references: Optional[list[MiniMaxH3ReferenceMetadataField]] = InputField(
default=None,
description="The ordered Ref2VA references this generation was conditioned on (names and options only; "
"the media is re-resolved from the gallery at recall time)",
)

# High resolution fix metadata.
hrf_enabled: Optional[bool] = InputField(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@
"type": "invocation",
"data": {
"id": "9e2b5033-4c5d-4e7f-a081-9c0d1e2f3a04",
"version": "2.4.0",
"version": "2.5.0",
"nodePack": "invokeai",
"label": "Core Metadata",
"notes": "Everything except the generation mode arrives over an edge from the node that used the value, so the record cannot go stale.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@
"type": "invocation",
"data": {
"id": "9e2b5033-4c5d-4e7f-a081-9c0d1e2f3a04",
"version": "2.4.0",
"version": "2.5.0",
"nodePack": "invokeai",
"label": "Core Metadata",
"notes": "Everything except the generation mode arrives over an edge from the node that used the value, so the record cannot go stale.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@
"type": "invocation",
"data": {
"id": "9e2b5033-4c5d-4e7f-a081-9c0d1e2f3a04",
"version": "2.4.0",
"version": "2.5.0",
"nodePack": "invokeai",
"label": "Core Metadata",
"notes": "Everything except the generation mode arrives over an edge from the node that used the value, so the record cannot go stale.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@
"type": "invocation",
"data": {
"id": "9e2b5033-4c5d-4e7f-a081-9c0d1e2f3a04",
"version": "2.4.0",
"version": "2.5.0",
"nodePack": "invokeai",
"label": "Core Metadata",
"notes": "Everything except the generation mode arrives over an edge from the node that used the value, so the record cannot go stale.",
Expand Down
Loading
Loading