← ブログ

Z-Image-Turbo インペインティングAPI:マスクワークフローとアーティファクト修正

Z-Image-Turbo インペインティングの完全ガイド。マスク作成、自然言語プロンプト、シームレスなブレンド技術、および一般的なアーティファクトの修正方法を解説。$0.02/画像。

1 min read
Z-Image-Turbo インペインティングAPI:マスクワークフローとアーティファクト修正

こんにちは、Doraです。先週、小さなことに引っかかりました。再利用したい商品写真にグレアスポットがあったのです。フルレタッチセッションは不要で、ただ軽く編集したかっただけ。いつものツールを開きかけて、ふと立ち止まりました。Z-Image-Turbo Inpainting API の話をよく見かけていて、5分で終わるはずの修正をプロジェクト化せずに自分のルーティンに組み込めるかどうか気になったのです。そこで実際のタスクをいくつかこなしながら、ゆっくり試してみました。その過程でメモを取り続けました。

AIインペインティングとは?

インペインティングは、画像編集のクリーンアップ担当です。マスクで領域を隠し、代わりに何が欲しいか(あるいは何も要らないか)を説明すると、モデルが残りの画像に合わせてそこを埋めてくれます。

インペインティングが気に入っているのは、外科的な感覚があるからです。モデルにシーン全体を作り出させるのではなく、すでにあるシーンを尊重させるだけ。うまくいけば編集跡が消えます。うまくいかなければ、継ぎ目や奇妙なテクスチャ、パッチ部分に小さな「AIの霞」が現れ、やり過ぎたとわかります。

Z-Image-Turbo Inpaintの仕組み

2026年1〜2月にかけて、Z-Image-Turboのインペインティングをいくつかのタスクでテストしました:グレア除去、背景のクリーンアップ、オブジェクトの入れ替えなど。フローは標準的です。画像、バイナリマスク、プロンプトをZ-Image-Turbo Inpainting APIに送る。モデルはマスクされた領域だけを編集し、周囲のコンテキストとなじませようとします。

実践で重要だったのは2つの点です:

  • マスクのエッジ:ソフトエッジの方がなじみが良かった。ハードエッジは継ぎ目を作った。
  • プロンプト:短く、文字通りのプロンプトが最も効果的だった。詳細すぎると、モデルが迷い始めた。

速度面では、結果は数秒で返ってきました。ワークフローの非同期タスクには十分な速さです。WaveSpeedのドキュメントによると、Z-Image-Turbo Inpaintは低レイテンシとクリーンな結果のために最適化されており、バッチ処理や高速なイテレーションに対応した本番環境向けの仕様となっています。小〜中程度の編集では品質が保たれました。大きく複雑な置き換えには、数回の試行や小さなマスクが必要でした。

APIワークフロー

ワークフローはシンプルに保ちました:ソース画像はそのまま、変えたいところだけマスクし、プロンプトは平易な言葉で。

必須の入力:画像 + マスク + プロンプト

何度も繰り返し使った最小セットはこちらです:

  • 画像:PNGまたはJPEG。アップ/ダウンスケールのアーティファクトを避けるため、元の解像度を保ちました。
  • マスク:画像と同じ幅・高さ。白 = 編集可能。黒 = 保護。APIのバージョンがそれを反転している場合、通常は反転するフラグがあります。
  • プロンプト:1文で十分。「カウンタートップのグレアを除去してください。」あるいは「マグカップをシンプルな白い陶器のカップに置き換えてください。」

役立ったオプションのパラメーター:

  • ガイダンス/強度:微妙なクリーンアップには低め、完全な置き換えには高め。
  • シード:良い結果を再現するためにシードを設定する。
  • ステップ数:適度に保ちました。ステップを増やしても必ずしも良くなるわけではなかった。

マスクフォーマットの要件

この部分が品質に最も大きな差をもたらしました:

  • バイナリマスク(純粋な白と純粋な黒)を使う。ソフトさが必要なら端を少しぼかしてもいいが、領域全体がグレーのぼやけになるのは避ける。
  • サイズを正確に一致させる。マスクが1ピクセルずれると、APIがエラーを出すか位置がずれる。
  • マスク領域は狭く保つ。マスクが小さいほど、モデルがハルシネーションを起こす機会が減る。
  • 細い細部に注意する。髪の毛やケーブルの場合、極細のハードマスクよりも少し大きめのソフトマスクの方がなじみが良かった。

エッジ付近を編集する場合は、マスクを境界線のすぐ外まで拡張する。モデルが継ぎ目の下に塗る余地ができ、「ステッカー」のような見た目を避けられます。

Pythonでの実装

これをフルライブラリにはしませんでした。小さなユーティリティスクリプトに短いリクエストを使いました。要点:

  • Z-Image-Turbo InpaintingエンドポイントにマルチパートフォームデータでPOSTリクエストを送る。
  • 添付するもの:画像ファイル、マスクファイル、プロンプト文字列、任意のオプションパラメーター(ガイダンス、ステップ数、シード、必要に応じて出力サイズ)。
  • レスポンスを処理する:base64画像またはフェッチするURL。保存してから、パイプラインに組み込む前にプレビューする。

セットアップからの実践的なメモをいくつか:

  • レートリミットに注意する。リトライを避けるため、編集をバッチ処理してバックオフを追加しました。
  • 保存した画像ごとに、正確なプロンプト、シード、パラメーターをログに残す。クリーンな結果が得られたとき、これで簡単に再現できました。
  • UIを構築している場合は、ソース画像上にマスクのオーバーレイをプレビューする。リクエストを送る前に、このやり方でマスクのずれを2回発見しました。

効果的なインペイントプロンプトの書き方

