Stable Diffusion ADetailer 顔修正の使い方と設定値

Stable Diffusion ADetailer 顔修正の使い方と設定値

※本記事にはプロモーション(広告・アフィリエイトリンク)を含みます。

Stable Diffusionで人物を生成すると、全体の構図は良くても顔だけが崩れてしまうことがあります。ADetailer(After Detailer)は顔・手などを自動検出してその領域だけをインペイントで修正するWebUI拡張機能です。この記事では、インストールから主要パラメータの意味・API経由での使い方まで、手順を追って解説します。

ADetailerが必要になる場面

Stable Diffusionは画像全体をまとめて生成するため、顔が画像内で小さかったり遠景に配置されていたりすると、顔のディテールに割り当てられる情報量が少なくなり崩れやすくなります。Hires fixで解像度を上げる方法もありますが、VRAMの消費が大きくなるため環境を選びます。

ADetailerはYOLOベースの物体検出モデルで顔・手・人物などの領域を検出し、その矩形部分だけをimg2imgで再処理します。背景には手を加えないため、全体のスタイルを維持しつつ顔の品質だけを改善できます。

姿勢を先に固定してから顔を仕上げたい場合は、ControlNetのOpenPoseで骨格を指定したうえでADetailerをかけると効果的です。

インストール手順

WebUIの「Extensions」タブからインストールします。

  1. 「Extensions」→「Install from URL」タブを開く
  2. 以下のURLを入力して「Install」をクリック
https://github.com/Bing-su/adetailer
  1. 「Installed」タブに移動し「Apply and restart UI」をクリック
  2. 再起動後、txt2img・img2imgの設定パネルに「ADetailer」の折りたたみセクションが追加される

「Available」タブの検索欄に「adetailer」と入力してインストールすることも可能です。WebUIのバージョンによっては表示名が異なる場合があります(環境によって異なります)。

設定パラメータを理解する

検出モデルの選択

ADetailerには複数の検出モデルが同梱されています(執筆時点)。

モデル名 検出対象 用途
face_yolov8n.pt 顔 軽量・高速。最初の選択肢
face_yolov8s.pt 顔 nよりやや精度が高い
hand_yolov8n.pt 手 手の崩れ修正
mediapipe_face_full.pt 顔 横顔・俯き角度に対応
person_yolov8n-seg.pt 人物全体 セグメンテーション用

顔修正が目的なら face_yolov8n.pt から始め、検出漏れが多ければ face_yolov8s.pt または mediapipe_face_full.pt に切り替えます。

調整が必要な主要パラメータ

Confidence threshold(検出しきい値)
デフォルトは 0.3(公式READMEに記載)。値を下げると小さな顔も拾いますが誤検出が増えます。複数人物が含まれるシーンでは 0.3 のまま使い始め、誤検出が出たら 0.5 前後に上げます。

Mask blur
検出領域の境界をぼかすピクセル幅。デフォルトは 4。小さいと境界が目立ち、大きすぎると輪郭がにじみます。4〜8 の範囲を目安に調整するとよいでしょう。

Mask padding
マスクを上下左右に拡張するピクセル数。顔が検出領域からはみ出る場合にこの値を増やします。

Denoising strength
再生成の変化量。0 で変化なし、1 で完全に再生成されます。顔修正の出発点として 0.3〜0.5 を目安にするとよいとされています。高すぎると全体のスタイルと顔が乖離しやすくなります。

Inpaint only masked
オンにすると検出領域だけをフル解像度で処理します。オフだと画像全体を縮小してインペイントするため、小さい顔の修正精度が落ちます。顔修正ではオンが有効なケースが多いとされています。

ADetailer専用プロンプト

ADetailerには専用のプロンプト欄があります。空のままにすると元のプロンプトが引き継がれます。顔の品質を明示したい場合の例:

highly detailed face, perfect eyes, clear iris, sharp focus

ネガティブプロンプトの例:

bad eyes, asymmetrical eyes, deformed face, blurry, low quality

効果はベースモデルやLoRAに依存するため、実際に生成して確認しながら調整してください。

よくある問題と対処法

顔が検出されない
顔が小さい・横向き・俯き角度の場合に起こりやすいです。mediapipe_face_full.pt に切り替えるか、Confidence thresholdを 0.2 前後に下げてみます。

再生成後に顔だけ浮いて見える
Denoising strengthが高い場合に起こりやすいです。0.3 以下に下げ、ADetailer専用プロンプトを元のプロンプトに近い内容にします。Mask blurを 8〜12 に増やすと境界がなじみやすくなることがあります。

処理時間が長い
顔の数だけ追加でimg2imgが実行されるため、人物が多いほど時間がかかります。検出モデルを face_yolov8n.pt にし、ADetailer側のSteps数を減らすことで短縮できます。

VRAMが不足する
ADetailerは通常の生成に加えてインペイント処理を行うため、VRAMの消費が増えます。高解像度(1280px以上)での使用や複数の検出モデルを同時に有効にする場合は注意が必要です。ComfyUIでのVRAM管理設定も参考にしてください。

API経由での利用

Stable Diffusion WebUIを --api オプション付きで起動している場合、ADetailerのパラメータはtxt2imgリクエストボディの alwayson_scripts キーとして渡します。

{
  "prompt": "1girl, portrait, upper body",
  "steps": 20,
  "width": 512,
  "height": 768,
  "alwayson_scripts": {
    "adetailer": {
      "args": [
        true,
        false,
        {
          "ad_model": "face_yolov8n.pt",
          "ad_confidence": 0.3,
          "ad_mask_blur": 4,
          "ad_denoising_strength": 0.4,
          "ad_inpaint_only_masked": true,
          "ad_prompt": "",
          "ad_negative_prompt": ""
        }
      ]
    }
  }
}

args 配列の第1要素(true)がADetailerの有効化フラグです。第2要素はUI上のプレビュー表示フラグです。パラメータ名はバージョンによって変わることがあるため、動作しない場合は公式リポジトリのChangelogを確認してください(環境によって異なります)。

まとめ

ADetailerで顔修正を始めるなら、まず face_yolov8n.pt + Denoising strength 0.4 + Inpaint only masked オン の組み合わせから試してください。検出漏れがあれば検出モデルを変更し、変化が強すぎればDenoising strengthを下げる——この2点を中心に調整すれば多くの場合、改善が見込めます。設定は一度に複数変えず、1項目ずつ確認するのが効率的な方法です。

この記事で触れたもの

よくある質問

ADetailerはComfyUIでも使えますか?

ADetailerはAutomatic1111 WebUIおよびForge向けの拡張機能です。ComfyUI向けにはFaceDetailerなど別のノードが存在します。機能は似ていますが設定方法が異なるため、ComfyUIを使っている場合は専用のノードを探してください。

ADetailerを使うとVRAM消費は増えますか?

はい、増えます。通常の生成に加えて物体検出とインペイント処理が加わるためです。高解像度(1280px以上)での使用や複数の検出モデルを同時に有効にする場合は特に注意が必要です。

Denoising strengthはどのくらいが適切ですか?

顔修正の場合は0.3〜0.5が扱いやすい範囲です。高すぎると全体のスタイルから顔が浮いて見えます。0.4から始めて、変化が強すぎれば下げ、効果が薄ければ上げながら調整してください。