stems

generate the missing part.

play one part — a loop, a bassline, a hummed melody — and the part that isn't there gets written to fit it, at your tempo.

one gpu, shared with everything else running. if it's slow, that's why.

1 · your part

or start from

hum, play, or drop a file. anything past 120 seconds gets trimmed — the model is trained on 30, and it audibly thins out over long takes.

2 · what's missing

3 · the model

this page serves one checkpoint: v0.5-rc.0. no picker — there is nothing to choose between, and a page that offers a choice it cannot honestly explain is worse than one that states what it runs.

it wakes on load. a model nobody has touched for two days takes about 90 seconds to come back — that happens while you record, not after you press generate.

4 · the sound

genre

character

placement

these are not free text. the model was trained on a closed set of words — anything outside it is a phrase it has never seen, and it renders worse. this list is that set, and it changes with the stem: drums and bass do not share character words.

these words are this model's own vocabulary — it trained on cond_v6, where the captions read exactly like the one below. there is no "leave it blank" option on purpose: an empty caption makes the stem fall back to "balanced vocals.", and only 12 of 4,568 training captions look like that. a genre you did not pick is still closer to what it knows than no genre at all, and you can see exactly what is sent below.

sending:

there is nowhere to type a tempo or a key, deliberately. this checkpoint was trained with both blanked — 0 of 300 conditionings sampled from its corpus carry a number, every one reads bpm: N/A — so a real tempo here would be a token it has never seen. the reading above is for you, not for the model; nothing is sent. (v0.1.5 was the opposite: 300 of 300 carried a real bpm. it is a per-checkpoint fact, not a general one.)

5 · generate

steps

seed

measured on a 30-second part: 64 steps holds the gpu 5.7 s, 32 holds it 3.4 s, 24 holds it 2.8 s. 64 is the standard everything here is evaluated at, and the difference is audible — it is the default for that reason, not because it is slower.

the same prompt swings a long way between seeds — measured up to 0.4 on byte-identical input. if a take is bad, take a new seed before you rewrite anything.