成功の大部分は、より短く、より文字通りのプロンプトからでした。マスクが大半の意思疎通をしてくれます。プロンプトは案内役であって、ナレーターではないのです。

削除プロンプト(「表面をきれいに」)

何かを削除するだけの場合、欠如と求めるフィニッシュを説明するプロンプトを書きました。「反射を除去してください:マットで均一な表面を保ってください」、あるいは「埃の斑点を除去してください:木目を保ってください」。モデルは、それについて言及したとき、周囲のテクスチャをより尊重してくれました。

小さなコツ:重要なときは照明にも触れること。「柔らかな午後の光を保ってください」で明るいパッチを防げました。

置き換えプロンプト(新しいコンテンツを説明する)

入れ替えには、具体的かつコンパクトにしました:

  • 「赤いマグカップを、似たサイズ・ニュートラルな照明のシンプルな白い陶器のカップに置き換えてください。」
  • 「ギャップをマッチするコンクリートテクスチャで埋めてください:パターンなし。」

スタイルを呼び込む形容詞(「美しい」「映画的な」など)は避けました。それらはモデルに創作を促してしまいます。寸法も役立ちました。「似たサイズ」や「同じ角度」で、不自然なパース変化が減りました。

コンテキストを意識したプロンプティング

シーンに強い雰囲気がある場合、温かい光、柔らかい影、浅い被写界深度など、プロンプトにそれを伝えました。RunComfyのコミュニティテストによると、Z-Image-Turbo Inpaintingはプロンプトが既存のシーンコンテキストを明示的に参照したとき、テクスチャの連続性、リアルな照明、正確なパースペクティブ処理において高いパフォーマンスを示します。Z-Image-Turbo Inpainting APIはそのような手がかりをうまく利用しているようでした。「既存の温かい光に合わせて、左に柔らかい影を」という言葉は、抽象的な「リアルに」よりも効果的でした。

周囲のコンテキストが弱い場合(ごちゃごちゃしたパターン、細部が少ない)、マスクを縮小して2パスで対応しました:最初に構造(形状)、次に表面(テクスチャ/光)。1分余計にかかりましたが、最終結果のAI感が薄れました。

実践的な活用例

Z-Image-Turbo Inpainting APIが私の週次作業に居場所を見つけた場面を紹介します。

商品写真のクリーンアップ

テーブルトップ写真のバッチを処理しました:散乱した傷、背景のシワ、ランプからの不自然なホットスポット。削除プロンプトで十分でした。時間的には、手動のヒーリングと比べて1枚あたり3〜4分節約できました。真の価値は精神的な労力の軽減で、細かな意思決定が減りました。

不要なオブジェクトの除去

街撮り写真でテストしました:店先近くのゴミ箱、フレームの端に一部だけ映った通行人。タイトなマスクに「レンガのパターンを続ける」や「歩道のテクスチャを延長する」というメモを添えると、フィルは上手くなじみました。複雑なテクスチャ上の大きな除去は、まだ数回の試行が必要でした。

背景の置き換え

背景全体の入れ替えはデリケートです。シンプルなシーン、紙の上の卓上アイテムなどは、オブジェクトの周りではなく下をマスクすることで、自然な影を保ちながら平坦なグラデーション背景に置き換えることができました。乱雑な背景に対する複雑な髪はより難しかった。マスクがクリーンで新しい背景がシンプルな場合にのみ、ここでインペインティングを使うようにしています。

よくあるアーティファクトの修正

何かが「おかしい」と感じたとき、大抵は以下のどれかでした。

マスクエッジに見える継ぎ目

症状:パッチがオリジナルと接する部分に薄い輪郭線が現れる。

効果があったこと:

  • マスクのエッジを少しぼかして再実行する。
  • マスクエリアを数ピクセル広げて、モデルが継ぎ目の下に塗れるようにする。
  • フィルが平坦なシーンに対して過度にスタイル化されている場合、ガイダンスをひと段階下げる。

色/照明のミスマッチ

症状:パッチの形は正しいが、光が間違っている。

効果があったこと:

  • プロンプトで光の方向と温かさを言及する:「右からの温かい光に合わせて、柔らかい影で。」
  • ステップをわずかに減らす。重いサンプリングが色のズレを引き起こすことがあると気づきました。
  • 写真全体にカラーグレーディングが施されている場合、グレーディングの前にインペインティングを行い、最終に再度グレーディングを適用する。

テクスチャの不一致

症状:表面が滑らかすぎるか、均一すぎる。

効果があったこと:

  • テクスチャを明示的に説明する(「細かいキャンバステクスチャ」「繊細な木目」)。
  • マスクを縮小して段階的に塗る:まず構造、次にテクスチャ。
  • 後からわずかなノイズやグレインを加えてなじませる。純粋主義的ではないが、効果的でした。

私にとってこれが重要な理由:インペインティングは派手ではありませんが、小さくて地味な編集の摩擦を減らしてくれます。Z-Image-Turbo Inpainting APIは私のプロセスを変えませんでした。それはプロセスにすんなりと溶け込んだのです。軽いクリーンアップや時折のオブジェクト入れ替えをよくやる方で、マスクを描くことに抵抗がない方には、良い選択です。シーンの大幅な書き換えが目的なら、マスクとプロンプトを調整する時間はまだかかります。

テストから最後にひとつ:プロンプトを舞台指示のように、マスクを境界線のように扱ったときに最高の結果が得られました。明確な役割分担。モデルはそれでうまく機能してくれました。そして、厄介なテクスチャ上の小さなマスクをあの「霞」なしにどこまで押し込めるか、まだ気になっています。それが次の課題です。皆さんはいかがですか?