Skip to content

๐ŸŽง Music Model Udio โ€‹

  • 2024.11.12 This site now supports the music model udio
  • One prompt input generates 2 songs
  • Billing is per request, not per song; the udio130-v1.5 model costs 2x the price of udio32-v1.5
  • How to use: visit https://udio.ddaiai.com and see the Online Trial section below

Online Test โ€‹

Online Test

  1. Visit https://udio.ddaiai.com (if blocked, try changing the subdomain prefix to renyi)
    2. If you find it blocked, you can change the address yourself: https://renyi.ddaiai.com โ€” replace renyi with something else, e.g. https://2025.ddaiai.com, all work

Settings โ€‹

Udio

Result โ€‹

Result preview Udio

Udio API โ€‹

Create Song โ€‹

post https://api.openai-hk.com/udio/submit/music

shell
curl --request POST \
  --url https://pi.openai-hk.com/udio/submit/music \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'Content-Type: application/json' \
  --data '{
  "gen_params": {
    "prompt": "mother",
    "lyrics": "",
    "lyrics_type": "generate",
    "bypass_prompt_optimization": false,
    "seed": -1,
    "song_section_start": 0.4,
    "prompt_strength": 0.5,
    "clarity_strength": 0.25,
    "lyrics_strength": 0.5,
    "generation_quality": 0.75,
    "negative_prompt": "",
    "model_type": "udio32-v1.5",
    "config": {
      "mode": "regular"
    }
  }
}'
curl --request POST \
  --url https://pi.openai-hk.com/udio/submit/music \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'Content-Type: application/json' \
  --data '{
  "gen_params": {
    "prompt": "mother",
    "lyrics": "",
    "lyrics_type": "generate",
    "bypass_prompt_optimization": false,
    "seed": -1,
    "song_section_start": 0.4,
    "prompt_strength": 0.5,
    "clarity_strength": 0.25,
    "lyrics_strength": 0.5,
    "generation_quality": 0.75,
    "negative_prompt": "",
    "model_type": "udio32-v1.5",
    "config": {
      "mode": "regular"
    }
  }
}'

Scenario 1: Create Music from Description โ€‹

Request body

json
{
  "gen_params": {
    "prompt": "mother",
    "lyrics": "",
    "lyrics_type": "generate",
    "bypass_prompt_optimization": false,
    "seed": -1,
    "song_section_start": 0.4,
    "prompt_strength": 0.5,
    "clarity_strength": 0.25,
    "lyrics_strength": 0.5,
    "generation_quality": 0.75,
    "negative_prompt": "",
    "model_type": "udio32-v1.5",
    "config": {
      "mode": "regular"
    }
  }
}
{
  "gen_params": {
    "prompt": "mother",
    "lyrics": "",
    "lyrics_type": "generate",
    "bypass_prompt_optimization": false,
    "seed": -1,
    "song_section_start": 0.4,
    "prompt_strength": 0.5,
    "clarity_strength": 0.25,
    "lyrics_strength": 0.5,
    "generation_quality": 0.75,
    "negative_prompt": "",
    "model_type": "udio32-v1.5",
    "config": {
      "mode": "regular"
    }
  }
}

Scenario 2: Create Music with Custom Lyrics โ€‹

Request body

json
{
  "gen_params": {
    "prompt": "rock, pop soul, electronic, ",
    "lyrics": "ไฝ ็š„ๆญŒ่ฏ",
    "lyrics_type": "user",
    "bypass_prompt_optimization": false,
    "seed": -1,
    "song_section_start": 0,
    "song_section_end": 1,
    "lyrics_placement_start": 0,
    "lyrics_placement_end": 0.95,
    "prompt_strength": 0.5,
    "clarity_strength": 0.25,
    "lyrics_strength": 0.5,
    "generation_quality": 0.75,
    "negative_prompt": "",
    "model_type": "udio130-v1.5",
    "config": {
      "mode": "regular"
    }
  }
}
{
  "gen_params": {
    "prompt": "rock, pop soul, electronic, ",
    "lyrics": "ไฝ ็š„ๆญŒ่ฏ",
    "lyrics_type": "user",
    "bypass_prompt_optimization": false,
    "seed": -1,
    "song_section_start": 0,
    "song_section_end": 1,
    "lyrics_placement_start": 0,
    "lyrics_placement_end": 0.95,
    "prompt_strength": 0.5,
    "clarity_strength": 0.25,
    "lyrics_strength": 0.5,
    "generation_quality": 0.75,
    "negative_prompt": "",
    "model_type": "udio130-v1.5",
    "config": {
      "mode": "regular"
    }
  }
}

