はじめに
FLUX.1 Fill Dev LoRA インペイントは、Black Forest Labs の 120 億パラメーターの塗りつぶしモデル FLUX.1 Fill [dev] で、画像 1 枚のマスクした部分を描き直します。自前の LoRA ファイルを最大 3 つ読み込めます。マスクの白い部分はプロンプトに合わせて描き直され、黒い部分は元のまま返ります。プラットフォームは、プロンプト、ウェイト、画像のいずれにもコンテンツフィルターを加えません。
主な機能とハイライト
ほかの部分はそのまま
当社のテストでは、マスクしていない部分は手つかずで返り、真っ黒なマスクでは写真が変わらずに返りました。顔や部屋、商品写真は編集後も保たれます。
光になじむ塗りつぶし
このモデルはまわりになじませるように学習されています。シルクのドレスはアトリエのタングステンの光を、パーカーはスタジオの低い日差しを、追加のプロンプトなしで拾いました。
マスクの内側で自前の LoRA
FLUX.1 dev の LoRA を 1 リクエストにつき最大 3 つ読み込めます。ピクセルアートの LoRA はマスクした壁を壁画に変え、規制のない LoRA はベースモデルが和らげた部分まで描き切りました。
1 回の実行で最大 4 パターン
同じマスクで 1〜4 枚を依頼し、いちばん良い塗りつぶしを選べます。料金は 1 枚ごとです。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
prompt | はい | 白い部分に入るものを書きます。物や服、素材、当たっている光などです。 1 文字以上 · 5000 文字以内 |
image_url | はい | 描き直したい写真です。結果はこの画像のアスペクト比を保ち、解像度で長辺が決まります。 |
mask_url | はい | 元画像と同じサイズの白黒画像です。白は描き直し、黒は保持です。 |
resolution | いいえ | 1k は長辺 1,024 ピクセルで既定です。1.5k は 1,536 ピクセルです。 |
num_outputs | いいえ | 同じマスクでの生成パターン数で、1〜4(既定 1)です。1 枚ごとに課金されるため、4 枚なら 1 枚の 4 倍の料金です。 |
loras | いいえ | FLUX.1 dev 向けに学習した {path, scale} を最大 3 件。scale は 0〜4 で、1 が中立です。 デフォルト値: |
guidance_scale | いいえ | 塗りつぶしがプロンプトにどれだけ厳密に従うかを 28〜35 で指定します。既定は 30 です。 |
steps | いいえ | ノイズ除去のステップ数で、1〜50(既定 28)です。少ないと速く返りますが、やや柔らかい仕上がりになります。 |
seed | いいえ | プロンプトや LoRA を変えるあいだ、塗りつぶしの結果を比べやすくします。毎回まったく同じピクセルになることは保証しません。 |
料金
$0.042 / 枚
1 枚ごとの課金です。4 枚の実行は 1 枚の 4 倍の料金になります。解像度と LoRA の読み込みで料金は変わりません。
ユースケース
ファッションと衣装の変更
仕上がった写真の服、色、ネックラインを変えても、モデル、ポーズ、セットは撮影したままです。
レタッチ
手を描き直す、物を消す、背景の要素を差し替える。その領域だけをマスクして行います。
場面の中のアート
壁、キャンバス、紙をマスクし、スタイル LoRA で壁画やスケッチを描き込めます。
プロンプトガイドと実践のヒント
白い部分を説明する
マスクに入るものと、その光の当たり方を書きます。「a floor-length crimson silk slip dress with thin straps, catching warm tungsten light」のようにです。写真のほかの部分を説明し直す必要はありません。
マスクは広めに
変えるものの肩紐、襟、フード、鏡の映り込みまで含めてください。マスクの外に残したものは画像に残ります。
マスクは元のキャンバス上で
マスクは写真と同じサイズで書き出してください。サイズが違うマスクは引き伸ばされ、白い部分の位置がずれます。
複数パターンを依頼する
塗りつぶしは seed によって変わります。1 回に 2〜4 枚を依頼すると、きれいな縁の結果にいちばん早くたどり着けます。
API クイックスタート
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "black-forest-labs/flux-1-fill-dev-lora/edit",
"input": {
"image_url": "https://example.com/reference.png",
"mask_url": "https://example.com/reference.png",
"num_outputs": 1,
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette",
"resolution": "1k"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。























