{
  "openapi": "3.1.0",
  "info": {
    "title": "ACE-Step-15-Music-Generator — Chutes API",
    "description": "MIT-licensed ACE-Step 1.5 XL — dual DiT (SFT quality + Turbo speed) with LM 4B planner. Text-to-music, cover, and repaint in one sync API.",
    "version": "3a0bde28-383b-55a0-8afb-4e18ca9d335e",
    "contact": {
      "name": "Chutes",
      "url": "https://chutes.ai"
    },
    "x-chutes": {
      "chuteId": "5abec352-a6fa-5201-b4a9-f1f182dbc252",
      "slug": "vonkaiser-ace-step-15-music-generator",
      "modelName": "ACE-Step-15-Music-Generator",
      "standardTemplate": null,
      "openaiCompatible": false,
      "confidentialCompute": true,
      "modelPage": "https://chutes.ai/app/chute/vonkaiser-ace-step-15-music-generator",
      "llmsTxt": "https://chutes.ai/app/chute/vonkaiser-ace-step-15-music-generator/llms.txt",
      "pricing": {
        "usdPerHour": 1.8
      }
    }
  },
  "servers": [
    {
      "url": "https://vonkaiser-ace-step-15-music-generator.chutes.ai"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Chutes API key. Send as `Authorization: Bearer $CHUTES_API_KEY`."
      }
    }
  },
  "paths": {
    "/generate": {
      "post": {
        "operationId": "generate",
        "summary": "POST /generate",
        "responses": {
          "200": {
            "description": "Binary media payload.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "args": {
                    "type": "object",
                    "properties": {
                      "bpm": {
                        "type": "integer",
                        "default": null,
                        "minimum": 30,
                        "maximum": 300
                      },
                      "seed": {
                        "type": "integer",
                        "default": null
                      },
                      "model": {
                        "type": "string",
                        "enum": [
                          "xl-sft",
                          "xl-turbo"
                        ],
                        "default": "xl-turbo"
                      },
                      "shift": {
                        "type": "number",
                        "default": null,
                        "minimum": 1,
                        "maximum": 5
                      },
                      "lyrics": {
                        "type": "string",
                        "description": "Lyrics with optional section tags",
                        "default": "[Instrumental]"
                      },
                      "caption": {
                        "type": "string",
                        "description": "Music description (ACE-Step prompt/caption)",
                        "default": "instrumental lo-fi hip hop, warm vinyl texture, relaxed groove"
                      },
                      "duration": {
                        "type": "number",
                        "default": 120,
                        "minimum": 10,
                        "maximum": 240
                      },
                      "thinking": {
                        "type": "boolean",
                        "description": "Use LM planner for metadata and codes",
                        "default": true
                      },
                      "key_scale": {
                        "type": "string",
                        "default": null
                      },
                      "task_type": {
                        "type": "string",
                        "enum": [
                          "text2music",
                          "cover",
                          "repaint",
                          "lego",
                          "extract",
                          "complete"
                        ],
                        "default": "text2music"
                      },
                      "timesteps": {
                        "type": "string",
                        "default": null
                      },
                      "batch_size": {
                        "type": "integer",
                        "default": 1,
                        "minimum": 1,
                        "maximum": 8
                      },
                      "use_format": {
                        "type": "boolean",
                        "description": "LM-enhance caption/lyrics before generation",
                        "default": false
                      },
                      "return_json": {
                        "type": "boolean",
                        "description": "If true, return JSON with base64 audio instead of raw bytes",
                        "default": false
                      },
                      "audio_format": {
                        "type": "string",
                        "enum": [
                          "mp3",
                          "wav",
                          "flac",
                          "opus",
                          "aac",
                          "wav32"
                        ],
                        "default": "mp3"
                      },
                      "infer_method": {
                        "type": "string",
                        "enum": [
                          "ode",
                          "sde"
                        ],
                        "default": "ode"
                      },
                      "sample_query": {
                        "type": "string",
                        "description": "Natural language description for sample mode (alternative to caption)",
                        "default": null
                      },
                      "src_audio_b64": {
                        "type": "string",
                        "default": null
                      },
                      "use_cot_metas": {
                        "type": "boolean",
                        "default": true
                      },
                      "guidance_scale": {
                        "type": "number",
                        "default": null,
                        "minimum": 0,
                        "maximum": 20
                      },
                      "repainting_end": {
                        "type": "number",
                        "default": null
                      },
                      "time_signature": {
                        "type": "string",
                        "default": null
                      },
                      "vocal_language": {
                        "type": "string",
                        "default": "en"
                      },
                      "inference_steps": {
                        "type": "integer",
                        "default": null,
                        "minimum": 1,
                        "maximum": 200
                      },
                      "use_cot_caption": {
                        "type": "boolean",
                        "default": true
                      },
                      "use_random_seed": {
                        "type": "boolean",
                        "default": true
                      },
                      "repainting_start": {
                        "type": "number",
                        "default": 0
                      },
                      "use_cot_language": {
                        "type": "boolean",
                        "default": true
                      },
                      "reference_audio_b64": {
                        "type": "string",
                        "default": null
                      },
                      "audio_cover_strength": {
                        "type": "number",
                        "default": 1,
                        "minimum": 0,
                        "maximum": 1
                      }
                    }
                  }
                },
                "required": [
                  "args"
                ]
              },
              "example": {
                "args": {
                  "seed": 42,
                  "model": "xl-turbo",
                  "lyrics": "[Instrumental]",
                  "caption": "instrumental lo-fi hip hop, warm vinyl texture, relaxed groove",
                  "duration": 120,
                  "thinking": true,
                  "task_type": "text2music",
                  "batch_size": 1,
                  "use_format": false,
                  "return_json": false,
                  "audio_format": "mp3",
                  "infer_method": "ode",
                  "use_cot_metas": true,
                  "vocal_language": "en",
                  "use_cot_caption": true,
                  "use_random_seed": true,
                  "repainting_start": 0,
                  "use_cot_language": true,
                  "audio_cover_strength": 1
                }
              }
            }
          }
        }
      }
    },
    "/models": {
      "get": {
        "operationId": "list_models",
        "summary": "GET /models",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        }
      }
    },
    "/stats": {
      "get": {
        "operationId": "stats",
        "summary": "GET /stats",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "operationId": "health",
        "summary": "GET /health",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        }
      }
    },
    "/format": {
      "post": {
        "operationId": "format_input",
        "summary": "POST /format",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "args": {
                    "type": "object",
                    "properties": {
                      "bpm": {
                        "type": "integer",
                        "default": null,
                        "minimum": 30,
                        "maximum": 300
                      },
                      "lyrics": {
                        "type": "string",
                        "default": ""
                      },
                      "caption": {
                        "type": "string",
                        "default": ""
                      },
                      "duration": {
                        "type": "number",
                        "default": null,
                        "minimum": 10,
                        "maximum": 240
                      },
                      "language": {
                        "type": "string",
                        "default": "en"
                      },
                      "key_scale": {
                        "type": "string",
                        "default": null
                      },
                      "temperature": {
                        "type": "number",
                        "default": 0.85,
                        "minimum": 0,
                        "maximum": 2
                      },
                      "time_signature": {
                        "type": "string",
                        "default": null
                      }
                    }
                  }
                },
                "required": [
                  "args"
                ]
              },
              "example": {
                "args": {
                  "lyrics": "",
                  "caption": "",
                  "language": "en",
                  "temperature": 0.85
                }
              }
            }
          }
        }
      }
    },
    "/sample": {
      "post": {
        "operationId": "sample",
        "summary": "POST /sample",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "args": {
                    "type": "object",
                    "properties": {
                      "sample_type": {
                        "type": "string",
                        "enum": [
                          "simple_mode",
                          "custom_mode"
                        ],
                        "default": "simple_mode"
                      }
                    }
                  }
                },
                "required": [
                  "args"
                ]
              },
              "example": {
                "args": {
                  "sample_type": "simple_mode"
                }
              }
            }
          }
        }
      }
    }
  }
}