1. API の説明
この API は、AIGC タスクを非同期で送信します。送信リクエストが成功すると、即座に taskId が返されます。この ID を使用して、AIGC タスクのクエリ API でタスクの結果を照会できます。
2. エンドポイント
https://industrysolutions.alibabacloud.com
3. API URI
/openapi/v1/aigc/submitTask
4. リクエストメソッド
POST (application/json)
5. リクエストパラメーター
パラメーター | タイプ | 必須 | 説明 |
workflow | string | はい | AIGC アルゴリズムの識別子。有効な値:
|
version | string | はい | AIGC アルゴリズムのバージョン。例: |
algoInput | object | はい | AIGC アルゴリズムの入力オブジェクトです。パラメーターはアルゴリズムによって異なります。各アルゴリズムのパラメーター詳細については、以降のセクションをご参照ください。 |
6. algoInput パラメーター
6.1. 画像から動画へのアルゴリズム
パラメーター | タイプ | 必須 | 説明 |
inputText | string | はい | プロンプト。文字列は 500 文字以内である必要があります。 |
inputImage | string | はい | 入力画像。一般公開されている画像 URL である必要があります。
|
6.2. 服装の着せ替えアルゴリズム
パラメーター | タイプ | 必須 | 説明 |
modelImage | string | はい | モデル画像。一般公開されている画像 URL である必要があります。
|
garmentImage | string | はい | 服装画像。一般公開されている画像 URL である必要があります。
|
category | string | はい | 衣装交換のタイプ。有効な値は次のとおりです。
|
seed | int | はい | 値の範囲:0~2,147,483,647。画像生成のランダム性を制御します。同じシードと入力パラメーターを使用すると、再現可能な結果が生成されます。シードを調整して、さまざまなバリエーションを試すことができます。 |
6.3. テキストから画像へのアルゴリズム
パラメーター | タイプ | 必須 | 説明 |
inputText | string | はい | プロンプト。文字列は 500 文字以内である必要があります。 |
width | int | はい | 生成される画像の幅をピクセル単位で指定します。 |
height | int | はい | 生成される画像の高さをピクセル単位で指定します。 |
7. レスポンスパラメーター
パラメーター | タイプ | 説明 |
success | boolean | 送信が受理されたかどうかを示します。 |
model | string | 送信されたタスクの ID ( |
errorCode | string | エラーコード。リクエストが失敗した場合にのみ返されます。詳細については、エラーコードのセクションをご参照ください。 |
errorMsg | string | 説明的なエラーメッセージ。リクエストが失敗した場合にのみ返されます。 |
8. 共通エラーコード
エラーコード | 説明 |
INTCNN_COMMON_AUTH_CHECK_ERROR | 署名検証に失敗しました。 |
INTCNN_COMMON_NOT_FOUND | リクエストされた API は存在しません。 |
INTCNN_COMMON_PARAM_VALID_ERROR | パラメーター検証に失敗しました。 |
INTCNN_COMMON_SYS_ERROR | 不明なサーバー側エラーが発生しました。 |
9. リクエスト例
9.1. 画像から動画へ
curl --location 'https://industrysolutions.alibabacloud.com/openapi/v1/aigc/submitTask' \
--header 'X-Access-Key: 501711*****45218' \
--header 'X-Request-Sign: YmM4Yzg4ZTc3Z****************FkODdlYTRmMWFiOTBmYTMwMw==' \
--header 'X-Request-Timestamp: 1741855077857' \
--header 'x-acs-request-id: 893e87bb-6083-4249-aedd-a376cac24bee' \
--header 'Content-Type: application/json' \
--data '{
"workflow": "IMAGE2VIDEO",
"version": "1.0.0",
"algoInput": {
"inputText": "A person is walking.",
"inputImage": "https://img.alicdn.com/imgextra/i2/O1CN01DspKG11ZLZjy0JKAf_!!6000000003178-0-tps-999-750.jpg"
}
}'9.2. 服の交換
curl --location 'https://industrysolutions.alibabacloud.com/openapi/v1/aigc/submitTask' \
--header 'x-acs-request-id: 51843d00-ef53-47f8-ac03-6bfc219ba1eb' \
--header 'X-Access-Key: 5017114*******' \
--header 'X-Request-Sign: NjcxNTQy**************wMjZjZWU1YjQxZTcwYQ==' \
--header 'X-Request-Timestamp: 1739518571992' \
--header 'Content-Type: application/json' \
--data '{
"workflow": "CATVTON",
"version": "1.0.0",
"algoInput":{
"modelImage": "https://gw.alicdn.com/imgextra/i4/O1CN0162LlIZ1HJ8VZPst5A_!!6000000000736-2-tps-789-987.png",
"garmentImage": "https://gw.alicdn.com/imgextra/i1/O1CN01M2oIt71KIAWJhtK8f_!!6000000001140-2-tps-789-987.png",
"category": "overall",
"seed": 43
}
}'9.3. テキストから画像へ
curl --location 'https://industrysolutions.alibabacloud.com/openapi/v1/aigc/submitTask' \
--header 'X-Access-Key: 501711*****45218' \
--header 'X-Request-Sign: YmM4Yzg4ZTc3Z****************kODdlYTRmMWFiOTBmYTMwMw==' \
--header 'X-Request-Timestamp: 1741855077857' \
--header 'x-acs-request-id: 893e87bb-6083-4249-aedd-a376cac24bee' \
--header 'Content-Type: application/json' \
--data '{
"workflow": "TEXT2IMAGE",
"version": "1.0.0",
"algoInput": {
"inputText": "a cat",
"width": 1024,
"height": 1024
}
}'10. レスポンス例
{
"success": true,
"model": "28fdf560-249a-4712-adcc-906c0346602b",
"errorCode": null,
"errorMsg": null
}11. API 署名
伝送中のデータ改ざんを防ぐため、API リクエストに署名する必要があります。サーバーは署名を検証することで、各リクエストを認証します。
11.1. 署名要素
11.1.1. リクエスト URI
リクエスト URL が https://{domainName}/openapi/v1/a/b の場合、リクエスト URI は /openapi/v1/a/b です。
11.1.2. リクエストメソッド
HTTP リクエストメソッド。
11.1.3. リクエストヘッダー
リクエストヘッダーには、大文字と小文字を区別する以下のフィールドが含まれます。
ヘッダー | 必須 | 説明 | 例 |
X-Request-Sign | はい | リクエストに対して生成された署名。デフォルトのアルゴリズムは HMAC-SHA1 です。 |
|
X-Access-Key | はい | 呼び出し元を識別する AccessKey。AccessKey とシークレットキーを取得するには、SuperApp オープンプラットフォーム運用チームにお問い合わせください。 |
|
X-Request-Timestamp | はい | リクエストのタイムスタンプ (ミリ秒単位)。 |
|
x-acs-request-id | はい | リクエスト ID。 | トレースとトラブルシューティングに使用されるランダムに生成された UUID。例: |
11.1.4. リクエストボディ
JSON 形式のリクエストボディ。詳細なリクエスト情報が含まれます。フィールドは API によって異なります。
11.2. 署名方法
以下の要素から署名対象文字列を構築します:
HTTP リクエスト URI: 例:
/openapi/v1/a/bX-Access-Key: 例:
46b1cac78ed94ca4b99ad6de550a****X-Request-Timestamp: 例:
1676904384074HTTP リクエストボディ:
{
"appId": "223232323****",
"authClientId": "7230000****",
"grantType": "authorization_code",
"authCode": "1cc19911172e4f8aaa509c8fb5d1****"
}次の形式を使用して、これらの要素を 1 つの文字列に結合します:
<HTTP_METHOD> <HTTP_URI>\n<HTTP_BODY>.<X-Request-Timestamp>.<X-Access-Key>。URI の後には改行文字 (\n) が必要です。例:
POST /openapi/v1/a/b
{
"appId": "223232323****",
"authClientId": "7230000****",
"grantType": "authorization_code",
"authCode": "1cc19911172e4f8aaa509c8fb5d1****"
}.1676904384074.46b1cac78ed94ca4b99ad6de550afb68HMAC-SHA1 アルゴリズムを使用して、生成された文字列をシークレットキーで署名します。以下の Java コードは実装例です。
public String sign(String accessKey,String secretKey,String timestamp,String uri,byte[] bodyBytes) {
String content = String.format("POST %s\n%s.%s.%s", uri, new String(bodyBytes), timestamp, accessKey);
String signed = generateSign(content, secretKey, "HmacSHA1");
return Base64.getEncoder().encodeToString(signed.getBytes(StandardCharsets.UTF_8));
}
public static String generateSign(String content, String key, String algorithm) {
if (!StringUtils.isEmpty(algorithm) && !StringUtils.isEmpty(content) && null != key) {
try {
SecretKeySpec signinKey = new SecretKeySpec(key.getBytes(), algorithm);
Mac mac = Mac.getInstance(algorithm);
mac.init(signinKey);
byte[] rawHmac = mac.doFinal(content.getBytes());
return convertToHex(rawHmac);
} catch (InvalidKeyException | NoSuchAlgorithmException var6) {
return "";
}
} else {
return "";
}
}
public static String convertToHex(byte[] bytes) {
int len = bytes.length;
StringBuilder buf = new StringBuilder(len * 2);
for(int j = 0; j < len; ++j) {
buf.append(HEX[bytes[j] >> 4 & 15]);
buf.append(HEX[bytes[j] & 15]);
}
return buf.toString();
}
11.3. リクエストの送信
リクエストに X-Access-Key、X-Request-Timestamp、および X-Request-Sign ヘッダーを追加します。例:
curl -X POST \
https://example.com/openapi/v1/a/b \
-H 'Content-Type: application/json' \
-H 'X-Access-Key: 46b1cac78ed94ca4b99ad6de550afb68' \
-H 'X-Request-Timestamp: 1676904384074' \
-H 'X-Request-Sign: KrwDE9tAPJYBb4cUZU6ALJxGIZgwDXn5UkFPMip09n%2FkYKPhEIII%2Fki2rYY2lPtuKVgMNz%2BtuCU%2FjzRpohDbrOd8zYriiukpGAxBQDIVbatGI7WYOcc9YVQwdCR6ROuRQvr%2FD1AfdhHd6waAASu5Xugow9w1OW7Ti93LTd0tcyEWQYd2S7c3A73sHOJNYl8DC1PjasiBozZ%2FADgb7ONsqHo%2B8fKHsLygX9cuMkQYTGIRBQsvfgICnJhh%2BzXV8AQoecJBTrv6p%xxxx' \
-d '{
"appId": "223232323****",
"authClientId": "7230000****",
"grantType": "authorization_code",
"authCode": "1cc19911172e4f8aaa509c8fb5d1****"
}'