{ "family": "ace_step", "display_name": "ACE-Step", "description": "Open-source ACE-Step 1.5 music generation model for text-to-music and lyrics-to-song workflows across 50+ languages, with editing routes such as cover generation, repainting, continuation, stem extraction, and vocal-to-BGM conversion.", "category": "audio_generation", "status": "supported", "tasks": [ "music", "edit" ], "modes": [ "offline" ], "languages": [ "50+ languages" ], "capabilities": { "music": [ "lyrics" ], "edit": [ "prompt_editing" ] }, "runtime": { "tags": [ "gguf" ] }, "options": { "request": [ {"name": "route", "type": "enum", "values": ["text2music", "complete", "lego", "extract", "cover", "cover-nofsq", "repaint"], "description": "Generation or editing route.", "required": false, "default": "text2music"}, {"name": "lyrics", "type": "string", "description": "Vocal lyrics.", "required": false}, {"name": "language", "type": "string", "description": "Vocal language; falls back to text input language, then en.", "required": false}, {"name": "duration_sec", "type": "float", "description": "Target seconds; non-positive lets the planner choose. Source-locked routes use source duration.", "required": false, "default": -1.0}, {"name": "seed", "type": "int", "description": "Unsigned 32-bit generation seed; random when omitted.", "required": false}, {"name": "negative_prompt", "type": "string", "description": "Negative prompt.", "required": false, "default": "NO USER INPUT"}, {"name": "bpm", "type": "int", "description": "Override planner BPM metadata.", "required": false}, {"name": "keyscale", "type": "string", "description": "Override planner musical key metadata.", "required": false}, {"name": "timesignature", "type": "string", "description": "Override planner time signature metadata.", "required": false}, {"name": "num_inference_steps", "type": "int", "description": "Denoising steps; turbo checkpoints cap this at 8.", "required": false, "default": 8}, {"name": "guidance_scale", "type": "float", "description": "Diffusion CFG; default 1, or 7 for extract. Ignored by turbo checkpoints.", "required": false}, {"name": "sampler_mode", "type": "enum", "values": ["euler", "heun"], "description": "Diffusion sampler.", "required": false, "default": "euler"}, {"name": "shift", "type": "float", "description": "Diffusion schedule shift; default 1, or 3 for extract.", "required": false}, {"name": "enable_thinking", "type": "bool", "description": "Enable planner thinking where the route and checkpoint support it.", "required": false, "default": true}, {"name": "lm_temperature", "type": "float", "description": "Planner sampling temperature.", "required": false, "default": 0.85}, {"name": "lm_guidance_scale", "type": "float", "description": "Planner CFG, independent of diffusion guidance.", "required": false, "default": 2.0}, {"name": "lm_top_k", "type": "int", "description": "Planner top-k; 0 disables it.", "required": false, "default": 0}, {"name": "lm_top_p", "type": "float", "description": "Planner nucleus sampling threshold.", "required": false, "default": 0.9}, {"name": "lm_repetition_penalty", "type": "float", "description": "Planner repetition penalty.", "required": false, "default": 1.0}, {"name": "track_name", "type": "string", "description": "Target track for lego or extract.", "required": false}, {"name": "complete_track_classes", "type": "string", "description": "Track class or JSON array of classes for complete.", "required": false}, {"name": "repainting_start", "type": "float", "description": "Repaint start in seconds; required by repaint route.", "required": false}, {"name": "repainting_end", "type": "float", "description": "Repaint end in seconds; required by repaint route.", "required": false}, {"name": "repaint_mode", "type": "enum", "values": ["balanced", "conservative", "aggressive"], "description": "Repaint blend preset; balanced when only strength is supplied.", "required": false}, {"name": "repaint_strength", "type": "float", "description": "Balanced repaint strength, clamped to 0..1; default 0.5 when a preset is supplied.", "required": false}, {"name": "audio_cover_strength", "type": "float", "description": "Cover conditioning strength.", "required": false, "default": 1.0}, {"name": "cover_noise_strength", "type": "float", "description": "Cover conditioning noise strength.", "required": false, "default": 0.0}, {"name": "retake_seed", "type": "int", "description": "Optional retake seed; -1 clears it.", "required": false}, {"name": "retake_variance", "type": "float", "description": "Retake noise mixing strength.", "required": false, "default": 0.0}, {"name": "audio_codes", "type": "string", "description": "ACE semantic code text to bypass planner generation.", "required": false} ], "session": [ {"name": "lora", "type": "string", "description": "DiT decoder LoRA/LoKr adapter file or PEFT directory, merged during weight loading.", "required": false}, {"name": "lora_scale", "type": "float", "description": "Adapter strength multiplied by its metadata scale; zero disables the adapter.", "required": false, "default": 1.0}, {"name": "weight_type", "type": "enum", "preset": "weight_type_full", "description": "Shared weight storage type.", "required": false, "default": "native"}, {"name": "dit_weight_type", "type": "enum", "preset": "weight_type_full", "description": "DiT override of weight_type; f16 is promoted to bf16.", "required": false}, {"name": "dit_attention", "type": "enum", "values": ["auto", "eager", "flash"], "description": "DiT attention; auto selects flash on supported GPUs and eager on CPU.", "required": false, "default": "auto"}, {"name": "planner_weight_type", "type": "enum", "preset": "weight_type_full", "description": "Planner override of weight_type.", "required": false}, {"name": "planner_prefix_bucketing", "type": "bool", "description": "Bucket planner CFG attention to the valid prefix; false uses full cache capacity.", "required": false, "default": true}, {"name": "planner_fused_projections", "type": "bool", "description": "CUDA packed QKV and gate/up projections with fused SwiGLU; may change generated codes. Off unless enabled by cuda_perf; explicit values override the preset.", "required": false}, {"name": "planner_f16_decode", "type": "bool", "description": "CUDA F16 KV and bucketed decoding for metadata and CFG-off codes. CFG-on code decoding already uses F16 KV. May change generated codes. Off unless enabled by cuda_perf; explicit values override the preset.", "required": false}, {"name": "planner_independent_cfg_prefill", "type": "bool", "description": "CUDA CFG prefill at each branch's actual prompt length instead of shared left padding; may change generated codes. Off unless enabled by cuda_perf; explicit values override the preset.", "required": false}, {"name": "text_encoder_weight_type", "type": "enum", "preset": "weight_type_full", "description": "Text encoder override of weight_type.", "required": false}, {"name": "vae_weight_type", "type": "enum", "preset": "weight_type_full", "description": "VAE override of weight_type.", "required": false}, {"name": "perf_mode", "type": "enum", "values": ["off", "cuda_perf"], "description": "Performance preset; cuda_perf enables CUDA planner fused projections, F16 decode and independent CFG prefill, and VAE tiles of 1024 frames with 64-frame overlap per side. Can change generated codes and VRAM; does not change weight precision. Explicit options override the preset.", "required": false, "default": "off"}, {"name": "vae_tile_frames", "type": "int", "description": "VAE tile capacity in latent frames. Unset keeps backend defaults; 1024 with cuda_perf. Explicit values override the preset.", "required": false, "min": 1}, {"name": "vae_tile_overlap_frames", "type": "int", "description": "VAE overlap per side in latent frames; must be non-negative and less than half the tile capacity. Unset uses backend defaults; 64 with cuda_perf. Explicit values override the preset.", "required": false, "min": 0}, {"name": "mem_saver", "type": "bool", "description": "Release staged graphs and caches between phases; later requests may rebuild them.", "required": false, "default": false} ], "load": [ {"name": "dit_model_path", "type": "enum", "values": ["acestep-v15-turbo", "acestep-v15-base", "acestep-v15-xl-turbo", "acestep-v15-xl-sft"], "description": "DiT variant in the package; must be installed. Omitted selects from the model filename, falling back to acestep-v15-turbo.", "required": false, "default": "acestep-v15-turbo"} ] }, "ui": { "recommended_package": "ace_step_turbo_bf16", "tags": [ "Music", "Edit", "GGUF" ], "docs": [ "docs/models/ace_step.md", "docs/music_generation.md", "docs/gguf.md" ] }, "package_defaults": { "download": { "kind": "huggingface_snapshot", "repo": "audio-cpp/audio.cpp-gguf", "revision": "main", "gated": false } }, "packages": [ { "id": "ace_step_turbo_q8_0", "display_name": "ACE-Step 1.5 Turbo Q8_0 GGUF", "format": "gguf", "precision": "q8_0", "target_directory": "ACE-Step1.5-GGUF", "files": [ "ACE-Step1.5-GGUF/turbo/ace-step-1.5-turbo-q8_0.gguf" ], "strip_prefix": "ACE-Step1.5-GGUF" }, { "id": "ace_step_turbo_bf16", "display_name": "ACE-Step 1.5 Turbo BF16 GGUF", "default": true, "format": "gguf", "precision": "bf16", "target_directory": "ACE-Step1.5-GGUF", "files": [ "ACE-Step1.5-GGUF/turbo/ace-step-1.5-turbo-bf16.gguf" ], "strip_prefix": "ACE-Step1.5-GGUF" }, { "id": "ace_step_base_q8_0", "display_name": "ACE-Step 1.5 Base Q8_0 GGUF", "format": "gguf", "precision": "q8_0", "target_directory": "ACE-Step1.5-GGUF", "files": [ "ACE-Step1.5-GGUF/base/ace-step-1.5-base-q8_0.gguf" ], "strip_prefix": "ACE-Step1.5-GGUF" }, { "id": "ace_step_base_bf16", "display_name": "ACE-Step 1.5 Base BF16 GGUF", "format": "gguf", "precision": "bf16", "target_directory": "ACE-Step1.5-GGUF", "files": [ "ACE-Step1.5-GGUF/base/ace-step-1.5-base-bf16.gguf" ], "strip_prefix": "ACE-Step1.5-GGUF" }, { "id": "ace_step_xl_turbo_bf16", "display_name": "ACE-Step 1.5 XL Turbo BF16 GGUF", "format": "gguf", "precision": "bf16", "target_directory": "ACE-Step1.5-GGUF", "files": [ "ACE-Step1.5-GGUF/xl-turbo/ace-step-1.5-xl-turbo-bf16.gguf" ], "strip_prefix": "ACE-Step1.5-GGUF", "download": { "kind": "huggingface_snapshot", "repo": "CaptainArni/audio.cpp-gguf" } }, { "id": "ace_step_xl_sft_bf16", "display_name": "ACE-Step 1.5 XL SFT BF16 GGUF", "format": "gguf", "precision": "bf16", "target_directory": "ACE-Step1.5-GGUF", "files": [ "ACE-Step1.5-GGUF/xl-sft/ace-step-1.5-xl-sft-bf16.gguf" ], "strip_prefix": "ACE-Step1.5-GGUF", "download": { "kind": "huggingface_snapshot", "repo": "CaptainArni/audio.cpp-gguf" } }, { "id": "ace_step_xl_turbo_q8dit", "display_name": "ACE-Step 1.5 XL Turbo Q8_0 DiT GGUF (BF16 planner)", "format": "gguf", "precision": "q8_0", "target_directory": "ACE-Step1.5-GGUF", "files": [ "ACE-Step1.5-GGUF/xl-turbo-q8dit/ace-step-1.5-xl-turbo-q8dit.gguf" ], "strip_prefix": "ACE-Step1.5-GGUF", "download": { "kind": "huggingface_snapshot", "repo": "CaptainArni/audio.cpp-gguf" } }, { "id": "ace_step_xl_sft_q8dit", "display_name": "ACE-Step 1.5 XL SFT Q8_0 DiT GGUF (BF16 planner)", "format": "gguf", "precision": "q8_0", "target_directory": "ACE-Step1.5-GGUF", "files": [ "ACE-Step1.5-GGUF/xl-sft-q8dit/ace-step-1.5-xl-sft-q8dit.gguf" ], "strip_prefix": "ACE-Step1.5-GGUF", "download": { "kind": "huggingface_snapshot", "repo": "CaptainArni/audio.cpp-gguf" } } ], "sources": [ { "format": "gguf", "roots": { "model": ".", "weights": "$gguf" }, "files": { "dit_turbo_config": "model:acestep-v15-turbo/config.json", "dit_base_config": "model:acestep-v15-base/config.json", "lm_config": "model:acestep-5Hz-lm-1.7B/config.json", "lm_tokenizer_config": "model:acestep-5Hz-lm-1.7B/tokenizer_config.json", "lm_vocab": "model:acestep-5Hz-lm-1.7B/vocab.json", "lm_merges": "model:acestep-5Hz-lm-1.7B/merges.txt", "lm_tokenizer_json": "model:acestep-5Hz-lm-1.7B/tokenizer.json", "lm_chat_template": "model:acestep-5Hz-lm-1.7B/chat_template.jinja", "text_encoder_config": "model:Qwen3-Embedding-0.6B/config.json", "text_encoder_tokenizer_config": "model:Qwen3-Embedding-0.6B/tokenizer_config.json", "text_encoder_vocab": "model:Qwen3-Embedding-0.6B/vocab.json", "text_encoder_merges": "model:Qwen3-Embedding-0.6B/merges.txt", "text_encoder_tokenizer_json": "model:Qwen3-Embedding-0.6B/tokenizer.json", "text_encoder_chat_template": "model:Qwen3-Embedding-0.6B/chat_template.jinja", "vae_config": "model:vae/config.json" }, "optional_files": { "dit_xl_turbo_config": "model:acestep-v15-xl-turbo/config.json", "dit_xl_sft_config": "model:acestep-v15-xl-sft/config.json" }, "optional_tensors": { "dit_xl_turbo_weights": { "source": "weights:", "prefix": "dit_xl_turbo_weights" }, "dit_xl_turbo_silence_latent": { "source": "weights:", "prefix": "dit_xl_turbo_silence_latent" }, "dit_xl_sft_weights": { "source": "weights:", "prefix": "dit_xl_sft_weights" }, "dit_xl_sft_silence_latent": { "source": "weights:", "prefix": "dit_xl_sft_silence_latent" } }, "tensors": { "dit_turbo_weights": { "source": "weights:", "prefix": "dit_turbo_weights" }, "dit_turbo_silence_latent": { "source": "weights:", "prefix": "dit_turbo_silence_latent" }, "dit_base_weights": { "source": "weights:", "prefix": "dit_base_weights" }, "dit_base_silence_latent": { "source": "weights:", "prefix": "dit_base_silence_latent" }, "lm_weights": { "source": "weights:", "prefix": "lm_weights" }, "text_encoder_weights": { "source": "weights:", "prefix": "text_encoder_weights" }, "vae_weights": { "source": "weights:", "prefix": "vae_weights" } } }, { "format": "safetensors", "roots": { "model": "." }, "files": { "dit_turbo_config": "model:acestep-v15-turbo/config.json", "dit_base_config": "model:acestep-v15-base/config.json", "lm_config": "model:acestep-5Hz-lm-1.7B/config.json", "lm_tokenizer_config": "model:acestep-5Hz-lm-1.7B/tokenizer_config.json", "lm_vocab": "model:acestep-5Hz-lm-1.7B/vocab.json", "lm_merges": "model:acestep-5Hz-lm-1.7B/merges.txt", "lm_tokenizer_json": "model:acestep-5Hz-lm-1.7B/tokenizer.json", "lm_chat_template": "model:acestep-5Hz-lm-1.7B/chat_template.jinja", "text_encoder_config": "model:Qwen3-Embedding-0.6B/config.json", "text_encoder_tokenizer_config": "model:Qwen3-Embedding-0.6B/tokenizer_config.json", "text_encoder_vocab": "model:Qwen3-Embedding-0.6B/vocab.json", "text_encoder_merges": "model:Qwen3-Embedding-0.6B/merges.txt", "text_encoder_tokenizer_json": "model:Qwen3-Embedding-0.6B/tokenizer.json", "text_encoder_chat_template": "model:Qwen3-Embedding-0.6B/chat_template.jinja", "vae_config": "model:vae/config.json" }, "optional_files": { "dit_xl_turbo_config": "model:acestep-v15-xl-turbo/config.json", "dit_xl_sft_config": "model:acestep-v15-xl-sft/config.json" }, "optional_tensors": { "dit_xl_turbo_weights": "model:acestep-v15-xl-turbo/model.safetensors.index.json", "dit_xl_turbo_silence_latent": "model:acestep-v15-xl-turbo/silence_latent.safetensors", "dit_xl_sft_weights": "model:acestep-v15-xl-sft/model.safetensors.index.json", "dit_xl_sft_silence_latent": "model:acestep-v15-xl-sft/silence_latent.safetensors" }, "tensors": { "dit_turbo_weights": "model:acestep-v15-turbo/model.safetensors", "dit_turbo_silence_latent": "model:acestep-v15-turbo/silence_latent.safetensors", "dit_base_weights": "model:acestep-v15-base/model.safetensors", "dit_base_silence_latent": "model:acestep-v15-base/silence_latent.safetensors", "lm_weights": "model:acestep-5Hz-lm-1.7B/model.safetensors", "text_encoder_weights": "model:Qwen3-Embedding-0.6B/model.safetensors", "vae_weights": "model:vae/diffusion_pytorch_model.safetensors" } } ] }