Run Fish Audio Drama 3 Locally: The 48 GB GPU Rule, the 22 GB int4 Build, SGLang-Omni and Docker Setup, Voice Cloning, Director Tags, the License and AWS GPUs

Logeshwaran
—

Fish Audio Drama 3 is a new open-weight text-to-speech model, released on October 13, 2026, that you direct like an actor: write [sighs] or <whisper>...</whisper> into the script, give it a note like "gentler, and a bit sadder" for a second take, clone a voice from a few seconds of audio, and have it play up to 16 characters in one scene, in 83 languages. The weights are free to download and free to use commercially under $500,000 of annual revenue. Here is the fact to read before anything else: Drama 3 needs an NVIDIA GPU with at least 48 GB of memory, and nothing else runs it: no CPU, no Mac, no AMD. A 35-billion-parameter model with only 3 billion active per word still has to fit all 35 billion in VRAM. An unofficial int4 build brings the weights down to about 21 GB, which puts 24 GB cards in play, and a single AWS L40S instance happens to have exactly 48 GB. This page covers the real file sizes, the three ways to run it (Fish Speech, Docker, SGLang-Omni), voice cloning, director tags and revisions, the license, and the AWS route.

Ethan, a developer, has been asked by his friend Jake to make the phone repair shop's hold message and a short explainer video voice-over without paying for a studio. Jake wants it warm, with a laugh at the right moment, and he wants to change one word without re-recording the whole thing. Ethan's own PC has a 12 GB graphics card, which is where this story's first problem lives.

⚡ Quick Answer

• Will it run on my machine? → Only on an NVIDIA GPU with 48 GB (official FP8 weights) or about 24 GB (unofficial int4). Everyone else: the API or a rented GPU. The size table.

• Fastest setup: hf download fishaudio/drama-3, then sgl-omni serve --model-path fishaudio/drama-3 --port 8000, then one curl to /v1/audio/speech. Steps.

• Docker: fishaudio/fish-speech:server-cuda with the checkpoint mounted, WebUI at localhost:8080/ui. Command.

• Direct it: point tags [laughs], scoped tags <whisper>, speaker tags <|speaker:0|>, and a revision note in the next request. Examples.

Fish Audio Community License v1.0: free below $500,000 annual revenue; no hosted TTS service without a separate license; no cloning a real person without consent. API: $50 per million characters, $10 until November 12.

New to running AI on your own machine? Our plain-English series on running AI locally explains parameters, quantization and GPU memory in about ten minutes; this page assumes none of it.

What Drama 3 is, in plain English

Fish Audio makes text-to-speech models and runs a paid voice service on top of them. Drama 3 is their new flagship, and unlike most commercial voice models it comes with its weights and a technical report. The "drama" in the name is literal: the model is built for performances rather than announcements. Its shape, in the terms you'll meet in the download:

  • 35B-A3B: a 35-billion-parameter mixture-of-experts text backbone (256 experts, 8 active plus one shared, started from Qwen3.5) with about 3 billion active per token. Fast to run, big to hold.
  • A codebook decoder turns the backbone's output into sound: 13 layers, 10 codebooks at about 21.5 frames a second, 44.1 kHz audio out.
  • FP8 experts, with the rest of the weights in bf16. That is why the official checkpoint is 41.5 GB rather than 70, and why the GPU has to support FP8.
  • Trained with reinforcement learning from a single human-preference reward model, which is the part that makes "a bit sadder" work as an instruction.

What it does that the previous model, S2-Pro, did not: edit a finished take by replacing a word while the rest stays as recorded (infilling), redo a take from a note while remembering the previous one, voice a whole scene of up to 16 characters from a script, stream long text as it generates, and carry laughter, crying and whispers through a cloned voice instead of flattening them. Multilingual cloning error rates also dropped. S2-Pro, at 4B parameters, stays supported with the same commands and runs on a 24 GB GPU or even a CPU, which matters for the next section.

Jake: "Thirty-five billion, three billion active. So it's quick?"

Ethan: "Quick on the right card. On one H200 it makes audio five times faster than it plays. The catch is the word 'hold': every one of those 35 billion sits in VRAM whether it's working or not."

Will it run on my machine? The size table

Here is the catch hiding in "3B active". Speed comes from the active parameters; memory comes from all of them. The runtime loads the entire backbone plus the decoder and codec into GPU memory, so the file size, not the active size, decides who can run it:

CheckpointDownloadGPU memoryGPU requirement
fishaudio/drama-3 (official, FP8 experts + bf16)41.5 GB (8 shards + 1.87 GB codec)At least 48 GBNVIDIA only. FP8 kernels want Ada (RTX 40 series), Hopper or Blackwell; older cards fall back to float16 and, before Ampere, to a path the maintainers have not verified on hardware
fishaudio/drama-3-int4 (unofficial, hybrid W4A16)22.1 GB (24.0 GB with the codec)About 20.8 GB of weights, so a 24 GB card is the practical floorNVIDIA Ampere (A100, RTX 30 series) or newer, served through SGLang-Omni
Jmica/Drama-3-GGUF (community)17 to 25 GB per file, backbone onlyUnknownNo documented runner for the decoder at launch; treat as an experiment
fishaudio/s2-pro (previous model, 4B)SmallerAt least 24 GB recommendedNVIDIA, or CPU, or AMD through the ROCm image

Three things are ruled out by the maintainers, in writing: CPU inference, Apple silicon through MPS, and AMD through ROCm. Also ruled out is --compile, the torch.compile speed-up that S2-Pro uses. The official 48 GB figure includes room for the activations and the audio decoder; the int4 build's own card says its weights take 20.8 GB against 37.0 GB for FP8, which is how it fits a 24 GB card with a few gigabytes to spare for generation.

Your machineVerdict
Laptop or desktop with an 8, 12 or 16 GB NVIDIA cardNo. Use the API, or rent a GPU for an afternoon (see the AWS section).
RTX 3090, 4090 or 5090 (24 to 32 GB)The int4 build through SGLang-Omni. Tight on a 24 GB card at long texts; fine on 32 GB.
RTX 6000 Ada, A6000, L40S, A100 80 GB, H100, H200 (48 GB and up)The official checkpoint. This is the intended hardware.
Any MacNo. MPS is unsupported. The API is the route.
AMD GPUNo for Drama 3; S2-Pro has a ROCm image.
AWSYes: a g6e instance (one L40S, 48 GB) runs the official weights; a g5 or g6 (24 GB) runs the int4 build.

Jake: "So my 12 GB card is out, your 12 GB card is out, and the shop's whole budget is a used 3090?"

Ethan: "Or an afternoon on a rented L40S, which costs less than the used card's shipping. We render the hold message once; we don't need the GPU on Tuesday."

Download the weights

The weights are not gated: no license click on Hugging Face, no token for a public download. You still need the Hugging Face CLI and about 45 GB of disk for the official checkpoint, or 24 GB for the int4 one. Fish Speech expects the checkpoint in a checkpoints folder next to the code; SGLang-Omni takes the Hugging Face name and fetches into its cache:

pip install -U "huggingface_hub[cli]"
hf download fishaudio/drama-3 --local-dir checkpoints/drama-3          # 41.5 GB, official
hf download fishaudio/drama-3-int4 --local-dir checkpoints/drama-3-int4  # 24 GB, unofficial int4

One detail from the install guide that saves a confusing error: if a checkpoint directory has no codec.pth, Fish Speech falls back to the S2-Pro codec at checkpoints/s2-pro/codec.pth, so a trimmed download needs S2-Pro downloaded as well. The official Drama 3 repository includes its own codec.pth, so a full download has no such dependency.

Run it with SGLang-Omni: the launch-day server

Fish Audio's own recommendation for anyone who cares about speed is SGLang-Omni, and it's also the only documented path for the int4 build. It installs from the repository and serves an OpenAI-style speech endpoint:

