Skip to content

Demucs

Integrate

Model id demucs
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/demucs?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Files like the example: $0.007 7 API credits your files are measured before the run Run it on this page

Get API key
Meta Audio #audio

Splits a music track into separate stems such as vocals, drums, bass, guitar and piano, with selectable variants

Meta · Data (JSON)

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required audio_url
Drop a file, or

URL pointing to the audio file for stem separation.

Advanced model · output_format · segment_length · shifts · overlap · stems
model default htdemucs_6s

Demucs model selected for stem separation.

output_format default mp3

Audio format used to save the separated stems.

Processing segment duration in seconds, with a model-specific default. Reducing it lowers memory use but may sacrifice quality; the minimum is 1.

default 1

Equivariant stabilization's random-shift count, trading additional processing time for improved quality as the count increases.

default 0.25

Segment overlap trades longer processing time for potentially better quality as it increases; the supported range is 0.0–1.0.

default ["vocals","drums","ba...

Stem selection from the model's available options: vocals, drums, bass, other, guitar, piano (for the 6s model). Set to None to extract every stem the model offers rather than a specific selection.

POST /run/demucs?wait=20 quote → $0.007
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/demucs?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Demucs

Separates a song into individual instrument tracks. Choose a Demucs variant with `model` (default htdemucs_6s, which also yields guitar and piano), limit the output with `stems`, and tune quality with `shifts` (1 to 10), `overlap` (0 to 1) and `segment_length`. Stems are returned as mp3 or wav files, one per source.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
audio_urlrequired audio
Typeurl · audio
URL pointing to the audio file for stem separation.
modeloptional
Typeenum
Defaulthtdemucs_6s
htdemucshtdemucs_fthtdemucs_6shdemucs_mmimdxmdx_extramdx_qmdx_extra_q
Demucs model selected for stem separation.
stemsoptional
Typeenum[]
Default["vocals","drums","bass","other","guitar","piano"]
Stem selection from the model's available options: vocals, drums, bass, other, guitar, piano (for the 6s model). Set to None to extract every stem the model offers rather than a specific selection.
segment_lengthoptional
Typeinteger | null
≥ 1
Processing segment duration in seconds, with a model-specific default. Reducing it lowers memory use but may sacrifice quality; the minimum is 1.
shiftsoptional
Typeinteger
Default1
1 – 10
Equivariant stabilization's random-shift count, trading additional processing time for improved quality as the count increases.
overlapoptional
Typenumber
Default0.25
0 – 1
Segment overlap trades longer processing time for potentially better quality as it increases; the supported range is 0.0–1.0.
output_formatoptional
Typeenum
Defaultmp3
wavmp3
Audio format used to save the separated stems.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "demucs",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 7,
    "usd": "0.007",
    "charged": 7,
    "refunded": 0
  },
  "input": {
    "audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  },
  "output": {
    "vocals": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "drums": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "bass": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "other": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "guitar": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "piano": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    }
  },
  "outputs": [
    {
      "type": "file",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_size": 1843200,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
vocals
object {url, content_type, file_name, file_size} | nullAudio file containing the isolated vocals.
drums
object {url, content_type, file_name, file_size} | nullAudio file containing the isolated drums.
bass
object {url, content_type, file_name, file_size} | nullAudio file containing the isolated bass.
other
object {url, content_type, file_name, file_size} | nullAudio file containing the isolated other instruments.
guitar
object {url, content_type, file_name, file_size} | nullAudio file containing the isolated guitar, available exclusively with 6s models.
piano
object {url, content_type, file_name, file_size} | nullAudio file containing the isolated piano, available exclusively with 6s models.

For AI agents: this page as Markdown is at https://doitong.com/en-US/developers/models/demucs.md. All models and guides: https://doitong.com/developers/llms.txt