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. |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .gitignore | ||
| .gitkeep | ||
| .npmrc | ||
| biome.json | ||
| components.json | ||
| data-designer.openapi (1).yaml | ||
| eslint.config.js | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||