新しいコンセプトは1枚$0.03のWan 2.7テキストから画像で作り、既存のソースの修正は同じ価格のWan 2.7編集で行います。4k出力が必要なときは1枚$0.075のProを選びます。4kに対応するのはProテキストだけで、Pro編集は常に2kを返します。 Standardの生成と編集は1kまたは2kで、1回の呼び出しで最大4枚を出力できます。以下の設定で灯台の表紙を作り、測定した編集ボックスで邪魔な船を消します。
まずエンドポイントを選ぶ
| タスク | 解像度 | 1回の出力数 | その他の制御 |
|---|---|---|---|
| Wan 2.7 テキスト | 1k(既定)、2k | 1–4 | パレット、seed、思考スイッチ(既定でオン) |
| Wan 2.7 編集 | 1k(既定)、2k | 1–4 | ソース1–9枚、パレット、ボックス、seed |
| Pro テキスト | 2k(既定)、4k | 1 | パレット、seed |
| Pro 編集 | 2k固定 | 1 | ソース1–9枚、パレット、ボックス、seed |
目安として、1kは約1メガピクセル、2kは約4、4kは約16です。4つとも1:1、4:3、3:4、16:9、9:16、3:2、2:3を受け付けます。テキストの既定は正方形です。編集には既定がなく、最後のソース画像の比率に従います。パレットなしで生成するときは、後から入れる参照に形を決められないよう、2:3を明示してください。aspect_ratioはcolor_paletteやbounding_boxesと併用できません。両方を含むリクエストはエラー40004を返すので、そのようなリクエストではaspect_ratioを省きます(パレット付きのテキストリクエストは既定の正方形になり、ボックス付きの編集は最後のソースの比率を保ちます)。4つのどれにも出力形式の選択肢はありません。
Pro編集は、複数の節からなる長い指示(「このオブジェクトをあの面に置き、2枚目の光に合わせ、ラベルには触れない」)向けに調整されています。解像度のためではなく、複合的な編集のために選んでください。
表紙のコンセプトを生成する
Standardのテキスト生成で、resolution: "2k"、aspect_ratio: "2:3"、num_outputs: 1、enable_thinking: true、seed 314159を使います。seedを固定すると、1つずつ文言を変えている間も開始時のランダム条件が安定します。新しい結果が欲しいときは省きます。enable_thinkingをオフにすると生成は速くなりますが、構図を探っている間はオンのままにしてください。プロンプトは英語の原文のままにします。
Original painted cover artwork for a fictional coastal mystery. One white lighthouse on a charcoal rocky island above dark teal water, the entire tower visible slightly right of center. One small mustard-yellow lamp at its top. One fictional adult keeper aged 45 in a rust raincoat walks along a clear path toward the tower. The keeper is small relative to the building. Pale restrained sky with quiet space in the upper third for separately added typography. Strong large silhouettes, soft dusk light, no lettering, extra towers, boats or disaster spectacle.

イラストで、Wanの結果ではありません(空はプロンプトの指定より暖かい色です)。小さな灯台守が縮尺を示し、灯台が主役のままです。
まずPlaygroundで試す
- Wan 2.7 テキストから画像のページを開き、PlaygroundタブのForm表示のままにします。実行には、残高のあるアカウントでサインインしてください。
- 上の表紙プロンプトをPromptに貼り付けます。Resolutionを2k、Seedを314159にし、構図を探る間はDeep thinkingをオンのままにします。
- Aspect ratioは2:3を選びます。手順4でパレットを追加する場合は、2つは併用できないためAutoにします。
- 任意:Color paletteでAdd a colorを押し、各
#RRGGBBコードと、必要ならその割合(パーセント)を入力します(3〜10色。次のセクションに灯台用のセットがあります)。 - モデルを実行して塔と灯台守の大きさを確認し、文言を1つだけ変えて同じseedでもう一度実行します。
船の編集では、Wan 2.7 編集ページを開き、Imagesに承認済みの画像を追加します(Add a fileまたはAsset URL)。そしてEdit areasで船と航跡の上にボックスをドラッグします。Fine-tune coordinatesに同じ数値が表示されます。プロンプトでは「印を付けた範囲」と指します。Playgroundのリクエスト本文はAPIが受け取るJSONと同じなので、ここでうまくいった設定をそのままコードにコピーできます。

