-
Offer the media pickers only what the host can run, and name the H3 speed gap (#8822)
发布于
2026-08-14 14:16:42 +00:00 - Offer the media pickers only what the host can run, and name the H3 speed gap
The Video picker showed MiniMax H3's bf16 pipeline row on Apple Silicon, where
loading it always fails: video.py refuses every modular Diffusers workflow on
Metal because the auto CPU offload needs mem_get_info, which torch.mps does not
expose. The row was only ever deprioritised by the size filter, so on any sort
other than Recommended it stayed clickable and always 400d.Classify the host as accelerated, gguf-only or unknown and offer curated
artifacts accordingly, so a host that can only run the native engine sees only
the GGUF rows. Capability is kept apart from size: curatedArtifactFitsDevice
still answers whether there is room, and a 128 GB Mac has room for a model it
cannot place. The unknown state matters because the GPU hook opens at
budgetKnown false, and reading that as CPU-only would blink every non-GGUF row
out and back on a real GPU host.On an accelerated host the two H3 rows now read Fast FP8 and Slow. The pair
differ by roughly 10x and the old names said nothing about it. Keyed on the two
H3 ids rather than on format, since most non-GGUF rows are plain bf16 and Auto
precision resolves to int8 or bf16 on cards without fp8.Downloaded weights keep their row either way.
- Hide only the artifact the backend refuses, not every non-GGUF row
The filter keyed on format, so a gguf-only host lost every non-GGUF artifact.
The backend refuses far less than that: modular_workflow is set on one family,
MiniMax H3, and video.py raises for it on MPS alone. Everything else places
fine there. video_capability() certifies Apple Silicon, the diffusion target
has a first-class MPS bfloat16 path, and the STT rows run through the
whisper.cpp sidecar whatever format the catalog labels them.Measured, the format rule dropped 20 of 32 image rows and 7 of 9 video rows,
taking six image families and four video families out of the picker entirely.
It also reached the Audio page, which passes AUDIO_CATALOG into the same
picker: all five Whisper rows went, on the two host classes where the sidecar
makes them the primary path. pickers.tsx already carries a comment about this
exact trap, from the last time a GGUF-only rule hid every non-GGUF model.Key it on the repo id instead, the way the speed suffix already keys its own
H3 case. Video now drops one row on a gguf-only host and image and audio drop
none.- Filter curated search results by host too
Search reaches the live Hub, so a query re-landed the row the seed and
Recommended filters had just dropped. The Mac format check in that chain
admits safetensors, so MiniMaxAI/MiniMax-H3 came back clickable and was still
refused at load. Same predicate as the other two lists, downloaded exception
included.下载附件