From c70ec328a7ee6d3e669b998f1db19943c49da015 Mon Sep 17 00:00:00 2001 From: James Pine Date: Sun, 19 Apr 2026 16:07:51 -0700 Subject: [PATCH] fix(mlx): point Qwen 0.6B at the published mlx-community repo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 0.6B slot was aliased to the 1.7B repo as a temporary fallback because `mlx-community/Qwen3-TTS-12Hz-0.6B-Base-bf16` wasn't published when MLX support shipped. That conversion is live now, so use it — Apple Silicon users picking 0.6B get the actual 0.6B model (1.2 GB instead of 3.5 GB). Also drops the now-obsolete troubleshooting entry and updates the triage notes in PROJECT_STATUS.md. Fixes #485. Co-Authored-By: Claude Opus 4.7 (1M context) --- backend/backends/__init__.py | 2 +- backend/backends/mlx_backend.py | 4 +--- backend/tests/test_qwen_download.py | 2 +- docs/PROJECT_STATUS.md | 8 ++------ docs/content/docs/overview/troubleshooting.mdx | 14 -------------- 5 files changed, 5 insertions(+), 25 deletions(-) diff --git a/backend/backends/__init__.py b/backend/backends/__init__.py index db19b140..e90311c4 100644 --- a/backend/backends/__init__.py +++ b/backend/backends/__init__.py @@ -177,7 +177,7 @@ def _get_qwen_model_configs() -> list[ModelConfig]: backend_type = get_backend_type() if backend_type == "mlx": repo_1_7b = "mlx-community/Qwen3-TTS-12Hz-1.7B-Base-bf16" - repo_0_6b = "mlx-community/Qwen3-TTS-12Hz-1.7B-Base-bf16" # 0.6B not available in MLX, falls back + repo_0_6b = "mlx-community/Qwen3-TTS-12Hz-0.6B-Base-bf16" else: repo_1_7b = "Qwen/Qwen3-TTS-12Hz-1.7B-Base" repo_0_6b = "Qwen/Qwen3-TTS-12Hz-0.6B-Base" diff --git a/backend/backends/mlx_backend.py b/backend/backends/mlx_backend.py index c6157a40..5691cd50 100644 --- a/backend/backends/mlx_backend.py +++ b/backend/backends/mlx_backend.py @@ -45,11 +45,9 @@ class MLXTTSBackend: Returns: HuggingFace Hub model ID for MLX """ - # MLX model mapping mlx_model_map = { "1.7B": "mlx-community/Qwen3-TTS-12Hz-1.7B-Base-bf16", - # 0.6B not yet converted to MLX format - "0.6B": "mlx-community/Qwen3-TTS-12Hz-1.7B-Base-bf16", # Fallback to 1.7B + "0.6B": "mlx-community/Qwen3-TTS-12Hz-0.6B-Base-bf16", } if model_size not in mlx_model_map: diff --git a/backend/tests/test_qwen_download.py b/backend/tests/test_qwen_download.py index b6c42e17..764dc90e 100644 --- a/backend/tests/test_qwen_download.py +++ b/backend/tests/test_qwen_download.py @@ -175,7 +175,7 @@ async def main(): print(" āœ… Server is running") # Test model - model_name = "qwen-tts-0.6B" # Note: 0.6B currently maps to 1.7B on MLX + model_name = "qwen-tts-0.6B" # Check current status print(f"\nšŸ“Š Checking status of {model_name}...") diff --git a/docs/PROJECT_STATUS.md b/docs/PROJECT_STATUS.md index cb12ef2e..5f0cb2d7 100644 --- a/docs/PROJECT_STATUS.md +++ b/docs/PROJECT_STATUS.md @@ -309,11 +309,7 @@ Still reported. Users get stuck downloads, can't resume, offline mode edge cases **Fix path:** PR #443 addresses infinite offline retry. CustomVoice-specific download failures (#475, #445) need triage — likely related to frozen-binary import fixes in PR #438. TADA cluster (#336, #348) and macOS ARM import regressions (#287, #275, #304) need a dedicated triage pass. -**Qwen 0.6B-downloads-1.7B reports:** **#485** (2026-04-19), **#423** (macOS M1), **#329**. Platform-dependent: - -- **On MLX (Apple Silicon) — not a bug.** `mlx-community` only publishes 1.7B-Base-bf16 weights, so the 0.6B Base option intentionally resolves to the same repo (`backend/backends/__init__.py:180` — `# 0.6B not available in MLX, falls back`). UX gap: the selector offers a size that doesn't exist on the active backend. Fix: (a) hide the 0.6B option on MLX, or (b) label it "0.6B (uses 1.7B on Apple Silicon)". -- **On PyTorch (Windows/Linux/CUDA/ROCm/XPU/CPU) — real bug if reported.** Both 0.6B and 1.7B have distinct repos (`Qwen/Qwen3-TTS-12Hz-0.6B-Base` vs `-1.7B-Base`). Triage each report by platform before merging into the MLX cluster. -- **Qwen CustomVoice (either platform)** — no fallback, both sizes always have dedicated repos. +**Qwen 0.6B-downloads-1.7B reports:** **#485** (2026-04-19), **#423** (macOS M1), **#329**. Originally a stale-fallback bug: `mlx-community/Qwen3-TTS-12Hz-0.6B-Base-bf16` wasn't published when MLX support shipped, so the 0.6B slot was aliased to the 1.7B repo. The 0.6B bf16 conversion is live now and both `backend/backends/mlx_backend.py` and `backend/backends/__init__.py` point at their correct repos. Qwen CustomVoice is unaffected — it runs via PyTorch on all platforms, both sizes always have dedicated repos. ### Language Requests (ongoing) @@ -393,7 +389,7 @@ Notable: | **#306** ("voice model"), **#389** ("New model"), **#473** ("New functionality") | Title-only issues, no content. Request details or close. | | **#309** | Uninstall/cleanup question. Answer and close. | | **#241** | "How to use in Colab" — support question, not a bug. | -| **#423** / **#485** / **#329** | Platform-dependent. On MLX: not a bug (0.6B weights don't exist upstream, fallback is intentional — fix UX). On PyTorch: real bug if reproducible. Classify each by reporter's platform before deduping. | +| **#423** / **#485** / **#329** | Stale MLX fallback to 1.7B repo — fixed; 0.6B bf16 conversion now live on `mlx-community`, registry points at correct repo on both backends. | | **#336** / **#348** | TADA download/registration cluster — triage together. | | **#287** / **#275** / **#304** | macOS ARM import regressions on new version — likely one root cause. | | **#292**, **#349** | Possibly already fixed by merged PRs (#321/#412 and #345). Verify + close. | diff --git a/docs/content/docs/overview/troubleshooting.mdx b/docs/content/docs/overview/troubleshooting.mdx index 59e759fb..f615b3c6 100644 --- a/docs/content/docs/overview/troubleshooting.mdx +++ b/docs/content/docs/overview/troubleshooting.mdx @@ -446,20 +446,6 @@ Restart the app to create a fresh database. huggingface-cli download Qwen/Qwen3-TTS-12Hz-1.7B-Base ``` -### Qwen 0.6B Downloads the Same Files as 1.7B on Apple Silicon - -**Symptoms:** -- You select Qwen 0.6B on an Apple Silicon Mac and the download is the same size as 1.7B -- Generation speed and VRAM usage match 1.7B, not the expected smaller model - -**Explanation:** -This is intentional, not a bug. The MLX community only publishes `mlx-community/Qwen3-TTS-12Hz-1.7B-Base-bf16` — there is no 0.6B MLX build. Voicebox's model registry falls back to the 1.7B weights when 0.6B is selected on MLX (see `backend/backends/__init__.py`). - -**Solution:** -- On Apple Silicon, both size options use the 1.7B model — pick either. -- If you specifically need a smaller model, switch to **Kokoro 82M** (~350 MB) or **LuxTTS** (~300 MB) — both CPU-realtime. -- On Windows/Linux with PyTorch, 0.6B and 1.7B are distinct repos and behave differently. - ### Wrong Model Version **Symptoms:**