Skip to main content
Describe a style, mood, and instrumentation in words, and the expert generates an audio file delivered straight into the conversation. No plugin to enable — music belongs to profy-creative, which is user_selectable: false and available in every conversation.

Prerequisite: a music model must be selected

The music tool does not pick a model for you. With no music model selected in the model selector, the expert receives this error verbatim and relays it:
Retrying will not help. Select a music model and ask again. Which models are available is operations data — the selector’s current list is authoritative.

Tool parameters

The expert calls the music tool, which has exactly one action, generate: Note that default: supplying lyrics without saying you want vocals usually returns an instrumental. Say “sing it” or “with vocals” explicitly so the expert flips the parameter to false.

How to describe what you want

Say it in the conversation. One sentence covering style, purpose, and length gets you furthest:
With vocals:
1

Style and genre

Pop, rock, classical, electronic, jazz, folk, hip hop, R&B — blends are fine (“classical with electronic elements”). Naming a specific reference track beats any adjective.
2

Mood

Upbeat, melancholic, tense, relaxed, romantic, mysterious, triumphant.
3

Tempo

Slow / mid / fast, or give a BPM (“around 120 BPM”).
4

Instruments and vocals

Lead instruments — and whether you want vocals. Leave this out and you get an instrumental.

What happens while it runs

Generation is asynchronous. The expert submits the job and waits; a progress card appears in the conversation. That last rule is worth explaining: a slow failure is usually a provider-side timeout, and retrying costs another wait of the same magnitude — easily burning the whole 600-second budget for nothing. Slow failures return immediately so you can decide whether to switch models or rewrite the prompt. A progress bar parked at 95% is normal. That is the cap on the estimate curve, not a signal that the job is nearly done.

Running in the background

You can send the job to the background while it waits. The expert immediately moves on, and the music is delivered when ready. This path rides the Redis channel agent:detach:{session_id} and is not available on desktop (no local Redis) — on desktop you wait.

Failures and what to do

AI-generated music is less refined than human composition on complex arrangements, and neither chorus hooks nor structural coherence are reliable. Treat it as a starting point or raw material and edit as needed.

Relationship to Movie

When the Movie plugin scores a video, it calls this same music tool with the same parameters and the same billing. The only difference is that the prompt is composed by the expert from the footage. You can still interject during scoring (“make the chorus punchier”, “fade out at the end”) and the expert regenerates with the new constraint.

Billing

The billing unit is decided by the model’s pricing configuration in the admin backend, not by the tool. What the tool reports is only a hint:
DB pricing config is the single source of truth for pricingUnit.
In practice it lands on either per_call (flat per generation) or duration_second (by output length). The difference that matters: under per_call, 30 seconds and 2 minutes cost the same; under duration_second they do not. When in doubt, generate something short first and check the charge. Both algorithms themselves are fixed — see Billing formulas. Failed generations are not billed (usage is only reported for non-failed results).
At most 100 creative usage events are settled per conversation stream. Normal use is nowhere near this ceiling; bulk generation scripts should keep it in mind.

Keep reading

Video generation

Same async pipeline, stricter parameter validation

Image generation

Batch and reference-image support

Billing formulas

Complete algorithms for all five billing units

Tool catalog

Full parameters for every tool