リクエストパラメーター | 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": "emo-v1",
"input": {
"image_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20251225/onmomb/emo.png",
"audio_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20250825/aejgyj/input_audio.mp3",
"face_bbox":[302,286,610,593],
"ext_bbox":[71,9,840,778]
},
"parameters": {
"style_level": "normal"
}
}'
import requests
import os
# 1. 環境変数から API キーを取得します。
api_key = os.getenv("DASHSCOPE_API_KEY")
# 2. リクエストを準備します。
url = 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis'
headers = {
'X-DashScope-Async': 'enable',
'Authorization': f'Bearer {api_key}',
}
payload = {
"model": "emo-v1",
"input": {
"image_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20251225/onmomb/emo.png",
"audio_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20250825/aejgyj/input_audio.mp3",
"face_bbox": [302, 286, 610, 593],
"ext_bbox": [71, 9, 840, 778]
},
"parameters": {
"style_level": "normal"
}
}
# 3. POST リクエストを送信します。
# 'json' パラメーターを使用すると、requests は JSON のシリアル化と 'Content-Type' ヘッダーを自動的に処理します。
response = requests.post(url, headers=headers, json=payload)
# 4. サーバーからの元の JSON レスポンスを出力します。
# リクエストが成功した場合、タスク ID とその他の情報が出力されます。
# リクエストが失敗した場合、サーバーからのエラーメッセージが出力されます。
print(response.json())
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.stream.Collectors;
/**
* 要件:
* - Java 8 以降。
* - 実行時に DASHSCOPE_API_KEY 環境変数を設定する必要があります。
**/
public class DashScopeApiDemo {
public static void main(String[] args) throws IOException {
// 1. 環境変数から API キーを取得します。
String apiKey = System.getenv("DASHSCOPE_API_KEY");
// 2. リクエストを準備します。
String urlString = "https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis";
String payload = "{"
+ "\"model\": \"emo-v1\","
+ "\"input\": {"
+ "\"image_url\": \"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20251225/onmomb/emo.png\","
+ "\"audio_url\": \"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20250825/aejgyj/input_audio.mp3\","
+ "\"face_bbox\": [302, 286, 610, 593],"
+ "\"ext_bbox\": [71, 9, 840, 778]"
+ "},"
+ "\"parameters\": {"
+ "\"style_level\": \"normal\""
+ "}"
+ "}";
// 3. POST リクエストを送信します。
URL url = new URL(urlString);
// noinspection StartSSRFNetHookCheckingInspection
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Authorization", "Bearer " + apiKey);
connection.setRequestProperty("X-DashScope-Async", "enable");
connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
connection.setRequestProperty("Accept", "application/json");
connection.setDoOutput(true);
// 出力ストリームを取得し、リクエストボディデータを書き込みます。
try (OutputStream os = connection.getOutputStream()) {
byte[] input = payload.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
// 4. サーバーのレスポンスを取得して出力します。
int statusCode = connection.getResponseCode();
System.out.println("Status Code: " + statusCode);
// ステータスコードに基づいて入力ストリーム (通常またはエラーストリーム) を選択します。
InputStream inputStream = (statusCode >= 200 && statusCode < 300)
? connection.getInputStream()
: connection.getErrorStream();
String responseBody;
try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8))) {
responseBody = reader.lines().collect(Collectors.joining("\n"));
}
System.out.println("Response Body: " + responseBody);
connection.disconnect();
}
}
// node-fetch パッケージが必要です。
// npm install node-fetch@2
// node-fetch ライブラリをインポートします。
const fetch = require('node-fetch');
// 1. 環境変数から API キーを取得します。
const apiKey = process.env.DASHSCOPE_API_KEY;
// 2. リクエストを準備します。
const url = 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis';
const headers = {
'X-DashScope-Async': 'enable',
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json' // fetch を使用する場合は、これを指定する必要があります。
};
const payload = {
"model": "emo-v1",
"input": {
"image_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20251225/onmomb/emo.png",
"audio_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20250825/aejgyj/input_audio.mp3",
"face_bbox": [302, 286, 610, 593],
"ext_bbox": [71, 9, 840, 778]
},
"parameters": {
"style_level": "normal"
}
};
// 3. POST リクエストを送信し、レスポンスを処理します。
fetch(url, {
method: 'POST',
headers: headers,
body: JSON.stringify(payload) // JavaScript オブジェクトを JSON 文字列に変換する必要があります。
})
.then(response => response.json()) // レスポンスボディを JSON として解析します。
.then(data => {
// 4. サーバーから返された JSON データを出力します。
console.log(data);
});
|
ヘッダー |
X-DashScope-Async string (必須) 非同期処理の設定パラメーターです。HTTP リクエストは非同期処理のみをサポートします。このパラメーターを enable に設定する必要があります。
重要 このリクエストヘッダーがない場合、「current user api does not support synchronous calls」というエラーメッセージが返されます。 |
Authorization string (必須) このヘッダーは身分認証に使用されます。API は Model Studio API キーを使用してリクエストを認証します。例:Bearer sk-xxxx。 |
Content-Type string (必須) リクエストのコンテンツタイプです。このパラメーターを application/json に設定します。 |
リクエストボディ |
model string (必須) モデル名です。例:emo-v1。 |
input object (必須) 基本的な入力情報を指定します。 プロパティ image_url string (必須) アップロードされた画像の URL です。モデルは EMO 画像検出 API から返された `ext_bbox` パラメーターに基づいて元の画像をトリミングします。トリミングされた領域のアスペクト比は、出力動画のアスペクト比と解像度を直接決定します。 `ext_bbox` のアスペクト比が 1:1 の場合、512 × 512 のプロフィール動画が生成されます。アスペクト比が 3:4 の場合、512 × 704 の半身ポートレート動画が生成されます。 画像の最小辺長は 400 ピクセル以上である必要があります。最大辺長は 7,000 ピクセルを超えることはできません。 サポートされているフォーマット:JPG、JPEG、PNG、BMP、WebP。 例:`https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20250911/yhdvfg/emo.png`。 HTTP または HTTPS リンクを使用してファイルをアップロードできます。ローカルファイルパスはサポートされていません。
audio_url string (必須) アップロードされた音声ファイルの URL です。この音声ファイルは EMO モデルの推論の入力として使用されます。 音声にはクリアな人間の声が含まれている必要があります。最良の結果を得るには、バックグラウンドノイズ、BGM、その他の干渉を除去してください。 ファイルサイズは 15 MB 以下、長さは 60 秒以下である必要があります。 サポートされているフォーマット:WAV、MP3。 例:https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/20250825/aejgyj/input_audio.mp3。 HTTP または HTTPS リンクを使用してファイルをアップロードできます。ローカルファイルパスはサポートされていません。
face_bbox array (必須) 画像内の顔領域のバウンディングボックス (bbox) のピクセル座標です。この値は EMO 画像検出 API のレスポンスの `face_bbox` フィールドから取得できます。座標フォーマットは `[x1, y1, x2, y2]` で、左上と右下の点の座標を表します。例:`[302,286,610,593]`。 画像の左上隅が原点 (0,0) です。x 軸は右に、y 軸は下に伸びます。 ext_bbox array (必須) 動的領域のバウンディングボックス (bbox) のピクセル座標です。この値は EMO 画像検出 API のレスポンスの `ext_bbox` フィールドから取得できます。この領域のアスペクト比は 1:1 または 3:4 です。座標フォーマットは `[x1, y1, x2, y2]` で、左上と右下の点の座標を表します。例:`[71, 9, 840, 778]`。 |
parameters object (任意) プロパティ style_level string (任意) デフォルト値:normal キャラクターの動きと振幅を制御します。`normal` (中程度の動き)、`calm` (穏やかな動き)、`active` (活発な動き) の 3 つのスタイルがサポートされています。デフォルト値は `normal` です。 |