顔のみに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


画像を生成しました。
顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像1

こちらの画像が生成できました。画像が変化しないようにSeedを固定します。
顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像2

ADetailer (After Detailer)の設定

ADetailerのパネルを開き、[Enable ADetailer]のチェックボックスをクリックしてチェックをつけます。 ADetailer modelには顔検出の"face_yolov8n.pt"を選択します。 プロンプト欄には、作成したLoRAの呼び出しプロンプトを入力します。今回は、以下のプロンプトになりました。

ADetailerのプロンプト
Prompt:girl, <lora:作成したLoRA名:1>

顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像3

ADetailerを有効にした状態で画像生成します。
顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像4

LoRAの絵柄に似た顔になりました。
顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像5

なお、ADetailerのプロンプトを以下のプロンプトに変更し、 LoRAの適用度合いを大きくすると輪郭が溶けてしまうため、適用度は強くし過ぎないほうが良いです。

ADetailerのプロンプト
Prompt:girl, <lora:作成したLoRA名:2>

顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像6

調整

微調整して次のパラメータになりました。
顔の輪郭は元の画像の輪郭が強いため、"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


修正途中
顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像7
顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像8

修正版
顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像9
顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像10

生成された画像をimg2imgへ送り、ADetailerを有効にし、もう一度同じ設定で画像生成します。画像が大きく変化しないよう "Denoising strength"は0.2まで下げています。
顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像11

下図の画像が生成できました。2回適用するとLoRAの絵柄が強めに出てくる印象です。
顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像12

ペイントソフトで口を描いてとりあえず完成です。顔のペイントに対して衣類のペイントの立体感が強すぎるなど、課題はいくつかありますが、 顔の絵柄をコントロールすることはできました。
顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像13

今回は過学習のLoRAを利用しましたが、いろいろな表情を含めたLoRAを作成すれば、ADetailerのプロンプトで表情の変更も可能かもしれません。

参考:正面顔・横顔の他の角度での結果

正面顔

斜め顔1枚しかない過学習のLoRAを適用していますが、正面顔でもある程度までは絵柄を似せてくれます。

元の画像
元の画像 - 顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像14

ADetailer適用
ADetailer適用 - 顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像15

横顔

横顔は難しいと予想していましたが、こちらもLoRAに似せた絵柄での出力になりました。

元の画像
元の画像 - 顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像16

ADetailer適用
ADetailer適用 - 顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像17


1枚しかない画像のLoRAでも、それなりの結果が出力されました。

参考:Prodigyオプティマイザーで作成したLoRAを適用する

Prodigyオプティマイザーで過学習したLoRAを適用した場合の結果です。 ProdigyオプティマイザーでのLoRA作成はこちらの記事を参照してください。
今回はEpoch20のLoRAを利用します。

顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像18

顔のみに適用した結果は下図です。どちらも0.6の重みで適用しています。(img2imgでの2回目の生成はしていない状態です。)
ProdigyのLoRAのほうが学習元の絵柄の特徴が強めに出る傾向がわかります。

Prodigy Epoch20 LoRA適用
Prodigy Epoch20 LoRA適用 - 顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像19

AdamW Epoch16 LoRA適用
AdamW Epoch16 LoRA適用 - 顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像20

元画像
元画像 - 顔のみにLoRAを適用して顔の絵柄を変更する - ADetailerを使用:画像21

AuthorPortraitAlt
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。 最近は生成AIの画像生成の沼に沈んでいる。
作成日: 2024-01-02
Copyright © 1995–2025 iPentec all rights reserverd.