• Stefy Lanza (nextime / spora )'s avatar
    read a model's card where the card actually lives · 82b647de
    Stefy Lanza (nextime / spora ) authored
    Adding `defaults` to the Z-Image-Turbo entry showed they would have been
    ignored anyway.
    
    The manager keeps runtime kwargs FLAT and the models.json entry under
    `_raw_cfg`, so only keys that `build_runtime_kwargs` promotes exist at the top
    level — and `defaults` is not one of them. `model_defaults()` read the flat
    dict, so on the image path a card's steps and guidance were silently dropped:
    `/v1/models` published them (it reads the entry) while generation used the
    generic 30 steps at CFG 7.5. A client that read the listing and trusted the
    server to apply it was wrong twice over.
    
    Which means `Z-Image-Turbo-IntoRealism` (10 steps) and `Krea-2-RealDream` (8)
    had never had their cards applied, and `call_kwargs` sits in the same place —
    MOSS-Image's `uncond_skip_layers` was never passed either.
    
    `card_view()` merges the entry under the flat kwargs, with the flat ones
    winning a collision because they are what the loader was given, and both
    readers go through it. The video path had already hit this and merged by hand
    at its call site; `images.py` never did, and one of the two being right is
    what made it invisible. Same lesson as the `gpu_split` and
    `sequential_text_encoder` promotions, three lines apart in that same function.
    
    The new test walks the installed catalogue and asserts, for every card
    carrying `defaults`, that what the listing publishes is what generation would
    use.
    
    Also: a TTS engine's venv no longer reports itself ready on the strength of
    the engine package alone. `pip install coqui-tts` brought ninety dependencies
    and no torch, the venv looked complete, `/v1/audio/speech/capabilities` said
    `env_ready: true`, and the first synthesis failed on `import TTS`. `torch` is
    in every family's list now.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_014T3rZozi1Ehk96NG1WesgC
    82b647de
test_card_defaults_reach_generation.py 4.9 KB