API
CLUB

Uika 音乐

根据文本描述、歌词、音乐参考和语音样本生成原创音乐。

Uika/Uika音频/Uika音乐

能力

最适合

  • •文本提示中的原创歌曲
  • •从歌词生成的音乐
  • •用您克隆的声音演唱
  • •用于编辑的背景床

不适合

  • •复制受版权保护的录音
  • •茎分离或重新混合
  • •专业音频母带制作

身份验证

API 密钥标头

Uika API 使用 API 密钥来验证请求。将您的密钥发送到 X-API 密钥 标题。您的 API 密钥是一个秘密。不要在浏览器或其他客户端代码中公开它。相反,从您的服务器调用 API。登录的 Playground 使用门户会话,并且从不发送您的 API 密钥。

标题
X-API-Key: YOUR_API_KEY

端点

异步·轮询结果

发布https://api.dev.pika.art/v1/media/pika/pika-audio/pika-music生成端点
获取https://api.dev.pika.art/v1/media/jobs/{request_id}民意调查直至完成
获取https://api.dev.pika.art/v1/media/jobs/{request_id}/content输出 URL,适用于仅保留 id 的客户端
删除https://api.dev.pika.art/v1/media/jobs/{request_id}删除存储的媒体并提示

参考上传

媒体输入

媒体输入接受任何公共 URL。要使用本地文件,请将其 content_type 和 size_bytes 发布到 /v1/media/uploads,将文件放入返回的 upload_url,然后传递 url.

上传
# 1. Request a presigned upload URL. Send the file's content
# type and its exact size in bytes.
curl -X POST https://api.dev.pika.art/v1/media/uploads \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content_type": "image/png", "size_bytes": 12345}'
# The response returns two URLs:
# upload_url: a temporary URL to upload the file to. Expires in 5 minutes.
# url: the permanent Uika URL. Pass it to the model as the input.
# {
# "upload_url": "https://upload.r2.pika.art/...?X-Amz-Signature=...",
# "url": "https://cdn.pika.art/v2/media/uploads/org_abc/9f8e7d.png"
# }
# 2. Upload the file to upload_url, then pass url to the model.
curl -X PUT "<upload_url>" \
-H "Content-Type: image/png" \
--data-binary @input.png

生成

POST /v1/media/pika/pika-audio/pika-music

请求

curl -X POST https://api.dev.pika.art/v1/media/pika/pika-audio/pika-music \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "text_to_music",
"prompt": "mainstream dance pop, four-on-the-floor house beat, 124 bpm, euphoric and restless, bright clear female lead vocal in an upper-mid register, sidechained warm pads, bright plucked synth hook, punchy kick and clap, filtered verse lifting into a full festival-sized chorus, glossy radio-chart mix, DRY close-mic single unlayered lead vocal front and center, no harmony stacks, no vocal chops, no ad-lib doubles, minimal vocal processing, instrumental sits back",
"lyrics": "[Verse]\nBlue light on my face at four a.m.\nEverybody sleeping, I'm still typing then\nOne more tab, one more ping, one more thing\n[Pre-Chorus]\nI say I'll stop, I never do\n[Chorus]\nI'm always on, always on\nNever found the off switch, baby\nI'm always on, always on\nGlowing till the morning takes me\n[Verse 2]\nMy notifications know me better than my friends\nThe day begins before the last one ends\n[Final Chorus]\nI'm always on, always on\nDon't wait up, I'll be here\nI'm always on, always on\nSame light, same chair, same year",
"clean_reference_audio": false,
"voice_consent_attested": false,
"rewrite_prompt": false,
"duration": 60,
"seed": 1001
}'

返回数据

{
"id": "media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0",
"status": "queued"
}

请求正文

模式枚举
模式
提示词字符串需要
提示词
歌词字符串
歌词
reference_audiostring
参考音频
source_audiostring
源音频
clean_reference_audio布尔值默认值: false
干净的参考音频
voice_consent_attested布尔值默认值: false
设置为 true 以证明您拥有在 reference_audio 中克隆语音所需的权利和权限。提供reference_audio 时需要。
rewrite_prompt布尔值默认值: false
展开 the prompt with a model before generating. Leave off when the prompt already specifies the arrangement; turn it on for a short or vague one.
持续时间号码10 – 360默认值:30
持续时间
种子整数默认值:-1
种子

