2025年6月1日日曜日

stable-diffusion-webui で使えるテクニック個人的まとめ

stable-diffusion-webui で使えるテクニック個人的まとめ

概要

プロンプトやらモデルやら拡張やら駆使し「自分がほしい画像を出力する」ためのテクニックを紹介します

環境

  • macOS 15.4.1
  • stable-diffusion-webui-forge f2.0.1v1.10.1-previous-663-g17a42e58

プロンプト作成の必須要素

  • ベース (クオリティ、おまじない)
    • masterpiece, best quality, ultra-detailed, 8k, cinematic lighting など
  • 性別 (男性 or 女性)
  • ポージング (向き)
  • 髪型/髪色
  • 表情
  • 背景
  • 服装

あとは必要に応じておまけ要素を追加すればだいたいの場合は思ったケースが出力できるはずです
個人的にはこれら要素がプロンプトには必須だと考えています

ChatGPT との組み合わせ

プロンプトは基本的に英語で記載します
正直よくわからない言葉が並ぶのですべてを使いこなすのは不可能です
てっとり速くプロンプトを作成するために ChatGPT にプロンプトを作成してもらうのはかなりいい手法です
そのプロンプトをベースにカスタムしていけば割と簡単に良さげな画像を作成することが可能です

モデルの選定

もしかするとプロンプトの選定よりもモデルの選定のほうが重要かもしれません
プロンプトが同じでモデルを変えるだけで思った画像が一発で出力されることもあります

モデルの探し方

基本的にはググったりして見つけます
Civitai などあれば検索したりカテゴリや作成してみたい画像からモデルを見つけることもできます
あとは定番のモデルなどもあるのでそういったモデルを使うのも手です

ガチャテクニック

X/Y/Z plot を使ってステップ数や CFG スケールを組み合わせてガチャするといろんなパターンが一度で出力できます

  • X -> steps
  • Y -> CFG scale

Batch Count は 1 にしましょう
こうすることで X で指定したステップの範囲 x Y で指定した CFG scale の範囲分画像が生成されます
例えば Steps を 4-16、CFG scale を 2-4 にすると 13 x 3 = 39 枚の画像が一度の生成命令で作成することができます

1 枚の絵を仕上げる方法

いい感じの画像を出力できたらが少し手の形が微妙などのときに使える手法です
こちらの動画が参考になります
基本的な流れは

  1. 画像ガチャ
  2. シードを固定しステップ数変えて更にいいやつ選ぶ
  3. ハイレゾでアップスケール

3 は必須ではないですが仕上げの手法として知っておいて損はないかなと思います
また 3 は処理的に結構重いです

増減させるステップ数は元のステップから前後5くらいがいいかなと思います
1 回でいい絵が出なければまたベースイメージを選択して生成すればいい感じに近づきます

ControlNet: 好きなポーズにしたい

プロンプトだけでも頑張れますが ControlNet の OpenPose や Canny を使うと簡単にできるケースがあります
OpenPose の場合は

  • 好きなポーズの画像を探してくる
  • 棒人間を抽出
  • 棒人間を元に画像を生成

Canny の場合は

  • 好きなポーズの画像を探してくる
  • 線画を抽出
  • 線画を元に画像を生成

になります
違うは OpenPose のほうが柔軟にポーズを調整できます
Canny の場合は線画になるので衣服や輪郭、背景なども参照されるのでほぼ同じ画像ができあがることがあります

OpenPose も Canny も抽出用のモデルが必要になるので注意しましょう
モデルは https://huggingface.co/lllyasviel/sd_control_collection にあります

参考URL

ControlNet: 同じ顔で違うポーズにしたい

Reference Only を使います
Reference Only はモデルを使わないので簡単に使えます

参考URL

ControlNet: 顔だけ変えたい

ADetailer を使います
表情を変更したい場合に簡単にできます

参考URL

ちなみに ADetailer 自体は顔以外のパーツでもピンポイントで変更できます
手の修正はこちらが参考になります (hand_yolov8n.pt + depth_hand_refiner)

ADetailer やハイレゾ変換でよく出てくるパラメータが「Inpaint denoising strength」というノイズ調整するためのパラメータですがこの値は「値が大きいほど元画像を無視して生成する、値が小さいほど元画像を保持しつつ修正する」というパラメータになります
元の画像がそもそも崩れている(手がそもそも崩れている)場合には値を大きくして全然違う手を生成いしてもらうなどの使い方ができます

最後に

今回紹介した手法は Stable diffusion WebUI で使える機能のうちの一つです
もっとたくさんの機能を覚えて使えるようになれば自分の作りたい画像をもっと速く作成することができるようになると思います

0 件のコメント:

コメントを投稿