見出し画像

【StableDiffusion】崩れがちな全身を綺麗に高画質化して、安定して生成する方法


1. はじめに


こんにちは。りょうちんです。


StableDiffusionで全身を描くとき、顔が崩れたり、拡大すると構図が崩れることありませんか??


せっかく全身を描けたと思ったら、
「顔がガチャってる…」ってことがよく起こります。


こんな感じ↓↓↓


運よく生成できたとしても、高画質化すると
「指が増えてる…」
「足が変になってる…」


と挫折して泣く泣く上半身に切り替えることに…


そこでこの記事では、全身を安定して綺麗に生成する方法をご紹介していきます!


この記事を読めば、顔がおかしくなったりせずに高画質な全身画像を作ることができます。






2. 設定と手順



2.1 モデル


Google Colabを利用。
まだ構築していない方は、こちらで解説しています。↓↓↓



今回使うモデルはBra5を使っていきます。

ダウンロードコード↓↓↓

# Brav5ダウンロード
!wget https://civitai.com/api/download/models/63786 -O /content/stable-diffusion-webui/models/Stable-diffusion/bra.safetensors



LoRAは、add_detailを使用。

ダウンロードコード↓↓↓

!wget https://huggingface.co/OedoSoldier/detail-tweaker-lora/resolve/main/add_detail.safetensors -O /content/stable-diffusion-webui/models/Lora/add_detail.safetensors






2.2 プロンプトと詳細設定


今回使うプロンプトはこちら↓↓↓

ポジティブプロンプト
(8k, RAW photo, best quality, masterpiece:1.2), ultra detailed, ultra high res, (realistic, photo realistic:1.37), professional photograph, (full body:1.5), standing, 1 girl, beautiful japanese woman, detailed face, detailed eyes, beautifully eyes, pale skin, chubby:1.3, (large breasts:1.3), smile:1.2, (cafeteria, tokyo), high neck, tight knit sweater, sleeveless, mini-skirt, high heels, detailed background,<lora:add_detail:1>


ネガティブプロンプト
EasyNegative, (worst quality:2), (low quality:2), (normal quality:2), lowers, normal quality, (monochrome:1.2), (grayscale:1.2),skin spots, acnes, skin blemishes, age spot, ugly face, glans, fat, missing fingers, extra fingers, extra arms, extra legs, watermark, text, error, blurry, jpeg artifacts, cropped, bad anatomy, double navel, muscle, nsfw, nude, nipple, hair ornaments, cleavage, selfie,

コピペOKですので、自分好みに変更して使ってください!


詳細設定はこちら↓↓↓

Sampling method : DPM++ SDE Karras
Sampling steps : 25
Width : 400
Height : 712
CFG Scale : 7
Seed : 4179469715
Clip skip : 1


これで一旦、生成していきます。



当然、この設定で生成しても顔が崩れます。


次で、顔を綺麗にするADetailerを使っていきます。






2.3 ADetailer


ADetailerとは、StableDiffusionの顔や手を修正してくれる拡張機能です。


こちらから入手できます。

ダウンロードコードはこちら↓↓↓

# adetailerインストール
!git clone https://github.com/Bing-su/adetailer.git /content/stable-diffusion-webui/extensions/adetailer


使い方は、

まず、Enable(有効化)にチェックを入れます。
※使わない時はチェックを外すことを忘れずに!


ADetailer modelは、mediapipe_face_fullを選択。


モデルについて軽く解説しておきます。

face_yolov8n.pt : イラスト系の顔
face_yolov8s.pt : イラスト系の顔
hand_yolov8n.pt : 手
person_yolov8n-seg.pt : 体全体
person_yolov8s-seg.pt : 体全体
mediapipe_face_full : 実写系の顔
mediapipe_face_short : 実写系の顔
mediapipe_face_mesh : 実写系の顔


顔の他に手も修正したい場合は、2ndで追加しましょう。


プロンプトは、表情を指定する場合に設定できます。


基本は、この設定だけで十分綺麗になるので、今回はこの設定だけで。
詳しい解説は割愛させていただきます。






2.4 Hires.fix


顔の修正は、ADetailerで設定できましたので、最後に拡大(高画質化)していきます。


Hires.fixの設定はこちら↓↓↓

Upscaler : ESRGAN_4x
Hires steps : 10
Denoising strength : 0.5 
Upscale by : 2 (2倍)


Upscalerに関しては、お好みのモデルでOKです。
筆者は、Latent、ESRGAN_4xあたりをよく使ってます。


Hires stepsは、10~15程度を推奨。
高めに設定すると崩れます。


Denoising strengthが一番重要です。
デフォルトでは、0.7ですが低めに設定することを推奨。
高めに設定するほど、新しい書き込みが増えるので、指や足が増えたり、
服装などが変わってしまいます。


Hires.fixの設定は以上です。





2.5 生成する手順


手順は以下のように行います。
(あくまでも筆者のやり方ですので絶対ではありません。)


1. ADetailerとHires.fixは使わずに、普通に生成する。

↓
2. 気に入った画像が出たらシード値を固定


3. ADetailerとHires.fixを設定して生成する


4. 完成


1枚目を普通に生成する理由は、ガチャ回す回転率を上げるため。
この時、顔や指が崩れても気にしなくてOKです。


気に入った画像が出たら、シード値を固定します。


固定したら、ADetailerとhires.fixを上記のように設定して有効化。
両方使うので、生成時間は少し長くかかります。30秒〜40秒くらい


これで、生成すれば高画質な全身画像を作ることができます!




3. いざ生成していく



↓↓↓




↓↓↓



いかがだったでしょうか??
これで、もう悩まず全身画像を生成することができますね!


参考になったら、いいね・フォローお待ちしております!


さらに腕を上げたい方は、こちらの記事で詳しく解説しています↓↓↓


この記事が気に入ったらサポートをしてみませんか?