Backend: - Sanitize a blank hf_token to None in begin_load and load_pipeline, so the default empty Studio token loads anonymously instead of 401ing as an explicit empty credential. - Free the ACTIVE diffusion engine before LLM training and in the delete-cached guard: on a native (sd_cpp) selection the diffusers singleton reports unloaded, so training could start against a live sd-cli generation and delete-cached could remove a GGUF the native engine is using. Both now go through diffusion_engine_router.get_active_diffusion_engine(). - Refuse delete-cached while a background image load is downloading the repo (or its companion base): status().loaded is False in that window, but the delete would yank blobs from under the in-flight assembly. Both engines expose the in-flight ids via a new loading_repo_ids(). - Cap request seeds at 2**53-1: seeds round-trip through JSON gallery recipes, where JavaScript rounds larger integers, so a restored recipe generated a different image. Random seeds were already masked to this range. - Add the task field to CachedModelRepo: the handler sets it for cached diffusers image repos but response_model silently dropped it, letting image-only repos pass the chat picker's task gate. Frontend: - Offset sequential run seeds by the batch size: the native engine seeds image j of a run at seed+j, so a +1 run offset regenerated the previous run's batch-mates. - Revert the optimistic quant selection when a load fails to start. - Stop disabling the Images page on chat-only hosts: the native sd.cpp engine exists exactly for the no-GPU route. |
||
|---|---|---|
| .. | ||
| 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 | ||