写真の光、背景、服装、文字など、1つの要素だけをコードから変更したい。その際、指示を拒否したり、黙って弱めたりしない編集モデルを使いたいはずです。このガイドでは、呼び出す編集エンドポイントの選び方、料金、受け付ける入力、PlaygroundからコードやAgentへ進む方法、失敗時の対処を説明します。
結論から: 画像から画像への変換は、モデルIDが/editで終わるエンドポイントのタスクです。プロンプトと元画像を送り、編集済みファイルを受け取ります。写真1枚と指示1つなら、Qwen Image Edit Spicyから始めてください。1回$0.038、入力元は1枚、マスクも強度調整もありません。複数画像を組み合わせるならQwen Image 3.0、Seedream 5.0 Pro、Wan 2.7を使います。マスクにはQwen Image 2.1かFLUX.1 Dev LoRAを選びます。strengthがあるのはFLUX.1 Dev LoRAとZ-Image Turbo LoRAだけです。
以下の料金と制限は現在のカタログとドキュメントに基づき、各料金は無料の見積もりで確認しています。
編集エンドポイントにおける「検閲なし」の意味
「検閲なし」は、コンテンツフィルターがないと表明するモデルのカタログ上の区分です。SpicyAPIはプラットフォーム側のコンテンツスキャンを追加せず、何が出力されるかはモデルが決めます。すべての指示を実行するという約束ではありません。次の2つの結果を想定してください。
- 拒否の場合、タスクは
failedで終了し、errorCode: "content_rejected"が返ります。残高の確保額は全額解放されます。 - 弱められた結果は、要求より穏やかな完成画像です。タスクは成功扱いなので課金され、応答内にその印はありません。画像を見なければ気づけません。
全モデル共通の制限もあります。どの作風でも未成年者を性的に描写すること、本人の記録された同意なしに識別可能な実在人物を親密または性的に描写すること(顔の交換や容姿の移植を含む)、なりすまし、運用地域で違法な行為は禁止です。編集では元画像が実際の写真であることが多く、2つ目の制限に抵触しやすくなります。利用許容ポリシーでは、公開写真、有名人であること、過去の交際関係は同意ではないとしています。年齢が曖昧な素材には未成年者の規則が適用され、処理する権利のない私的素材をアップロードしてはいけません。
SpicyAPIはリクエストごとの審査を行いません。自社ユーザーが写真をアップロードする場合、年齢確認、アップロード時の同意証明をタスクIDとともに保存すること、被写体の年齢が不明な入力の拒否、同意記録のない識別可能な実在人物の編集を防ぐこと、ユーザーの通報手段の提供は運営者の責任です。これは法律上の助言ではありません。
サービスは中国本土、ロシア、ベラルーシ、キューバ、イラン、北朝鮮、シリアでは利用できません。利用規約により、英国、香港、マカオ、サウジアラビア、アラブ首長国連邦、カタール、クウェート、バーレーン、オマーン、パキスタン、バングラデシュ、アフガニスタン、インドネシア、マレーシア、ブルネイでも利用できません。コンテンツと利用のポリシーには、対象が増える可能性も記載されています。顔や頭の交換は専用の手順を持つ別エンドポイントで、AI顔交換APIのワークフローで説明しています。
編集エンドポイントを選ぶ
エンドポイントによって、入力元の数、追加設定、出力の形が異なります。
| エンドポイント | 入力元 | プロンプト以外の設定 | 出力の形 | 画像あたりの料金 |
|---|---|---|---|---|
Qwen Image Edit Spicy alibaba/qwen-image-spicy-edit/edit | 必ず1枚(image_url) | seed | サイズ項目なし | $0.038 |
Qwen Image 2 alibaba/qwen-image-2/edit | 必ず1枚、プロンプトは最大800文字 | aspect_ratio, seed | aspect_ratioで指定、既定は1:1。元画像には従わない | $0.035 |
Qwen Image 3.0 alibaba/qwen-image-3.0/edit | 1〜3枚 | negative_prompt, aspect_ratio, resolution(1kまたは2k), enable_prompt_expansion(既定で有効), seed | aspect_ratioで指定、既定は1:1 | 1枚で$0.033、3枚で$0.039 |
Seedream 5.0 Pro bytedance/seedream-5.0-pro/edit | 1〜10枚 | aspect_ratio, resolution, output_format。シードなし | auto(既定)が最初の元画像に最も近い比率を選ぶ | 1kで$0.036、2k(既定)で$0.072。追加の元画像ごとに+$0.003 |
Wan 2.7 alibaba/wan-2.7/edit | 1〜9枚 | bounding_boxes(画像あたり最大2), color_palette, resolution(1kと2kは同額), num_outputs(1〜4), seed | aspect_ratioを指定しなければ最後の元画像に従う | 出力あたり$0.03(4出力で$0.12)。入力元1〜9枚で同額 |
Qwen Image 2.1 alibaba/qwen-image-2.1/edit | 1〜10枚。マスクは必ず1枚の場合のみ | mask_url(PNG、JPEG、WebP。元画像1枚のみ), resolution, aspect_ratio, enable_prompt_expansion(既定で有効), seed | aspect_ratio、既定は1:1 | 1k・入力元1枚で$0.036、追加の元画像ごとに+$0.012。2kは一律$0.048、1.5kは$0.072 |
FLUX.1 Dev LoRA black-forest-labs/flux-1-dev-lora/edit | 必ず1枚 | mask_url, strength, steps, guidance_scale、最大3つのLoRA、seed | 元画像の形を維持 | $0.018 |
料金は画像1枚を生成するリクエストの見積額です。Seedream 5.0 Proは既定の2kが1kの2倍の料金で、Qwen Image 3.0は元画像ごとに追加料金が発生します。Qwen Image 2.1の各段階は順に高くなるわけではありません。1.5kの見積額は2kより高く、2kは入力元の数によらず一律です。予算を決める前に、正確なリクエスト本文で見積もってください。
カタログにはSeedream 5.0 Flash、Qwen Image 3.0 Pro、Wan 2.7 Proなど、ほかにも検閲なしの編集モデルがあります。GPT Image 2と2.5、Nano Bananaの編集エンドポイントはFiltered区分なので、検閲なしの結果が目的なら適しません。
写真1枚、変更1つ。 Qwen Image Edit Spicyを使います。リクエスト全体はimage_url、prompt、任意のseedだけです。指示が唯一の制御なので、何を維持するかを述べる文が、そのまま保持設定になります。レビューでは一般的な編集に約21秒としています。Qwen Image 2も同じ考え方で少し安く、入力元は1枚、プロンプトは最大800文字です。
複数の入力元を使う編集。 ある写真から顔、別の写真から服、3枚目から部屋を使うなら、Qwen Image 3.0(3枚)、Seedream 5.0 Pro(10枚)、Wan 2.7(9枚)です。複数の場合、どの画像から何を取るかをプロンプトで指定します。既定ではSeedream 5.0 Proは最初の元画像に近い形、Wan 2.7は最後の元画像の形、Qwenは正方形になります。Qwen Image 3.0へ縦長の人物写真をaspect_ratioなしで送ると1:1で返ります。
マスクや強度調整を使う部分編集。 Qwen Image 2.1とFLUX.1 Dev LoRAはmask_urlでマスクを受け取ります。元画像と同じサイズの白黒画像で、白い部分を描き直し、黒い部分を残します。strength(0〜1、既定0.8、元画像からどれだけ変化させるか)はFLUX.1 Dev LoRAとZ-Image Turbo LoRAの編集エンドポイントにあります。Wan 2.7は別方式で、bounding_boxesに画像ごとに最大2つのピクセル座標の矩形を指定します。
コンテンツの結果。 2026年9月の公開テスト報告では、各編集モデルを5段階のコンテンツ(L1が最も穏やか、L5が最も強い)で、通常は段階ごとに3回実行しています。
| エンドポイント | 要求どおりに届いた編集 | 要求を満たさなかった箇所 |
|---|---|---|
| Qwen Image Edit Spicy | 18回中18回 | なし |
| Qwen Image 3.0 | 17回中17回 | なし |
| Qwen Image 2.1 | 18回中18回 | なし |
| Qwen Image 2 | 18回中16回 | L4 Intenseの3回中2回が弱められた |
| Seedream 5.0 Pro | 17回中16回 | L4 Intenseの編集1回が普通の人物写真になった |
| Wan 2.7 | 15回中11回 | L4 Intenseと、L5 Extremeのあるテストで、それぞれ3回中1回が要求どおり。同じモデルのテキストから画像より編集のほうが許容範囲が広い |
FLUX.1 Dev LoRAはマスクとstrengthを併用する最安の選択肢です。ただし公開報告はテキストから画像のテストで、強い段階では結果が弱められています。本格利用の前に、自分のコンテンツ段階で1回編集して試してください。
モデル別の詳細はSeedream 5.0 Proなどのレビューにあります。Qwen Image Editの検閲なしテストではQwenの編集前後の組を掲載しています。
ローカルかホスト型か。 8 GB以上のVRAMを持つGPUがあり、大量に編集するなら、ComfyUIでQwen Image EditやFLUX.2 Kleinをローカル実行する方法も現実的です。GPUを運用したくない、アプリから呼び出したい、画像ごとに払いたい場合はホスト型が適しています。1枚$0.018〜$0.072なら、100回の編集は再試行前で$1.80〜$7.20です。
まずPlaygroundで試す
コードやキーを扱わず、モデルページのPlaygroundを使うのが、写真への編集を確認する最短の方法です。
- Qwen Image Edit Spicyのページを開き、PlaygroundタブのForm表示を使います。実行には残高のあるアカウントでログインしてください。
- Input imageにファイルをドロップします(JPG、PNG、WEBP、GIF、最大10 MB)。またはAsset URLとAdd URLから画像ファイルへの直接リンクを使います。
- Promptに、まず維持する内容、次に変更1つを記載します(次の節の例に表現を示します)。
- 任意でSeedを指定します。同じ画像と指示で再利用すると、2つの言い回しを比較できます。
- Run modelを押し、まずOutputの画像を見ます。弱められた結果も通常どおり課金されます。
ほかの編集モデルでは同じフォームに追加画像やQwen Image 2.1のマスクなど専用項目があります。Formの隣のJSON表示には正確なリクエスト本文、その隣のコードタブ(JavaScript、Python、cURLなど)には同じ呼び出しが示されます。ここで動いた設定をプロジェクトへコピーできます。
次にコードから実行する
Python SDKをインストールし(pip install spicyapi)、環境にSPICY_API_KEYを設定して1回編集します。写真をアップロードし、料金を表示して、タスク作成前に承認を待つスクリプトです。
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
MODEL = "alibaba/qwen-image-spicy-edit/edit"
source = client.upload_file("photo.jpg") # or put a public HTTPS link in image_url
body = {
"image_url": source["uri"],
"prompt": "Keep the person, pose, framing and room exactly as they are. "
"Change only the light to warm late-afternoon sun from the window on the left.",
}
quote = client.quote_task(model=MODEL, input_data=body)
print("Estimated", quote["estimatedCost"], "maximum", quote["maxCharge"])
if input("Create the task? [y/N] ").strip().lower() != "y":
raise SystemExit
task = client.create_task(
model=MODEL,
input_data=body,
idempotency_key=str(uuid.uuid4()),
quote_id=quote["quoteId"],
expected_cost=quote["estimatedCost"],
)
print("Resume task:", task["taskId"], flush=True)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise SystemExit(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
assets = output_assets(final)
if not assets or any(a.get("pending") or a.get("unavailable") or not a.get("url") for a in assets):
raise RuntimeError(f"Task {task['taskId']} has no ready output; check this task before a new run")
print(assets[0]["url"]) # copy the image to your own storage nowこの呼び出し以外の詳細はPython SDKリファレンスとタスクガイドにあります。待機せずコールバックを受け取るサービスなら、Webhookを使えます。
Agentに実行を任せる方法
アシスタントに編集を任せる場合、3つの公式ツールはいずれも料金を表示し、有料呼び出しの前に確認を求めます。
- CLI。 写真をアップロードし、返された
spicy://アドレスとプロンプトをinput.jsonのimage_urlとpromptへ記入してから、次を実行します。
``bash spicyapi files upload photo.jpg spicyapi tasks create --model alibaba/qwen-image-spicy-edit/edit --input-file input.json --wait ``
CLIドキュメントを参照してください。npx @spicyapi/cliならインストール不要です。
- MCPサーバー。 MCPサーバーをアシスタントへ追加し、次のように依頼します。"Edit /path/to/photo.jpg with Qwen Image Edit Spicy: keep the person, pose and room, change only the light to warm late-afternoon sun."
spicyapi_upload_fileでアップロードし、料金確認で停止するspicyapi_task_createを呼び、次にspicyapi_task_waitを使います。 - Skill。
npx skills add spicyapi-ai/spicy-skillでAgent Skillを導入すると、コーディングアシスタントは項目を推測せず、現在のモデルスキーマを読みます。
送信できる画像と料金
元画像をタスクへ渡す方法は3つです。
- 公開HTTPS URL。 アップロードは不要です。認証情報なしで画像ファイル自体を返す必要があります。クラウドストレージやアルバムの共有ページはウェブページなので400で拒否されます。
- 小さいインライン画像。 同じ項目に
data:image/png;base64,...として記入します。JPEG、PNG、WebP、GIFに対応し、デコード後最大1 MiB、各辺8192ピクセルまでです。 - アップロード。 大きい画像や非公開画像向けです。JPEG、PNG、WebP、GIF、最大10 MiBに対応します。アップロードは無料で、ファイルを使うタスクのみ有料です。1日有効な
spicy://URIが返ります。
Qwen Image 2はJPEG、PNG、WebPのみ受け付けます。項目も異なり、Qwen Image Edit SpicyとFLUX.1 Dev LoRAはimage_url文字列1つ、ほかはimage_urls配列です。エンドポイントは未定義の項目を無視せず拒否します。
料金は解像度、入力元の数、Wan 2.7ではnum_outputsによって決まります。確認前に表示される料金はその正確なリクエストに対するものです。見積もりとメディアガイドを参照してください。
別のエンドポイントでは入力だけを変える
配列を受け取るモデルはimage_urlsを使い、複数の入力元ではプロンプトが役割を割り当てます。同じコードを以下のモデルIDと本文で使ってください。
{
"model": "alibaba/qwen-image-3.0/edit",
"input": {
"prompt": "Use the person from the first image and the jacket from the second. Keep her face, hair and pose from the first image. Change nothing else.",
"image_urls": ["spicy://f/fil_...", "spicy://f/fil_..."],
"aspect_ratio": "3:4",
"resolution": "2k"
}
}FLUX.1 Dev LoRAのマスク編集では、入力元1枚の本文にマスクと強度を追加します。
{
"model": "black-forest-labs/flux-1-dev-lora/edit",
"input": {
"prompt": "A black satin jacket with a high collar, same light as the rest of the photo.",
"image_url": "spicy://f/fil_...",
"mask_url": "spicy://f/fil_...",
"strength": 0.9,
"seed": 7
}
}strengthが低いほど元画像に近くなり、既定値は0.8です。各モデルページの現在のスキーマから項目の値をコピーしてください。画像生成ガイドでは画像エンドポイントの違いを説明しています。
指示は維持する内容を先に、変更を後に
編集エンドポイントは指定しなかった部分を描き直します。まず同じまま維持する内容、次に変更1つを述べてください。保持する要素を多く書いても追加料金はかかりません。Qwen Image 3.0と2.1で忠実に編集するには、enable_prompt_expansionをfalseにします。既定では有効で、プロンプトを詳しい場面説明に書き換えるため、保持指示が薄れることがあります。
- 光だけ: “Keep the person, pose, framing and room exactly as they are. Change only the light to warm late-afternoon sun from the window on the left. Keep the colour grade and film grain.”
- 背景だけ: “Keep the subject, outfit and crop. Replace the studio wall with dark theatre curtains. Add no logos or text.”
- 複数の入力元: “Use the person from the first image, the jacket from the second and the street from the third. Keep her face and pose from the first image. Change nothing else.”
1回に変えるのは1つにしてください。スタイル変更と文字の書き換えを組み合わせると、人物の同一性が崩れやすくなります。結果が期待と違う場合は次を試します。
| 見える問題 | 想定される原因 | 次の試し方 |
|---|---|---|
| 正方形になった、構図が変わった | Qwen Image 2、2.1、3.0のaspect_ratioは既定で1:1 | 元画像の比率を明示する |
| 合成後の顔が似ているが本人ではない | 顔の入力元が未指定で、画像が多いほどドリフトの余地が増える | 入力元を減らし、最初の文で顔の画像を指定し、1回に1つだけ変更する |
| 頼んでいない家具や窓の移動 | Qwen Image 2の報告では複雑な編集で部屋が再構築される場合がある | 2回に分け、維持する物を列挙する |
| 要求より穏やか、または簡素な画像 | 弱められた結果だが、タスクは成功 | 明確な変更1つになるよう指示を見直すか、その段階の実績がよいエンドポイントへ移る |
| 看板の文字が間違う | 短い文字列が最も得意 | 元の文字と新しい文字を文中で引用する。密な文章はQwen Image 3.0に任せる |
失敗したとき
以下は編集固有の失敗です。メッセージ本文ではなく、数値のcodeやタスクのerrorCodeで処理を分岐してください。
| 表示されるもの | 意味 | 対処 |
|---|---|---|
400 strength: is not a supported field | 別エンドポイント用の項目。未知の項目は無視ではなく拒否される | 削除するか、必要ならFLUX.1 Dev LoRAを使う |
400 image_urls: must contain at most 1 items | Qwen Image 2とSpicyの編集モデルは入力元1枚 | 1枚にするか、複数画像対応のエンドポイントを選ぶ |
400 Reference asset not found or does not belong to this account | spicy:// URIが未確定、期限切れ、別アカウント所有のいずれか | ファイルを再アップロードする |
400 The file linked in image_urls was not foundまたは... opens a web page | HTTPSリンクが誤り、オフライン、または閲覧ページ | 直接リンクを使うか、アップロードする |
タスクfailed、invalid_asset | HTTPSリンクが閲覧ページだった、または期限切れ | アップロードし、新しいURIで新しいタスクを作る |
タスクfailed、content_rejected | モデルがコンテンツを拒否した | 同じまま再送しない。プロンプトかモデルを変更し、settledとcostを確認する |
残高、タイムアウトなど一般的なエラーはエラーリファレンスを参照してください。
ファイルの保存期間
アップロードした写真は1日、結果は最長14日残ります。保存したい結果はタスク成功後すぐに自分のストレージへコピーしてください。写真をそれほど長く置きたくない場合、保存期間のドキュメントで期間の短縮や完了済みタスクのメディアとプロンプトの破棄方法を確認できます。一時アップロードと永続的なメディア配信と画像・動画APIの入門ガイドも参照してください。
よくある質問
強度を設定できる検閲なしの画像変換APIはありますか?
はい。FLUX.1 Dev LoRA(strengthは0〜1、既定0.8、任意のマスクも利用可能)とZ-Image Turbo LoRAの編集エンドポイントです。ほかは指示が制御そのもので、strengthを送ると400 strength: is not a supported fieldが返ります。
写真をアップロードする必要がありますか?
いいえ。公開HTTPSリンクや最大1 MiBのインライン画像を使えます。大きいファイルや非公開ファイルはアップロードしてください。
拒否や失敗した編集にも料金がかかりますか?
通常はかかりません。失敗したタスクは確保額が全額解放され、作成エラーでは課金されません。弱められた結果は完成画像なので課金されます。
顔とポーズは維持されますか?
保証はありません。維持する内容を指定し、1回に1つを変更し、可能なら入力元を1枚にします。Seedream 5.0 Proは照明や服装を変えても人物を保持しましたが、2枚目の写真の新しいセットへ人物を合成すると顔の配置精度が下がりました。Qwen Image 2は簡単な編集をきれいに処理したものの、複雑な編集では家具の一部を作り直しました。
実在人物の写真を編集できますか?
その人の記録された同意がある場合のみです。同意なしに性的な編集をしてはいけません。全モデルに適用されるため、同意記録は自分のシステムに保存してください。
どのエンドポイントから始めるべきですか?
写真1枚と変更1つならQwen Image Edit Spicyです。複数の入力元、マスク、strengthが必要なときだけ切り替えてください。まず1回編集し、画像を見てから変更を判断します。
次の一歩
無害なテスト写真でPlaygroundから1回編集し、確認前に料金を読んでください。次に支払う解像度を選び、本番では待機よりWebhookを使うべきか決めます。
Spicyの指示作成を詳しく知るには、Qwen Image Edit Spicyの元画像保持ワークフローをお読みください。API以外も含め既存画像の編集モデルを比較するなら、検閲なしのAI画像編集モデルの比較を参照してください。検閲なしの画像APIカタログでは呼び出せる全画像モデルのコンテンツ区分と現在の料金を確認できます。












