unsloth/studio/backend/routes
Daniel Han a2342f80df Stop an ignored-cancel sd-server, guard deletes during diffusion training, repair unusable managed binaries
sd-server does not interrupt an in-flight job, so when it ignores a cancel the
grace branch abandoned the poll and reported cancellation while the native job
kept a core (or the GPU) busy to completion and held the server's job slot. The
comment said the caller stops the server, but only unload does that
immediately: a superseding load stops it after its multi-gigabyte download, and
a load that then fails never gets there. Stop it here, as the deadline branch
already does.

DELETE /api/models/delete-finetuned checked only the LLM trainer, so it could
rmtree the output directory a live diffusion LoRA run was about to write its
adapter into. Consult the diffusion training service too, like the dataset
mutation and model-load routes.

find_sd_*_binary only checks is_file(), so an interrupted extraction (or a
prebuilt for the wrong CPU) left a present-but-unrunnable binary the installer
never retried: every load probed it, fell back to diffusers, and native
inference stayed off until the directory was deleted by hand. Probe it and
reinstall, but only for a copy under the installer-owned root -- SD_CLI_PATH,
UNSLOTH_SD_CPP_PATH, an in-tree build and anything on PATH are the user's.
2026-07-27 09:41:34 +00:00
..
data_recipe Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
.gitkeep root studio folder 2026-02-02 09:13:49 +00:00
__init__.py Merge branch 'main' of https://github.com/unslothai/unsloth into r6763 2026-07-27 07:15:43 +00:00
auth.py Studio: reject whitespace-only passwords (#7341) 2026-07-23 00:44:37 -07:00
chat_history.py Studio: add Deep Research (#7219) 2026-07-26 23:36:02 -07:00
datasets.py Studio: add configurable model download location (#7274) 2026-07-23 01:34:38 -07:00
export.py Studio: offer the latest transformers release for brand-new architectures (#7056) 2026-07-15 05:25:26 -07:00
inference.py Guard old diffusers, stream video exports, record conditioned recipes 2026-07-27 07:41:19 +00:00
llama.py Studio: add local speech-to-text dictation engine (#7095) 2026-07-23 01:39:03 -07:00
mcp_servers.py Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
models.py Stop an ignored-cancel sd-server, guard deletes during diffusion training, repair unusable managed binaries 2026-07-27 09:41:34 +00:00
preview.py Studio: opt-in OpenAI /v1 model auto-switch and idle keep-warm (#6392) 2026-07-01 06:42:23 -07:00
prompts.py Studio: clean-room compact RAG (knowledge bases, hybrid search, fast indexing) (#5910) 2026-06-09 21:17:04 -07:00
providers.py fix(studio): persist connection model selections for remote clients (#7298) 2026-07-23 19:11:50 -07:00
rag.py Add drag and drop sources to the create project dialog (#7441) 2026-07-25 23:54:48 -07:00
research_runs.py Studio: add Deep Research (#7219) 2026-07-26 23:36:02 -07:00
settings.py Trim the comments across the diffusion backend 2026-07-26 20:31:19 +00:00
training.py Per-load video cancel event, family-gated image picker, cond cache refusal 2026-07-27 08:14:36 +00:00
training_history.py Studio: require signed capability tokens for /p preview links (#6666) 2026-06-25 21:40:48 -07:00
training_vram.py Add Intel XPU support to Unsloth Studio (#4724) 2026-07-24 02:22:07 -03:00
video.py Guard old diffusers, stream video exports, record conditioned recipes 2026-07-27 07:41:19 +00:00
whisper.py Studio: add local speech-to-text dictation engine (#7095) 2026-07-23 01:39:03 -07:00