Lyria 3.5 is single-turn: what that means for Sume Music retries
Google says Lyria music is single-turn, with no iterative editing and varying results per call. On Sume that means a new take per prompt: no seed, no duration.

Lyria music generation is single-turn: you cannot edit a track in conversation, and the same prompt can return different results. On Sume that translates into a simple rule: every retry is a new paid take, and nothing in the Music request pins the output.
Google's Gemini API music page (read 2026-10-10) states 'no iterative editing' and says results may vary between calls, even with the same prompt. Sume's Music 1.0 page adds the other half: the request has no seed, temperature, guidance or duration parameter.
What you can and cannot control
Sume's Music request takes prompt (1 to 5,000 characters), an optional public HTTPS image_url, optional metadata, and the usual mode, webhook_url and wait_timeout_seconds. A non-empty negative_prompt returns HTTP 400 with public_reason=negative_prompt_unsupported, so exclusions belong in the positive prompt, for example 'Instrumental, no vocals.'
| Knob | Lyria through the Gemini API | Sume Music request |
|---|---|---|
| Edit a finished track | No iterative editing | No edit route; submit a new job |
| Same prompt, same result | Not guaranteed | Not guaranteed; no seed field |
| Length | Prompt-controlled for full songs | Prompt-controlled; duration rejected |
| Exclusions | Safety filters on all prompts | Positive prompt only; negative prompt returns 400 |
Plan retries as takes, not edits
Because the price is a fixed $0.125 per accepted generation, you can budget a take count up front. Three takes cost $0.375. The retry loop that works is to change the brief deliberately: the Music page lists seven axes (emotion, genre, tempo as a number, key and mode, instruments with texture, an arc with one named moment, era and production) and notes that these are creative directions rather than guaranteed values.
When a take is close, keep the brief and change only one axis. When a take is rejected by policy, change the flagged content but keep the musical brief.
Make retries safe on the wire
Send an Idempotency-Key per intended take so a network retry does not create a second paid job, and a fresh key for each new take. Poll GET /v1/jobs/{id}/status and read the result when it completes; the Music page says the audio artifact sits in result.artifacts[] with type equal to audio. The 30-second wait limit on sync mode bounds the HTTP call, not the job, so submit async or use a webhook for longer waits (Jobs and results).
curl -X POST https://api.sume.com/v1/music-router/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: take-001" \
-d '{"model":"sume/music-auto","prompt":"Warm lo-fi, 84 BPM, C minor. Rhodes, brushed drums. A 30-second track. Instrumental, no vocals."}'What to do when you need a small change
Single-turn also means there is no 'make the drums quieter' follow-up. The practical substitute is the audio toolchain around the track rather than another generation. If you only need a different length, split the file with timeline audio. If you need the music quieter under speech, set soundtrack.gain_db or duck_db in a Timeline render instead of regenerating; the Timeline page lists gain_db, loop, fade_out_seconds up to 10 and duck_db from 0 to 20 for a bed.
Only changes to the music itself, such as a different instrument or a different arc, justify another take. Treat those as a new brief and a new $0.125 charge, and keep the earlier file in case the new take is worse. Because the outputs are not reproducible, the earlier file is the only copy of that version you will ever have.
Choosing between takes
Listen to every take before you build on it; the model-reported lyrics field is not an audio measurement. If you need to compare engines on one brief, the blind test post shows the router ids. Keep the winner's file and prompt together, because you cannot regenerate it.
Sources
Related posts
More in Developers
- Which language does Lyria 3.5 sing in? Spanish prompt on Sume Music
Google says Lyria generates music in the language of your prompt. On Sume, write the brief in the language you want sung; no language field exists on Music.
- Make a vertical Short clip with curl and jq: submit, poll, download
A 20-line shell script that asks Sume for an 8-second 9:16 clip at 1080p, polls the job, and saves short.mp4, matched to YouTube's Shorts page.
- Map Sume API error codes to messages your app's users can act on
A translation table from Sume HTTP codes such as 402, 409, 413, 415 and 429 to user-facing copy, plus which errors the user cannot fix and should never see raw.
- Move a Grok Imagine polling loop to Sume's /v1/videos in Python
Port an xAI Grok Imagine video poll loop to Sume: submit, idempotent retry, poll states, download and read usage.cost. A runnable Python script under 30 lines.
Written by Sume