96 lines
3.6 KiB
YAML
96 lines
3.6 KiB
YAML
services:
|
|
music-worker:
|
|
build:
|
|
context: ./worker
|
|
image: mike-ai/ace-step-1.5:named-api-v1
|
|
container_name: mike-ai-music-acestep-test
|
|
labels:
|
|
com.mike-ai.music-worker: "acestep"
|
|
profiles: ["music-test"]
|
|
environment:
|
|
ACESTEP_MODE: gradio
|
|
ACESTEP_CONFIG_PATH: acestep-v15-xl-sft
|
|
ACESTEP_LM_MODEL_PATH: acestep-5Hz-lm-1.7B
|
|
ACESTEP_LLM_BACKEND: pt
|
|
ACESTEP_INIT_SERVICE: "true"
|
|
ACESTEP_INIT_LLM: "true"
|
|
ACESTEP_DEVICE: cuda
|
|
# The image entrypoint forwards only ACESTEP_EXTRA_ARGS to the UI CLI.
|
|
# One result per run avoids the batch=2 VRAM/time penalty.
|
|
# Named Gradio endpoints are consumed by the separate ace-step-ui service.
|
|
ACESTEP_EXTRA_ARGS: "--batch_size 1 --enable-api"
|
|
TOKENIZERS_PARALLELISM: "false"
|
|
NVIDIA_VISIBLE_DEVICES: ${ACESTEP_GPU_UUID:?set ACESTEP_GPU_UUID to the RTX 5080 UUID}
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
device_ids: ["${ACESTEP_GPU_UUID:?set ACESTEP_GPU_UUID to the RTX 5080 UUID}"]
|
|
capabilities: [gpu]
|
|
ports:
|
|
# Raw Gradio remains available for diagnostics; users open music-ui below.
|
|
- "127.0.0.1:${ACESTEP_GRADIO_PORT:-7862}:7860"
|
|
volumes:
|
|
- ${ACESTEP_CHECKPOINTS_DIR:-/data/models/acestep/checkpoints}:/app/checkpoints
|
|
- ${ACESTEP_HF_CACHE_DIR:-/data/models/acestep/hf-cache}:/root/.cache/huggingface
|
|
- ${ACESTEP_OUTPUT_DIR:-/data/music/acestep}:/app/gradio_outputs
|
|
- ${ACESTEP_OUTPUT_DIR:-/data/music/acestep}:/app/output
|
|
# Uploaded Community-UI audio is shared read-only with the named REST API.
|
|
- ${ACESTEP_UI_DATA_DIR:-/data/music/ace-step-ui}/audio:/data/community-audio:ro
|
|
# Version-pinned UI defaults for XL-SFT quality and lossless output.
|
|
- ./overrides/model_config.py:/app/acestep/ui/gradio/events/generation/model_config.py:ro
|
|
- ./overrides/generation_advanced_output_controls.py:/app/acestep/ui/gradio/interfaces/generation_advanced_output_controls.py:ro
|
|
- ./overrides/user_preferences.py:/app/acestep/ui/gradio/interfaces/user_preferences.py:ro
|
|
- ./overrides/user_preferences.js:/app/acestep/ui/gradio/interfaces/user_preferences.js:ro
|
|
shm_size: "2gb"
|
|
restart: "no"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:7860/ >/dev/null"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
start_period: 300s
|
|
retries: 3
|
|
networks:
|
|
- music
|
|
- frontend
|
|
|
|
music-ui:
|
|
build:
|
|
context: ./ace-step-ui
|
|
args:
|
|
ACE_STEP_UI_COMMIT: a1fdf91829ec6f7b98844f80e323529cd155dbf2
|
|
image: mike-ai/ace-step-ui:a1fdf918
|
|
container_name: mike-ai-music-ui
|
|
environment:
|
|
NODE_ENV: production
|
|
PORT: "3001"
|
|
FRONTEND_URL: ${ACESTEP_UI_PUBLIC_URL:-http://192.168.1.212:7861}
|
|
ACESTEP_API_URL: http://music-worker:7860
|
|
DATABASE_PATH: /data/acestep.db
|
|
AUDIO_DIR: /data/audio
|
|
DATASETS_DIR: /data/datasets
|
|
DATASETS_UPLOADS_DIR: /data/datasets/uploads
|
|
JWT_SECRET: ${ACESTEP_UI_JWT_SECRET:?set ACESTEP_UI_JWT_SECRET}
|
|
ports:
|
|
- "127.0.0.1:${ACESTEP_UI_PORT:-7861}:3000"
|
|
volumes:
|
|
- ${ACESTEP_UI_DATA_DIR:-/data/music/ace-step-ui}:/data
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:3000/ >/dev/null && curl -fsS http://127.0.0.1:3001/health >/dev/null"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
start_period: 30s
|
|
retries: 3
|
|
networks:
|
|
- music
|
|
- frontend
|
|
|
|
networks:
|
|
music:
|
|
name: mike-ai-music
|
|
frontend:
|
|
external: true
|
|
name: mike-ai_frontend
|