Skip to content

feat(minimax-h3): default workflows; starter-model decision documented (PR 5/5) - #144

Open
lstein wants to merge 3 commits into
minimax-h3/04-linear-uifrom
minimax-h3/05-starter-and-workflows
Open

feat(minimax-h3): default workflows; starter-model decision documented (PR 5/5)#144
lstein wants to merge 3 commits into
minimax-h3/04-linear-uifrom
minimax-h3/05-starter-and-workflows

Conversation

@lstein

@lstein lstein commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Note

Supersedes #142, which GitHub auto-marked as merged (and auto-deleted the branch) when a botched force-push briefly made the head ref equal to its base during a stack rebase. No content was ever merged; this PR carries the identical (rebased) commits.

Summary

PR 5 of 5 in the MiniMax H3 stack (on top of #141): default workflows, plus a documented decision on the starter-model entry. Two commits, deliberately separated so the license-sensitive part stays droppable.

Commit 1 — default workflows

  • Text to Video - MiniMax H3: loader → prompt → denoise → latents-to-video with both video_latents/audio_latents and the video+audio VAE edges. Form exposes model, prompt, width/height, frames, steps. Notes cover the 17n+5 frame grid, fixed 24 fps, 32-px dimension grid, muxed AAC audio, and the absence of a negative prompt.
  • First Frame to Video - MiniMax H3: adds minimax_h3_frame_conditioning. The backend's keyframe-coupling contract is enforced structurally: a single image node feeds first_image on both the prompt and frame-conditioning nodes, and shared width/height integer nodes feed prompt + frame conditioning + denoise — form edits cannot desynchronize them.
  • Both files are covered by the default-workflow registry test (node types/versions/inputs validated against the live registry; glob count bumped 12 → 14). Defaults verified legal: 124 frames, steps 50, 1344×768.

Commit 2 — starter model: documented TODO, no entry

Neither expressible install source works, so no entry ships yet:

  • A bare MiniMaxAI/MiniMax-H3 source downloads ~498 GBfilter_files keeps every model*.safetensors across all subtrees, including FL2VA/, Ref2VA/, and transformer_ref/.
  • The ::subfolder+subfolder syntax keeps only files inside the listed subfolders and silently drops the root modular_model_index.json that the H3 probe hard-requires — the install would land as an unknown model.

The TODO in starter_models.py records both unblock paths (a root-config-aware filter_files, or an upstream FL2VA-only repo) and the MiniMax H3 Community License constraints (territory exclusions extend to outputs; "MiniMax H3" attribution). Until then, users install the model manually by pointing the Model Manager at a locally assembled fl2va folder (~42.5 GB working set).

Testing

  • tests/app/services/model_install + tests/app/services/workflow_records + tests/model_identification: 146 passed, 0 failures; ruff clean.
  • Both JSONs pass WorkflowValidator.validate_json, and every edge handle was checked against the actual invocation input/output models.
  • Manual gate: load each default workflow in the Workflow Editor once and run it (the default-workflows README asks for this before release).

🤖 Generated with Claude Code

lstein and others added 2 commits August 5, 2026 15:03
Two default workflows following the Wan video precedent. The i2v variant
wires the one First Frame image node and shared Width/Height integer nodes
to the prompt, frame-conditioning and denoise nodes so the backend's
keyframe-coupling contract holds structurally.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The installer cannot express 'root layout minus the Ref2VA subtrees': a bare
repo source pulls ~498 GB and a subfolder-set source drops the root
modular_model_index.json the probe requires. Records the unblock options and
the MiniMax H3 Community License constraints any future entry must carry.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@lstein
lstein force-pushed the minimax-h3/05-starter-and-workflows branch from 9e02826 to af32451 Compare August 5, 2026 19:03
@lstein
lstein force-pushed the minimax-h3/04-linear-ui branch from aacd4ae to 162eb3b Compare August 5, 2026 19:03
…ult workflow

Adds a 'MiniMax H3 Ideal Dimensions' node (mirroring the Wan 2.2 Ideal
Dimensions pattern): a thin wrapper over the vendored resolve_canvas_size
policy — 768px short edge, soft 768x1344 area cap, both axes snapped to the
32 grid, aspect ratios 1:4 through 4:1. Unlike the Wan nodes there is no
resolution preset or rounding mode: H3 was released for exactly one canvas
family and the policy is the released pipeline's, verbatim.

The 'First Frame to Video - MiniMax H3' default workflow now derives the
canvas from the uploaded image (image width/height -> ideal dimensions ->
prompt/frame-conditioning/denoise), matching 'Image to Video - Wan 2.2
Lightning'. The manual Width/Height form fields are gone - previously a
mismatched aspect ratio stretched the keyframe onto whatever canvas was
typed in.

openapi.json/schema.ts regenerated for the new node.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@lstein

lstein commented Aug 6, 2026

Copy link
Copy Markdown
Owner Author

New commit 63d7aaef88: MiniMax H3 Ideal Dimensions node + auto-canvas i2v workflow.

  • New minimax_h3_ideal_dimensions invocation, mirroring the Wan 2.2 Ideal Dimensions pattern: feed it the source image's width/height and it returns the H3 canvas. It is a thin wrapper over the vendored resolve_canvas_size policy (768 px short edge, soft 768×1344 area cap, 32-px grid, aspect ratios 1:4–4:1) — no resolution presets or rounding modes, because H3 ships exactly one canvas family and this is the released pipeline's own policy. 15 unit tests, values pinned against the vendored function.
  • First Frame to Video - MiniMax H3 now derives the canvas from the uploaded image (image → ideal dimensions → prompt / frame-conditioning / denoise), matching Image to Video - Wan 2.2 Lightning. The manual Width/Height form fields are gone — previously a mismatched aspect ratio silently stretched the keyframe onto whatever canvas was typed in.
  • openapi.json / schema.ts regenerated. Branches 06/07/08 rebased on top (regen-verified at each level; the rebase also surfaced that PR 8's node-version bump had left openapi.json stale — fixed in feat(minimax-h3): tiny-VAE (taeh3) step previews with x-hat-0 estimates #147's amended head).

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant