---
url: /orchestration/reference/operations/InvokeAceStepAudioStepTemplate.md
description: 'POST /v2/consumer/recipes/aceStepAudio — Generates full songs from text descriptions and structured lyrics with ACE Step 1.5'
---

> Documentation index: https://developer.civitai.com/llms.txt — every page on this site has a markdown version at its URL + `.md`.

# Generates full songs from text descriptions and structured lyrics with ACE Step 1.5

`POST https://orchestration.civitai.com/v2/consumer/recipes/aceStepAudio`

Operation `InvokeAceStepAudioStepTemplate` · Recipes · Civitai Orchestration API, generated from the published OpenAPI spec ([v2-consumers.json](https://developer.civitai.com/openapi/v2-consumers.json)); the interactive HTML page is this URL without `.md`.

## Authentication

Send `Authorization: Bearer <token>` (the spec's `ApiKey` scheme); this operation documents `401 Unauthorized` for a missing or invalid token. See [Authentication](https://developer.civitai.com/orchestration/guide/authentication.md).

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `experimental` | query | boolean | no |  |
| `allowMatureContent` | query | boolean | no |  |
| `whatif` | query | boolean | no |  |
| `ephemeral` | query | boolean | no |  |
| `tier` | query | `WorkflowTier` (one of `paid`, `free`) | no | How a workflow is paid for. |

## Request body

Optional. Content types: `application/json`, `text/json`, `application/*+json`.

Schema `AceStepAudioInput`.

| Field | Type | Required | Description |
|---|---|---|---|
| `prompt` | string | yes | What the track should sound like: genre, mood, instruments, tempo (e.g., "Neo-Soul: A warm, organic neo-soul track..."). The words to sing go in lyrics. |
| `lyrics` | string | yes | Structured lyrics with section markers like [Verse], [Chorus], [Bridge], etc. |
| `seed` | integer (int32) | yes |  |
| `duration` | number (float) | no | Duration in seconds (1-190). (default `60`, minimum `1`, maximum `190`) |
| `bpm` | integer (int32) | no | Beats per minute (40-200). (default `120`, minimum `40`, maximum `200`) |
| `timeSignature` | string, one of `2`, `3`, `4`, `6` | no | Time signature (e.g., "4" for 4/4 time). (default `"4"`) |
| `language` | string, one of `en`, `ja`, `zh`, `es`, `de`, `fr`, `pt`, `ru`, `it`, `nl`, `pl`, `tr`, `vi`, `cs`, `fa`, `id`, `ko`, `uk`, `hu`, `ar`, `sv`, `ro`, `el` | no | Language code (e.g., "en", "zh", "ja", "ko"). (default `"en"`) |
| `key` | string, one of `C major`, `C# major`, `Db major`, `D major`, `D# major`, `Eb major`, `E major`, `F major`, `F# major`, `Gb major`, `G major`, `G# major`, `Ab major`, `A major`, `A# major`, `Bb major`, `B major`, `C minor`, `C# minor`, `Db minor`, `D minor`, `D# minor`, `Eb minor`, `E minor`, `F minor`, `F# minor`, `Gb minor`, `G minor`, `G# minor`, `Ab minor`, `A minor`, `A# minor`, `Bb minor`, `B minor` | no | Musical key (e.g., "C major", "E minor"). Mirrors ComfyUI's TextEncodeAceStepAudio1.5 keyscale combo: 17 roots × {major, minor}. (default `"C major"`) |
| `instrumentalWeight` | number (float) | no | Weight for instrumental elements (0.0-1.0). (default `0.85`) |
| `vocalWeight` | number (float) | no | Weight for vocal elements (0.0-1.0). (default `0.9`) |
| `diffusionModel` | string, nullable | no | Optional diffusion model (unet) override. Defaults to ACE-Step 1.5 turbo 2B. (pattern `^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\-\/]+):)?(?:(?<type>[a-zA-Z0-9_\-\/]+):)?(?<source>[a-zA-Z0-9_\-\/]+):(?<id>[a-zA-Z0-9_\-\/\.]+)(?:@(?<version>[a-zA-Z0-9_\-\/.=,%+:]+))?(?:\.(?<format>[a-zA-Z0-9_\-]+))?$`) |
| `cover` | `AceStepAudioCover` | no | Optional cover image. When provided, the output is a WebM video with this image as the visual; otherwise, output is audio-only (MP3). |
| `clipModel` | string, nullable | no | Optional text encoder (CLIP) override. Defaults to qwen_4b_ace15. (pattern `^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\-\/]+):)?(?:(?<type>[a-zA-Z0-9_\-\/]+):)?(?<source>[a-zA-Z0-9_\-\/]+):(?<id>[a-zA-Z0-9_\-\/\.]+)(?:@(?<version>[a-zA-Z0-9_\-\/.=,%+:]+))?(?:\.(?<format>[a-zA-Z0-9_\-]+))?$`) |
| `vaeModel` | string, nullable | no | Optional VAE override. Defaults to ace_1.5_vae. (pattern `^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\-\/]+):)?(?:(?<type>[a-zA-Z0-9_\-\/]+):)?(?<source>[a-zA-Z0-9_\-\/]+):(?<id>[a-zA-Z0-9_\-\/\.]+)(?:@(?<version>[a-zA-Z0-9_\-\/.=,%+:]+))?(?:\.(?<format>[a-zA-Z0-9_\-]+))?$`) |
| `languageModel` | string, nullable | no | Optional language model override for audio code generation. Defaults to qwen_0.6b_ace15. (pattern `^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\-\/]+):)?(?:(?<type>[a-zA-Z0-9_\-\/]+):)?(?<source>[a-zA-Z0-9_\-\/]+):(?<id>[a-zA-Z0-9_\-\/\.]+)(?:@(?<version>[a-zA-Z0-9_\-\/.=,%+:]+))?(?:\.(?<format>[a-zA-Z0-9_\-]+))?$`) |
| `steps` | integer (int32) | no | Number of sampling steps. Turbo variants converge at 8; non-turbo base / sft variants expect the full 50-step schedule. (default `8`, minimum `1`, maximum `200`) |
| `cfgScale` | number (float) | no | Classifier-free guidance scale. Turbo variants run CFG-off at 1.0; non-turbo base / sft variants expect CFG on (around 4). (default `1`, minimum `0`, maximum `30`) |
| `loras` | map of number (double) | no | LoRAs to apply; each strength applies to both the diffusion model and the dual CLIP. Compatibility with non-default base models is the caller's responsibility. |

### Types used by the request body

#### AceStepAudioCover

Schema `AceStepAudioCover` — When present, the output is a WebM video with this image as the visual.

| Field | Type | Required | Description |
|---|---|---|---|
| `imageUrl` | string (source-image) | yes | Either A URL, A DataURL or a Base64 string |

## Responses

### 200 OK

Content type: `application/json`.

Schema `AceStepAudioOutput`.

| Field | Type | Required | Description |
|---|---|---|---|
| `blob` | `Blob` | yes | The generated output blob — VideoBlob (with background image) or AudioBlob (audio only). |

### 400 Bad Request

Content type: `application/json`.

Schema `ProblemDetails`.

| Field | Type | Required | Description |
|---|---|---|---|
| `type` | string, nullable | no |  |
| `title` | string, nullable | no |  |
| `status` | integer (int32), nullable | no |  |
| `detail` | string, nullable | no |  |
| `instance` | string, nullable | no |  |

### 401 Unauthorized

Content type: `application/json`.

Schema `ProblemDetails` — fields as listed above.

### 403 Forbidden

Content type: `application/json`.

Schema `ProblemDetails` — fields as listed above.
