Releases: nomadkaraoke/python-audio-separator
Releases · nomadkaraoke/python-audio-separator
Release list
v0.44.3
feat: expose --use_directml CLI flag (experimental) (#290) * docs: design spec for exposing DirectML via CLI (experimental tier) Contributor (Vageesha Gupta) reported DirectML support exists (PR #211) but is unreachable from the CLI. Design: expose --use_directml as explicit opt-in, add conditional discoverability hint, document as experimental with an honest per-architecture status, ship a patch release, and reply inviting validation of untested architectures. * docs: implementation plan for DirectML CLI exposure + spec correction Correct spec to drop remote-CLI scope: DirectML is local-only and the remote separation servers run on CUDA/CPU, so plumbing use_directml through audio_separator/remote/* would be dead config. Add 5-task TDD plan (CLI flag, discoverability hint, README, version bump, reply draft). * feat: expose --use_directml CLI flag (experimental) Wire the existing Separator(use_directml=...) support (PR #211) to the CLI, mirroring --use_autocast. Explicit opt-in only. Adds the fixture key + a wiring test in test_cli.py. * feat: hint that --use_directml is available when DML packages are installed In the CPU-fallback path of setup_torch_device, if torch_directml or onnxruntime-directml is installed but DirectML wasn't enabled, log a one-line INFO hint pointing to --use_directml. Fires during 'audio-separator --env_info' on DirectML-capable machines. * docs: add experimental DirectML (Windows AMD/Intel GPU) install section New install section with the dml extra, --use_directml usage, env_info confirmation line, and an honest per-architecture status matrix. Also adds --use_directml to the ToC, the full CLI-options reference, and the Separator class parameters list. * chore: bump version to 0.44.3 * chore: drop internal planning docs from PR
v0.44.2
fix(remote): unblock audio-separator-remote for typical files (#288) * fix(remote): unblock audio-separator-remote for typical files Two independent issues prevented `audio-separator-remote` from working end-to-end against the GCP Cloud Run deployment: 1. **CLI hits Cloud Run's 32 MiB request body limit on real audio files.** The underlying AudioSeparatorAPIClient already supports a `gcs_uri` mode where the server fetches from GCS (used by karaoke-gen), but the CLI only exposed the multipart upload path. Now the CLI detects files >30 MiB and auto-uploads to GCS, passes `gcs_uri` to the API, and cleans up the GCS object in a `finally` block (the bucket's 1-day lifecycle is the safety net). Bucket configurable via `--gcs-bucket` or `AUDIO_SEPARATOR_GCS_INPUT_BUCKET`; defaults to the existing `nomadkaraoke-audio-separator-outputs` (separator SA already has objectAdmin, no infra change needed). `google-cloud-storage` is lazy-imported with a clear install hint if missing. 2. **Cloud Run server silently runs in CPU mode, not GPU.** The image relied on `pip install ".[gpu]"` for GPU support, which only swaps in `onnxruntime-gpu` — the `torch>=2.3` constraint pulls PyPI's default CPU-only PyTorch wheel. Result: `torch.cuda.is_available()` returns False, Separator falls back to CPU, jobs run ~10x slower (50 min instead of 5 min for the vocal_balanced preset). karaoke-gen's audio-separation-job image already documents this gotcha in `Dockerfile.gpu-base:100-106`; mirroring that pattern here: install `torch==2.6.0+cu126` from the cu126 index first so audio-separator[gpu] sees torch as already satisfied. Tests: 7 new unit tests covering GCS upload helpers (blob path format, URI parsing, error handling), bucket resolution priority (--flag > env > default), and the integration into handle_separate_command (large/small file, cleanup on failure, upload failure). Bumps version to 0.44.2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * test: pass gcs_bucket to handle_separate_command in integration test Missed this call site when updating the function signature. Unit tests in tests/unit/test_remote_cli.py were updated, but integration test test_cli_separate_command_integration still passed only 3 args. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
v0.44.1
fix: send multipart encoding when using gcs_uri (fixes 400 error) (#278) FastAPI requires multipart/form-data for endpoints with File()/Form() parameters. When gcs_uri is used without a file upload, requests defaulted to x-www-form-urlencoded, causing a 400 Bad Request. Fix: send a dummy empty file field to force multipart encoding. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.44.0
feat: add GCS URI support to /separate endpoint (#277) Allow callers to pass a gcs_uri (gs://bucket/path) instead of uploading the audio file as a multipart POST body. This avoids Cloud Run's 32MB request body limit for large FLAC files. - Server: new gcs_uri parameter on /separate, downloads from GCS directly - Client: separate_audio() and separate_audio_and_wait() accept gcs_uri - Backward compatible: file upload still works when gcs_uri is not set - Version bump to 0.44.0 Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.43.1
fix: ensemble separation ignores custom_output_names, misclassifies s…
v0.43.0
chore: bump version to 0.43.0 (#274) * chore: bump version to 0.43.0 New features in this release: - Cloud Run GPU deployment support (deploy_cloudrun.py, Dockerfile.cloudrun) - Ensemble preset support in API client (-p/--preset flag in CLI) - Preset parameter in separate_audio() and separate_audio_and_wait() - Stem marker stripping for chained separations Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Trigger CI: runners restarted, idle check paused --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.42.1
chore: bump version to 0.42.1 (#271) Patch release for: - Fix chunk overwrite when using custom_output_names with chunk_duration (#259, #270) - Clarify demucs segment_size "Default" documentation (#264, #270) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.42.0
feat: multi-model ensemble separation with 9 community-curated preset…
v0.41.1
fix: RFC 5987 encoding for Unicode filenames in Content-Disposition h…