Scenario 3: Music Extension โ€‹

json
{
  "gen_params": {
    "prompt": "father",
    "lyrics": "",
    "lyrics_type": "generate",
    "bypass_prompt_optimization": false,
    "seed": -1,
    "song_section_start": 0,
    "prompt_strength": 0.5,
    "clarity_strength": 0.25,
    "lyrics_strength": 0.5,
    "generation_quality": 0.75,
    "negative_prompt": "",
    "model_type": "udio32-v1.5",
    "config": {
      "mode": "precede",
      "context_length": 130,
      "source": {
        "source_type": "song",
        "song_id": "extension-song-ID"
      }
    }
  }
}
{
  "gen_params": {
    "prompt": "father",
    "lyrics": "",
    "lyrics_type": "generate",
    "bypass_prompt_optimization": false,
    "seed": -1,
    "song_section_start": 0,
    "prompt_strength": 0.5,
    "clarity_strength": 0.25,
    "lyrics_strength": 0.5,
    "generation_quality": 0.75,
    "negative_prompt": "",
    "model_type": "udio32-v1.5",
    "config": {
      "mode": "precede",
      "context_length": 130,
      "source": {
        "source_type": "song",
        "song_id": "extension-song-ID"
      }
    }
  }
}

Request Body Key Field Descriptions โ€‹

  • Fields under gen_params
FieldTypeDescription
promptstringPrompt โ€” can be a description or a music style
lyricsstringLyrics
lyrics_typestringLyrics mode: user for custom, generate for auto-generated, instrumental for instrumental
model_typestringudio130-v1.5 costs 2x the price of udio32-v1.5
negative_promptstringNegative prompt โ€” things you don't want to appear
config.modestringExtension mode: precede for prepend, continuation for append, regular for normal generation
config.source.song_idstringSong id of the track to extend
  • lyrics_type=user means use the user-provided lyrics (in lyrics) to generate music; in this case prompt acts like tags for style.

  • lyrics_type=instrumental is used to create instrumental music; prompt provides relevant hints.

  • lyrics_type=generate means auto-generate lyrics; prompt describes what kind of song to generate.

  • Other parameter descriptions

FieldTypeDescription
song_section_startnumberRelevant for Scenario 3 โ€” where the extension starts, decimal value 0-1
song_section_endnumberRelevant for Scenario 3 โ€” where the extension ends, decimal value 0-1
lyrics_placement_startnumberLyrics placement start position, decimal value 0-1
lyrics_placement_endnumberLyrics placement end position, decimal value 0-1
prompt_strengthnumberPrompt strength, decimal value 0-1, default 0.5
clarity_strengthnumberClarity strength, decimal value 0-1, default 0.5
lyrics_strengthnumberLyrics strength, decimal value 0-1, default 0.5
generation_qualitynumberOptions: 0.25 0.5 0.75 1, default 0.75; higher value = better quality but slower
seednumberRandom seed, default -1 means random
bypass_prompt_optimizationbooleanWhether to skip prompt optimization, default false
  • song_section specifies the start and end position of the generated segment within the full song. 0% (0) corresponds to the beginning, 50% (0.5) to the middle, 100% (1) to the end. Click the value indicator to switch to auto mode and let the model decide the best position. This is especially useful when using the song extension feature.

  • lyrics_placement specifies where to place the lyrics within the full song. 8% corresponds to the beginning, 50% to the middle, 90% generates a segment near the end. This is especially useful when using the song extension feature.

  • prompt_strength controls how much the prompt influences the generated content. Higher values increase adherence to the prompt but may result in less natural-sounding audio.

  • lyrics_strength controls how much the lyrics influence the generated content. Lower values may produce more natural-sounding audio but may ignore some lyric content.

  • clarity_strength controls the model's priority on clarity and instrument separation when generating audio. Higher values may produce clearer audio but the sound may be less natural.

  • generation_quality is an experimental feature for trading off generation quality against generation speed.

