すべてのプロダクト
Search
ドキュメントセンター

SuperApp:AIGC タスクを送信する

最終更新日:Mar 11, 2025

1. API 操作の説明

これは非同期操作です。リクエストが送信されると、システムはタスク ID を返し、バックグラウンドでタスクを実行します。タスク ID を使用して、人工知能生成コンテンツ (AIGC) タスクの結果をクエリできます。

2. エンドポイント

https://industrysolutions.alibabacloud.com

3. 操作 URI

/openapi/v1/aigc/submitTask

4. リクエストメソッド

POST(application/json)

5. リクエストパラメータ

パラメータ

タイプ

必須

説明

workflow

string

はい

AIGC アルゴリズムの識別子。たとえば、CATVTON は服の交換を指定します。

version

string

はい

AIGC アルゴリズムのバージョン。例: 1.0.0。

algoInput

object

はい

AIGC アルゴリズムの入力。入力はアルゴリズムによって異なります。服の交換の入力の詳細については、次のセクションを参照してください。

6. 服の交換の入力パラメータ

パラメータ

タイプ

必須

説明

modelImage

string

はい

モデル画像。画像アドレスはインターネット経由でアクセスできる必要があります。

  • 5 KB ≤ 画像ファイルサイズ ≤ 5 MB

  • 150 ≤ 画像の幅と高さ ≤ 4,096

  • サポートされている形式: JPG、PNG、JPEG、BMP

garmentImage

string

はい

服の画像。画像アドレスはインターネット経由でアクセスできる必要があります。

  • 5 KB ≤ 画像ファイルサイズ ≤ 5 MB

  • 150 ≤ 画像の幅と高さ ≤ 4,096

  • サポートされている形式: JPG、PNG、JPEG、BMP

category

string

はい

服の交換タイプ。有効な値:

upper: 腰より上の服を交換します。 lower: 腰より下の服を交換します。 overall: 全身の服を交換します

seed

int

はい

有効な値: 0 ~ 2147483647。画像生成プロセス中のランダム性を制御するために使用されるランダムシード。シード値を調整して、画像のスタイルや詳細を変更できます。同じ入力条件とシード値は同じ画像を生成します。

7. レスポンスパラメータ

パラメータ

タイプ

説明

success

boolean

リクエストが成功したかどうかを示します。true: リクエストは成功しました。false: リクエストは失敗しました。

model

string

タスク ID。タスクの結果をクエリするために使用できます。

errorCode

string

エラーコード。リクエストが失敗した場合、エラーコードが返されます。エラーコードとメッセージの詳細については、このトピックの「8. 一般的なエラーメッセージ」セクションの表を参照してください。

errorMsg

string

エラーメッセージ。操作が失敗した場合、エラーメッセージが返されます。

8. 一般的なエラーメッセージ

エラーメッセージ

説明

INTCNN_COMMON_AUTH_CHECK_ERROR

署名検証エラーです。

INTCNN_COMMON_NOT_FOUND

API 操作が存在しません。

INTCNN_COMMON_PARAM_VALID_ERROR

パラメータ検証エラーです。

INTCNN_COMMON_SYS_ERROR

サーバーで不明なエラーが発生しました。

9. リクエスト例

curl --location 'https://industrysolutions.alibabacloud.com/openapi/v1/aigc/submitTask' \
--header 'X-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
    }
}'

10. レスポンス例

{
 "success": true,
 "model": "28fdf560-249a-4712-adcc-906c0346602b",
 "errorCode": null,
 "errorMsg": null
}

11. リクエスト署名

データ改ざんを防ぐため、API 呼び出し側はリクエストに署名する必要があり、サーバーは署名を使用して API 呼び出し側の ID を検証する必要があります。署名を使用することで、開発者と SuperApp Business Application Platform 間のインタラクションのセキュリティが確保されます。

11.1 署名要素

11.1.1. リクエスト URI

リクエスト URL が https://{domainName}/openapi/v1/a/bhttps://{domainName}/openapi/v1/a/b

この場合、リクエスト URI は /openapi/v1/a/b です。

11.1.2. リクエストメソッド

HTTP リクエストメソッド。

11.1.3. リクエストヘッダー

次の表は、リクエストヘッダーのフィールドについて説明しています。フィールドは大文字と小文字が区別されます。

ヘッダー

必須

説明

コード例

X-Request-Sign

はい

このリクエストに対して計算された署名文字列。署名文字列のデフォルトの暗号化方式は HMAC-SHA1 です。

X-Request-Sign: ****

X-Access-Key

はい

API 呼び出し側の ID を表す AccessKey ペア。

X-Access-Key: Alibaba Cloud によって API 呼び出し側に提供された AccessKey ペア。AccessKey ID と AccessKey シークレットを取得するには、SuperApp Business Application Platform の運用エンジニアに連絡してください。

X-Request-Timestamp

はい

リクエストのタイムスタンプ。単位: ミリ秒。

X-Timestamp: timestamp。例: 1740471900061。

11.1.4. リクエスト本文

リクエスト本文は JSON 形式です。リクエスト本文のフィールドは API 操作によって異なります。

11.2 署名方式

  1. 署名対象の文字列を作成してエンコードします。リクエストに次のパラメータを含めます。

    • HTTP_URI: 例: /openapi/v1/a/b

    • X-Access-Key: 例: 46b1cac78ed94ca4b99ad6de550a****

    • X-Request-Timestamp: 例: 1676904384074

    • HTTP_BODY: 次のコードブロックは本文の例を示しています。

{
	"appId": "223232323****",
	"authClientId": "7230000****,
	"grantType": "authorization_code",
	"authCode": "1cc19911172e4f8aaa509c8fb5d1****"
}
  1. 次のフォーマットで {Content_To_Be_Signed} を設定して、署名対象の文字列を作成します: <HTTP_METHOD> <HTTP_URI> <Client-Id>.<Request-Time>.<Access-Key>

POST /openapi/v1/a/b
{
	"appId": "223232323****",
	"authClientId": "7230000****",
	"grantType": "authorization_code",
	"authCode": "1cc19911172e4f8aaa509c8fb5d1****"
}.1676904384074.46b1cac78ed94ca4b99ad6de550afb68
  1. 次のコード例は、HmacSHA1 アルゴリズムを使用して署名対象の文字列の署名を生成する方法を示しています。


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 リクエストの送信

Client-Id、Request-Time、および Signature フィールドをリクエストヘッダーに追加して、次のリクエストを作成します。

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 'Signature: KrwDE9tAPJYBb4cUZU6ALJxGIZgwDXn5UkFPMip09n%2FkYKPhEIII%2Fki2rYY2lPtuKVgMNz%2BtuCU%2FjzRpohDbrOd8zYriiukpGAxBQDIVbatGI7WYOcc9YVQwdCR6ROuRQvr%2FD1AfdhHd6waAASu5Xugow9w1OW7Ti93LTd0tcyEWQYd2S7c3A73sHOJNYl8DC1PjasiBozZ%2FADgb7ONsqHo%2B8fKHsLygX9cuMkQYTGIRBQsvfgICnJhh%2BzXV8AQoecJBTrv6p%xxxx' \
  -d '{
	"appId": "223232323****",
	"authClientId": "7230000****",
	"grantType": "authorization_code",
	"authCode": "1cc19911172e4f8aaa509c8fb5d1****"
}'