# ACE-Step Environment Configuration # Copy this file to .env and modify as needed # # This file is used by: # - Python scripts (acestep_v15_pipeline.py, api_server.py, etc.) # - Windows launcher (start_gradio_ui.bat) # - Linux/macOS launchers (start_gradio_ui.sh, start_gradio_ui_macos.sh) # # Settings in .env will survive repository updates, unlike hardcoded values # in launcher scripts which get overwritten on each update. # ==================== Model Settings ==================== # DiT model path ACESTEP_CONFIG_PATH=acestep-v15-turbo # LM model path (used when LLM is enabled) # Available: acestep-5Hz-lm-0.6B, acestep-5Hz-lm-1.7B, acestep-5Hz-lm-4B ACESTEP_LM_MODEL_PATH=acestep-5Hz-lm-1.7B # Device selection: auto, cuda, cpu, xpu ACESTEP_DEVICE=auto # LM backend: vllm (faster) or pt (PyTorch native) ACESTEP_LM_BACKEND=vllm # ==================== LLM Initialization ==================== # Controls whether to initialize the Language Model (LLM/5Hz LM) # # Flow: GPU detection (full) → ACESTEP_INIT_LLM override → Model loading # GPU optimizations (offload, quantization, batch limits) are ALWAYS applied. # ACESTEP_INIT_LLM only overrides the "should we try to load LLM" decision. # # Values: # auto (or empty) = Use GPU auto-detection result (default) # true/1/yes = Force enable LLM after GPU detection (may cause OOM) # false/0/no = Force disable LLM (pure DiT mode, faster) # # Examples: # ACESTEP_INIT_LLM=auto # Let GPU detection decide (default) # ACESTEP_INIT_LLM= # Same as auto # ACESTEP_INIT_LLM=true # Force enable even on low VRAM GPU # ACESTEP_INIT_LLM=false # Force disable for pure DiT mode # # When LLM is disabled, these features are unavailable: # - Thinking mode (thinking=true) # - Chain-of-Thought caption/language detection # - Sample mode (generate from description) # - Format mode (LLM-enhanced input) # # Default: auto (based on GPU VRAM detection). For a 12 GB Forge deployment, # setting this to false is a deliberate core-generation profile: it avoids # loading the optional 5 Hz planner / LLM. It does not select or reserve a GPU. ACESTEP_INIT_LLM=auto # ==================== Model Storage ==================== # Shared checkpoints directory (useful when running multiple installations) # Point all installations to the same folder to avoid duplicate model downloads. # Example: ACESTEP_CHECKPOINTS_DIR=~/ace-step-models # ACESTEP_CHECKPOINTS_DIR= # ==================== Download Settings ==================== # Preferred download source: auto, huggingface, modelscope # ACESTEP_DOWNLOAD_SOURCE=auto # ==================== API Server Settings ==================== # API key for authentication (optional) # ACESTEP_API_KEY=sk-your-secret-key # ==================== Docker Forge ==================== # ACE-Step Forge is available at http://localhost:3000 by default. # FORGE_PORT=3000 # API_PORT=8001 # GRADIO_PORT=7860 # Restrict ACE-Step containers to one host GPU. Use `nvidia-smi -L` to choose # an index or, preferably, a stable GPU UUID; the Compose default is GPU 0. # Docker Desktop can enumerate numeric GPU indices differently from the host, # so a UUID is the safer choice for multi-GPU machines. # ACESTEP_GPU_DEVICE_ID=0 # 12 GB Forge core-generation profile (uncomment after replacing the UUID): # ACESTEP_GPU_DEVICE_ID=GPU- # ACESTEP_INIT_LLM=false # Streamable HTTP MCP endpoint for Claude Code, Codex, and other MCP clients. # Docker Compose exposes this only on 127.0.0.1 by default. # MCP_PORT=8002 # When API_PORT or the public API URL changes, set this so MCP returns usable # audio URLs from the shared Library. # ACESTEP_MCP_PUBLIC_API_BASE_URL=http://localhost:8001 # Optional bearer token required by MCP clients. This is distinct from # ACESTEP_API_KEY, which protects the underlying REST API. # ACESTEP_MCP_API_KEY=replace-with-a-long-random-token # Add a Tailscale/production hostname here before exposing MCP remotely. # ACESTEP_MCP_ALLOWED_HOSTS=localhost:*,127.0.0.1:*,[::1]:*,madesk.example.ts.net # Override only when the local Docker network already routes this range. # ACESTEP_DOCKER_SUBNET=172.16.43.0/24 # Forge's REST API starts with lazy model initialization by default. Set this # to false only when you want to download/load models before Forge becomes # healthy. ACESTEP_INIT_SERVICE below is for the legacy Gradio profile. # ACESTEP_NO_INIT=true # ==================== Gradio UI Settings ==================== # Server port (default: 7860) # PORT=7860 # Server name/host (default: 127.0.0.1 for local only, 0.0.0.0 for network access) # SERVER_NAME=127.0.0.1 # UI language: en, zh, he, ja (default: en) # LANGUAGE=en # Default batch size for generation (1 to GPU-dependent max) # When not specified, defaults to min(2, GPU_max) # ACESTEP_BATCH_SIZE=2 # ==================== Startup Settings ==================== # By default models are lazy-loaded on first request (fast server startup). # Set to false to force eager model loading at startup. # ACESTEP_NO_INIT=true