YL-Publishing/orpheus-tts-runpod

Orpheus TTS 3B serverless worker for RunPod GPU cloud

1

stars

8

commits

Python

primary language

Feb 18, 2026

updated

README

Orpheus TTS 3B — RunPod Serverless Worker

Emotional TTS for the video pipeline via RunPod GPU cloud.

Architecture

VPS (CPU, $30/yr)                    RunPod Serverless (GPU)
┌──────────────────┐                 ┌──────────────────────┐
│ orchestrator.py   │    HTTP API     │ Orpheus TTS 3B       │
│ produce_recap.py  │ ──────────────► │ RTX 4090 (24GB)      │
│ ffmpeg            │ ◄────────────── │ ~$0.05/chapter       │
│ sound library     │    WAV audio    │ Scales to zero       │
└──────────────────┘                 └──────────────────────┘

Setup (One-Time)

1. Create RunPod Account

Go to https://www.runpod.io/ → Sign Up → Add $10 credit.

2. Build & Push Docker Image

Option A: GitHub integration (easiest)

  • Push this directory to a GitHub repo
  • In RunPod: Serverless → New Template → Connect GitHub repo
  • RunPod builds the image automatically

Option B: Build locally (needs Docker Desktop)

cd runpod-orpheus/
docker build --platform linux/amd64 -t YOURDOCKERHUB/orpheus-tts-runpod:latest .
docker push YOURDOCKERHUB/orpheus-tts-runpod:latest

3. Create Serverless Endpoint

In RunPod Console:

  1. Go to ServerlessNew Endpoint
  2. Select your template (from step 2)
  3. GPU: RTX 4090 (24GB)
  4. Workers: Min 0 / Max 1 (flex — scales to zero)
  5. Idle timeout: 30s (keeps warm briefly after request)
  6. Click Create

Copy the Endpoint ID (looks like abc123xyz).

4. Get API Key

RunPod Console → Settings → API Keys → Create Key.

5. Configure VPS

ssh -i ~/.ssh/yonglibrary_vps root@100.85.221.52

# Add to pipeline user's environment
cat >> /home/pipeline/.bashrc << 'EOF'
export TTS_ENGINE=orpheus
export RUNPOD_API_KEY=your_key_here
export ORPHEUS_ENDPOINT_ID=your_endpoint_id_here
EOF

# Apply patch
scp patch_orpheus_tts.py to VPS, then:
python3 /tmp/patch_orpheus_tts.py

6. Test

su - pipeline
cd /opt/video-pipeline
python3 -c "
from scripts.orpheus_client import OrpheusClient
c = OrpheusClient()
wav = c.generate('Hello, this is a test of Orpheus TTS.', voice='tara')
print(f'Got {len(wav)} bytes of audio')
with open('/tmp/test_orpheus.wav', 'wb') as f:
    f.write(wav)
print('Saved to /tmp/test_orpheus.wav')
"

Emotion Tags

Orpheus supports inline emotion tags in text:

TagEffect
<laugh>Laughter
<chuckle>Soft laugh
<sigh>Sighing
<gasp>Gasping
<cough>Coughing
<sniffle>Sniffling
<groan>Groaning
<yawn>Yawning

Example: "Well, that's interesting. <laugh> I hadn't expected that."

Voices

VoiceCharacterBest For
taraFemale, clearDefault narrator
leoMale, warmMale narrator
danMale, youngYoung male characters
jessFemale, brightYoung female characters
leahFemale, matureAuthority, mature women
zacMale, deepMature, authoritative men
miaFemale, lightChildren, soft voices
zoeFemale, energeticExcited, fast-paced

Cost

ItemCost
Per chapter (~5 min audio)~$0.05
15 chapters full run~$0.70
Idle$0.00
Monthly (weekly renders)~$2-3

Contributors

YL-Publishing

8 commits

YL-Publishing/orpheus-tts-runpod

Orpheus TTS 3B serverless worker for RunPod GPU cloud

1

stars

8

commits

Python

primary language

Feb 18, 2026

updated

README

Orpheus TTS 3B — RunPod Serverless Worker

Emotional TTS for the video pipeline via RunPod GPU cloud.

Architecture

VPS (CPU, $30/yr)                    RunPod Serverless (GPU)
┌──────────────────┐                 ┌──────────────────────┐
│ orchestrator.py   │    HTTP API     │ Orpheus TTS 3B       │
│ produce_recap.py  │ ──────────────► │ RTX 4090 (24GB)      │
│ ffmpeg            │ ◄────────────── │ ~$0.05/chapter       │
│ sound library     │    WAV audio    │ Scales to zero       │
└──────────────────┘                 └──────────────────────┘

Setup (One-Time)

1. Create RunPod Account

Go to https://www.runpod.io/ → Sign Up → Add $10 credit.

2. Build & Push Docker Image

Option A: GitHub integration (easiest)

  • Push this directory to a GitHub repo
  • In RunPod: Serverless → New Template → Connect GitHub repo
  • RunPod builds the image automatically

Option B: Build locally (needs Docker Desktop)

cd runpod-orpheus/
docker build --platform linux/amd64 -t YOURDOCKERHUB/orpheus-tts-runpod:latest .
docker push YOURDOCKERHUB/orpheus-tts-runpod:latest

3. Create Serverless Endpoint

In RunPod Console:

  1. Go to ServerlessNew Endpoint
  2. Select your template (from step 2)
  3. GPU: RTX 4090 (24GB)
  4. Workers: Min 0 / Max 1 (flex — scales to zero)
  5. Idle timeout: 30s (keeps warm briefly after request)
  6. Click Create

Copy the Endpoint ID (looks like abc123xyz).

4. Get API Key

RunPod Console → Settings → API Keys → Create Key.

5. Configure VPS

ssh -i ~/.ssh/yonglibrary_vps root@100.85.221.52

# Add to pipeline user's environment
cat >> /home/pipeline/.bashrc << 'EOF'
export TTS_ENGINE=orpheus
export RUNPOD_API_KEY=your_key_here
export ORPHEUS_ENDPOINT_ID=your_endpoint_id_here
EOF

# Apply patch
scp patch_orpheus_tts.py to VPS, then:
python3 /tmp/patch_orpheus_tts.py

6. Test

su - pipeline
cd /opt/video-pipeline
python3 -c "
from scripts.orpheus_client import OrpheusClient
c = OrpheusClient()
wav = c.generate('Hello, this is a test of Orpheus TTS.', voice='tara')
print(f'Got {len(wav)} bytes of audio')
with open('/tmp/test_orpheus.wav', 'wb') as f:
    f.write(wav)
print('Saved to /tmp/test_orpheus.wav')
"

Emotion Tags

Orpheus supports inline emotion tags in text:

TagEffect
<laugh>Laughter
<chuckle>Soft laugh
<sigh>Sighing
<gasp>Gasping
<cough>Coughing
<sniffle>Sniffling
<groan>Groaning
<yawn>Yawning

Example: "Well, that's interesting. <laugh> I hadn't expected that."

Voices

VoiceCharacterBest For
taraFemale, clearDefault narrator
leoMale, warmMale narrator
danMale, youngYoung male characters
jessFemale, brightYoung female characters
leahFemale, matureAuthority, mature women
zacMale, deepMature, authoritative men
miaFemale, lightChildren, soft voices
zoeFemale, energeticExcited, fast-paced

Cost

ItemCost
Per chapter (~5 min audio)~$0.05
15 chapters full run~$0.70
Idle$0.00
Monthly (weekly renders)~$2-3

Contributors

YL-Publishing

8 commits

Languages

Python

95.8%

Dockerfile

4.2%