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

Alibaba Cloud Model Studio:画像編集 - Wan 2.1

最終更新日:Nov 27, 2025

Wan 汎用画像編集モデルは、テキストプロンプトに基づいて画像を編集し、アウトペインティング、ウォーターマーク除去、スタイル転送、命令ベースの編集、局所インペインティング、画像修復などのタスクを実行します。

重要

このドキュメントは 中国 (北京) リージョンにのみ適用されます。モデルを使用するには、中国 (北京) リージョンの API キー を使用する必要があります。

モデル概要

パフォーマンスショーケース

image

元の画像

image

髪を赤色に変更

35779519-bfc3-4b0a-a594-d764fe9a46d83005601501

サングラスを追加

image

フランスの絵本スタイルに変換

その他の例については、「主な機能」をご参照ください。

モデルと料金

北京リージョン

重要

北京リージョンでは無料クォータは提供されません。すべての呼び出しが課金対象となります。続行する前にご確認ください。

モデル

単価

レート制限 (Alibaba Cloud アカウントと RAM ユーザーで共有)

タスク送信の RPS 制限

同時タスク数

wanx2.1-imageedit

$0.020070/イメージ

2

2

クイックスタート

前提条件

開始する前に、API キーを取得して設定し、環境変数として設定します。DashScope SDK を使用して呼び出しを行う場合は、SDK をインストールする必要もあります。

サンプルコード

このセクションでは、汎用画像編集 API を呼び出して局所インペインティングタスクを実行する方法を示します。

SDK は非同期処理ロジックをカプセル化しています。インターフェイスは同期呼び出しのように動作し、1 つのリクエストで最終結果を待ちます。curl の例では、タスクの送信と結果のクエリという 2 つの個別の非同期 API 操作を示しています。

Python

この例では、パブリック URL、Base64 エンコーディング、ローカルファイルパスの 3 つの画像入力方法をサポートしています。

リクエストの例

import base64
import os
from http import HTTPStatus
from dashscope import ImageSynthesis
import mimetypes

"""
環境要件:
    dashscope python SDK >= 1.23.8
SDK のインストール/アップグレード:
    pip install -U dashscope
"""

# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")


# --- ヘルパー関数: Base64 エンコーディング用 ---
# フォーマット: data:{MIME_type};base64,{base64_data}
def encode_file(file_path):
    mime_type, _ = mimetypes.guess_type(file_path)
    if not mime_type or not mime_type.startswith("image/"):
        raise ValueError("サポートされていない、または認識できない画像フォーマットです")
    with open(file_path, "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read()).decode('utf-8')
    return f"data:{mime_type};base64,{encoded_string}"

"""
画像入力方法の説明:
以下の 3 つの画像入力方法が提供されています。いずれか 1 つを選択できます。

1. パブリック URL を使用 - 公開されている画像に適しています。
2. ローカルファイルを使用 - ローカルでの開発やテストに適しています。
3. Base64 エンコーディングを使用 - 非公開の画像や暗号化された転送が必要なシナリオに適しています。
"""

# [方法1] パブリックイメージ URL を使用
mask_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
base_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg"

# [方法2] ローカルファイルを使用 (絶対パスと相対パスをサポート)
# フォーマット要件: file:// + ファイルパス
# 例 (絶対パス):
# mask_image_url = "file://" + "/path/to/your/mask_image.png"     # Linux/macOS
# base_image_url = "file://" + "C:/path/to/your/base_image.jpeg"  # Windows
# 例 (相対パス):
# mask_image_url = "file://" + "./mask_image.png"                 # 実際のパスによります
# base_image_url = "file://" + "./base_image.jpeg"                # 実際のパスによります

# [方法3] Base64 エンコードされた画像を使用
# mask_image_url = encode_file("./mask_image.png")               # 実際のパスによります
# base_image_url = encode_file("./base_image.jpeg")              # 実際のパスによります


def sample_sync_call_imageedit():
    print('please wait...')
    rsp = ImageSynthesis.call(api_key=api_key,
                              model="wanx2.1-imageedit",
                              function="description_edit_with_mask",
                              prompt="A ceramic rabbit holding a ceramic flower",
                              mask_image_url=mask_image_url,
                              base_image_url=base_image_url,
                              n=1)
    assert rsp.status_code == HTTPStatus.OK

    print('response: %s' % rsp)
    if rsp.status_code == HTTPStatus.OK:
        for result in rsp.output.results:
            print("---------------------------")
            print(result.url)
    else:
        print('sync_call Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))


if __name__ == '__main__':
    sample_sync_call_imageedit()

レスポンスの例

URL の有効期間は 24 時間です。速やかに画像をダウンロードしてください。
{
    "status_code": 200,
    "request_id": "dc41682c-4e4a-9010-bc6f-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "6e319d88-a07a-420c-9493-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
            }
        ],
        "submit_time": "2025-05-26 14:58:27.320",
        "scheduled_time": "2025-05-26 14:58:27.339",
        "end_time": "2025-05-26 14:58:39.170",
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

Java

この例では、パブリック URL、Base64 エンコーディング、ローカルファイルパスの 3 つの画像入力方法をサポートしています。

リクエストの例

// Copyright (c) Alibaba, Inc. and its affiliates.

import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;

/**
 * 環境要件
 *      dashscope java SDK >=2.20.9
 * Maven 依存関係の更新:
 *      https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
 */
 
public class ImageEditSync {

    // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: apiKey="sk-xxx"
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    /**
     * 画像入力方法の説明: 3つのメソッドから1つを選択
     *
     * 1. パブリック URL を使用 - 公開されている画像に適しています。
     * 2. ローカルファイルを使用 - ローカルでの開発やテストに適しています。
     * 3. Base64 エンコーディングを使用 - 非公開の画像や暗号化された転送が必要なシナリオに適しています。
     */

    //[方法1] パブリック URL
    static String maskImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png";
    static String baseImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg";

    //[方法2] ローカルファイルパス (file://+絶対パス または file:///+絶対パス)
    // static String maskImageUrl = "file://" + "/your/path/to/mask_image.png";    // Linux/macOS
    // static String baseImageUrl = "file:///" + "C:/your/path/to/base_image.png";  // Windows

    //[方法3] Base64 エンコーディング
    // static String maskImageUrl = encodeFile("/your/path/to/mask_image.png");
    // static String baseImageUrl = encodeFile("/your/path/to/base_image.png");


    public static void syncCall() {
        // parameters パラメーターを設定
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("prompt_extend", true);

        ImageSynthesisParam param =
                ImageSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wanx2.1-imageedit")
                        .function(ImageSynthesis.ImageEditFunction.DESCRIPTION_EDIT_WITH_MASK)
                        .prompt("A ceramic rabbit holding a ceramic flower")
                        .maskImageUrl(maskImageUrl)
                        .baseImageUrl(baseImageUrl)
                        .n(1)
                        .size("1024*1024")
                        .parameters(parameters)
                        .build();

        ImageSynthesis imageSynthesis = new ImageSynthesis();
        ImageSynthesisResult result = null;
        try {
            System.out.println("---sync call, please wait a moment----");
            result = imageSynthesis.call(param);
        } catch (ApiException | NoApiKeyException e){
            throw new RuntimeException(e.getMessage());
        }
        System.out.println(JsonUtils.toJson(result));
    }

    /**
     * ファイルを Base64 文字列にエンコードする
     * @param filePath ファイルパス
     * @return data:{MIME_type};base64,{base64_data} 形式の Base64 文字列
     */
    public static String encodeFile(String filePath) {
        Path path = Paths.get(filePath);
        if (!Files.exists(path)) {
            throw new IllegalArgumentException("File does not exist: " + filePath);
        }
        // MIME タイプを検出
        String mimeType = null;
        try {
            mimeType = Files.probeContentType(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Cannot detect the file type: " + filePath);
        }
        if (mimeType == null || !mimeType.startsWith("image/")) {
            throw new IllegalArgumentException("Unsupported or unrecognizable image format");
        }
        // ファイルの内容を読み込んでエンコード
        byte[] fileBytes = null;
        try{
            fileBytes = Files.readAllBytes(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Cannot read the file content: " + filePath);
        }

        String encodedString = Base64.getEncoder().encodeToString(fileBytes);
        return "data:" + mimeType + ";base64," + encodedString;
    }

    public static void main(String[] args) {
        syncCall();
    }
}

レスポンスの例

URL の有効期間は 24 時間です。速やかに画像をダウンロードしてください。
{
    "request_id": "bf6c6361-f0fc-949c-9d60-xxxxxx",
    "output": {
        "task_id": "958db858-153b-4c81-b243-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

curl

この例では、タスクの作成、ステータスのポーリング、結果の取得と保存という全プロセスをカバーしています。

説明
  • 非同期呼び出しの場合、X-DashScope-Async ヘッダーを enable に設定します。

  • 非同期タスクの task_id の有効期間は 24 時間です。有効期限が切れると、タスクのステータスは UNKNOWN に変わります。

ステップ 1:タスクの作成

このリクエストはタスク ID (task_id) を返します。

リクエストの例

curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "description_edit_with_mask",
    "prompt": "A ceramic rabbit holding a ceramic flower.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg",
    "mask_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
  },
  "parameters": {
    "n": 1
  }
}'

レスポンスの例

{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

ステップ 2:タスク ID で結果をクエリ

前のステップで取得した task_id を使用して、task_status の値が SUCCEEDED または FAILED になるまでタスクのステータスをポーリングします。

リクエストの例

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"

レスポンスの例

URL の有効期間は 24 時間です。速やかに画像をダウンロードしてください。
{
    "request_id": "eeef0935-02e9-9742-bb55-xxxxxx",
    "output": {
        "task_id": "a425c46f-dc0a-400f-879e-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-02-21 17:56:31.786",
        "scheduled_time": "2025-02-21 17:56:31.821",
        "end_time": "2025-02-21 17:56:42.530",
        "results": [
            {
                "url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/aaa.png"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

主な機能

汎用画像編集 API は、function パラメーターを使用して、さまざまな画像編集機能を指定します。すべての機能は、「クイックスタート」セクションで説明されている手順に従います。

以下のセクションでは、curl 呼び出しを例として使用します。各機能に固有の inputparameters の JSON スニペットのみをリストし、必要なリクエストボディの構成を示します。

注意:完全な curl リクエストには、model、input、parameters などのトップレベルフィールドを含める必要があります。構造の詳細については、「汎用画像編集 API リファレンス」をご参照ください。

グローバルスタイル化

指定された芸術的スタイルを画像全体に適用します。シナリオには、絵本の作成や、特定のビジュアルスタイルに合わせた背景やコンセプト画像などのソーシャルメディアコンテンツの生成が含まれます。

  • 使用方法function パラメーターを stylization_all に設定します。

  • サポートされているスタイル

    • フランスの絵本スタイル

    • 金箔アートスタイル

  • 関連パラメーターparameters.strength (0.0 から 1.0、デフォルト:0.5) は、変更のレベルを制御します。値が小さいほど、元の画像に近い結果になります。

  • プロンプトのヒント:「xx スタイルに変換」という形式を使用します。例:「フランスの絵本スタイルに変換」。

リクエストの例

{
  "input": {
    "function": "stylization_all",
    "prompt": "Convert to French picture book style",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/stylization_all_3.png"
  },
  "parameters": {
    "strength": 0.5
  }
}

入力画像

出力画像

プロンプト:フランスの絵本スタイルに変換

プロンプト:金箔アートスタイルに変換

image

image

image

image

image

image

strength で画像の変更度合いを制御

オプションの parameters.strength パラメーターを使用して、画像の変更レベルを制御します。値の範囲は 0.0 から 1.0 で、デフォルトは 0.5 です。0 に近い値ほど元の画像に似た結果になり、1 に近い値ほど変更の度合いが大きくなります。

入力プロンプト:フランスの絵本スタイルに変換。

入力画像

出力画像

strength=0.0 (最小値)

strength=0.5 (デフォルト値)

strength=1.0 (最大値)

image

image

image

image

局所スタイル化

画像の特定の領域にのみスタイル転送を適用します。シナリオには、キャラクターの服装をスタイル化するなどのパーソナライズされたカスタマイズや、製品をハイライトするための広告デザインが含まれます。

  • 使用方法function パラメーターを stylization_local に設定します。

  • サポートされているスタイル:サポートされているスタイルとそれに対応する値は次のとおりです:

    • 氷の彫刻:ice

    • クラウド: cloud

    • 中国の祭りの提灯

    • 木の板

    • 青と白の磁器:blue and white porcelain

    • ふわふわ:fluffy

    • 毛糸:weaving

    • 風船:balloon

  • プロンプトのヒント:「xx を xx スタイルに変更」という形式を使用します。例:「家を木製スタイルに変更」。

リクエストの例

{
  "input": {
    "function": "stylization_local",
    "prompt": "Change the house to wooden style",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/stylization_local_1.png"
  }
}

入力画像

出力画像

image

image

氷の彫刻

image

image

中国の祭りの提灯

image

image

青と白の磁器

image

ふわふわ

image毛糸

image

風船

命令ベースの編集

領域を指定せずに、テキスト命令のみで画像コンテンツを追加または変更します。シナリオには、キャラクターにアクセサリーを追加したり、髪の色を変更したりするなど、正確な位置決めを必要としない簡単な編集が含まれます。

  • 使用方法function パラメーターを description_edit に設定します。

  • 関連パラメーターparameters.strength (0.0 から 1.0、デフォルト:0.5) は、変更のレベルを制御します。値が小さいほど、元の画像に近い結果になります。

  • プロンプトのヒント:「追加」や「変更」などの操作の説明を明示的に含めます。削除操作には、「局所インペインティング」を使用してください。

リクエストの例

{
  "input": {
    "function": "description_edit",
    "prompt": "Add a pair of sunglasses to the kitten",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_1.png"
  },
  "parameters": {
    "strength": 0.5
  }
}

機能

入力画像

出力画像

要素の追加

image

image

子猫にサングラスを追加する。

要素の変更

image

image

彼女の髪を赤色に変更する。

strength で画像の変更度合いを制御

オプションの parameters.strength パラメーターを使用して、画像の変更レベルを制御します。値の範囲は 0.0 から 1.0 で、デフォルトは 0.5 です。0 に近い値ほど元の画像に似た結果になり、1 に近い値ほど変更の度合いが大きくなります。

入力プロンプト:彼女の服をカラフルなプリントのビーチシャツに変更する。

入力画像

出力画像

strength=0.0 (最小値)

strength=0.5 (デフォルト値)

strength=1.0 (最大値)

image

image

image

image

局所インペインティング

マスク画像を提供することで、指定された領域のコンテンツを追加、変更、または削除します。シナリオには、服の変更、オブジェクトの置き換え、邪魔な要素の除去など、正確な制御が必要な編集が含まれます。

  • 使用方法function パラメーターを description_edit_with_mask に設定します。

  • マスクの要件mask_image_url を提供します。マスク画像の白い領域は編集対象領域を示し、黒い領域は保持対象領域を示します。

  • プロンプトのヒント:「追加」、「変更」などの操作の説明を明示的に含め、削除後に期待されるコンテンツを記述します。

    • 追加/変更:操作を記述する (「子犬に帽子を追加する」) か、最終結果を記述する (「帽子をかぶった子犬」) ことができます。

    • 削除:削除するオブジェクトが小さい場合、prompt を空 ("") にすることができます。オブジェクトが大きい場合、prompt には、「熊を削除する」ではなく、削除後に表示されるべき背景コンテンツ (「テーブルの上の透明なガラスの花瓶」など) を記述する必要があります。

リクエストの例

{
  "input": {
    "function": "description_edit_with_mask",
    "prompt": "A ceramic rabbit holding a ceramic flower",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_1.jpeg",
    "mask_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_1_mask.png"
  }
}

機能

入力画像

入力マスク画像

(白は編集対象領域)

出力画像

要素の追加

image

image

image

子犬に帽子を追加する。

プロンプトを「帽子をかぶった子犬」のように記述して、期待される画像コンテンツを説明することもできます。

要素の変更

image

image

image

セラミックの花を持つセラミックのウサギ。

プロンプトを「セラミックのウサギが持っているニンジンをセラミックの花に置き換える」のように記述して、操作を説明することもできます。

要素の削除

image

image

image

テーブルの上の透明なガラスの花瓶。

プロンプトには削除後のコンテンツを記述する必要があります。「茶色の熊を削除する」のように記述しないでください。

テキストとウォーターマークの除去

説明

法的リスクに関する警告

この機能を使用して著作権で保護された画像を処理すること (他ブランドのウォーターマークの除去など) は、著作権侵害にあたる可能性があります。処理後の画像を使用する法的権利があることを確認し、関連するすべての法的責任を負うものとします。

画像から中国語と英語の文字や一般的なウォーターマークを除去します。シナリオには、素材の再処理や広告画像のクリーンアップが含まれます。

  • 使用方法function パラメーターを remove_watermark に設定します。

  • プロンプトのヒント:「画像内のテキストを除去」などの一般的な指示を使用するか、「英語のテキストを除去」などのタイプを指定できます。

リクエストの例

{
  "input": {
    "function": "remove_watermark",
    "prompt": "Remove the text in the image",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/remove_watermark_1.png"
  }
}

入力画像

出力画像 (画像内のテキストを除去)

image

image

image

image

アウトペインティング

キャンバスを上下左右に比例して拡張し、コンテンツをインテリジェントに塗りつぶします。シナリオには、構図の調整や、さまざまなメディアサイズに合わせて縦長の画像を横長に拡張することが含まれます。

  • 使用方法function パラメーターを expand に設定します。

  • 関連パラメーターparameters 内の top_scalebottom_scaleleft_scaleright_scale パラメーターは、それぞれ上、下、左、右方向の拡張率を制御します。例えば、すべてのスケールパラメーターを 1.5 に設定すると、画像はすべての方向に元のサイズの 1.5 倍に拡張されます。

  • プロンプトのヒント:拡張後に期待される完全なシーンを記述します。

リクエストの例

{
  "input": {
    "function": "expand",
    "prompt": "A family on the lawn in a park",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/expand_1.jpeg"
  },
  "parameters": {
    "top_scale": 1.5,
    "bottom_scale": 1.5,
    "left_scale": 1.5,
    "right_scale": 1.5
  }
}

入力画像

出力画像

image

image

画像超解像

画像の鮮明度を向上させ、低解像度またはぼやけた画像を強調するためのアップスケーリングをサポートします。シナリオには、古い写真の復元や、高解像度の印刷または表示要件を満たすための素材の解像度の向上が含まれます。

  • 使用方法function パラメーターを super_resolution に設定します。

  • 関連パラメーターparameters.upscale_factor (1 から 4、デフォルト:1) は、アップスケーリング係数を制御します。値が 1 の場合、アップスケーリングせずに鮮明度のみが向上します。

  • プロンプトのヒント:「画像超解像」を使用するか、画像の内容を記述できます。

リクエストの例

{
  "input": {
    "function": "super_resolution",
    "prompt": "Image super resolution",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/super_resolution_1.jpeg"
  },
  "parameters": {
    "upscale_factor": 2
  }
}

入力画像 (ぼやけた画像)

出力画像 (鮮明な画像)

image

image

画像のカラー化

白黒またはグレースケールの画像をカラー画像に変換します。一般的なユースケースには、歴史的な写真のカラー化や線画への色付けが含まれます。

  • 使用方法function パラメーターを colorization に設定します。

  • プロンプトのヒント:プロンプトを空にしてモデルに自動で色付けさせるか、「青い背景、黄色い葉」のようにプロンプトで主要な要素の色を指定できます。

リクエストの例

{
  "input": {
    "function": "colorization",
    "prompt": "blue background, yellow leaves",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/colorization_1.jpeg"
  }
}

入力画像

出力画像

image

image

線画から画像へ (落書きから画像へをサポート)

この機能は、入力画像の輪郭 (線画) とプロンプトに基づいて新しい画像を生成します。一般的なアプリケーションには、建築コンセプトデザイン、イラストデザイン、落書きから画像への生成が含まれます。

  • 使用方法function パラメーターを doodle に設定します。

  • 関連パラメーターparameters.is_sketch パラメーターは、画像生成結果を制御します。

    • false (デフォルト):入力は RGB 画像です。モデルはまず線画を抽出し、次に画像を生成します (RGB 画像 → 線画 → 新しい画像)。

    • true:入力は落書きや線画などの RGB 画像です。モデルはこの入力に基づいて直接画像を生成します (RGB 画像 → 新しい画像)。

  • プロンプトのヒント:希望する画像の内容を記述します。説明が具体的であるほど、生成される結果は良くなります。

リクエスト例 1:線画から画像へ

{
  "input": {
    "function": "doodle",
    "prompt": "A living room in a minimalist Nordic style.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/doodle_1.png"
  },
  "parameters": {
    "is_sketch": false
  }
}

リクエスト例 2:落書きから画像へ

{
  "input": {
    "function": "doodle",
    "prompt": "A tree, in a two-dimensional anime style",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/doodle_2.png"
  },
  "parameters": {
    "is_sketch": true
  }
}

機能

入力画像

出力画像

線画から画像へ

(is_sketch=false)

image

image

ミニマリストな北欧スタイルのリビングルーム。

落書きから画像へ

(is_sketch=true)

image

image

二次元アニメスタイルの木。

参照カートゥーンキャラクターに基づいた画像生成

説明

法的リスクに関する警告

この機能を使用して著作権で保護されたカートゥーンキャラクターを処理することは、著作権侵害にあたる可能性があります。参照するキャラクターを使用する法的権利を持っているか、独自のオリジナルキャラクターを使用する必要があります。また、関連するすべての法的責任を負うものとします。

  • 使用方法function パラメーターを control_cartoon_feature に設定します。

  • プロンプトのヒント:「カートゥーンキャラクターが...」という形式を使用し、キャラクターの行動や環境を詳細に記述します。

リクエスト例 2:落書きから画像へ

{
  "input": {
    "function": "control_cartoon_feature",
    "prompt": "The cartoon character cautiously peeks out, peering at a brilliant blue gem in the room",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/control_cartoon_feature_1.png"
  }
}

入力画像

出力画像

image

image

本番運用

ベストプラクティス

  • 非同期ポーリング:非同期タスクの結果をポーリングする際は、合理的なポーリングポリシーを使用してください。例えば、最初の 30 秒間は 3 秒ごとにポーリングし、その後は間隔を長くします。これにより、頻繁なリクエストによるレート制限のトリガーを回避できます。

  • パラメーターチューニングstrength など、結果に影響を与える主要なパラメーターについては、本番運用前に小規模なテストを実施して、シナリオに最適な値を決定できます。

  • 画像ストレージ:API が返す画像 URL の有効期間は 24 時間です。生成された画像を速やかにダウンロードし、Alibaba Cloud OSS などの独自の永続ストレージサービスに転送する必要があります。

リスク防止

  • エラーハンドリング:タスククエリ結果の task_status を確認してください。ステータスが FAILED の場合は、トラブルシューティングのために codemessage を記録します。システムタイムアウトなどの一時的なエラーに対しては、リトライロジックを実装できます。

  • コンテンツ審査:API はすべての入力および出力コンテンツに対してセキュリティレビューを実行します。コンテンツが非準拠の場合、API は DataInspectionFailed エラーを返します。

API リファレンス

Wan 汎用画像編集モデルの入力およびレスポンスパラメーターの詳細については、「汎用画像編集 API リファレンス」をご参照ください。

課金とレート制限

  • モデルの無料クォータと単価については、「モデルと料金」をご参照ください。

  • モデルのレート制限については、「Wan」をご参照ください。

  • 課金の詳細:

    • 正常に生成された動画の秒単位の期間に基づいて課金されます。API が返す task_statusSUCCEEDED の場合にのみ課金されます。

    • 失敗したモデル呼び出しや処理エラーでは、料金は発生せず、無料クォータも消費されません。

エラーコード

呼び出しが失敗した場合は、「エラーメッセージ」でトラブルシューティングを行ってください。

よくある質問

Q:タスクが失敗 (FAILED) するのはなぜですか?

A:タスクが失敗する一般的な理由は次のとおりです:

  1. コンテンツ審査の失敗:入力または生成された画像コンテンツがセキュリティポリシーに抵触しました。

  2. パラメーターエラー:リクエスト内のパラメーターが無効です。例えば、function 名が間違っている、またはアクセスできない URL などです。

  3. 内部モデルエラー:モデルが処理中に予期しない問題に遭遇しました。タスククエリのレスポンスにある codeerror フィールドを確認して、特定のエラーコードとメッセージを取得し、トラブルシューティングを行うことができます。