The images and video unload routes dropped their arbiter claim whenever the backend was not committed-loaded, but a concurrent /load re-acquires the owner and starts a background load that is not is_loaded for its whole download and finalize window. Releasing during that window cleared the newer load's claim, so a later chat/image load saw no owner, skipped eviction, and could allocate a second heavy model on the GPU. Gate the release on loading_repo_ids() too (both diffusion engines and the video backend expose it), not just the committed state, so an overlapping load keeps ownership. Add regression tests for the in-flight case on both routes. |
||
|---|---|---|
| .. | ||
| backend | ||
| frontend | ||
| src-tauri | ||
| __init__.py | ||
| install_llama_prebuilt.py | ||
| install_node_prebuilt.py | ||
| install_python_stack.py | ||
| install_sd_cpp_prebuilt.py | ||
| LICENSE.AGPL-3.0 | ||
| node_prebuilt_pins.json | ||
| package-lock.json | ||
| package.json | ||
| setup.bat | ||
| setup.ps1 | ||
| setup.sh | ||
| Unsloth_Studio_Colab.ipynb | ||