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
Open
feat(minimax-h3): linear UI — generate-tab t2v/i2v and image output mode (PR 4/5)#141lstein wants to merge 1 commit into
lstein wants to merge 1 commit into
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
minimaxH3DurationSeconds(5–14 s slider; the 14 s stop maps to the model's true ceiling of 345 frames = 14.375 s) andminimaxH3OutputMode('video' | 'image') with safeParse-guarded reducers and selectors. Redux-persist_version4 → 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.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), modesminimax_h3_t2v/minimax_h3_i2v. Frame counts snap to the 17n+5 grid within [124, 345]. Image mode runs the 5-frame minimum block throughminimax_h3_latents_to_image+ NSFW/watermark (modeminimax_h3_txt2img), canvas-capable.minimax_h3_reference_imagefeeds 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).minimax_h3_reference_image(model-less), registered across validators, conversion listeners, and default-config hooks;SUPPORTS_REF_IMAGES_BASE_MODELSgains 'minimax-h3'. The negative-prompt list deliberately does NOT.Adversarial review fixes (already in)
BASES_WITHOUT_STANDARD_SCHEDULERand excluded from CFG Scale — both were rendering as dead controls for a guidance-distilled model.stepsclamped 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).Known gaps (deliberate, review-noted)
Testing
pnpm lint:tsc/ eslint / prettier clean;pnpm test:no-watch144 files, 1719 tests passed (incl. new v4→v5 migration fixtures);pnpm vite buildsucceeds.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