Response Body โ€‹

data is the task_id

json
{
  "code": "success",
  "message": "",
  "data": "the task_id obtained, used in the next step to query task status"
}
{
  "code": "success",
  "message": "",
  "data": "the task_id obtained, used in the next step to query task status"
}

Get Task Status โ€‹

get https://api.openai-hk.com/udio/fetch/{task_id}

shell
curl --request GET \
  --url https://api.openai-hk.com/udio/fetch/27c2553f-0c1b-4149-8712-359e9acff6c7 \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'Content-Type: application/json'
curl --request GET \
  --url https://api.openai-hk.com/udio/fetch/27c2553f-0c1b-4149-8712-359e9acff6c7 \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'Content-Type: application/json'

Response body

  • status values: NOT_START SUBMITTED QUEUED IN_PROGRESS FAILURE SUCCESS UNKNOWN
json
{
	"code": "success",
	"message": "",
	"data": {
		"task_id": "dc943e26-ef81-45be-baf7-ce5e121cd448",
		"notify_hook": "",
		"action": "udio-generate",
		"status": "SUCCESS",
		"fail_reason": "",
		"submit_time": 1731344339,
		"start_time": 1731344353,
		"finish_time": 1731344393,
		"progress": "100%",
		"data": {
			"songs": [
				{
					"id": "db71404a-17d4-4fdf-a781-48381362d31b",
					"tags": [
						"mandopop",
						"2010s"
					],
					"liked": false,
					"likes": 0,
					"plays": 0,
					"title": "Whispers of the Storm",
					"artist": "EarthyTimpani8145",
					"lyrics": "",
					"prompt": "ๅคง้ฃŽๅคง้›จ",
					"user_id": "1cf1a8f9-a14b-4ea9-bc16-5f1cd77613e1",
					"disliked": false,
					"duration": 32.8106666666667,
					"error_id": null,
					"finished": true,
					"song_path": "https://storage.googleapis.com/udio-artifacts-c33fe3ba-3ffe-471f-92c8-5dfef90b3ea3/samples/28e06eb29c1c4abb9a50c8f6b127afb9/1/Whispers%2520of%2520the%2520Storm.mp3",
					"user_tags": [],
					"created_at": "2024-11-11T16:58:57.418504+00:00",
					"error_code": null,
					"error_type": null,
					"image_path": "https://imagedelivery.net/C9yUr1FL21Q6JwfYYh2ozQ/a7888419-167e-408b-42d3-7aa6f777ff00/public",
					"video_path": null,
					"attribution": "",
					"description": "",
					"publishable": true,
					"artist_image": "https://lh3.googleusercontent.com/a/ACg8ocKpwKLHf6tdaLz0OZm_f64g66HWEKmmgxKCtyzkp3M_wFERXA=s96-c",
					"error_detail": null,
					"published_at": null,
					"generation_id": "dc943e26-ef81-45be-baf7-ce5e121cd448",
					"replaced_tags": {
						"pop": {
							"tags": [
								"mandopop",
								"2010s"
							],
							"type": "tags"
						},
						"mandopop, 2010s": {
							"tags": [
								"mandopop",
								"2010s"
							],
							"type": "tags"
						}
					},
					"original_song_path": null,
					"audio_conditioning_type": null
				},
				{
					"id": "e7da256c-e2bf-4b0e-9ef9-0b906d5043f7",
					"tags": [
						"female vocalist",
						"dance-pop",
						"passionate",
						"energetic",
						"uplifting",
						"electropop",
						"bittersweet",
						"contemporary r&b",
						"introspective",
						"boastful",
						"urban",
						"ballad",
						"brostep",
						"mandopop",
						"2010s"
					],
					"liked": false,
					"likes": 0,
					"plays": 0,
					"title": "Storm Over The City",
					"artist": "EarthyTimpani8145",
					"lyrics": "",
					"prompt": "ๅคง้ฃŽๅคง้›จ",
					"user_id": "1cf1a8f9-a14b-4ea9-bc16-5f1cd77613e1",
					"disliked": false,
					"duration": 32.8106666666667,
					"error_id": null,
					"finished": true,
					"song_path": "https://storage.googleapis.com/udio-artifacts-c33fe3ba-3ffe-471f-92c8-5dfef90b3ea3/samples/28e06eb29c1c4abb9a50c8f6b127afb9/2/Storm%2520Over%2520The%2520City.mp3",
					"user_tags": [],
					"created_at": "2024-11-11T16:58:57.418504+00:00",
					"error_code": null,
					"error_type": null,
					"image_path": "https://imagedelivery.net/C9yUr1FL21Q6JwfYYh2ozQ/8b07ad93-91d2-4ff7-ef2e-17e0dcb11100/public",
					"video_path": null,
					"attribution": "",
					"description": "",
					"publishable": true,
					"artist_image": "https://lh3.googleusercontent.com/a/ACg8ocKpwKLHf6tdaLz0OZm_f64g66HWEKmmgxKCtyzkp3M_wFERXA=s96-c",
					"error_detail": null,
					"published_at": null,
					"generation_id": "dc943e26-ef81-45be-baf7-ce5e121cd448",
					"replaced_tags": {
						"pop": {
							"tags": [
								"electropop",
								"mandopop",
								"contemporary r&b",
								"dance-pop",
								"trap [edm]",
								"brostep",
								"lgbt",
								"boastful",
								"passionate",
								"introspective",
								"lush",
								"energetic",
								"conscious",
								"depressive",
								"ballad",
								"bittersweet",
								"urban",
								"uplifting",
								"2010s",
								"female vocalist"
							],
							"type": "tags"
						},
						"electropop, mandopop, contemporary r&b, dance-pop, trap [edm], brostep, lgbt, boastful, passionate, introspective, lush, energetic, conscious, depressive, ballad, bittersweet, urban, uplifting, 2010s, female vocalist": {
							"tags": [
								"female vocalist",
								"dance-pop",
								"passionate",
								"energetic",
								"uplifting",
								"electropop",
								"bittersweet",
								"contemporary r&b",
								"introspective",
								"boastful",
								"urban",
								"ballad",
								"brostep",
								"mandopop",
								"2010s"
							],
							"type": "tags"
						}
					},
					"original_song_path": null,
					"audio_conditioning_type": null
				}
			]
		}
	}
}
{
	"code": "success",
	"message": "",
	"data": {
		"task_id": "dc943e26-ef81-45be-baf7-ce5e121cd448",
		"notify_hook": "",
		"action": "udio-generate",
		"status": "SUCCESS",
		"fail_reason": "",
		"submit_time": 1731344339,
		"start_time": 1731344353,
		"finish_time": 1731344393,
		"progress": "100%",
		"data": {
			"songs": [
				{
					"id": "db71404a-17d4-4fdf-a781-48381362d31b",
					"tags": [
						"mandopop",
						"2010s"
					],
					"liked": false,
					"likes": 0,
					"plays": 0,
					"title": "Whispers of the Storm",
					"artist": "EarthyTimpani8145",
					"lyrics": "",
					"prompt": "ๅคง้ฃŽๅคง้›จ",
					"user_id": "1cf1a8f9-a14b-4ea9-bc16-5f1cd77613e1",
					"disliked": false,
					"duration": 32.8106666666667,
					"error_id": null,
					"finished": true,
					"song_path": "https://storage.googleapis.com/udio-artifacts-c33fe3ba-3ffe-471f-92c8-5dfef90b3ea3/samples/28e06eb29c1c4abb9a50c8f6b127afb9/1/Whispers%2520of%2520the%2520Storm.mp3",
					"user_tags": [],
					"created_at": "2024-11-11T16:58:57.418504+00:00",
					"error_code": null,
					"error_type": null,
					"image_path": "https://imagedelivery.net/C9yUr1FL21Q6JwfYYh2ozQ/a7888419-167e-408b-42d3-7aa6f777ff00/public",
					"video_path": null,
					"attribution": "",
					"description": "",
					"publishable": true,
					"artist_image": "https://lh3.googleusercontent.com/a/ACg8ocKpwKLHf6tdaLz0OZm_f64g66HWEKmmgxKCtyzkp3M_wFERXA=s96-c",
					"error_detail": null,
					"published_at": null,
					"generation_id": "dc943e26-ef81-45be-baf7-ce5e121cd448",
					"replaced_tags": {
						"pop": {
							"tags": [
								"mandopop",
								"2010s"
							],
							"type": "tags"
						},
						"mandopop, 2010s": {
							"tags": [
								"mandopop",
								"2010s"
							],
							"type": "tags"
						}
					},
					"original_song_path": null,
					"audio_conditioning_type": null
				},
				{
					"id": "e7da256c-e2bf-4b0e-9ef9-0b906d5043f7",
					"tags": [
						"female vocalist",
						"dance-pop",
						"passionate",
						"energetic",
						"uplifting",
						"electropop",
						"bittersweet",
						"contemporary r&b",
						"introspective",
						"boastful",
						"urban",
						"ballad",
						"brostep",
						"mandopop",
						"2010s"
					],
					"liked": false,
					"likes": 0,
					"plays": 0,
					"title": "Storm Over The City",
					"artist": "EarthyTimpani8145",
					"lyrics": "",
					"prompt": "ๅคง้ฃŽๅคง้›จ",
					"user_id": "1cf1a8f9-a14b-4ea9-bc16-5f1cd77613e1",
					"disliked": false,
					"duration": 32.8106666666667,
					"error_id": null,
					"finished": true,
					"song_path": "https://storage.googleapis.com/udio-artifacts-c33fe3ba-3ffe-471f-92c8-5dfef90b3ea3/samples/28e06eb29c1c4abb9a50c8f6b127afb9/2/Storm%2520Over%2520The%2520City.mp3",
					"user_tags": [],
					"created_at": "2024-11-11T16:58:57.418504+00:00",
					"error_code": null,
					"error_type": null,
					"image_path": "https://imagedelivery.net/C9yUr1FL21Q6JwfYYh2ozQ/8b07ad93-91d2-4ff7-ef2e-17e0dcb11100/public",
					"video_path": null,
					"attribution": "",
					"description": "",
					"publishable": true,
					"artist_image": "https://lh3.googleusercontent.com/a/ACg8ocKpwKLHf6tdaLz0OZm_f64g66HWEKmmgxKCtyzkp3M_wFERXA=s96-c",
					"error_detail": null,
					"published_at": null,
					"generation_id": "dc943e26-ef81-45be-baf7-ce5e121cd448",
					"replaced_tags": {
						"pop": {
							"tags": [
								"electropop",
								"mandopop",
								"contemporary r&b",
								"dance-pop",
								"trap [edm]",
								"brostep",
								"lgbt",
								"boastful",
								"passionate",
								"introspective",
								"lush",
								"energetic",
								"conscious",
								"depressive",
								"ballad",
								"bittersweet",
								"urban",
								"uplifting",
								"2010s",
								"female vocalist"
							],
							"type": "tags"
						},
						"electropop, mandopop, contemporary r&b, dance-pop, trap [edm], brostep, lgbt, boastful, passionate, introspective, lush, energetic, conscious, depressive, ballad, bittersweet, urban, uplifting, 2010s, female vocalist": {
							"tags": [
								"female vocalist",
								"dance-pop",
								"passionate",
								"energetic",
								"uplifting",
								"electropop",
								"bittersweet",
								"contemporary r&b",
								"introspective",
								"boastful",
								"urban",
								"ballad",
								"brostep",
								"mandopop",
								"2010s"
							],
							"type": "tags"
						}
					},
					"original_song_path": null,
					"audio_conditioning_type": null
				}
			]
		}
	}
}