WD1.5 Beta2はStable Diffusion2.1をベースにアジア圏の実写やアニメ1500万枚以上から学習した高画質な画像が生成できるモデルです。これまでの多くのモデルは、NovelAIからリークしたモデルを含んでいる可能性もあるとも言われ、倫理上問題があるといわれていました。一方、WD1.5モデルはStable Diffusion2.1をベースとして、新たに学習し直したモデルであり、本モデルは、「the Fair AI Public License 1.0-SD」の元、自由な使用が許諾され、商用利用も認められています。今回、WD1.5 BetaとAUTOMATIC1111のWebUI、ControlNetを組み合わせて、高画質の生成環境を構築していきます。本記事は、以前のWD1.5Beta2の記事にControlNet対応を追加したアップデート記事です。
WD1.5 Beta 2の概要
WD1.5 Beta 2はStable Diffusion 2.1から直接トレーニングしたモデルで、他のプロジェクトからのモデルのマージを含んでいません。Aestheticバージョンはさらに微調整を加えて、美しい画像が生成できるようにしています。また、画像の特徴や属性でのタグ付けやAestheticな属性がキャプションとして付加されていることにより、比較的、目的のスタイルを生成しやすくなっています。
現在、モデルとしては通常版とAestheticバージョン、Frost Aestheticバージョンの3種類があります。
公式リリースノート
WD 1.5 Beta 2 – Release Notes
WD 1.5 Beta 2 – Frosty Aesthetic Ver.
画像の生成例:
WebUIのインストール
WebUIのインストールは下の記事をご参考におこなってください。
また、すでにWebUIをインストールしている場合も、最新のAUTOMATIC1111にアップデートすることを推奨します。
WD1.5 Beta2モデルの導入
WD1.5 Beta2モデルはHuggingFaceからダウンロードします。このフォルダの中のモデルがあります。ここではfp16版をインストールします。fp16版とfp32版はfp32版の方がサイズが大きいので、そちらの方が良いと思っていましたが、容量を食って、計算が遅いだけで、fp16版で十分のようです。今回は、比較もしたいので、以下のファイルをダウンロードします。
wd-1-5-beta2-aesthetic-fp16.safetensors
wd-1-5-beta2-aesthetic-fp32.safetensors
wd-1-5-beta2-fp16.safetensors
wd-1-5-beta2-fp32.safetensors
この4つのファイルをWebUIの中の「\stable-diffusion-webui\models」のフォルダ中にコピーします。
また、このフォルダから、「wd15-beta2-frosty-aesthetic-fp32.safetensors」をダウンロードして、「\stable-diffusion-webui\models」にコピーします。
また、このフォルダの中の「kl-f8-anime2 .ckpt」をダウンロードして、「\stable-diffusion-webui\models\VAE」のフォルダの中にコピーします。
WD1.5 Beta2での画像生成
それではwebUIを起動して画像を生成してみます。
> ./webui-user.bat
webUIを起動するには、webui-users.batをダブルクリックするか、コマンドプロンプトなどで実行します。「webui-user.bat」は「stable-diffusion-webui」のフォルダの直下あります。実行すると、「models」フォルダにコピーしたモデルファイルは「models\Stable-diffusion」に自動的に取り込まれます。(参考記事:Stable Diffusion WebUIのカスタム設定)
続いて、設定をします。webUIが起動したら、左上の「Stable Diffusion checkpoint」で、WD1.5のモデルの「wd-1-5-beta2-aesthetic-fp16.safetensors」を選択します。モデルの読み込みが終わったら、「Setting」のタグから、「Stable Diffusion」のメニューを表示して、「SD VAE」で「kl-f8-anime2 .ckpt」を選択し、「Apply settings」のボタンを押して、設定を反映させます。
これで準備ができたので、「txt2img」で画像を生成してみましょう。WD1.5 Beta2ではプロンプトの設定に少し癖があります。公式リリースの情報に従って、設定します。
タグには学習元の情報に基づく以下のプロンプトが使えます。
・投稿日 1995年~2010年:oldest、2010年~2015年:old、2015年~2020年:new、2020年以降:newest
・アーティスティックスタイルのスコア exceptional>best aesthetic>normal aesthetic>bad aesthetic
・投稿サイトのユーザー評価 masterpiece>best quality>high quality>medium quality>normal quality>low quality>worst quality
・画像分類 削除された画像:deleted、理想の女性像:waifu、実写:real life、アニメ:anime、インスタ:instagram
プロンプトには以下のものを後ろに追加するとよいようです。
アニメ絵の場合
(waifu, anime, exceptional, best aesthetic, new, newest, best quality, masterpiece, extremely detailed:1.2)
実写の場合
(waifu, realistic, real life, exceptional, best aesthetic, new, newest, best quality, masterpiece:1.2)
また、ネガティブプロンプトには以下のプロンプトを入れておいた方が無難でしょう。
lowres, ((bad anatomy)), ((bad hands)), text, missing finger, extra digits, fewer digits, blurry, ((mutated hands and fingers)), (poorly drawn face), ((mutation)), ((deformed face)), (ugly), ((bad proportions)), ((extra limbs)), extra face, (double head), (extra head), ((extra feet)), monster, logo, cropped, worst quality, jpeg, humpbacked, long body, long neck, ((jpeg artifacts)), deleted, old, oldest, ((censored)), ((bad aesthetic)), (mosaic censoring, bar censor, blur censor)
1girl, solo, highschool uniform, blonde hair, long hair, sun hat, beach, ocean view, smile, blushing, looking happy, enjoying the sea breeze, seagulls, waves, sand, clear sky, summertime, (waifu, anime, exceptional, best aesthetic, new, newest, best quality, masterpiece, extremely detailed:1.2) Negative prompt: lowres, ((bad anatomy)), ((bad hands)), text, missing finger, extra digits, fewer digits, blurry, ((mutated hands and fingers)), (poorly drawn face), ((mutation)), ((deformed face)), (ugly), ((bad proportions)), ((extra limbs)), extra face, (double head), (extra head), ((extra feet)), monster, logo, cropped, worst quality, jpeg, humpbacked, long body, long neck, ((jpeg artifacts)), deleted, old, oldest, ((censored)), ((bad aesthetic)), (mosaic censoring, bar censor, blur censor) Steps: 20, Sampler: DPM++ SDE Karras, CFG scale: 8, Seed: 1, Size: 800x640, Model hash: 96fc8b5de4, Model: wd-1-5-beta2-aesthetic-fp16
画像生成でエラーが起こる場合
以下のエラーが起こる場合、メッセージに従って、「settings」→「Stable-diffusion」の「Upcast cross attention layer to float32」にチェックを入れるとよいようです。
modules.devices.NansException: A tensor with all NaNs was produced in Unet. This could be either because there's not enough precision to represent the picture, or because your video card does not support half type. Try setting the "Upcast cross attention layer to float32" option in Settings > Stable Diffusion or using the --no-half commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check.
ただ、fp16のモデルを使う場合は、チェックを外した方が計算が早くなると思います。
モデルの比較
各モデルの比較を3パターンで示します。fp16とfp32は全く差が分かりません。基本軽量のfp16を使う方がよさそうです。ノーマル版とAesthetic版では、Aesthetic版の影や質感が美しいです。どちらが良いかというと、そこは好みが分かれるところかもしれませんし、生成したい画像によるのかもしれません。Frosty-aesthetic版はほぼ実写ですね。
WD1.5 Beta2版ControlNetのインストール
ControlNet拡張機能のインストールについては、こちらの記事をご参照ください。(参考:Stable Diffusion、WebUI、ControlNetでポーズ指定画像生成をWindowsローカル環境に実装)
WD1.5版のControlNetのモデルは以下のアドレスからダウンロードできます。2023年3月11日現在、cannyとpose、depthの3種類のモデルが公開されています。
diff_control_wd15beta2_canny.safetensors
diff_control_wd15beta2_depth.safetensors
diff_control_wd15beta2_pose.safetensors
上記の3つのファイルをダウンロードして、「\stable-diffusion-webui\extensions\sd-webui-controlnet\models」に入れて、WebUIを再起動するとControlNetに追加されています。
WD1.5 Beta2版ControlNetを使ってみる
WD1.5 Beta2でControlNetを使うときは、Modelで前項でインストールしたdiff_control_wd15beta2のモデルを使わなければいけないところ以外は同じです。
diff_control_wd15beta2_canny
画像から生成する場合はPreprocessorにcannyを選択し、Modelにdiff_control_wd15beta2_cannyを選択します。txt2imgでもimg2imgでも、どちらでも使えます。
diff_control_wd15beta2_depth
実写からアニメ絵の生成をしてみます。元画像はぱくたそ様の『ハッピーで埋め尽くす笑顔の嫁』を使わせていただきます。(元画像は左上)
img2imgでProcessorにdepth_leren、Modelにdiff_control_wd15beta2_depthを使いました。
diff_control_wd15beta2_pose
OpenPose Editorで生成したPoseから画像を生成してみます。
終わりに
今回、WD1.5 Beta2を紹介しました。Beta版ですが、すでに完成版レベルの完成度はあります。ControlNetにも対応できるようになったのはうれしいですね。
もし、わからない点があれば、私の勉強にもなるので、投稿フォームからご質問いただけたらと思います。
【広告】Stable Diffusionをするなら、GPU搭載のPCがおススメです。自作もよいけど、難しい人はBTOのPCもおすすめです。
コメント