Form表示のWan 2.7 編集ページ。PromptフィールドとRunボタンが見えます。
有効なパレットを渡す
color_paletteは6桁のhex色を3〜10色(推奨は8色)受け取り、シーン、衣装、光まで画面全体を方向づけます。各色には割合(パーセント)を表すratioを付けられ、割合のない色は残りを均等に分け合います。割合は要求した配分であり、測定したピクセル数ではないと考えてください。灯台のリクエストでは、合計100の4色を使います。#173E46の青緑が45、#E8E1D3の淡い空が30、#34383Aの炭色が20、#C9A448のマスタードが5です。送信時はaspect_ratioを省きます。
黄色が空に広がってしまう場合は、プロンプトから暖かい金色の空という表現を外し、アクセントの役割を小さくします。
実際のソースの座標で船を消す
承認済みの画像に目障りな船があるとします。Standard編集に切り替え、承認済みの画像を最初のソースにして、2kと出力1枚はそのままにします。aspect_ratioはbounding_boxesと併用できないので省きます。bounding_boxesの各エントリは、1始まりのimage_indexでソースを指定し、座標はそのソースの左上隅から測ったピクセルです。
仮に1200 × 1800のソースで、船と航跡が(120,1180)と(390,1420)の間に収まるなら、ボックスは{"image_index": 1, "x1": 120, "y1": 1180, "x2": 390, "y2": 1420}で、プロンプトは次のとおりです。"Remove the small boat and its wake inside the marked lower-left sea area. Continue the surrounding dark teal water and painterly texture. Retain the lighthouse, rocky island, adult keeper, path and quiet sky. No new objects or lettering."
この座標は例示です。自分の船を測ってください。プレビューで同じソースが600 × 900に見えているなら、プレビューの座標を2倍します。プレビューの点(60,590)はソースの点(120,1180)になります。切り抜きやリサイズの後は再計算してください。ボックスは常に、要求した出力サイズではなく送信したファイルを基準にするためです。
各ソースにはボックスを最大2つ(9枚で18個)付けられます。船体だけでなく航跡も含めてください。そうしないと、船が暗に残って見えます。ボックスはどこに作用するかを、プロンプトは何に置き換えるかを示しますが、どちらも他の部分のピクセルが同一であることは保証しません。ソース画像はJPEG、不透明PNG、WebPのいずれかを1〜9枚使い、それぞれ公開HTTPS URLまたはアップロード済みのspicy://ファイルにします。
複数のソースを使うときは、それぞれの役割を伝えます(「画像1がシーン、画像2がコート、画像3がパレット参照」)。

イラストで、Wanの結果ではありません。ソース、衣装、パレットの素材を分け、それぞれに役割を持たせています。
次にコードから実行する
Python SDKをインストールし(pip install spicyapi)、サーバー環境にSPICY_API_KEYを設定して、2つのステップを実行します。まずコンセプト、承認済みの画像ができたら船の編集です。
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
def run(model, input_data):
task = client.create_task(model=model, input_data=input_data,
idempotency_key=str(uuid.uuid4()))
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
return output_assets(final)[0]["url"] # copy the image to your own storage now
concept_url = run("alibaba/wan-2.7/text-to-image", {
"prompt": "Painted cover for a fictional coastal mystery: one white lighthouse above dark teal sea on charcoal rocks, one small mustard-yellow lamp and one small adult keeper in a rust coat on a clear path. Pale quiet upper sky for later typography. Whole tower visible; no lettering or extra towers.",
"resolution": "2k",
"num_outputs": 1,
"enable_thinking": True,
"seed": 314159,
"color_palette": [
{"hex": "#173E46", "ratio": 45},
{"hex": "#E8E1D3", "ratio": 30},
{"hex": "#34383A", "ratio": 20},
{"hex": "#C9A448", "ratio": 5},
],
})
edit_url = run("alibaba/wan-2.7/edit", {
"image_urls": ["https://your-domain.example/approved-cover-1200x1800.jpg"], # your approved image
"prompt": "Remove the small boat and its wake inside the marked lower-left sea area. Continue the surrounding dark teal water and painterly texture. Retain the lighthouse, rocky island, adult keeper, path and quiet sky. No new objects or lettering.",
"bounding_boxes": [{"image_index": 1, "x1": 120, "y1": 1180, "x2": 390, "y2": 1420}],
"resolution": "2k",
"num_outputs": 1,
"seed": 314159,
})
print(concept_url, edit_url)作成、待機、ダウンロード、再試行、エラーコードはタスクガイドとPython SDKリファレンスにあります。結果は期限切れになるため、返されたリンクに頼る前に保持と配信を読んでください。
エージェントに実行させる
アシスタントに生成を実行させる場合、公式の3つのツールはいずれも価格を表示し、有料の呼び出しの前に確認を求めます。
- CLI。 コンセプトの
inputオブジェクトをinput.jsonに入れて、次を実行します。
``bash spicyapi tasks create --model alibaba/wan-2.7/text-to-image --input-file input.json --wait ``
編集では、spicyapi files upload <path>がローカル画像をspicy://リンクにしてimage_urlsに渡せます。CLIドキュメントを参照してください。npx @spicyapi/cliはインストールなしで動きます。
- MCPサーバー。 アシスタントにMCPサーバーを追加し、「Run Wan 2.7 text to image with this prompt at 2k, seed 314159.」と依頼します。価格確認で止まる
spicyapi_task_createを呼び出し、続いてspicyapi_task_waitを呼び出します。ローカルのソース画像はspicyapi_upload_fileが扱います。 - Skill。
npx skills add spicyapi-ai/spicy-skillでAgent Skillをインストールすると、コーディングアシスタントがフィールドを推測せず、最新のモデルスキーマを読みます。
具体的な失敗結果を直す
| 失敗 | 次の変更 |
|---|---|
| 編集が違う隅に効く | 「ちょうどここ」と繰り返さず、image_indexを直して実際のソースから座標を再計算します。 |
| 塔が切れている | 塔全体と、より静かな空を求め、縦長の比率を保ちます。 |
| 灯台守が塔より大きい | 「道の上の小さく遠い成人の人物」と書き、ポートレートやクローズアップの語を外します。 |
| 船は消えたが航跡が残る | ボックスを広げて航跡を含め、指示文に両方を明記します。 |
| 船を消すときに灯台が変わる | 承認済みのソースに戻り、より小さいボックスを使うか、承認済みの海の部分だけを元画像に合成します。 |
Pro編集がresolutionを拒否する | フィールドを削除します。Pro編集は2k固定で、4kはProテキストのものです。 |
| 4枚バッチが想定より高い | num_outputs: 1にします。Standardの価格は1枚あたりで、バッチの定額ではありません。 |
StandardかProか、そして費用
Standardのコンセプト1枚とStandardの編集1回で$0.06です。Standardの4枚出力のリクエストは$0.12、Proの画像は1枚$0.075なので、ProテキストとPro編集の1往復は$0.15です。構図の探索はnum_outputsを最大4にしてStandardで行います。Proテキストは、切り抜いたり印刷したりするメインのカットなど4kが必要なときだけ、Pro編集は1つの指示に複数の節があり、そのすべてを反映させたいときだけ使います。構図そのものが間違っているなら、解像度を上げても直りません。
成人向けの作業
2つの編集エンドポイントはどちらも無検閲で、SpicyAPIはコンテンツのスキャンを加えません。成人向けの変更も出力できますが、強めの編集はどちらでも控えめになって返ることがあり、Proがより露骨な結果を保証するわけではありません。Standardのテキストタスクは、成人向けの高度な画像を出すこともありますが、私たちのテストでは2つのテキストタスクとも強めの成人向けシーンを控えめにしました。控えめになった結果にも課金されます。Proでもこの制限はなくなりません。成人キャラクターの制作者にとって現実的なのは、先にベース画像や参照を作り、成人向けの変更は後から編集で行う方法です。記録した結果は英語の記事「Wan 2.7 Pro NSFW image test」にあり、タスク自体はWan 2.7 Pro 編集ページで確認できます。このガイドの灯台の表紙はすべて服を着た場面で、上のどれも必要ありません。
仕上げ
承認済みの画像は、的を絞った修正のソースとして残し、島の配置そのものを変えたいときは新しいコンセプトから始めます。イラストがサムネイルの大きさでも成立したら、デザインツールで正確なタイトルを入れてください。







