Skip to main content

汎用画像編集 - Wan2.1

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 つの個別の非同期操作を示しています。
  • Python
  • Java
  • curl
パブリック URL、Base64 エンコーディング、ローカルファイルパスの 3 つの入力メソッドをサポートしています。

リクエスト例

import base64
import os
import mimetypes
import dashscope
from dashscope.v2 import DashScopeError

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

# 以下の設定は中国 (北京) リージョン用です。呼び出し時に {WorkspaceId} を実際のワークスペース ID に置き換えてください。region の値はリージョンによって異なります。
client = dashscope.Client(
    # 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
    # API キーはリージョンによって異なります。API キーの取得: https://www.alibabacloud.com/help/ja/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    workspace="{WorkspaceId}",
    region="cn-beijing",
)

# --- ヘルパー関数: 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...')
    try:
        # generate はワンステップ呼び出し(タスクを送信して完了まで待機)で、完了済みの Job を返します
        job = client.images.generate(
            model="wanx2.1-imageedit",
            function="description_edit_with_mask",
            prompt="A ceramic rabbit holding a ceramic flower",
            # mask_image_url/base_image_url は編集専用の入力フィールドであり、extra_input 経由でリクエストの input セクションに渡します
            extra_input={
                "mask_image_url": mask_image_url,
                "base_image_url": base_image_url,
            },
            n=1,
        )
        print('response: %s' % job)
        for url in job.image_urls:
            print("---------------------------")
            print(url)
    except DashScopeError as e:
        print(f"HTTP status code: {e.status_code}")
        print(f"Error code: {e.code}")
        print(f"Error message: {e.message}")
        print("See the documentation: https://www.alibabacloud.com/help/ja/model-studio/developer-reference/error-code")

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
    }
}

主な機能

function パラメーターを使用して編集機能を指定します。すべての機能は、クイックスタート と同じ呼び出しメソッドに従います。 以下のセクションでは、機能固有の input および parameters JSON を使用した curl の例を示します。
注意: 完全な curl リクエストには、model、input、parameters などのトップレベルのフィールドを含める必要があります。構造の詳細については、「汎用画像編集 API リファレンス」をご参照ください。

グローバルなスタイル化

画像全体に芸術的なスタイルを適用します。ユースケース:絵本の作成、ソーシャルメディアの背景、特定のスタイルに合わせたコンセプト画像など。
  • function を stylization_all に設定します。
  • サポートされているスタイル:
    • フランスの絵本スタイル
    • 金箔アートスタイル
  • parameters.strength (0.0–1.0、デフォルト: 0.5) は、変更の強度を制御します。値が低いほど、元の画像が多く保持されます。
  • プロンプトの形式: 「[スタイル] に変換」 (例:「フランスの絵本スタイルに変換」)。

リクエスト例

{
  "input": {
    "function": "stylization_all",
    "prompt": "フランスの絵本スタイルに変換",
    "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
    • クラウド:クラウド
    • 中国の祝祭提灯: chinese festive lantern
    • 板: 木製
    • 青と白の磁器: blue and white porcelain
    • ふわふわ: fluffy
    • 糸: weaving
    • 風船: balloon
  • プロンプトの形式: 「[オブジェクト] を [スタイル] に変更」 (例:「家を木製スタイルに変更」)。

リクエスト例

{
  "input": {
    "function": "stylization_local",
    "prompt": "家を木製スタイルに変更",
    "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": "子猫にサングラスを追加する",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_1.jpeg"
  },
  "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 を空のままにします。大きなオブジェクトの場合は、削除アクション自体ではなく、削除後に希望する背景を記述します。

リクエスト例

{
  "input": {
    "function": "description_edit_with_mask",
    "prompt": "セラミックのウサギがセラミックの花を持っている",
    "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": "画像内のテキストを除去",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/remove_watermark_1.png"
  }
}

入力画像

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

image

image

image

image

アウトペインティング

画像を全方向に比例的に拡張し、コンテンツをインテリジェントに塗りつぶします。ユースケース:構図の調整や、異なるメディア向けの縦横比の変換など。
  • function を expand に設定します。
  • 関連パラメーター: top_scale、bottom_scale、left_scale、right_scale は、方向ごとの拡張率を制御します (例: 1.5 = 1.5 倍のサイズ)。
  • プロンプトのヒント: 拡張後に表示されると期待する完全なシーンを記述します。

リクエスト例

{
  "input": {
    "function": "expand",
    "prompt": "公園の芝生にいる家族",
    "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

画像超解像

画像の鮮明度を向上させ、低解像度またはぼやけた画像のアップスケーリングをサポートします。ユースケース:古い写真の復元や、HD 印刷/表示用の解像度の向上など。
  • function を super_resolution に設定します。
  • parameters.upscale_factor (1–4、デフォルト: 1) は、アップスケーリングを制御します。値 1 は、拡大せずに鮮明度のみを向上させます。
  • プロンプトのヒント: 「画像超解像」を使用するか、画像の内容を記述します。

リクエスト例

{
  "input": {
    "function": "super_resolution",
    "prompt": "画像超解像",
    "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": "青い背景、黄色い葉",
    "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 → 画像)。
  • プロンプト: 期待されるコンテンツを記述します。詳細が多いほど、より良い結果が得られます。
{
  "input": {
    "function": "doodle",
    "prompt": "ミニマリストな北欧スタイルのリビングルーム。",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/doodle_1.png"
  },
  "parameters": {
    "is_sketch": false
  }
}

リクエスト例 2: 落書きベースの描画

{
  "input": {
    "function": "doodle",
    "prompt": "二次元アニメスタイルの木",
    "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": "カートゥーンキャラクターが慎重に顔を出し、部屋の中の輝く青い宝石を覗き込んでいる",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/control_cartoon_feature_1.png"
  }
}

入力画像

出力画像

image

image

本番環境に適用

ベストプラクティス

  • 非同期ポーリング: レート制限を回避するために、段階的なポーリング間隔 (例: 30 秒間は 3 秒ごと、その後は間隔を長くする) を使用します。
  • パラメーターチューニング: 本番環境に適用する前に、strength などの主要なパラメーターを小規模な試行でテストし、最適な値を見つけます。
  • 画像ストレージ: API が返す URL は 24 時間後に有効期限が切れます。画像をダウンロードし、速やかに永続ストレージ (例: OSS) に転送します。

リスク防止

  • エラーハンドリング: クエリ結果の task_status を確認します。FAILED の場合は、トラブルシューティングのために code と message を記録します。一時的なエラー (例: タイムアウト) は、リトライで成功する場合があります。
  • コンテンツモデレーション: API は、すべての入出力をコンプライアンスのためにレビューします。非準拠のコンテンツは DataInspectionFailed を返します。

API リファレンス

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

課金とレート制限

  • モデルの無料クォータと料金については、「Wan 画像編集 2.1」をご参照ください。
  • モデルのレート制限については、「Wan」をご参照ください。
  • 課金の詳細:
    • 課金は正常に生成された画像の数ごとに行われます。料金は task_status が SUCCEEDED の場合にのみ適用されます。
    • 失敗した呼び出しは料金が発生せず、新規ユーザー向けの無料クォータも消費しません。

エラーコード

モデルの呼び出しが失敗し、エラーメッセージが返された場合は、「エラーメッセージ」で解決策をご参照ください。

よくある質問

Q: タスクが失敗 (FAILED) するのはなぜですか? A: タスク失敗の一般的な理由は次のとおりです:
  1. コンテンツモデレーションの失敗: 入力または出力がセキュリティポリシーをトリガーしました。
  2. パラメーターエラー: 無効なリクエストパラメーター (例: 不正な function 名やアクセスできない URL)。
  3. 内部モデルエラー: 予期しない処理の問題。トラブルシューティングの詳細については、クエリレスポンスの code および error フィールドを確認してください。