CoolFace
Apppublic

hugging-apps/hyperflow-h3-demo

sourceHugging Faceupdated 4d agoView on Hugging Face
3likes
App README

HyperFlow · MiniMax-H3 in 8 steps

A demo of `videorebirth/hyperflow` on [MiniMax H3](https://huggingface.co/MiniMaxAI/MiniMax-H3) — MiniMax's 33B omni-modal model that generates video together with a fully synchronized soundtrack (ambience, foley, speech) in a single denoising pass.

HyperFlow is a rank-256 adapter obtained by data-free flow self-distillation. It collapses MiniMax H3's 49-evaluation default schedule into 8 steps, roughly 3x faster end to end, with no guidance pass.

Type a prompt, optionally drop in a first frame (animate a photo), a last frame (generate up to a frame) or both (move between them), and generate. There is no trigger word.

Why there is no steps slider

HyperFlow is not a style LoRA and is not loaded like one. Its weights file carries two things beyond the LoRA tensors: a second, LoRA'd copy of the DiT's time_embedder for the step endpoint (blended with a gate stored in the file header), and a fixed 8-point sigma grid. pipe.load_lora_weights / load_lora_adapter would attach the tensors and then silently run MiniMax H3's official single-time loop against a two-time adapter, so this Space uses the authors' own loader from `Video-Rebirth/hyperflow`:

python
from diffusers.modular_pipelines.minimax_h3 import MiniMaxH3Blocks
from hyperflow_h3 import load_hyperflow_lora, swap_hyperflow_blocks

blocks = swap_hyperflow_blocks(MiniMaxH3Blocks())   # HyperFlow's set_timesteps + denoiser
pipe = blocks.init_pipeline("MiniMaxAI/MiniMax-H3", components_manager=ComponentsManager())
pipe.load_components(dtype=torch.bfloat16)
load_hyperflow_lora(pipe, "videorebirth/hyperflow")  # LoRA + two-time embedder + 8-step grid
pipe(prompt=..., image=..., num_frames=124)          # no num_inference_steps

num_inference_steps is refused unless it equals the grid's count, which is why the step count is not a control in the UI.

How it runs here

MiniMax H3 is 195.9 GB in bfloat16 and a ZeroGPU Space is evicted at 150 GB of storage, so the 62 GB Qwen3-VL conditioner cannot sit next to the 66 GB DiT. The model's own reference implementation solves this across GPUs by popping the text_encoder block and broadcasting the conditioned state; this Space does the same across Spaces — the text_encoder step is popped and `multimodalart/qwen3vl-conditioner` returns prompt_embeds + text_token_tags over the gradio API. Only the transformer partition is fetched here; transformer_ref (the ref2va reference-conditioned partition) is never loaded.

The unpruned MiniMaxH3Blocks is used rather than a single pruned workflow, so one set of loaded components serves both a text-only request (t2va) and a keyframed one (fl2va).

Hardware: ZeroGPU (xlarge), bfloat16, unquantized, cuDNN fused attention. Both autoencoders stay float32 — a bfloat16 audio VAE decodes the soundtrack far too quiet.

Examples

Keyframes are CC0 images from `linoyts/repo-to-space-example-inputs`, cover-cropped to the canvas they are paired with.

Licence and disclosure

The base weights are released under the MiniMax H3 Community License Agreement, not an OSI licence. Notably it is not granted in the EU, the UK, South Korea or the USA without separate authorization from MiniMax, and it requires products built on the weights to display "MiniMax H3" — which this Space does, above. The HyperFlow adapter and the hyperflow-h3 package are Apache-2.0.

Everything this Space produces — video and audio alike — is AI-generated.