顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用
Stable Diffusionで顔のみにLoRAを適用して顔の絵柄を変更する方法を紹介します。
概要
Stable Diffusionを利用していろいろな画像を生成できますが、人物型のキャラクターをイラスト形式で出力した場合、
絵柄を調整したい場合があります。多くの公開されているモデルでは、キャラクターに華があり、きらびやかで魅力的なキャラクターが出力されますが、
素材等で利用する場合には、もう少し地味なキャラクターで画像を生成したい場合があります。
この記事では、顔のみにLoRAを適用して、顔の絵柄を調整する手順を紹介します。
事前準備
Stable Diffusion WebUI
Stable DiffusionとWebUIを導入します。今回はSDXL環境で実施します。
(手順の詳細は
こちらの記事を参照してください。)
ADetailer (After Detailer)
ADetailer (After Detailer)をインストールします。手順の詳細は
こちらの記事を参照してください。
LoRAの作成
顔に適用するLoRAを作成します。変更したい顔の絵柄のキャラクターの画像でLoRAを作成します。
今回は
こちらの記事で作成した、Epoch16のLoRAを利用します。過学習気味ですが、絵柄が強く出るのではとの期待があります。
手順
元の画像の生成
初めに作成したい画像を生成します。
今回は以下のプロンプトで作成します。
モデルはSDXLイラスト系のモデル"SDXL Yamer's Anime Unstable Illustrator Stage ENA" を利用しています。
プロンプト
Prompt:1girl, blue jacket, upper body, anime shading
Negative prompt:worst quality, low quality
画像を生成しました。
こちらの画像が生成できました。画像が変化しないようにSeedを固定します。
ADetailer (After Detailer)の設定
ADetailerのパネルを開き、[Enable ADetailer]のチェックボックスをクリックしてチェックをつけます。
ADetailer modelには顔検出の"face_yolov8n.pt"を選択します。
プロンプト欄には、作成したLoRAの呼び出しプロンプトを入力します。今回は、以下のプロンプトになりました。
ADetailerのプロンプト
Prompt:girl, <lora:作成したLoRA名:1>
ADetailerを有効にした状態で画像生成します。
LoRAの絵柄に似た顔になりました。
なお、ADetailerのプロンプトを以下のプロンプトに変更し、
LoRAの適用度合いを大きくすると輪郭が溶けてしまうため、適用度は強くし過ぎないほうが良いです。
ADetailerのプロンプト
Prompt:girl, <lora:作成したLoRA名:2>
調整
微調整して次のパラメータになりました。
顔の輪郭は元の画像の輪郭が強いため、"round face"を追加して、元の画像の顔を丸顔にしています。
また、まつ毛が残ってしまうため、ADetailerのNegative promptに"eyelashes"を追加しています。
プロンプト
Prompt:1girl, blue jacket, upper body, anime shading, round face,
Negative prompt:worst quality, low quality
ADetailerのプロンプト
Prompt:girl, closed mouth <lora:作成したLoRA名:0.6>
Negative prompt: eyelashes
修正途中
修正版
生成された画像をimg2imgへ送り、ADetailerを有効にし、もう一度同じ設定で画像生成します。画像が大きく変化しないよう
"Denoising strength"は0.2まで下げています。
下図の画像が生成できました。2回適用するとLoRAの絵柄が強めに出てくる印象です。
ペイントソフトで口を描いてとりあえず完成です。顔のペイントに対して衣類のペイントの立体感が強すぎるなど、課題はいくつかありますが、
顔の絵柄をコントロールすることはできました。
今回は過学習のLoRAを利用しましたが、いろいろな表情を含めたLoRAを作成すれば、ADetailerのプロンプトで表情の変更も可能かもしれません。
参考:正面顔・横顔の他の角度での結果
正面顔
斜め顔1枚しかない過学習のLoRAを適用していますが、正面顔でもある程度までは絵柄を似せてくれます。
横顔
横顔は難しいと予想していましたが、こちらもLoRAに似せた絵柄での出力になりました。
1枚しかない画像のLoRAでも、それなりの結果が出力されました。
参考:Prodigyオプティマイザーで作成したLoRAを適用する
Prodigyオプティマイザーで過学習したLoRAを適用した場合の結果です。
ProdigyオプティマイザーでのLoRA作成は
こちらの記事を参照してください。
今回はEpoch20のLoRAを利用します。
顔のみに適用した結果は下図です。どちらも0.6の重みで適用しています。(img2imgでの2回目の生成はしていない状態です。)
ProdigyのLoRAのほうが学習元の絵柄の特徴が強めに出る傾向がわかります。
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。