Skip to content

feat(minimax-h3): linear UI — generate-tab t2v/i2v and image output mode (PR 4/5) - #141

Open
lstein wants to merge 1 commit into
minimax-h3/03-nodesfrom
minimax-h3/04-linear-ui
Open

feat(minimax-h3): linear UI — generate-tab t2v/i2v and image output mode (PR 4/5)#141
lstein wants to merge 1 commit into
minimax-h3/03-nodesfrom
minimax-h3/04-linear-ui

Conversation

@lstein

@lstein lstein commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Summary

PR 4 of the MiniMax H3 stack (on top of #140): the linear UI. H3 becomes usable from the Generate tab (t2v + first-frame i2v with a muxed stereo soundtrack) and, in image output mode, from the canvas as a txt2img base.

What's here

  • Params state: minimaxH3DurationSeconds (5–14 s slider; the 14 s stop maps to the model's true ceiling of 345 frames = 14.375 s) and minimaxH3OutputMode ('video' | 'image') with safeParse-guarded reducers and selectors. Redux-persist _version 4 → 5 with a migrate step seeding both keys (fixtures follow the per-version key-intersection convention). ⚠ The unmerged flux2 branch also claims v5 — whichever merges second renumbers to v6.
  • Graph builder (buildMiniMaxH3Graph.ts): one prompt node (guidance-distilled — no negative prompt, no CFG). Video mode is Generate-tab only: denoise.video_latents/audio_latents → minimax_h3_latents_to_video (+ video/audio VAEs), modes minimax_h3_t2v/minimax_h3_i2v. Frame counts snap to the 17n+5 grid within [124, 345]. Image mode runs the 5-frame minimum block through minimax_h3_latents_to_image + NSFW/watermark (mode minimax_h3_txt2img), canvas-capable.
  • i2v coupling: the first enabled minimax_h3_reference_image feeds the SAME image + dimensions to BOTH the text encoder (vision context) and the frame-conditioning node — the backend denoise node enforces this pairing (PR 3).
  • Ref image type minimax_h3_reference_image (model-less), registered across validators, conversion listeners, and default-config hooks; SUPPORTS_REF_IMAGES_BASE_MODELS gains 'minimax-h3'. The negative-prompt list deliberately does NOT.
  • Dispatch/readiness: 'minimax-h3' cases in both enqueue hooks; canvas readiness blocks video mode with a "video runs on the Generate tab" reason; optimal dimension 768, grid 32.
  • UI: output-mode toggle + duration slider in the Generation accordion (duration hides in image mode); the dead SD Scheduler and CFG Scale controls are hidden for H3. Metadata recall for both new params; "MiniMax H3" strings verbatim (license attribution).

Adversarial review fixes (already in)

  • H3 added to BASES_WITHOUT_STANDARD_SCHEDULER and excluded from CFG Scale — both were rendering as dead controls for a guidance-distilled model.
  • steps clamped to ≥ 2 in the builder (the H3 denoise node's scheduler contract; the shared Steps slider allows 1, which would have 422'd at enqueue).
  • Duration snapping special-cases the 14 s stop to 345 frames, which was previously unreachable (nearest-grid rounding topped out at 328).

Known gaps (deliberate, review-noted)

  • An enabled ref image is silently ignored in image output mode (panel stays visible) — follow-up UX decision.
  • Dims not on the 32-grid can survive a model switch and fail at enqueue — pre-existing failure class shared with wan/cogview4, not introduced here.
  • Duration metadata recall registers but can't fire yet: videos have no per-field recall viewer.

Testing

pnpm lint:tsc / eslint / prettier clean; pnpm test:no-watch 144 files, 1719 tests passed (incl. new v4→v5 migration fixtures); pnpm vite build succeeds.

Manual test gate: Generate tab → MiniMax H3 → 5 s 16:9 t2v with audible audio; ref image → i2v; output mode = Image lands a normal gallery image (also from canvas); metadata recall of duration/output mode.

🤖 Generated with Claude Code

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant