Skip to content

model_specs: declare every file the safetensors sources require - #5

Closed
christopherthompson81 wants to merge 1 commit into
mainfrom
specs/safetensors-files-lists
Closed

christopherthompson81 wants to merge 1 commit into
mainfrom
specs/safetensors-files-lists

Conversation

@christopherthompson81

Copy link
Copy Markdown
Owner

Review copy in the fork — not for upstream yet.

Six safetensors packages list fewer files than their own source requires, so they install cleanly and then fail at load with missing model package file '<id>'. files is an explicit list rather than a filter, so a downloader has no way to discover the rest.

package requires declared
seed_vc_mlx_safetensors 28 3
index_tts2_safetensors 20 3
supertonic_3_safetensors 13 3
chatterbox_safetensors 9 4
omnivoice_safetensors 7 3
qwen3_tts_1_7b_base_safetensors 8 6

Every file added is already published at exactly the path the spec declares, in the repo the package already downloads from — 36 of 37 checked against the HuggingFace API — so this needs no new hosting.

Two judgement calls to review

voxcpm2_safetensors is deliberately untouched. It has the same shape, but one of its two missing files (audiovae.safetensors) is not published by OpenBMB/VoxCPM2. Completing only the hosted half would leave it still failing with one fewer clue as to why.

index_tts2 goes 3 → 21, not → 20. It already declared bpe.model, which the safetensors source does not name in files or tensors. Kept rather than pruned — it ships today, and removing a file the package already fetches is a different decision from adding ones it needs.

Not verified end to end

The evidence is static: the spec says the file is required, and the repo publishes it at that path. Nothing here has been installed and loaded against the patched lists. supertonic is the cheapest real test at ~414 MB.

Tracked as christopherthompson81/AudioCpp-Bindings#79.

Six safetensors packages list fewer files than their own source needs, so they
install cleanly and then fail at load with

    missing model package file '<id>': <models>/...

`files` is an explicit list rather than a filter -- the package manager iterates
it for snapshot downloads -- so a downloader has no way to discover the rest.
`optional_files` and `optional_tensors` exist for genuinely optional resources
and load through add_optional_resource_map; everything in `files` and `tensors`
is required and throws at package.cpp:283 when absent.

    chatterbox_safetensors             requires  9, declared 4
    index_tts2_safetensors             requires 20, declared 3
    omnivoice_safetensors              requires  7, declared 3
    qwen3_tts_1_7b_base_safetensors    requires  8, declared 6
    seed_vc_mlx_safetensors            requires 28, declared 3
    supertonic_3_safetensors           requires 13, declared 3

Every file added here is already published, at exactly the path the spec
declares, in the repository the package already downloads from -- so this is a
declaration fix and needs no new hosting. Existing entries keep their order and
the new ones follow in the order the source lists them.

voxcpm2_safetensors has the same shape but is deliberately left alone: it also
requires `audiovae.safetensors`, which OpenBMB/VoxCPM2 does not publish, so
completing its `files` list would not make it loadable and the gap there is
hosting rather than declaration.

Found by checking, for every package, that each `model:`-rooted path in its
format's source appears in the package's `files`. Worth having as a build-time
check -- with the caveat that it has to be format-aware, since a GGUF source
names the same config files and the GGUF embeds them, so a format-blind version
reports three quarters of the catalogue.
@christopherthompson81

Copy link
Copy Markdown
Owner Author

Reviewed and sent upstream as 0xShug0#550. Closing — this copy has done its job.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant