見出し画像

【stable diffusion】ChilloutMixを実写寄りにするマージ方法

こんばんは!
stable diffusionを使用して日本で最もリアルな絵を作成しているハイパーリアリズムAIArtistのkenです。

今回は巷で人気のモデル「ChilloutMix」に他のモデルをマージし、可愛さを維持したままよりリアルな絵を出力できるようにする方法を紹介したいと思います。

※モデルマージのやり方等については「ChilloutMix」を使用している読者の方には今更説明するまでもないと思いますので割愛させていただきます。

なお「ChilloutMix」は商用禁止モデルとなっているため、本記事では(べつに有料記事では無いので使っても問題無さそうですが)ジェネリック版として作成された類似モデルである「chilled_re-generic_v3」をベースにマージしていきます。(いきなりタイトル詐欺…)

「ChilloutMix」、「chilled_re-generic_v3」どちらにも有効な方法なので用途に応じてお好きなほうを改良してみてください。

モデルマージ後の変化を見るため、各段階ごとに下記の設定で、同一プロンプト、同一seedの画像を出力していきます。

Ultra-high quality photos, (Extremely detailed), RAW photo, best quality, highres, realistic, (beautiful detailed face and eyes:1.2), (photorealistic:1.4), ultra high res, hyperrealistic, caustics, Core shadow, dynamic light, (highly detailed pupil:1.2),
a portrait of 1girl, teen age, solo, (wear a school uniform, blazer:1.1), light brown hair, short bob cut hair, brown eyes,
(upper body:1.2), closed mouth, sitting chair, front view,
indoors, in the classroom, desk, chair, window, black board,

Negative prompt:
paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), (monochrome), (grayscale), easynegative

Steps: 15, Sampler: Euler a, CFG scale: 7, Seed: 2790127611, Size: 384x384, Model hash: bdb01d8f59, Model: chilledre, Denoising strength: 0.75, Hires upscale: 2, Hires steps: 40, Hires upscaler: R-ESRGAN 4x+

まずはマージ前の「chilled_re-generic_v3」での出力

chilled_re-generic_v3

解像度を上げたりプロンプトを工夫すればもう少しリアルに出来るかもしれませんが僕の環境ではこんな感じ。よくできた絵という感じで実在の人物を写した写真には見えないですね。

目標は実写と同じレベルの絵を出力できるようにすることなので、早速、モデルの改造をしていきます。事前準備として下記モデルをダウンロードしてください。※今回使用するモデルにはNSFWモデルも含まれる為、ダウンロード先のリンクを貼るのは控えますが、普通に公開されているモデルなので検索すれば簡単に見つかると思います。

・使用モデル一覧
chilled_re-generic_v3
sxd
Subreddit V3
El Zipang_test1.3
test_no_zipang

手順その①

今回はリアル寄りにするので基本的に、二次元モデル等がミックスされていない、写真を学習素材としたモデルをマージしていきます。

まずは「sxd」というsd1.x系モデルをベースに色々な写真で学習されたリアル系モデルを混ぜます。

最初は階層マージで塗りの部分を上書きします。

chilled_re-generic_v3×sxd

ModelAに「chilled_re-generic_v3」、ModelBに「sxd」を選択し、上記画像のようにIN、OUTの上6か所を「1」下は「0」でマージします。
大雑把に説明すると上の方に「塗り」に関する情報があると言われている為、写真で学習した「sxd」の塗りを継承する感じです。

マージ後に出力した画像

chilled_re-generic_v3×sxd

肌の質感が変化しましたが、まだまだ「絵」に見えます。

手順その②

以降は「Checkpoint Merger」を使います。
手順①で作ったモデルにまた「sxd」を混ぜます。

c1

modelAとmodelCに手順①で作ったモデル、modelBに「sxd」を設定し、「Multiplier」を「0.3」、「Add difference」にチェックを入れ実行。マージ後のモデル名は空欄だと足されていってどんどん長くなる為「c1」としました。※以降c2、c3としていきます。

modelAとmodelCの両方にベースモデルを設定することでベースの特徴を維持しつつmodelBに設定したモデルの一部分だけ継承させる感じです。
理屈は分かりませんがmodelAとmodelBの2か所だけ設定した場合よりベースモデルの顔の部分が維持されるような気がするのでこの方法を使ってます。
c1の出力結果

c1

髪型が少し変わりました。画像を小さくするかモニターから10mくらい離れてみ見れば写真と見間違うかもしれない肌の質感になりましたね。

手順その③

c2

お次は
modelAに手順②で作った「c1」modelBに「Subreddit V3」、modelCにまた「sxd」を設定し、「Multiplier」を「0.15」、「Add difference」にチェックを入れ実行。「Subreddit V3」も写真で学習したモデルなので実写寄りの塗になりますが、部分に特化して学習されている為、強く入れすぎると絵が崩れがちになるのでちょっと足す程度がお勧めです。この手順は無くても良いのですが個人的な好みで入れてます。
c2の出力結果

c2

c1より若干肌がツルツルになって実写感薄れた気もします。

手順その④

Checkpoint Mergerのスクショを取り忘れましたが最後に、modelAに手順③で作った「c2」、modelBに「test_no_zipang」、modelCに「El Zipang_test1.3」を設定し、「Multiplier」を「0.4」、「Add difference」にチェックを入れ実行。zipang系のモデルも写真で学習されている為、混ぜることで塗りを実写寄りに出来ます。
※なお今回は「test_no_zipang」と「El Zipang_test1.3」を素のままではなくsxd等を混ぜた状態の物を使用した(新規にダウンロードするのが面倒だったので)為、素の状態でマージした場合と若干結果が異なります。ご注意ください。
c3の出力結果

c3

ぱっと見、写真と見間違う質感になりましたね。

実写に近づくにつれ可愛さも失われがちですが、手順②~④まででお好みの質感があれば是非今回ご紹介したマージ方法を試してみてください!

番外編

今回は「ChilloutMix」および「chilled_re-generic_v3」の可愛さを受け継いだまま実写風にするという試みでしが、僕が普段使用している可愛さよりリアルさを追求した2種類のモデルにて同じ設定で出力してみました。

「chilled_re-generic_v3」ベースでもマージ素材と配分を更に工夫すれば、可愛さを維持したまま写真風の絵が出力出来る可能性は十分あるので、これからも試行錯誤を繰り返しより良いモデルの作成に励んでいきたいと思います!


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