Repository navigation
Fix/deploy find server by port - #475
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… interpreter - ci.yml and codeql.yml also run on pushes to develop: the agent loop pushes it directly, with no PR, so the 0.4.0 range met CI and CodeQL only on the release PR (where 14 path-injection alerts surfaced); - scripts/release.sh --next <version> merges master back into develop and opens <version> there, the step 0.4.0 did by hand and beta.7 skipped; - e2e's fixture server runs on DW_E2E_PYTHON (preflight passes the interpreter its pytest used), else ./venv or ./.venv, else python3 - a worktree or a .venv checkout can run preflight. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
git refuses to check develop out while another worktree has it - the agent loop's checkout always does - so --next as first written would have failed on its first real use. It now merges master and bumps in a detached temporary worktree at origin/develop and pushes HEAD:develop; nothing is checked out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 8-step 768p FL2V turbo LoRA records alpha 8 at rank 128 in its __metadata__ (its ComfyUI twin: training_alpha 8.0, training_scale 0.0625), and diffusers honors it. #147 set lora_alpha: 128 on the template, copied from upstream's invocation of the *4-step* 768p file - which records 128 itself, so the flag was a no-op there - and so ran this file at sixteen times its trained strength. Compute is unchanged, so the curated cost holds. lora_alpha is now null, and the README table, the H3 skill's hard rule, the set_adapter_alpha docstring and the schema's alpha description stop claiming the 768p files need 128. test_the_alpha_is_left_to_the_file pins every H3 template to a known file with no stated alpha; test_plugin_skills now asserts the opposite of what it used to. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A template's `loras` list is fixed JSON, so a caller had no way to run a step without its adapter short of rewriting the workflow. Passing the lora variables as null looked like the way and was worse than a refusal: argument_errors and validation_errors answered clean, the job queued, the pipeline loaded for minutes, and load_loras died on float(None) with a TypeError naming no lora. Now a null model_name skips the entry (active_loras, so placement does not defer for an adapter that never loads), and a null scale or adapter_name takes its default. adapter_warnings says so at the path the caller wrote - arguments.lora_model_name when they nulled the variable - and warn_adapters repeats it on the run as kind `lora_disabled`, since a turbo lora's step count and shift no longer fit the step once it is gone. The schema takes a literal null; the guide, the H3 skill and CLAUDE.md name the switch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n MPS A CUDA-authored template names quantization_device "cuda"; SDNQ moved weights to it during load and failed on a Mac. Device arguments now go through resolve_device, and use_quantized_matmul(_conv) is turned off on MPS, where it falls back to torch._int_mm (~500x slower than bf16). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
diffusers refuses use_stream off CUDA/XPU, and record_stream without use_stream, so every LTX-2.5/H3 template failed to load on a Mac. Both are dropped together, with a warning, when the onload device is neither. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every real segment run raised KeyError on the SAM v1 'reshaped_input_sizes' key; the mocked tests supplied it. Adds a test on the real processor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
device_memory_stats reported zeros on MPS, so pipeline_released events, the REPL and the UI all showed 0 GB. torch.mps reports allocated, driver and recommended-max figures; use them. Adds device_capacity_gb(). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…card A 64 GB Mac was refused against the catalog's 24 GB RTX 3090 entry. The check now uses the serving backend's own cost entries, else its measured capacity, else (capacity unreadable) every entry - so the guard is never switched off. The #265 refusal had no tests; this adds them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Automatic slicing on MPS replaced SDPA with sliced bmm, measured 12.8 vs 5.4 ms per SDXL-sized attention block in bf16. disable_attention_slicing is kept in the schema and ignored. Also fixes the fp16-on-MPS warning text, which ran two sentences together and recommended float32. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lter With PYTORCH_ENABLE_MPS_FALLBACK set, an op the MPS backend lacks runs on the CPU and torch says so with a UserWarning - which dw ignored along with every other UserWarning, so the slowdown had no trace. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…awn repos - upscale-*, image-to-image: default image is diffusers' docs cat.png (was example.com, and a third-party 'sage-permission-probe' repo) - audio-trim-fade, transcribe-audio: default audio is the transformers docs ASR sample (was example.com) - flux-torchao: one spelling of FLUX.1-dev (two spellings = two ~23 GB cache entries) - attention-processor, controlnet-component: stable-diffusion-v1-5 repo - dw.test's workflow runs in bfloat16, which is safe on MPS too Adds a catalog test for placeholder hosts, withdrawn repos and repo spellings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
End to end, SD 1.5 (the quick-start) ran 17.3s without slicing and 14.1s with it: MPS SDPA is slow at head dims 40/48/160 and fast at 32/64-128, so slicing helps SD 1.5 and hurts SDXL (2.4x in attention). Restores the automatic default and documents disable_attention_slicing for SDXL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
segment and segment-and-inpaint pointed at a removed HF docs image (404), controlnet-component at a host that no longer answers, image-variation at a deleted tweet image. All now use diffusers' documentation-images. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GroundingDINO scores a lowercase, period-terminated query. The task passed the raw prompt, so 'cat' scored 0.20 against a photo of a cat - under the 0.3 threshold - and segment returned an empty mask on every backend. 'cat.' scores 0.40, and the template now detects at 0.64. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
LTX-2.5's SDNQ transformer load segfaulted (exit 139) on a Mac: diffusers' per-shard loader threads were all inside copy_ onto MPS at once. With parallel loading off the same load took 39s and succeeded. diffusers reads HF_ENABLE_PARALLEL_LOADING at import, so the default is chosen by platform (macOS has no CUDA); CUDA boxes keep the parallel load, and an explicit setting still wins. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
LTX-2's transformer and text connectors build RoPE frequencies in float64 when their double_precision flag is set (the default); MPS has no float64, so LTX-2.5 loaded on a Mac and failed its first step. diffusers already makes this fallback for Wan, Lumina2, SkyReels-V2, ChronoEdit and Sana-Video; dw applies it to any module exposing the flag, on MPS only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The skill told an agent to stop on an mps server because none of the templates fit. With the engine's MPS adaptations, ltx2/text-to-video ran on a 64 GB M5 Pro (6.5 min cold-cache end to end, 23.5 GB peak). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Whisper refuses more than 30 s of audio ("more than 3000 mel input
features") unless it predicts timestamps, so transcribe_audio failed on
any clip longer than one window - found transcribing a 110 s Music 3
song. Asked for only past 30 s, since CTC models read the flag
differently.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The skill told an agent to stop on an mps server. templates/minimax/music ran on a 64 GB M5 Pro (11.7 min end to end, 28.6 GB peak, a 110 s song whose lyrics transcribe back). music-video also runs H3 and is unverified. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
transformers raises for a CTC model unless return_timestamps is "char" or "word", and for a non-Whisper seq2seq model at all, so a wav2vec2-style model_name on a clip over 30 s failed where it used to return text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Mac (MPS) support: CUDA templates run unchanged on Apple Silicon
On macOS the Homebrew interpreter shows up in ps as .../MacOS/Python, so pgrep -f 'python -m dw\.serve' finds nothing and a deploy starts a second server on a port that's taken. Match what listens on DW_PORT instead (lsof), falling back to the old pgrep where lsof is missing. Same result on lem, where one server runs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dc05ab4 made every check ask what listens on DW_PORT. dw.serve imports torch for seconds before it binds, so the startup loop saw an empty port and reported 'exited during startup' on every deploy. Keep the port for choosing what to stop, wait on the pids actually signalled (uvicorn closes its socket early in a graceful shutdown), and judge startup by the process (pgrep -i, so Homebrew's .../MacOS/Python matches too). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.