LivePortrait モデルは、LivePortrait-detect モデルで処理されたポートレート画像と人間の声の音声ファイルから、軽量でダイナミックなポートレート動画を迅速に生成します。このドキュメントでは、API を呼び出してこのモデルの動画生成機能を使用する方法について説明します。
このドキュメントは、中国 (北京) リージョンにのみ適用されます。このモデルを使用するには、中国 (北京) リージョンの API キー を使用する必要があります。
モデルの概要
モデル | 説明 |
liveportrait | Liveportrait はポートレート動画生成モデルです。ポートレート画像と人間の声の音声ファイルから、軽量でダイナミックなポートレート動画を生成します。 |
HTTP API
機能説明
ダイナミックなポートレート動画を生成します。
前提条件
Alibaba Cloud Model Studio を有効化し、API キーを取得します。詳細については、「API キーの作成と設定」をご参照ください。
入力画像は LivePortrait 画像検出 を経る必要があります。
入力制限
画像フォーマット:JPEG、JPG、PNG、BMP、または WebP。
画像解像度:画像ファイルのサイズは 10 MB 未満である必要があります。アスペクト比は 2 以下、最大辺長は 4096 ピクセル以下である必要があります。
音声フォーマット:WAV または MP3。
音声制限:音声ファイルのサイズは 15 MB 未満である必要があります。長さは 1 秒から 3 分の間である必要があります。
音声コンテンツ:音声には、環境ノイズ、BGM、その他の音の干渉がなく、明瞭で十分な音量の人の声が含まれている必要があります。
画像と音声ファイルは、HTTP または HTTPS の URL を使用してアップロードします。ローカルファイルパスはサポートされていません。
ジョブの送信
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis/これは時間のかかるアルゴリズム呼び出しであるため、ジョブは非同期呼び出しを使用して送信されます。
ジョブを送信すると、システムはジョブ ID を返します。「ジョブステータスのクエリと結果の取得」API を使用して、ジョブのステータスと結果を取得します。
リクエストパラメーター
フィールド | 型 | パラメーターの渡し方 | 必須 | 説明 | 例 |
Content-Type | String | ヘッダー | はい | リクエストの型。`application/json` に設定します。 | application/json |
Authorization | String | ヘッダー | はい | API キー。例:`Bearer d1**2a`。 | Bearer d1**2a |
X-DashScope-Async | String | ヘッダー | はい | ジョブを非同期で送信するために `enable` に設定します。 | enable |
model | String | 本文 | はい | 呼び出すモデル。`liveportrait` に設定します。 | liveportrait |
input.image_url | String | 本文 | はい | アップロードされた画像の URL。画像は、まず LivePortrait 画像検出 API で処理される必要があります。
説明 ファイルのアップロードは HTTP または HTTPS リンクのみをサポートし、ローカルファイルパスはサポートしていません。 | "image_url": "http://a/a.jpg" |
input.audio_url | String | 本文 | はい | アップロードされた音声ファイルの URL。
説明 ファイルのアップロードは HTTP または HTTPS リンクのみをサポートし、ローカルファイルパスはサポートしていません。 | http://aaa/bbb.wav |
parameters.template_id | String | 本文 | いいえ | テンプレートに基づいて頭の動きの姿勢と範囲を制御します。サポートされているテンプレート:`normal`、`calm`、`active`。デフォルト値:`normal`。 | "normal" |
parameters.eye_move_freq | Float | 本文 | いいえ | 1秒あたりのまばたきの回数。有効値:0~1。値が大きいほど、まばたきの頻度が高くなります。デフォルト値:0.5。 | 0.5 |
parameters.video_fps | Integer | 本文 | いいえ | 出力動画のフレームレート。有効値:15~30。デフォルト値:24。 | 24 |
parameters.mouth_move_strength | Float | 本文 | いいえ | 口の動きの大きさ。有効値:0~1.5。値が大きいほど、口の形が大きくなります。0 に設定すると、口は動きません。デフォルト値:1。 | 1 |
parameters.paste_back | Boolean | 本文 | いいえ | 生成された顔を元の画像に貼り戻すかどうかを指定します。有効値:`true` または `false`。`false` に設定すると、生成された顔のみが返され、体は無視されます。デフォルト値:`true`。 | true |
parameters.head_move_strength | Float | 本文 | いいえ | 頭の動きの大きさ。有効値:0~1。値が大きいほど、頭の動きの範囲が広くなります。デフォルト値:0.7。 | 0.7 |
レスポンスパラメーター
フィールド | 型 | 説明 | 例 |
output.task_id | String | 送信された非同期ジョブの ID。実際のジョブ結果は、非同期ジョブクエリ API を使用して取得する必要があります。 | a8532587-fa8c-4ef8-82be-0c46b17950d1 |
output.task_status | String | 非同期ジョブが送信された後のジョブのステータス。 | "PENDING" |
request_id | String | リクエストの一意の ID。 | 7574ee8f-38a3-4b1e-9280-11c33ab46e51 |
アクションテンプレート
template_id | 効果の説明 |
normal | デフォルトのアクションテンプレートです。頭を動かす範囲は中程度で、様々なシナリオに適しています。 |
calm | キャラクターの動きが落ち着き、頭を動かす範囲が狭くなります。このテンプレートは、ブロードキャストなどのシナリオに推奨されます。 |
active | キャラクターの動きが活発になり、頭を動かす範囲が広くなります。このテンプレートは、歌唱などのシナリオに推奨されます。 |
リクエストの例
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis/' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "liveportrait",
"input": {
"image_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20250911/ynhjrg/p874909.png",
"audio_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20251226/fwnqyq/liveportrait_boy.mp3"
},
"parameters": {
"template_id": "normal",
"eye_move_freq": 0.5,
"video_fps":30,
"mouth_move_strength":1,
"paste_back": true,
"head_move_strength":0.7
}
}'レスポンスの例
{
"output": {
"task_id": "a8532587-fa8c-4ef8-82be-0c46b17950d1",
"task_status": "PENDING"
},
"request_id": "7574ee8f-38a3-4b1e-9280-11c33ab46e51"
}ジョブステータスのクエリと結果の取得
GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}リクエストパラメーター
フィールド | 型 | パラメーターの渡し方 | 必須 | 説明 | 例 |
Authorization | String | ヘッダー | はい | API キー。例:`Bearer d1**2a`。 | Bearer d1**2a |
task_id | String | Url Path | はい | クエリするジョブの ID。 | a8532587-fa8c-4ef8-82be-0c46b17950d1 |
レスポンスパラメーター
フィールド | 型 | 説明 | 例 |
output.task_id | String | クエリされたジョブの ID。 | a8532587-fa8c-4ef8-82be-0c46b17950d1 |
output.task_status | String | クエリされたジョブのステータス。 | ジョブステータス: PENDING:ジョブはキューに入っています。 RUNNING:ジョブは実行中です。 SUCCEEDED:ジョブは成功しました。 失敗 UNKNOWN:ジョブが存在しないか、ステータスが不明です。 |
output.results.video_url | String | ジョブが成功した場合、このパラメーターにはモデルによって生成された結果オブジェクトが含まれます。各オブジェクトには、生成された結果の URL が含まれます。`video_url` はジョブ完了後 24 時間有効です。 | https://xxx/1.mp4 |
usage.video_duration | Float | このリクエストで生成された動画の長さ (秒単位)。 | 10.23 |
usage.video_ratio | String | このリクエストで生成された動画のフレームタイプ。値は `standard` です。 | "video_ratio": "standard" |
request_id | String | リクエストの一意の ID。 | 7574ee8f-38a3-4b1e-9280-11c33ab46e51 |
リクエストの例
86ecf553-d340-4e21-xxxxxxxxx を実際のタスク ID に置き換えてください。
curl -X GET https://dashscope.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"レスポンスの例 (成功)
{
"request_id": "b64e9c68-3923-462d-b25a-xxxxxx",
"output": {
"task_id": "a1c69ca5-810b-49ae-8b20-xxxxxx",
"task_status": "SUCCEEDED",
"submit_time": "2025-12-26 11:33:03.146",
"scheduled_time": "2025-12-26 11:33:13.312",
"end_time": "2025-12-26 11:33:22.455",
"results": {
"video_url": "http://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.mp4?Expires=xxx"
}
},
"usage": {
"video_duration": 2.79,
"video_ratio": "standard"
}
}レスポンスの例 (失敗)
{
"request_id": "7574ee8f-38a3-4b1e-9280-xxxxxx",
"output": {
"task_id": "a8532587-fa8c-4ef8-82be-xxxxxx",
"task_status": "FAILED",
"code": "xxx",
"message": "xxxxxx"
}
}ステータスコード
一般的なステータスコードについては、「エラーメッセージ」をご参照ください。