Skip to content

model_specs: correct descriptions that contradict the code - #403

Closed
CryptVenture wants to merge 1 commit into
0xShug0:mainfrom
CryptVenture:pr/spec-descriptions
Closed

model_specs: correct descriptions that contradict the code#403
CryptVenture wants to merge 1 commit into
0xShug0:mainfrom
CryptVenture:pr/spec-descriptions

Conversation

@CryptVenture

Copy link
Copy Markdown
Contributor

Split out of #372 as requested. This PR is description text only; the strict contract fixes, the VoxCPM1 defaults, the ASR/aligner/codec declarations and the MiniMax declarations are separate PRs.

Nothing here changes a declared type, bound, default or required flag, so no request that was accepted or rejected before changes state.

The changes

Spec Change Code it matches
dramabox five descriptions dropped the claim that their default "comes from config.json" dramabox/assets.cpp reads config.json for the architecture only; the values named are the engine's own
fish_audio.reference_text says it is required whenever the request carries inline reference audio src/models/fish_audio/session.cpp:255-258 throws "<role> with inline reference audio requires reference_text option"
outetts.reference_text same, for voice cloning src/community_models/outetts/session.cpp:695-698 and 722-728 throw "OuteTTS voice cloning requires --reference-text"

Both reference_text options stay required: false on purpose: they are required only when reference audio is present, and the schema's required is a plain bool with no conditional form, so marking them required would break plain TTS with a built-in voice. The description is the only place that distinction can currently live.

Validation

python3 tools/check_loader_catalog_sync.py
# ok: runtime loaders, model_specs, and model_manager_v2 are in sync

audiocpp_model_manager list --repository-root .        # exit 0
# parses every on-disk spec through the C++ schema loader

Scope

Three spec files, 7 lines. The generated WebUI bundle (webui/native/dist/index.html) is deliberately not included: catalog.ts inlines model_specs/*.json at frontend build time and the bundle is not byte-reproducible, so regenerating it in each PR of this split would produce conflicts between them. Happy to send one bundle-regeneration PR once the series has landed.

Description text only. No declared type, bound, default or required flag
changes, so no request that was accepted or rejected before changes state.

  - dramabox: five descriptions claimed their default "comes from config.json".
    dramabox/assets.cpp reads config.json for architecture only; the defaults
    named in the spec are the engine's own, so the sentence pointed reviewers
    at a file that does not carry them.
  - fish_audio.reference_text: says it is required whenever the request carries
    inline reference audio. fish_audio/session.cpp:255-258 throws
    "<role> with inline reference audio requires reference_text option".
  - outetts.reference_text: same, per outetts/session.cpp:695-698 and 722-728,
    "OuteTTS voice cloning requires --reference-text".

Both reference_text options stay `required: false`: they are required only when
reference audio is present, and the schema's `required` is a plain bool with no
conditional form, so marking them required would break plain TTS with a
built-in voice.
@CryptVenture

Copy link
Copy Markdown
Contributor Author

Closing for now to stay inside the 3-concurrent-PR policy (see the discussion on #422). Nothing is wrong with the change and CI is green on it; I will reopen it as review slots free.

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