569e1af9ca
Move the ~22-service flat "AI Systems" group off the Main tab into a new four-tab layout (Main / AI / Infrastructure / Toolchain). The AI tab sorts the inference fleet by function into seven groups: AI - Inference gen, char-rp, char-rp-reasoning, Granite summarizer AI - Eval & Retrieval Selene, Skywork Reward, Qwen3 rerank/embed, image-bench AI - Gateways & Chat LiteLLM, Asset Engine, Gateway Chat, Open WebUI, ... AI - Speech (TTS) Chatterbox Fast, Kokoro, mOrpheus AI - Audio Tools Parakeet ASR, YT Voice Clipper AI - Image & Media ComfyUI, Arbo AI - Dormant stopped rollback seats + retired auditions Relabel each stack's homepage.group so canonical stacks/ matches the live containers on ana-ml2, ana-docker, and irv-ml1. Dormant stacks were refreshed with `docker compose up --no-start` so they carry the new label while staying stopped (compose-start rollback preserved). settings.yaml drives tab/order/ columns; services.yaml and README updated to the new scheme.
61 lines
2.4 KiB
YAML
61 lines
2.4 KiB
YAML
# CosyVoice — multilingual expressive TTS with voice cloning.
|
||
#
|
||
# Ships the Fun-CosyVoice3-0.5B-2512 model from FunAudioLLM (latest
|
||
# as of 2026-04). Streaming PCM chunks with ~150 ms TTFB. Emotional
|
||
# control via either XML tags (<angry>text</angry>) or instruction
|
||
# prompts (`You are a helpful assistant. <|endofprompt|>` syntax).
|
||
#
|
||
# Runs on irv-ml1 (dual GPU). Both GPUs exposed via
|
||
# NVIDIA_VISIBLE_DEVICES=all; image reads CUDA_VISIBLE_DEVICES if
|
||
# you later want to pin.
|
||
#
|
||
# Path split:
|
||
# /worktank/cosyvoice/voices → /data/voices cloned speaker profiles
|
||
# /worktank/cosyvoice/input → /data/input scratch for uploaded source audio
|
||
# /worktank/cosyvoice/output → /data/output synthesized clips
|
||
#
|
||
# Models (~2–3 GB) download on first run into the image's internal
|
||
# pretrained_models/ path. Not bind-mounted (the image expects an
|
||
# exact layout we don't have authoritative docs for); recreating the
|
||
# container without the cached image will re-download. Cached image
|
||
# layer persists through `compose up -d` recreates.
|
||
#
|
||
# API routes (OpenAI-compatible where marked):
|
||
# POST /v1/audio/speech — OpenAI drop-in for TTS
|
||
# POST /v1/voices/create — voice cloning (reference audio in)
|
||
# GET /v1/voices — list cloned voices
|
||
# GET /health — health probe
|
||
#
|
||
# All tunables live in .env — edit that, not this file.
|
||
|
||
services:
|
||
cosyvoice:
|
||
image: neosun/cosyvoice:${COSYVOICE_VERSION}
|
||
container_name: cosyvoice
|
||
restart: unless-stopped
|
||
runtime: nvidia
|
||
ports:
|
||
- "${COSYVOICE_BIND:-0.0.0.0}:${COSYVOICE_PORT}:8188"
|
||
environment:
|
||
- NVIDIA_VISIBLE_DEVICES=all
|
||
- MODEL_DIR=${COSYVOICE_MODEL_DIR:-pretrained_models/Fun-CosyVoice3-0.5B}
|
||
- PORT=8188
|
||
- GPU_IDLE_TIMEOUT=${COSYVOICE_GPU_IDLE_TIMEOUT:-600}
|
||
volumes:
|
||
- ${COSYVOICE_VOICES_DIR}:/data/voices
|
||
- ${COSYVOICE_INPUT_DIR}:/data/input
|
||
- ${COSYVOICE_OUTPUT_DIR}:/data/output
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "curl -fsS http://localhost:8188/health >/dev/null || exit 1"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 3
|
||
# First boot pulls ~2–3 GB of model weights.
|
||
start_period: 300s
|
||
labels:
|
||
- homepage.group=AI - Dormant
|
||
- homepage.name=CosyVoice
|
||
- homepage.icon=mdi-account-voice
|
||
- homepage.description=Expressive multilingual TTS + cloning (irv-ml1)
|
||
- homepage.href=http://10.100.79.3:${COSYVOICE_PORT}
|