Studio: classify local video pipelines, harden video preflight, and gate custom-root sd.cpp removal on ownership
- _local_model_task now tags a local diffusers pipeline that resolves to a video family (LTX / Wan / Hunyuan) as text-to-video, mirroring the cached-repo _cached_repo_task, so supported local video pipelines surface in the Video On-Device picker instead of being routed to the Images picker where the image loader rejects them. Gated on _local_is_diffusers so only a real loadable pipeline dir reaches the video check. - Video validate_load_request now rejects a local pipeline pick whose directory has no model_index.json before the GPU handoff, mirroring the image loader, so a bad local pipeline can no longer evict the resident model and only then fail deep in from_pretrained. - The custom/env-mode uninstall now removes a sibling stable-diffusion.cpp only when it carries the Studio owner marker. install_sd_cpp_prebuilt writes the canonical .unsloth-studio-owned marker on install; uninstall.sh and uninstall.ps1 keep any unowned checkout (a user's own git clone of stable-diffusion.cpp beside a custom Studio root is no longer deleted). A pre-marker Studio build is left behind rather than a user file removed. Adds regression tests: local video pipeline tagged text-to-video (and a video-named non-pipeline dir stays untagged so it can never trigger a doomed pipeline load), the video local-pipeline preflight rejection, the install ownership marker, and the uninstall keeping an unowned sibling while removing an owned one.
This commit is contained in:
parent
fb94a79337
commit
d36aeb54f3
9 changed files with 98 additions and 4 deletions
|
|
@ -442,6 +442,13 @@ def install(
|
|||
_make_executable(sd_server)
|
||||
if sd_server is not None:
|
||||
print(f"installed sd-server -> {sd_server}", flush = True)
|
||||
# Ownership marker (the same one setup.sh/_is_studio_root use, and setup.ps1 writes into
|
||||
# the Node sibling dir) so the uninstaller can tell a Studio-installed sd.cpp from a user's
|
||||
# own stable-diffusion.cpp checkout beside a custom Studio root, and delete only ours.
|
||||
try:
|
||||
(target / ".unsloth-studio-owned").touch()
|
||||
except OSError:
|
||||
pass
|
||||
return sd_cli
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue