チュートリアル
FLUX.1 Kontext Max API の使い方:5 分で最初の 1 枚を生成
オンライン試用 4 ステップ、API 連携 3 ステップ。そのまま実行できる curl と Python、単一画像編集の書き方、本番投入時の注意点を掲載。
TL;DR
- 概要:Black Forest Labs 提供の FLUX.1 Kontext Max。テキスト生成と単一画像編集が同じモデル ID を共有。HiAPI に登場し、モデルページを開いてプロンプトを入力するだけで生成可能。新規ユーザー登録で 200 クレジット(約 1.4 枚分)を進呈。
- 料金:1 枚 $0.0715(143 クレジット)。テキスト生成と編集は同料金で、$10 で約 139 枚生成可能。失敗タスクは事前確保分が返金されます。
- API の呼び出し方:
POST https://api.hiapi.ai/v1/tasksを使用し、modelにflux-1-kontext-maxを指定。taskIdを取得したらポーリングまたはコールバックを待ち、data.output[0].urlから結果をダウンロードします。
FLUX.1 Kontext Max の登場後、よく質問されるのは 2 点:画像編集で 1 箇所だけ変更できるのか、自社製品への組み込みにどれくらいかかるのか。まず能力を確認し、その後 2 つの導入ルートを見ていきます。
FLUX.1 Kontext Max とは何か、どこが新しいのか?
- 1 つのモデル ID で 2 種類のタスクを処理。
inputに画像を渡さなければテキスト生成、input_imageを渡せば編集となり、コードを 2 系統に分ける必要はありません。 - 編集は「何を変え、何を残すか」に従って実行。 素材とスタイル、要素の追加・削除、配色と光、画像内のテキストを変更可能。プロンプトで言及されていない部分はできるだけ元のまま保持します。
- 6 種類のアスペクト比、編集時は元画像の比率も継承。
aspect_ratioは 21:9、16:9、4:3、1:1、3:4、9:16 から選択可能。編集時に空欄にすると元画像の比率で出力され、ピクセルは 32 の倍数に微調整され、1280×720 は 1328×752 になります。 - 出力は jpeg または png、1 枚あたり約 100 万画素。
promptは最大 4,000 文字。中国語のプロンプトは自動的に英語に翻訳されてから生成されます。

テキスト生成、16:9。完全なプロンプトは下記 curl 内のもので、そのままコピーできます。
2 つの導入ルート:オンライン試用か、API か?
まず効果を確認するならオンライン試用、製品に組み込むなら API。どちらも同じモデル、同じ料金体系です。
オンライン試用(約 1 分)
- FLUX.1 Kontext Max モデルページを開くか、上図下のリンクをクリックするとプロンプトが自動入力されます。
- 登録またはログイン。新規アカウントには 200 クレジットが付与されます。
- 16:9 を選択し、生成をクリック。
- 満足したらダウンロード。編集したい場合は同じページで元画像をアップロードし、編集プロンプトを記述します。
API 連携(約 5 分)
- HiAPI コンソールで API Key(
sk-...)を作成。 POST /v1/tasksでタスクを作成し、レスポンスからdata.taskIdを取得。GET /v1/tasks/{taskId}で照会するかcallback.url通知を待ち、data.statusがsuccessになったらdata.output[0].urlから画像をダウンロード。
1 枚 $0.0715、$10 で約 139 枚生成でき、プロンプトを納得いくまで調整するのに十分です。完全なパラメータは中国語ドキュメントを参照してください。
最初の 1 枚:curl 版
タスクを作成:
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-1-kontext-max",
"input": {
"prompt": "A quiet reading corner by a tall window at golden hour: a linen armchair, a stack of art books and a ceramic cup on a walnut side table, warm afternoon light, soft shadows, editorial interior photography.",
"aspect_ratio": "16:9",
"output_format": "jpeg",
"prompt_upsampling": false
}
}'
返却されるタスク ID は data.taskId にあります:
{"code":200,"data":{"taskId":"tk-hiapi-..."},"message":"success"}
結果を照会:
curl -s https://api.hiapi.ai/v1/tasks/YOUR_TASK_ID \
-H "Authorization: Bearer sk-YOUR_KEY"
必須なのは prompt のみです。output_format のデフォルトは jpeg、prompt_upsampling はデフォルトで無効、safety_tolerance のデフォルトは 2(0 が最も厳格)。
最初の 1 枚:Python 版
作成・ポーリング・ダウンロードを 1 回で書き、自分の Key に差し替えれば実行できます:
import requests, time
API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": "Bearer sk-YOUR_KEY"}
payload = {
"model": "flux-1-kontext-max",
"input": {
"prompt": "A quiet reading corner by a tall window at golden hour: a linen armchair, a stack of art books and a ceramic cup on a walnut side table, warm afternoon light, soft shadows, editorial interior photography.",
"aspect_ratio": "16:9",
},
}
task_id = requests.post(API, headers=HEADERS, json=payload, timeout=30).json()["data"]["taskId"]
while True:
data = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
if data["status"] in ("success", "fail"):
break
time.sleep(2)
if data["status"] == "success":
image_url = data["output"][0]["url"]
with open("flux-1-kontext-max.jpg", "wb") as f:
f.write(requests.get(image_url, timeout=60).content)
else:
print(data.get("error"))
編集モード:input_image を 1 つ追加するだけ
input に input_image を追加すると、同じリクエストがテキスト生成から編集に変わります。上記の読書コーナーを元画像として、アームチェアだけを交換しフロアランプを追加する例:
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-1-kontext-max",
"input": {
"prompt": "Change the linen armchair to a deep forest-green velvet armchair, add a slim brass floor lamp beside it, and keep the window, books, cup, table and afternoon light unchanged.",
"input_image": "https://static.hiapi.ai/admin-assets/flux-1-kontext-max/2026/10/26/1793005013365-132a4d4eb55e0852-f-t2i-golden.jpg"
}
}'
input_image は公衆からアクセス可能な画像 URL を 1 つ受け取ります。編集時に aspect_ratio を記述しない場合、出力は元画像の比率を継承します。複数画像の融合が必要な場合は GPT Image 2 画像編集を選択してください(1〜16 枚の参照画像に対応)。
編集プロンプトの書き方:まず変更点を述べ、次に保持する項目を列挙
- 変更は明確な 1 文の指示で書く。 対象と新しい状態を具体的に:
linen armchairをdeep forest-green velvet armchairに変更。 - 保持項目を 1 つずつ明記。 窓、本、カップ、テーブル、午後の光など、元画像で重要視するものを記述し、
keep ... unchangedで締めくくります。 - 関連する変更は 1 文にまとめてよい。 椅子の交換と同時に真鍮のフロアランプを追加する場合、モデルがまとめて処理します。無関係な修正は分けて送信すると結果を確認しやすくなります。
- 画像内テキストを変えるときはレイアウトも保持。 例えばポスターの KYOTO を OSAKA に変える際、レイアウト、余白、フォントスタイルをそのまま保つよう指定します。
- 中国語でもそのまま書ける。 システムが先に英語へ翻訳してから生成します。プロンプトは 4,000 文字以内に収めてください。
本番投入前に注意すべき 4 点
- サーバー側ではコールバックを使用。 リクエストボディに
"callback": {"url": "https://yourapp.com/webhook", "when": "final"}を追加すると、タスクが終態に達した時点で自動通知され、ポーリングを省略できます。 - タイムアウト時に POST を繰り返さない。 作成のたびに新規タスクが生まれ個別に課金されるため、まず
taskIdを保存し、リトライ前に自システム側で重複排除を行ってください。 - 生成物のリンクは失効します。
data.output[0].urlは一時リンクです。取得したらすぐダウンロードし、自身のストレージへ転送保存してください。 - ピクセルは 32 の倍数に揃います。 編集時に
aspect_ratioを空欄にすると元画像比率を維持しピクセルが 32 の倍数に微調整され、1280×720 は 1328×752 で出力されます。比率を指定した場合はその比率でクロップまたはパディングされます。
よくある質問
テキスト生成と編集でモデルを切り替える必要はありますか?
いいえ。同じ flux-1-kontext-max で、input_image を渡すかどうかでどちらの経路になるかが決まり、料金も同じです。
参照画像は一度に何枚渡せますか? 1 枚です。複数画像の融合が必要な場合は GPT Image 2 画像編集を選択してください(1〜16 枚の参照画像に対応)。
中国語のプロンプトは使えますか? 使えます。プロンプトは最大 4,000 文字で、中国語は自動的に英語へ翻訳されてから生成されます。
編集後にアスペクト比は変わりますか?
aspect_ratio を記述しなければ元画像の比率を継承し、ピクセルは 32 の倍数に微調整されます。記述した場合は指定比率でクロップまたはパディングされます。
タスク失敗時に課金されますか? 成功した出力画像の枚数に応じて課金されます。1 リクエストにつき 1 枚返却され、失敗タスクは事前確保分が返金されます。
上記の読書コーナーのプロンプトをFLUX.1 Kontext Max モデルページにコピーし、16:9 を選んで 1 回生成をクリック。光と素材の扱いを確認してから、プロジェクトへの組み込みを判断してください。
関連記事
すべての記事を見る →-
チュートリアル
Recraft Creative Upscale 事例:風景と水彩のアップスケール
山小屋、湖、水彩の町のテクスチャ変化を確認し、完全な結果とプレビューを区別して、描き直された細部をチェックします。
-
チュートリアル
OpenAI API キーが無効:401、環境変数とプロジェクト設定の調査
OpenAI の 401、403、429 を区別し、環境変数、組織とプロジェクトの設定を確認し、読み取り専用リクエストで認証情報を検証します。
-
チュートリアル
Kling 4.0 プロンプト大全:6つのシーンをそのままコピーして動画を生成
EC商品、グルメ、旅行風景、日常のワンシーン、音声付きの空撮カット、イメージ・トゥ・ビデオ。各シーンに実写動画、完全なプロンプト、ワンクリックで自動入力されるリンクをご用意。