AIインペインティング入門|画像の一部を自然に修正・置換するテクニック

image-ai-inpainting Uncategorized

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

インペインティング(Inpainting)は、画像の指定領域を周囲と調和する形で塗りつぶす技術です。AIモデルは以下のプロセスで欠損部分を補完します。

  1. マスク領域の認識: 編集対象領域を特定
  2. コンテキスト分析: 周辺ピクセルのパターン・色・構造を学習
  3. パッチ生成: 学習データから最適なパターンを推測して生成
  4. 境界ブレンディング: マスク境界を自然に溶け込ませる

主な用途

  • 不要物除去: 写真から人物、電線、ロゴなどを消去
  • オブジェクト置換: 「赤い車」を「青い自転車」に変更
  • 範囲拡張: 画像の一部を外側に拡張(Outpainting)
  • 修復: 傷や汚れの除去、古い写真の復元

インペインティングツール比較

1. Adobe Photoshop(Generative Fill)

Adobe Firefly統合のAIインペインティング。商用利用可能で著作権リスクが低い点が特徴です。

特徴
– プロンプトで生成内容を指定可能(英語のみ)
– 複数バリエーションを自動生成(3案)
– 既存レイヤーワークフローと統合
– 商用ライセンスが明確

基本手順

  1. マスク作成
    – オブジェクト選択ツール(W)で対象を選択
    – 選択範囲→選択とマスク で境界を調整
    – Shiftキーで複数選択を追加

  2. Generative Fill実行
    – コンテキストタスクバーの「生成塗りつぶし」をクリック
    – プロンプト入力(例: “wooden table”、”empty space”)
    – 生成(3バリエーション生成)

  3. 調整
    – プロパティパネルで生成レイヤーの不透明度調整
    – 境界が不自然な場合はマスクを再編集

2. Stable Diffusion(AUTOMATIC1111 WebUI)

オープンソースの画像生成AIによるインペインティング。カスタムモデルで特定スタイルに対応できます。

特徴
– 完全無料(GPU必須)
– アニメ、イラスト、特殊スタイル対応
– ControlNetと併用可能
– プロンプトによる詳細制御

導入手順

# WebUIのインストール(既存環境がない場合)
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
./webui.sh  # Linuxの場合、Windowsはwebui-user.bat

基本手順

  1. img2img タブに移動
    – Inpaint タブを選択
    – 画像をアップロード

  2. マスク作成
    – ブラシツールで編集領域を塗りつぶし
    – Mask mode: “Inpaint masked” を選択
    – Masked content: “original” (周囲を参照) または “fill” (全体を再生成)

  3. プロンプト設定
    – Prompt: 生成したい内容(例: “a green plant in a pot”)
    – Negative prompt: 避けたい要素(例: “blurry, distorted”)
    – Denoising strength: 0.5-0.8(低いと元画像維持、高いと新規生成)

  4. 生成
    – Sampling steps: 20-30
    – CFG Scale: 7-10
    – Generate

3. DALL-E 3(ChatGPT Plus / API)

OpenAIのテキストプロンプト駆動型インペインティング。自然言語で指示できる点が特徴です。

特徴
– プロンプトの理解度が高い(日本語対応)
– エディタでマスク+テキスト指示
– 倫理フィルタが厳しい(人物の顔、ブランドロゴ等は制限)

使い方(ChatGPT経由)

  1. 画像をアップロード
  2. 「この画像の〇〇を△△に変更してください」と指示
  3. 複数案が生成されるので選択

API経由(Python)

from openai import OpenAI
client = OpenAI()

response = client.images.edit(
  model="dall-e-2",  # DALL-E 3は未対応、2のみ
  image=open("photo.png", "rb"),
  mask=open("mask.png", "rb"),
  prompt="a sunflower in the center",
  n=1,
  size="1024x1024"
)

4. その他のツール

ツール 特徴 価格 適用シーン
ClipDrop ブラウザで完結、簡単操作 無料/月$9 簡易的な不要物除去
Runway ML 動画インペインティング対応 月$12- 動画編集
LaMa(オープンソース) 高速、不要物除去特化 無料 写真のクリーンアップ

実践的なインペインティングテクニック

1. マスク作成のコツ

境界のぼかし(Feathering)
– Photoshop: 選択とマスクで「ぼかし」を5-10px
– SD WebUI: “Inpaint area” → “Only masked” + Padding 32px