接受的值

模式

输入模式

参考音频reference_audio

直接使用公共 URL,或 POST { content_type, size_bytes } 到 /v1/media/uploads,将音频连同返回的标头一起放入返回的 upload_url,然后传递 url。

源音频source_audio

直接使用公共 URL,或 POST { content_type, size_bytes } 到 /v1/media/uploads,将音频连同返回的标头一起放入返回的 upload_url,然后传递 url。

返回

返回一个 工作对象 状态 ,不是最终输出。存储响应中的 ID 并轮询作业直至完成。

民意调查状态

获取/v1/media/jobs/{request_id}

请求

curl https://api.dev.pika.art/v1/media/jobs/{request_id} \
-H "X-API-Key: YOUR_API_KEY"

返回数据

{
"id": "media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0",
"status": "running"
}

按 ID 轮询作业,直到达到最终状态:已完成或失败。已完成的作业在输出中携带其下载 URL,并且 GET /v1/media/jobs/{request_id}/content 返回与 { "url" } 对于只保留 ID 的客户端。

DELETE /v1/media/jobs/{request_id} 删除作业的存储介质以及提交时捕获的请求(提示和参数)。然后作业报告 deleted_at 并且没有输出,内容端点回答410。

作业对象

id字符串
作业的唯一标识符。
状态枚举
作业的状态。其中之一:
对象
生成输出。工作完成后立即出现。
错误字符串
如果作业失败,则失败的原因。
deleted_atnumber
当您删除作业的存储媒体时,以纪元秒为单位。在此之前为空,一旦设置后输出为空。
用法对象
提供者为作业报告的单位,例如 video_output_tokens 或 image_output_tokens。一旦作业终止就存在,仅携带作业报告的单位,并且当没有报告任何内容时为空。
对象
工作收费。工作结束后在场;提交响应和 webhooks 上为 null。

错误

在通话中共享

错误使用传统的 HTTP 状态代码以及形状的 JSON 主体 {"message": "..."}。验证失败返回 422 并带有一条命名有问题字段的消息。作业行存在后提交拒绝(余额、速率限制)返回失败的作业信封 — 分支 error.code.

状态当身体
401 未经授权API 密钥丢失或无效。{"message":"Invalid API key"}
403 禁止非活动密钥被拒绝 {"message"} 身体。作业行存在并返回失败的作业信封后,组织余额或后付费周期限制无法覆盖的提交将被拒绝。 GET /billing/balance 将两者分开: 200 表示密钥处于活动状态,因此拒绝的是余额或循环限制。{"id":"media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status":"failed","error":{"code":"insufficient_balance","message":"Insufficient org balance"}}
404 未找到您的组织中不存在具有该 ID 的作业,或者媒体路径名称未知的供应商/型号/功能。{"message":"media job not found"}
409冲突在作业完成之前请求结果,或者将 Idempotency-Key 标头与不同的正文重用。{"message":"media job is not ready"}
422 无法处理的实体请求正文验证失败:枚举值无效、缺少必填字段、类型错误或 JSON 格式错误。 JSON 消息命名有问题的字段。无法定价的架构有效参数组合在创建作业后失败,并返回失败的作业信封和错误代码 invalid_input.{"message":"duration: Input should be less than or equal to 15"}
429 请求太多您已达到每分钟或每天的请求限制,或者您组织的作业队列已满。作为失败的作业信封返回。如果存在 Retry-After 标头,请等待那么长时间,然后使用新的 Idempotency-Key 重试。{"id":"media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status":"failed","error":{"code":"rate_limited","message":"rate limit exceeded: rpm"}}
503服务不可用模型导轨或后端依赖项暂时不可用。作为失败的作业信封退回;使用退避和新的幂等密钥重试。{"id":"media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status":"failed","error":{"code":"provider_unavailable","message":"media dispatch unavailable"}}