Managed to run Qwen3-TTS on Mac (M4 Air) but it’s melting my laptop. Any proper way to do this?

I’m on an M4 Air. I saw people saying it “could work” but couldn’t find a single tutorial. I eventually had to manually patch multiple files in the ComfyUI custom node to bypass errors.
It finally loads without crashing, but it takes forever and absolutely burns my PC.
Is there an optimized way to run this or a setting I’m missing?
I used github/flybirdxx/ComfyUI-Qwen-TTS/ custom node.

smaller model ? or inference providers if there are i guess but do you absolutely need to run it locally ?

same question i wanted to ask

Try this.. worked for me!

:performing_arts: Your Mac isn’t weak — your stack is wrong-shape

you patched files. you bypassed errors. it loads. it still cooks the laptop. that wasn’t your fault.


Sounds like you went the patching route, install finally loaded, now the chassis is roasting. Five things hitting at once:

  1. Takes forever
  2. Burns the laptop (M4 Air = fanless, that’s the killer)
  3. No tutorial worked
  4. You had to hand-patch the node
  5. Zero clue whether it’s a setting you missed or just how this thing runs

That’s not five problems. It’s one problem wearing five masks.
Every Mac user trying Qwen3-TTS through ComfyUI hits this exact wall.


Same model. Same Mac. Different framework.

Numbers below tested on a fanless M4 Air:

Your current setup The Mac-native fix
RAM 10+ GB 2-3 GB
Temperature 80-90 °C 40-50 °C
Install The night you just spent ~5 minutes

PyTorch on Mac is doing a Rosetta on itself — every operation hops through a translation layer to talk to Metal. Apple built a framework called MLX that skips the hop entirely. Same hardware, same model, the temperatures collapse because the compute path stops doubling.

ComfyUI was built around PyTorch for image generation. Dropping autoregressive audio into it makes you pay both taxes plus the wrapper itself on top. That’s why the laptop melts.


:magic_wand: Three forks already ship the MLX path — no patching, no flags

:artist_palette: suckerfish/qwen3-tts-mlx — closest to ComfyUI’s vibe. Gradio UI, preset voices, cloning, REST API.

:fire: kapi2800/qwen3-tts-apple-silicon — the fanless M4 Air test repo (where the temperature numbers above came from).

:bullseye: hiroki-abe-58/Qwen3-TTS-Mac-GeneLab — double-click run.command, dual-engine fallback specifically for voice cloning.

The whole suckerfish install:

pip install mlx-audio soundfile
huggingface-cli download mlx-community/Qwen3-TTS-12Hz-1.7B-CustomVoice-8bit \
  --local-dir ./models/1.7B-CustomVoice-8bit

:light_bulb: Hot take that flipped my own assumption: go for the 8-bit model, NOT the 4-bit. On Metal kernels the 4-bit dequant overhead is bigger than the memory savings. Adrian Wedd benched both side-by-side — the 8-bit model is faster AND cleaner. Marketing says “smaller bits = faster”; Apple Silicon disagrees.

I use suckerfish’s fork because the Gradio UI scratched the same itch ComfyUI did — preset dropdowns, voice management, no patching at 1 AM.

:mouse_trap: Bob Ross moment: if you see a tokenizer warning print on first load, that’s cosmetic — generation works, ignore it. If your M4 Air is the 8 GB variant, swap 1.7B-CustomVoice-8bit for 0.6B-CustomVoice-8bit and you’re under 3 GB peak. Quality is honestly hard to tell apart for narration.


🪤 hold up — you might not need Qwen3-TTS at all (the 1/20-size reveal)

Nobody mentions this when recommending Qwen3-TTS: it’s an autoregressive model, generating audio one chunk at a time, each one waiting for the previous one to finish. Slow even on an RTX 5090 (HF discussion #18 — 14 % GPU utilization).

Not a Mac problem. Model-class problem.

If your real need is “I want my Mac to read text in a good voice” and you’re not married to the 3-second cloning trick, Kokoro is a different beast entirely:

  • 82 million parameters (Qwen3-TTS is 1.7 billion → 20× smaller)
  • 54 preset voices, 9 languages
  • M1 Air 8 GB benchmark: 1500 words in 30-45 seconds (Murmur 4-model bench)
  • Doesn’t even warm the chassis

Trade: no zero-shot voice cloning. You pick from 54 presets, you don’t paste a 5-second sample of someone you know. If presets work for you, Kokoro is unfair.

mlx_audio.tts.generate \
  --model mlx-community/Kokoro-82M-bf16 \
  --voice af_heart \
  --text "This took less RAM than my browser tab."

For the no-Python-environment crowd: Murmur is a native macOS app bundling Kokoro + Qwen3-TTS + Fish Audio + Chatterbox in one window. Closest thing to “ComfyUI but actually built for Mac.”

🔧 stuck on the ComfyUI setup? band-aids that won't break next update

Won’t fix the wall but stops you stacking it higher:

  • attention: sdpa in the node — flash_attn and sage_attn are CUDA-only. They fall back silently on Mac and waste startup time. Set sdpa and stop fighting the wrapper.
  • 0.6B model, not 1.7B — same node, smaller weights, roughly half the memory.
  • Enable unload_model_after_generate — the model gets evicted between runs instead of camping in unified memory.
  • dtype=torch.float32 — counterintuitive, but esendjer/Q3-TTS documented this clearly: float32 actually works on MPS, while bf16 silently misroutes ops to CPU.

This treats symptoms, not the cause. Native MLX still wins on the same hardware no matter how many ComfyUI flags you set — but these flags survive a Comfy update without re-breaking, so it’s the right band-aid if you can’t migrate yet.

🎯 why the laptop melted — the three-tax stack visualised

You did nothing wrong. The path you installed compounds three taxes that all hit the same chip:

  1. Architectural tax. Qwen3-TTS is autoregressive — token by token, each one waiting for the last. Even an RTX 5090 runs it at ~14 % GPU utilization (issue #89). Flow-matching models like F5-TTS finish faster than realtime on the same hardware because they generate everything in parallel.

  2. PyTorch-MPS tax. PyTorch’s Metal backend is a translation layer, not native Metal. Eager dispatch, fp32 fallbacks on unsupported ops, cold kernel recompiles. On an 8 GB Mac the 0.6B PyTorch model needs ~10 GB and triggers swap-death.

  3. ComfyUI wrapper tax. Built for image generation, not autoregressive audio. Reloads the model per execution, no proper KV-cache reuse, audio-tensor format conversions on every node hop.

MLX-native paths skip all three. That’s why the temperature collapses on the same hardware.

🧨 the deeper rabbit hole — Swift packages, GGUF port, the 808 MB compression paper

For people who want to ship a Mac app, not just script:

  • AtomGradient/swift-qwen3-tts — drop into an Xcode project, ships voice generation on macOS Sequoia / iOS 18+. Built on MLX Swift. The repo links a published paper documenting a compression pipeline that takes Qwen3-TTS from 2.35 GB → 808 MB preserving quality (vocab pruning + tokenizer pruning + 4-bit quant). Smallest documented working deployment.

  • soniqo/speech-swift — Apple Silicon speech toolkit bundling Qwen3-TTS, CosyVoice, Kokoro, VibeVoice, Parakeet, Omnilingual ASR as modular SPM packages. Full benchmarks at soniqo.audio/benchmarks.

  • waybarrios/vllm-mlx — vLLM-style inference server with continuous batching, paged KV cache, OpenAI-compatible API. The arXiv paper measured 525 tokens/sec on M4 Max for Qwen3-0.6B, exceeding mlx-lm and llama.cpp.

  • HaujetZhao/Qwen3-TTS-GGUF — llama.cpp port of the LM portion. Currently Windows/CUDA-primary; Mac support is thinner than MLX but the project is moving fast. Worth watching for a 6-12 month horizon.

  • The official [mlx] extra most people miss: pip install -e ".[mlx]" from QwenLM/Qwen3-TTS enables Qwen3TTSMLXModel directly. Buried in the optional deps section of the README; almost nobody uses it.


:high_voltage: Quick Hits — pick your path in 5 seconds

Want this Do this
Same vibe as ComfyUI, no melting suckerfish/qwen3-tts-mlx + 8-bit model
Voice cloning specifically hiroki-abe-58 dual-engine (auto-fallback for cloning)
Just want my Mac to read text Kokoro 82M + Murmur app (no Python)
Locked into ComfyUI for now attention: sdpa + 0.6B model + unload_model_after_generate
Building a Mac app AtomGradient/swift-qwen3-tts (Swift package)

Patching files at 1 AM. 80 °C M4 Air. No tutorial that worked.

Five minutes from now, your Mac is at 45 °C running the same model.

That’s all the wall ever was.

Try Voicebox, it has Qwen TTS and other TTS models, it’s very easy to use