複雑な形状の選択
– オブジェクト選択ツール(AI自動選択)を活用
– 髪の毛など細かい部分は「選択とマスク」で境界調整
– SD WebUIではControlNet Segmentationで自動マスク生成

2. Stable Diffusionでの高品質化

ControlNet併用

ControlNetのInpaintモデルを使うと、構造を維持しやすくなります。

  1. Extensions → ControlNet → Enable
  2. Preprocessor: “inpaint_global_harmonious”
  3. Model: “control_v11p_sd15_inpaint”
  4. Control Weight: 0.8-1.0

プロンプトエンジニアリング

Prompt: a realistic wooden chair, studio lighting, high detail
Negative: blurry, low quality, artifacts, distorted, deformed
  • 元画像のスタイルを維持するキーワードを追加(”photorealistic”、”anime style” 等)
  • “same style as the original image” を追加

3. Outpainting(範囲拡張)

画像の外側を拡張する技術。Stable DiffusionのOutpaintingスクリプトで実現できます。

手順

  1. img2img → Outpainting (Script選択)
  2. Pixels to expand: 128-256(拡張幅)
  3. Mask blur: 16-32
  4. Denoising: 0.7-0.9(新規部分の生成度)

用途
– 縦長写真を横長に拡張
– トリミングした画像の復元
– パノラマ風景の作成

4. 高度なテクニック:複数回インペインティング

1回で完璧な結果を得るのは難しいため、段階的に調整します。

1回目: 大まかな形状を生成(Denoising 0.8)
2回目: ディテール追加(Denoising 0.4、マスクを縮小)
3回目: 境界をぼかす(Denoising 0.2)

トラブルシューティング

境界が不自然(接続部分が目立つ)

原因: マスクの境界が急激すぎる

対策
– Photoshop: マスクの境界を「ぼかし」10-20px
– SD: “Mask blur” を16-32に設定
– “Only masked” + Padding 64px で周辺も含めて再生成

色調が合わない

原因: 生成部分が元画像と異なる照明・色温度

対策
– Photoshop: 色調補正レイヤー(色相・彩度、トーンカーブ)で調整
– SD: プロンプトに “same lighting as original” を追加
– ControlNetのTileモデルで色調統一

意図しないオブジェクトが生成される

原因: プロンプトの曖昧さ、学習データのバイアス

対策
– Negative promptを強化(”人物, text, watermark” 等)
– CFG Scaleを下げる(7以下)
– Seedを固定して複数回試行

商用利用の注意点

ツール 商用利用 注意事項
Photoshop Generative Fill Adobe Stockで販売可能
Stable Diffusion モデル依存 SD1.5/SDXLは可、学習データの権利確認必須
DALL-E 3 OpenAI利用規約に準拠
ClipDrop 有料プラン必須

FAQ

Q1. Photoshopのインペインティングとステレーション Diffusionの違いは何ですか?

Photoshopは商用利用が明確で、UI/UX が直感的ですが、生成の自由度はStable Diffusionが上回ります。Stable Diffusionはカスタムモデル(アニメ、特殊スタイル)に対応でき、ControlNetで構造を細かく制御できます。プロジェクトの規模・スタイル・予算に応じて選択してください。

Q2. マスクはどの程度正確に作成すべきですか?

境界が重要な部分(顔、建物の輪郭等)は正確に作成し、背景など曖昧な部分は大まかで構いません。SD WebUIの “Inpaint at full resolution” を有効にすると、マスク領域のみ高解像度で処理されるため、精度が向上します。

Q3. インペインティングで顔を修正すると不自然になります

顔は人間が違和感を感じやすい部分です。Stable DiffusionではControlNetのOpenPoseまたはCannyで骨格を維持し、After Detailerで顔を優先的に修正してください。Photoshopの場合、Neural Filtersの「スマートポートレート」と併用すると自然になります。

Q4. 無料で高品質なインペインティングを行う方法は?

Stable Diffusion(AUTOMATIC1111)+ ControlNet + Inpaint専用モデルの組み合わせが最も高品質です。GPUがない場合、Google ColabやRunpod等のクラウドGPUサービス(時間$0.2-0.5)を利用できます。ClipDropの無料枠も日常的な用途には十分です。

関連記事

出典

コメント