MiniMax H3 PR 12: minimal starter bundle (~59 GB) via explicit-file installer sources - #150
Open
lstein wants to merge 3 commits into
Open
MiniMax H3 PR 12: minimal starter bundle (~59 GB) via explicit-file installer sources#150lstein wants to merge 3 commits into
lstein wants to merge 3 commits into
Conversation
… components-only MiniMax H3 installs A slim MiniMax H3 install (tokenizer/processor/VAEs + the two config JSONs identification needs, ~11 GB) was previously inexpressible: '::a+b' subfolder sources kept only files inside the listed folders, so the root modular_model_index.json was dropped and the download landed as an unknown model. - filter_files(): an entry in a multi-entry subfolder list that names a repo file exactly is included verbatim, bypassing the extension prefilter, variant scoring and config-only-folder pruning. Single-entry sources and pure-folder lists behave exactly as before. - _multifile_download(): explicit file entries keep their repo-relative paths (relative_to() would have flattened transformer/config.json to the root) and contribute their stems to the synthesized folder name. - Main_Diffusers_MiniMaxH3_Config: new components_only field, true when the transformer folder has no weight shards, so the UI can require the single-file transformer/text-encoder selections up front. - MiniMax H3 diffusers loader: requesting the Transformer or TextEncoder submodel from a components-only install fails with an actionable message instead of a cryptic missing-shard error. - Linear UI readiness (Generate + Canvas): a components-only H3 main blocks enqueue until both single-file overrides are selected. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e files, ~59 GB) Replaces the TODO left when no viable download was expressible. Three entries plus a bundle: the slim components folder from MiniMaxAI/MiniMax-H3 (~11 GB), and Comfy-Org's AdaLN-pruned int8 transformer (~21 GB) and truncated int8 Qwen3-VL text encoder (~27 GB), the latter two selected in the MiniMax H3 Model Loader. The transformer entry depends on the other two, so a one-click install yields a working video+audio setup at ~59 GB instead of the ~498 GB naive repo pull. License note: kept in its own commit so a release can drop it - the MiniMax H3 Community License restricts use by territory (excludes the US, EU, UK and South Korea, extending to outputs) and requires prominent 'MiniMax H3' attribution (kept verbatim in every name/description). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- The launchpad's InitialStateMainModelPicker offered H3 single-file transformers as primary mains (the generation accordion already filtered them); selecting one enqueued and failed at load time. The filter now lives in a shared isSecondarySlotMainModelConfig() used by both pickers (also covers low-noise Wan GGUFs). - Stale single-file override selections defeated the new readiness gate: a modelsLoaded handler now clears minimaxH3TransformerModel / minimaxH3TextEncoderModel when the referenced model is uninstalled (mirroring the Krea-2 component sync). - Weight-glob tuples in the probe and loader guard gained *.pth so a folder holding only unloadable-but-real weights isn't mislabeled components-only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lstein
force-pushed
the
minimax-h3/11-minimal-starter
branch
from
August 7, 2026 17:19
35c44e0 to
893fe6b
Compare
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 12 of the MiniMax H3 stack (base:
minimax-h3/10-viewer-video-reveal, #149). Makes H3 installable by ordinary users without pulling hundreds of gigabytes: a starter bundle whose three entries total ~59 GB — versus ~498 GB for a naiveMiniMaxAI/MiniMax-H3pull, or ~120 GB for the full working set.MiniMaxAI/MiniMax-H3::modular_model_index.json+transformer/config.json+tokenizer+processor+vae+audio_vaeComfy-Org/MiniMax-H3::text_encoders/qwen3vl_32b_minimax_h3_int8_convrot.safetensorsComfy-Org/MiniMax-H3::diffusion_models/minimax_h3_fl2va_pruned_int8_convrot.safetensorsThe transformer entry depends on the other two, so a one-click install yields a working video+audio setup. The int8 single files are the ones PRs #145/#146 taught the loader node to consume; the slim folder supplies everything else the loader sources from the main model (tokenizer, processor, video VAE, audio VAE — schedulers are constructed from vendored constants and need no files).
1. Installer: explicit-file entries in
::a+bsourcesThe slim folder was previously inexpressible (see the TODO this PR deletes):
filter_fileskept only files inside listed subfolders, so the rootmodular_model_index.jsonwas dropped and identification failed. Now an entry in a multi-entry list that names a repo file exactly is an explicit request: included verbatim, bypassing the extension prefilter, variant scoring and the config-only-folder pruning (which would otherwise drop the baretransformer/config.json)._multifile_downloadplaces explicit files at their repo-relative paths — the pre-existingrelative_to()matching would have flattenedtransformer/config.jsonto the model root, becauserelative_to()of a path against itself yields..Deliberately scoped: single-entry sources and pure-folder lists (the five existing
::text_encoder+tokenizer-style starter sources) select the same files and land in the same layout as before.2. Probe:
components_onlyon the H3 diffusers configTrue when
transformer/holds no weight shards. The slim source still downloadstransformer/config.json(a few KB), so the existing variant identification (FL2VA vs Ref2VA) works unchanged and the folder probes as a normalminimax-h3/fl2vamain. New identification fixture for the slim layout; the full-layout fixture now also assertscomponents_only: false.3. Loader guards
Requesting the Transformer or TextEncoder submodel from a components-only install now fails with "select a single-file … in the MiniMax H3 Model Loader" instead of a cryptic missing-shard error from inside diffusers/transformers.
4. Linear UI readiness
A components-only main blocks enqueue (Generate and Canvas) until both single-file overrides are selected, following the Krea-2 non-diffusers precedent. The Advanced-settings selects from #145/#146 are the fix the messages point at.
License
The starter entries live in their own commit (
feat(models): MiniMax H3 starter bundle…) so a release can drop them: the MiniMax H3 Community License restricts use by territory (excludes the US, EU, UK and South Korea, extending to outputs) and requires prominent "MiniMax H3" attribution — kept verbatim in every name/description.Review
A fresh-context adversarial review differential-fuzzed old-vs-new
filter_filesacross three repo corpora and every pre-existing source form (0 mismatches), traced both path conventions to every caller, round-tripped the new source strings through the real parser, and attacked the resume/restart mappings, probe computation, loader guards, readiness narrowing and starter integrity. Two MED findings, both fixed in the third commit:isSecondarySlotMainModelConfig()used by both pickers.modelsLoadedhandler now clears the two override params when their model disappears (Krea-2 precedent).Deliberately left (LOW/INFO, with reasoning): the synthesized install-folder name changes for dotted folder entries (
v1.5→v1) — selection and layout are unaffected and no such source exists; explicit files covered by a co-listed nested folder entry inherit the folder's pre-existing flattening — no production source lists nested folders; a single-entry explicit non-weights file (repo::transformer/config.jsonalone) still selects nothing — pre-existing single-entry semantics, and the shipped source always uses the multi-entry form.Testing
filter_files: 5 new cases (slim selection, files-only lists, prefilter bypass for weights-file entries, nonexistent entries, pure-folder regression)._multifile_download: layout test pinning explicit-file placement and the synthesized folder name.components_only: true), full suite green (91).pnpm lint:tsc, eslint, prettier, vitest (1725) green;openapi.json/schema.tsregenerated for the new config field.minimax-h3/fl2va (components), readiness blocks until both overrides are picked, and t2v produces a video with audio.🤖 Generated with Claude Code