Lyria 3: Clip vs Pro, duration and credit pricing
Lyria 3 is Google’s music generation family on the Gemini API, and the only music model on Playcut. It comes in two tiers that share one endpoint: lyria-3-clip-preview produces a fixed 30-second track for 20 credits, and lyria-3-pro-preview produces a roughly two-minute, multi-section song for 40 credits. Both are multimodal — you can attach up to 10 reference images to steer mood, palette and energy — and both output 44.1 kHz stereo audio. Pricing is flat per song, not per second, so a failed idea costs the same as a good one. Iterate on Clip, then re-run the prompt you like on Pro.
Specs at a glance
Section titled “Specs at a glance”| Lyria 3 Clip | Lyria 3 Pro | |
|---|---|---|
| Model id | lyria-3-clip-preview | lyria-3-pro-preview (default) |
| Provider | Google (Gemini API) | Google (Gemini API) |
| Modes | text to music, image-steered text to music | text to music, image-steered text to music |
| Duration | fixed 30 s, no parameter | ~2 min, prompt-influenced only |
| Audio | 44.1 kHz stereo | 44.1 kHz stereo |
| Output format | MP3 | MP3 |
| Max reference images | 10 | 10 |
| Credits | 20 / song | 40 / song |
Aspect ratio and resolution do not apply — these are audio models.
Both tiers expose exactly the same two modes through the same request.
| Mode | Input | Notes |
|---|---|---|
| Text to music | prompt (1–5,000 characters) | The only required input. |
| Image-steered text to music | prompt + up to 10 image asset ids | Images are ambient steering for mood, colour and energy. |
Not available on either tier:
- Streaming / real-time generation. Google ships that as a separate Lyria RealTime WebSocket API. Playcut does not integrate it.
- Multi-turn editing or continuation. Lyria is single-turn. Every revision is a fresh, fully billed generation.
How reference images actually behave
Section titled “How reference images actually behave”Reference images are not addressable from the prompt. Write “an ambient track inspired by this image”, not “use image 2 for the chorus” — there is no mechanism to target a specific image.
Images you do not own, and images that fail to download, are skipped silently. A generation can therefore succeed with fewer images than you passed. The number actually sent back is reported on the task as metadata.referenceImageCount; check it if the result ignored a reference.
Output is MP3 — there is no WAV
Section titled “Output is MP3 — there is no WAV”Both tiers return MP3. Google’s own documentation advertises a WAV option for Pro, but in live testing (July 2026) every request shape — including Google’s documented one — returned MP3 bytes. Playcut therefore does not offer a format option: there is nothing to choose.
Pricing
Section titled “Pricing”Credits are held at submission and refunded in full if the task fails or is cancelled.
| Model | Credits / song | What you get |
|---|---|---|
lyria-3-clip-preview | 20 | one 30 s track |
lyria-3-pro-preview | 40 | one ~2 min song |
Flat per song. There is no per-second math, no length surcharge, and no discount for a short result. A 2-minute song from Pro costs the same 40 credits as anything else Pro returns.
Limitations & gotchas
Section titled “Limitations & gotchas”The content filter blocks names, not subject matter
Section titled “The content filter blocks names, not subject matter”This is by far the most common music failure on Playcut, and it is counter-intuitive. Verified across real production runs:
Blocked — the prompt is rejected with PROHIBITED_CONTENT:
- Real artist names (Future, Pop Smoke, Travis Scott, Bon Iver, T-Pain)
- Real producer names (Metro Boomin, 808 Mafia, Southside, Pi’erre Bourne)
- Real album names (Pluto, Astroworld, DS2, Whole Lotta Red)
- Real song titles (Mask Off, Yes Indeed, Drip Too Hard)
- Real persona or set names (King Vamp, La Flame, Pretty Flacko)
- Any of the above inside a negation — “NEVER Bon Iver indie pop” still fails. Lyria reads the name, not the sentence logic.
Not blocked — these are safe and sanitizing them wastes iterations:
- Drug references (Percs, lean, codeine, Xanax, Molly)
- Brand names used as descriptors (Cartier, Dior, AP)
- Geographic names (Brooklyn, Compton, Atlanta)
- Gear and plugin names (Neumann, Valhalla, Soundtoys)
- Drill slang on its own
The fix is always the same: delete the name and describe the style instead. Replace “like Metro Boomin” with “dark trap, detuned 808 slides, minor-key bell melody, sparse hi-hat triplets”.
Google additionally states that prompts requesting specific artist voices or the generation of copyrighted lyrics are blocked by policy.
Heavy stacking of violent imagery can trigger a separate, softer block. Fix that by removing the offending lyric line, not the vocabulary.
Everything else
Section titled “Everything else”- Newlines are preserved. Multi-line prompts reach Lyria with their line structure intact, so section tags like
[Verse 1],[Chorus]and[0:00 - 0:30]timestamp blocks behave the same here as in Google’s AI Studio. Write structured prompts freely. - Length is a request, not a guarantee. Pro has no duration parameter. Asking for three minutes may still return about two. There is no partial-credit mechanism.
- Clip’s 30 seconds is fixed by the provider. No prompt hint changes it.
- Non-deterministic. The same prompt returns a different song every time. No seed parameter is documented.
- Bitrate is undocumented. Google publishes the sample rate (44.1 kHz stereo) but not the MP3 bitrate. We will not guess one.
- Every output carries a SynthID watermark. Imperceptible, always on, not opt-out.
- An internal prompt rewriter runs before generation and the rewritten text is never returned, so a failure cannot be traced back to the final prompt Lyria actually saw. When a generation returns no audio, the worker logs the
finishReasonand safety ratings first — check those before debugging the prompt. - Both tiers are
-previewmodels. Surface area, quota and pricing can change without notice. - No music tool in the tools registry. Unlike image, video, voice and actor generation, music has no
/api/v1/tools/...entry and no MCP tool. It is only reachable at the dedicated REST endpoint below.
How to generate
Section titled “How to generate”Music uses its own endpoint rather than the tools registry, but the same Authorization: Bearer pk_live_... API key from the Quickstart works.
curl -X POST https://api.playcut.ai/api/music/generate \ -H "Authorization: Bearer $PLAYCUT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "workerId": "65f3a1b2c3d4e5f600000001", "prompt": "Warm lo-fi hip hop, dusty Rhodes chords, vinyl crackle, relaxed swung drums" }'curl -X POST https://api.playcut.ai/api/music/generate \ -H "Authorization: Bearer $PLAYCUT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "workerId": "65f3a1b2c3d4e5f600000001", "model": "lyria-3-pro-preview", "prompt": "Create a 2-minute indie folk song. [Verse] fingerpicked acoustic guitar, close-mic vocals. [Chorus] full band, layered harmonies, brushed drums." }'curl -X POST https://api.playcut.ai/api/music/generate \ -H "Authorization: Bearer $PLAYCUT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "workerId": "65f3a1b2c3d4e5f600000001", "prompt": "An ambient score inspired by these images, slow evolving pads, no percussion", "imageIds": [ "65f3a1b2c3d4e5f600000003", "65f3a1b2c3d4e5f600000004" ] }'The response is the standard async acknowledgement:
{ "success": true, "taskId": "65f3a1b2c3d4e5f600000002" }Poll it with the get-task-status tool, exactly as in the Quickstart, then call get-asset with the resulting asset id to get a signed URL (valid ~1 hour) for the finished audio.
Request fields
Section titled “Request fields”| Field | Required | Notes |
|---|---|---|
prompt | yes | 1–5,000 characters |
model | no | lyria-3-pro-preview (default — billed 40 credits) or lyria-3-clip-preview |
imageIds | no | up to 10 image asset ids |
workerId | no | session to attach the generation to |