git clone https://github.com/sgl-project/sglang-omni.git && cd sglang-omni
uv pip install --prerelease=allow -v -e ".[fishaudio]"
hf download fishaudio/drama-3
sgl-omni serve --model-path fishaudio/drama-3 --port 8000
# int4 on a 24 GB card:
# sgl-omni serve --model-path fishaudio/drama-3-int4 --port 8000

That command puts preprocessing, the engine and the vocoder on GPU 0. Then, from any terminal:

# plain text to speech
curl -X POST http://localhost:8000/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{"input": "Thanks for calling. We will be with you in a moment."}' \
  --output hold.wav

# streaming, raw PCM as it generates
curl -N -X POST http://localhost:8000/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{"input": "Thanks for calling.", "stream": true, "response_format": "pcm"}' \
  --output hold.pcm

The serving numbers Fish Audio publishes for this setup, measured on one H200 with voice cloning on every request: a single stream gets its first audio in about 89 milliseconds and generates at about 7.6 times real time; at 16 concurrent streams it still generates 2.7 times faster than playback; at 64 streams the mean comes down to 1.25 times real time. If you need many streams and a short time to first audio together, the cookbook's answer is to move the vocoder onto a second GPU, which it reports as about 72% more throughput at 256 streams.

Run it with Fish Speech: the command line and the API server

The Fish Speech repository is the reference implementation, with a command line, an API server and a web UI, and it's the right choice when you want every editing and multi-turn feature through its own API. Linux or WSL only; Windows and macOS are off the table for Drama 3 because of the GPU rule.

sudo apt install -y portaudio19-dev libsox-dev ffmpeg
git clone https://github.com/fishaudio/fish-speech.git && cd fish-speech
# with uv (pick cu126, cu128 or cu129 to match your driver)
uv sync --python 3.12 --extra cu129
# or with conda
# conda create -n fish-speech python=3.12 && conda activate fish-speech
# pip install --extra-index-url https://download.pytorch.org/whl/cu129 -e ".[cu129]"
hf download fishaudio/drama-3 --local-dir checkpoints/drama-3

One file in one command, cloning a voice from a reference clip and its transcript:

python fish_speech/models/text2semantic/inference.py \
    --checkpoint-path checkpoints/drama-3 \
    --text "[warm] Thanks for calling Jake's. [laughs] Yes, we fix that one too." \
    --prompt-audio "reference.wav" \
    --prompt-text "The exact words spoken in reference.wav" \
    --output "hold.wav" \
    --device cuda:0

On older GPUs that can't hold it on one card, --device cuda:0,cuda:1 spreads it, and the last device holds the audio decoder and the codec. The API server is the same idea with a port:

python tools/api_server.py --listen 0.0.0.0:8080 --llama-checkpoint-path checkpoints/drama-3 --device cuda:0
curl http://127.0.0.1:8080/v1/health          # {"status":"ok"}

The server's endpoints: POST /v1/tts (the body is msgpack, which the Fish Audio SDK speaks for you), GET /v1/tts/defaults for the model's sampling defaults, /v1/references/add and /v1/references/list to save a cloned voice under an ID and reuse it, and /v1/vqgan/encode and /v1/vqgan/decode for the audio tokens. --api-key adds bearer-token authentication, --max-text-length caps a request, and --half switches to fp16 on cards without bf16. The web UI ships at /ui.

Run it in Docker

The prebuilt image runs both models and includes the web UI. Mount the checkpoints folder, name the checkpoint, publish the port. On an Ada or newer card expose one GPU; on older cards use --gpus all so the decoder can land on a second one:

docker run --gpus device=0 \
    -v ./checkpoints:/app/checkpoints \
    -e LLAMA_CHECKPOINT_PATH=checkpoints/drama-3 \
    -p 8080:8080 \
    fishaudio/fish-speech:server-cuda

Then http://localhost:8080/ui for the interface and http://localhost:8080/v1/health for the check. The image needs the NVIDIA container runtime installed on the host, which on Kali or Ubuntu is the nvidia-container-toolkit package plus a Docker restart. The CPU image exists but only serves S2-Pro; a Drama 3 request on it fails for the reason this whole page keeps repeating.

Directing it: tags, scenes, revisions and edits

This is the part that separates Drama 3 from a reading machine, and it all lives in the text you send. Four kinds of control, from the model card and the release notes:

ControlHow you write itWhat it does
Point tags[sighs] Fine. If we miss it, it's on you. [laughs] Well, maybe that's fair.A sound or a reaction at that exact spot
Scoped tags<whisper>don't open the door</whisper>A delivery applied only to the words inside
Style and director's notes[breathless, speaking fast], [voice drops to a terrified whisper]Free-form direction, in any language, independent of the line's language
Speaker tags<|speaker:0|> Hello? <|speaker:1|> Who is this?Up to 16 characters in one request, each tied to its own reference voice
RevisionSend the previous take and a note such as [happier versus previous]The model redoes the line with the earlier take in context instead of starting over
Editing by infillingSend the previous take with one word changed in the textOnly the changed window is regenerated; the audio before and after it is kept

Voice cloning is a reference clip plus its transcript, passed with the request. A few seconds is enough; the published cloning example uses a 3.9-second clip. A second request with the same reference and the edited text is how editing works through the API: the server treats the earlier audio as context, the way a language model treats earlier turns.

{
  "text": "The quarterly report is due on Thursday, so please finish it by noon.",
  "references": [{"audio_path": "reference.wav",
                  "text": "We asked over twenty different people, and they all said it was his."}],
  "previous_takes": ["The quarterly report is due on Wednesday, so please finish it by noon."]
}

That request changes "Wednesday" to "Thursday" and leaves everything else as it was. A third request with both earlier takes in previous_takes chains a second edit. Fish Audio's numbers for this on a public editing benchmark put its word-error rate below a well-known commercial infill API in both English and Chinese, and three rounds of revision raised emotion accuracy from 55.5% to 58.2% on their multi-turn test; modest numbers, honestly reported, which is more than most voice vendors publish.

Sampling: the Fish Audio SDK defaults are temperature 0.7, top-p 0.7, top-k 30, and the server's /v1/tts/defaults returns them; the throughput tables were measured at temperature 1.0 and top-p 0.9. Long text is chunked automatically at about 300 bytes with at most three speakers per chunk, and every chunk is validated before generation starts, so a malformed speaker tag fails early rather than after a minute of audio.

Jake: "So I can change 'Thursday' to 'Friday' in the hold message without you re-recording it?"

Ethan: "Without me re-rendering it. I send the old take and the new sentence, and it only redraws that word. Your laugh in the middle stays exactly where it was."

The API and the app, if you'd rather not run it

Drama 3 is live in Fish Audio's Text to Speech web tool, the iOS and Android app, and the API, under the model name drama-3. Every tag above works in the API as typed, and it's the same endpoint the previous model used:

curl https://api.fish.audio/v1/tts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "model: drama-3" \
  -d '{"text": "[warm] Thanks for calling. [laughs] Yes, we fix that one too."}' \
  --output hold.mp3

List price is $50 per million characters, with an 80% launch discount to $10 per million from October 13 to November 12, 2026. A million characters is roughly 150,000 words of script, so a repair shop's hold message, a product video and a month of social clips sit well under a dollar at the launch rate. The editing tools in the web app were invite-only at launch, with an editing API announced as coming; through the open weights, the previous_takes mechanism above is available today.

The license, in plain English

Drama 3 ships under the Fish Audio Community License v1.0, a new license; S2-Pro stays under the older Research License. What it means for you:

  • Free for research and non-commercial use, and free for commercial use if you and your affiliates have under US$500,000 in annual revenue. Cross the line and you must notify Fish Audio and move to a written agreement after a transition period; crossing it is not a breach.
  • No hosted service at any revenue level: you cannot offer the model to third parties so they can generate speech from their own text or voices, through an API, a web app or software you operate, without a separate license. Generating speech for your own content, your own app's characters or an assistant's replies is fine, and so is a studio or freelancer delivering finished audio to clients.
  • No cloning a real person without consent, no removing watermarks or provenance signals, and no using it to train another speech or foundation model.
  • Attribution: "Built with Fish Audio" on a related website, UI or about page, and the notice file kept with any copy you distribute.
  • You own the outputs, and you own the derivative models you make, including fine-tunes and quantizations like the int4 build, under the same terms.

For Jake's shop, a solo developer, or a startup under the line, that is a yes for anything that isn't a voice-generation service for other people. Read the license file in the repository before you ship a product on it; the hosted-service clause is the one that changes answers.

Renting the right GPU on AWS

The 48 GB rule maps onto AWS unusually cleanly. The g6e family carries one NVIDIA L40S per GPU with 48 GB, so a g6e.xlarge is the smallest instance that runs the official checkpoint, and the L40S is an Ada card, so the FP8 experts run natively. The g5 (A10G) and g6 (L4) families have 24 GB per GPU and fit the int4 build, with the same tightness a desktop 24 GB card has. The p4d A100 40 GB is below the floor; the 80 GB A100 and H100 instances are comfortable and expensive.

The setup is the Linux one above on an Ubuntu or Amazon Linux Deep Learning AMI, which already has the driver and the container toolkit. Two habits save money: stop the instance the moment the render is done, because the meter runs while the GPU idles, and keep the 45 GB of checkpoints on a volume you don't delete, so the next session doesn't start with the download. Our Hugging Face on AWS guide has the instance sizes and per-hour prices, so this page won't repeat them. Drama 3 isn't on Amazon Bedrock; this is a run-it-yourself model on AWS, or a call to Fish Audio's API from Lambda if you'd rather not own the GPU hour.

Drama 3 or S2-Pro, and the open voice field

If your card is under 48 GB and you want to stay inside Fish Audio's tooling, S2-Pro is the answer: same install, same server, same tags for emotion and prosody, 4B parameters, a 24 GB card or a CPU, and a ROCm image for AMD. What you give up is editing, multi-turn revision, the strongest laughter-and-whisper delivery, and the lowest cross-lingual cloning error rates. What you gain is a model you can actually run tonight.

Drama 3S2-Pro
Parameters35B (3B active) + decoder4B
GPUNVIDIA, 48 GB (24 GB int4)NVIDIA 24 GB, CPU, or AMD ROCm
Multi-speaker scenesUp to 16 speakers, scene-styleSupported
Voice cloningYes, lower multilingual error ratesYes
Inline tagsYes, plus scoped tags and director's notesYes
Edit a word in a finished takeYesNo
Revise from a noteYesNo
Long textLong-form with streamingChunked
LicenseCommunity License (free under $500K revenue)Research License

Against the closed voice APIs, the honest comparison is the one Fish Audio makes itself: lower infill error than a leading commercial editing API on a public test, and a serving stack you can inspect. Against other open voice models, the 48 GB floor is the real difference; most open text-to-speech models fit a 12 GB card, and Drama 3 is a different class of machine, closer to running an open LLM than a classic TTS model.

When it doesn't work

What you seeWhyFix
CUDA out of memory on loadUnder 48 GB (official) or under about 22 GB (int4)The int4 build on 24 GB, or a 48 GB card, or a second GPU with --device cuda:0,cuda:1
"MPS" or "cpu" errors on a Mac or a CPU boxDrama 3 is NVIDIA-onlyS2-Pro, or the API
Silence, noise, or "non-finite logits" on a V100 or olderThe float16 fallback for pre-Ampere cards is untested by the maintainersA newer card, or S2-Pro
A request with 4 speakers in one short chunk fails validationAt most three speakers per ~300-byte chunkSplit the scene into more lines
Fish Speech can't find codec.pthTrimmed checkpoint folderDownload the full repository, or S2-Pro's codec alongside
--compile errorsUnsupported for Drama 3Drop the flag; use SGLang-Omni for speed
Docker container exits at onceNo NVIDIA runtime, or wrong LLAMA_CHECKPOINT_PATHInstall nvidia-container-toolkit; check the mounted path inside the container

Frequently asked questions about Fish Audio Drama 3

What is Fish Audio Drama 3?

An open-weight text-to-speech model from Fish Audio, released October 13, 2026: 35B parameters with 3B active, voice cloning, inline direction tags, up to 16 speakers per scene, editing and multi-turn revision, in 83 languages.

What GPU do I need to run Drama 3?

An NVIDIA GPU with at least 48 GB for the official FP8 checkpoint. The unofficial int4 build needs about 21 GB of weight memory, so a 24 GB Ampere or newer card works.

Can Drama 3 run on a Mac, a CPU or an AMD GPU?

No. CPU, Apple MPS and AMD ROCm are unsupported for Drama 3. S2-Pro, the previous model, runs on CPU and has a ROCm image.

How big is the Drama 3 download?

41.5 GB for the official checkpoint (eight 5 GB shards plus a 1.87 GB codec), about 24 GB for the int4 build.

Is Drama 3 free for commercial use?

Yes, under the Fish Audio Community License, if you and your affiliates earn under $500,000 a year. Hosting it as a speech service for other people needs a separate license at any size.

Can I clone my own voice with Drama 3?

Yes, from a short reference clip and its transcript, a few seconds is enough. Cloning a real person without their consent is forbidden by the license.

How do I make Drama 3 laugh or whisper?

Point tags like [laughs] in the text, scoped tags like whisper around a phrase, or a free-form note like [breathless, speaking fast]. Notes can be in any language.

Can Drama 3 edit one word in finished audio?

Yes. Send the previous take and the text with the word changed; only that window is regenerated and the rest of the audio is kept.

What is the fastest way to serve Drama 3?

SGLang-Omni: install it from the repository, then sgl-omni serve --model-path fishaudio/drama-3 --port 8000, which exposes an OpenAI-style /v1/audio/speech endpoint with streaming.

Does Drama 3 run in Docker?

Yes, with fishaudio/fish-speech:server-cuda, the checkpoint mounted, LLAMA_CHECKPOINT_PATH set, and port 8080 published. The web UI is at /ui.

How many languages does Drama 3 support?

83 according to Fish Audio, with direction notes allowed in a different language from the line.

How many speakers can Drama 3 voice in one request?

Up to 16, with speaker tags from speaker:0 to speaker:15, at most three speakers per chunk of long text.

What does the Drama 3 API cost?

$50 per million characters at list, $10 per million from October 13 to November 12, 2026. The model header is drama-3 on the same /v1/tts endpoint as before.

Which AWS instance runs Drama 3?

A g6e instance with one L40S (48 GB) runs the official checkpoint; g5 and g6 instances (24 GB) run the int4 build. It is not on Amazon Bedrock.

What is the difference between Drama 3 and S2-Pro?

Drama 3 adds editing, multi-turn revision, scene-style multi-speaker output, stronger emotion and better multilingual cloning, at 35B parameters and a 48 GB GPU; S2-Pro is 4B and runs on 24 GB or a CPU.

Is there a GGUF of Drama 3?

A community upload exists with backbone-only files of 17 to 25 GB, but no runner for the audio decoder was documented at launch. The official int4 build is the supported small option.

Ethan rented a g6e.xlarge for two hours, pulled the official checkpoint onto a volume he kept, and rendered the hold message with a laugh after "yes, we fix that one too." Jake asked for "Thursday" to become "Friday" the next morning; one request with the old take attached, and the laugh didn't move. Jake's verdict: "So the actor lives in the cloud and we pay by the hour." Ethan said that was the cheapest voice talent he'd ever hired.

📌 If you keep one line from this page

Drama 3 needs an NVIDIA card with 48 GB (or 24 GB with the unofficial int4 build) and nothing else runs it; serve it with sgl-omni serve, direct it with tags in the text, and edit a take by sending the previous one back.

41.5 GB download · 83 languages · 16 speakers · free under $500K revenue, no hosted service · API $10 per million characters until November 12.

Revision note. Written October 15, 2026, two days after the Drama 3 weights and the v3.0.0-beta tooling appeared, with the int4 build and the SGLang-Omni cookbook as they stood. "Cut your coat according to your cloth," says the proverb; here the cloth is 48 gigabytes of VRAM.

Related