指定したデザインのキャラクターを描画生成する方法を検証します。
今回は人型でないキャラクターで検証します。また、IP-Adapterを利用する方式です。
指定したデザインのキャラクターを画面内に描画したい場合があります。
LoRAを利用してキャラクターを学習させる方法が一般的ですが、学習が面倒なこともあり、今回はIP-Adapterを利用して。
どの程度キャラクターが描画できるかを確認します。
以下の画像を準備します。
2キャラが椅子に座って会話しているシーンの下書きです。
2キャラのデザインです。
それぞれのキャラクターを適用させるマスクです。
[ControlNet Unit 0]には、全体のイメージの線画を設定します。ControlNetのモデルはCanny、Sketchなどいくつかのモデルを試します。
[ControlNet Unit 1]には、左のキャラクターのイメージを設定します。[Effective Region Mask]のチェックボックスをチェックし、マスク画像も設定します。Weightは0.9としています。
[ControlNet Unit 2]には、右のキャラクターのイメージを設定します。[Effective Region Mask]のチェックボックスをチェックし、マスク画像も設定します。Weightは0.9としています。
プロンプトは以下を利用します。
"control-lora-canny-rank256 [ec2dbbe4]"を利用した場合の結果です。Preprocessorは"softedge_anyline"、Weightは0.8としています。
"control-lora-sketch-rank256 [759a4f90]"を利用した場合の結果です。Preprocessorは"softedge_anyline"なし、Weightは0.8としています。
"CN-anytest_v3-25000_fp16 [36518430]"を利用した場合の結果です。Preprocessorはなし、Weightは0.8としています。
"CN-anytest_v3-50000_fp16 [0963df47]"を利用した場合の結果です。Preprocessorはなし、Weightは0.8としています。
"CN-anytest_v4-marged [4bb64990]"を利用した場合の結果です。Preprocessorはなし、Weightは0.8としています。
設定したキャラクターのデザインでのイメージは出力は狙い通りにできましたが、品質をもう少し上げたい印象です。
一般的にCannyやLineart系のContorolNetでは、細い線を入力したほうが良好な結果が出力できるため、細い線の画像を入力して結果を確認します。
ControlNet Unit 0の入力画像を下図の画像に変更します。
"control-lora-canny-rank256 [ec2dbbe4]"を利用した場合の結果です。Preprocessorは"softedge_anyline"、Weightは0.8としています。
"control-lora-sketch-rank256 [759a4f90]"を利用した場合の結果です。Preprocessorは"softedge_anyline"なし、Weightは0.8としています。
"CN-anytest_v3-25000_fp16 [36518430]"を利用した場合の結果です。Preprocessorはなし、Weightは0.8としています。
"CN-anytest_v3-50000_fp16 [0963df47]"を利用した場合の結果です。Preprocessorはなし、Weightは0.8としています。
"CN-anytest_v4-marged [4bb64990]"を利用した場合の結果です。Preprocessorはなし、Weightは0.8としています。
入力の線を細くしたことで、品質が若干上がった印象です。
モデルを Aing Diffusion XL 1.4に変更し、"CN-anytest_v4-marged [4bb64990]"を利用した場合の結果です。Preprocessorはなし、Weightは0.8としています。
プロンプトは以下を利用しています。
イメージに近い出力になっている印象ですが、品質的にはもう一歩という印象です。IP-Adapterを利用した方式ではここまでかもしれません。