Waifu Diffusion 1.4+αを試してみた

目次

 

 

初めに

 

 最近、WD 1.4が公開されて、ようやく試せる環境になったので、早速試してみたという記事です。この記事は画像が大量にあるので注意して下さい。

 また、Civitaiというモデル共有サイトの存在を知ったので、公開されている他のモデルも試してみました。因みに、ログイン必須です。何故か、通常のEmailでのアカウント作成が上手くいかなかったので、AI用のGoogleアカウントでアカウント作成しました。

 因みに、NSFWモデルも公開されているので、閲覧の際には注意して下さい。一応、モザイクはかかってますが...。

 

手順

 

 見ている方は正直分っている方がほとんどだと思うので、簡単に説明と紹介。あくまで紹介手順はAutomatic1111でのやり方です。

 Automatic1111の方法・作成方法は下記サイトを参照するか各自調べてみて下さい。ただ、情報が古いものだったりしますが、ある程度は問題ありません。

 

※ 1/5時点でGithubページが消えてるみたいです。その為、現状では他の手段で実行するしかありません。

追記1:別のサイトでホストされているようです。つまり、恐らく公式の代替サイトを立ち上げたという事ですね。

追記2:1/6時点でGitHubのページが復旧したみたいです。なので上記については気にする必要がありません。

 

wikiwiki.jp

github.com

dskjal.com

 

ダウンロード

 

モデル↓

huggingface.co

 モデル名は「wd-1-4-anime_e1.ckpt」で、場所は「models/Stable-diffusion/」内に突っ込んでください。

 1点注意点なのですが、「wd-1-4-anime_e1.yaml」も同じ場所にダウンロードして下さい。モデルの切り替え時にエラーが発生すると思うので、その解決に必要です。詳細は下記サイトをご覧ください。

bookyakuno.com

 初回の切り替え時に数GBのダウンロードが始まると思いますが、暫く待機した後にきちんと切り替われば成功です。2回目以降は比較的高速に切り替わります。

 また、この時にERRORが出たら「.yaml」の関係で失敗している可能性があります。

 

紹介

 

 内容は適当に思いついた「こちらを見ているビーチにいる女性(上半身のみ)」です。色々と弄ってみるのもいいのですが、テストなので問題ありません。

 内容には一切手を加えていません、txt2imgのままで出力しています。なので、若干内容がおかしいとは思いますが、気にしてはいけません。

 

呪文等

 

基本プロンプト

 

調整を加えていますが、下記をベースとしています。

(((1girl, upper body))), beach, lock at viewer, crystal light, lens flare, light brush, masterpiece, best quality, high quality

(((1girl, cowboy shot))), beach, lock at viewer, colorful light,glitter,symbol particles, (((light particles))),light rays,lights, masterpiece, best quality, high quality, beautiful detailed eyes, ultra detailed, 4k, 8k

 

ネガティブ

 

low quality, bad quality, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, worst quality,low quality,normal quality,duplicate,grossproportions,deformed,out of frame, ,ugly,morbid,mutation,death,kaijuu,mutation,no hunmans.monster girl,arthropod girl,arthropod limbs,tentacles,blood,size difference,sketch,blurry,blurry face,blurry background,blurry foreground,disfigured,extra,extra_arms,extra_ears,extra_breasts,extra_legs,extra_penises,extra_mouth,multiple_arms,multiple_legs,mutilated,tranny,trans,trannsexual,out of frame,poorly drawnhands,extra fingers,mutated hands,poorly drawn face,bad anatomy,bad proportions,extralimbs,more than 2 nipples, more than 3 legs

 

サンプリングアルゴリズム

 

Euler a

 

サンプリング回数

 

40

 

CFGスケール

 

11

 

生成画像

 

 

おまけ

 

 他のモデル生成でも生成してみました。書いているコメントは個人的な感想なので、全く見当違いな事もあります。

 

healy's Anime Blend model

 

 少ないプロンプトで、比較的高クオリティーの画像を生成してくれるアニメよりのモデルです。個人的にはかなり使いやすいモデルです。

civitai.com

ミクさん↓

指定なし↓

 

Ellderth's Lucid Mix model

 

 上の「healy's Anime Blend モデル」よりもリアル寄りのモデルです。初音ミクはコスプレっぽくなります

civitai.com

ミクさん↓

指定なし↓


Synthwave Punk model

 

 サイバーパンク風の画像を生成します。某ネトフリアニメ風の画像を生成するには、このモデルが使えるかもしれません。

civitai.com

 

Samdoesarts Ultmerge model

 

 説明が難しい(適当な言葉が出ない)のですが、ディズニー?的な実写よりのモデルとなっています。詳細は下記画像を見て下さい。

civitai.com

 

Elldeth's OG 4060 mix model

 

 説明によれば色々なパターンが得意みたいです。実行してみたところイラスト・実写共に強いですね。

civitai.com

 

Dreamlike Photoreal 2.0 model

 

 名前の通り、実写向けのモデルとなっています。dreamlike.artによって開発されています。実行した感じ、かなりフォトリアルになっています。これは確かに名前を誇るだけありますね。後、ハズレの確立がかなり低く感じました。

 何故か知りませんが、ほぼ全ての生成された画像の背景がぼやけるんですが....何故ですかね?

huggingface.co

 

Analog Diffusion model

 

 名前の通り、アナログ写真風の生成を得意とするモデルです。人物の描画を得意としているみたいです。

huggingface.co

 

Modern Disney model

 

 このモデルは、名前の通りディズニー的な画像生成を得意としています。簡単に生成してみた限りは、ハズレ率が多めな気がします。が...たまに、映画の背景人物に出ててもおかしくない人物を生成します。

huggingface.co

civitai.com

 

Inkpunk Diffusion model

 

 インクパンク風の画像生成を得意とします。ただ、顔の違和感にあります。「顔の修復」を入れてしまうと、リアルの顔を被った仮面風の顔面に成り果ててしまいます。

huggingface.co

civitai.com

 

fantasy-style model

 

 逆に驚く名前ですが、その通りのファンタジー風の画像を得意としています。ですが、生成の仕方が悪いのか「ファンタジーとは?」状態です。でも、雰囲気はかなり良いと思いますし、ハズレ率は結構低い気がします。

civitai.com


プロンプト生成の一つの案

 

 豆知識なのですが、プロンプトに困ったら、ChatGPT君を活用してみて下さい。意外と実用的なプロンプトを提案してくれます。しかも、無料かつ英語と日本語で!!使わない手はないですよね。

openai.com

例えば

 

「女の子が一人でビーチで遊んでいる」のプロンプトを英語と日本語で生成して」

 

とChatGPT君に質問すると、回答が

 

"女の子が一人でビーチで遊んでいる" のプロンプトを英語と日本語で生成します。英語版:A girl is playing at the beach by herself, building sandcastles and collecting shells.
The girl is running along the shoreline, chasing after seagulls and laughing.
The girl is sitting on a towel, reading a book and enjoying the sound of the waves.
The girl is playing in the water, splashing around and feeling the cool ocean breeze on her skin.
The girl is laying on a beach chair, taking a nap and soaking up the sun.
日本語版:女の子が一人で海辺で遊んでいる、砂像を作ったり、貝を集めている。
女の子は海岸線を走っている、カモメを追って笑っている。
女の子はタオルに座っている、本を読んで、波の音を楽しんでいる。
女の子は水中で遊んでいる、たわむれて、海風を感じる。
女の子はビーチチェアーに横になっている、お昼寝をして、太陽を浴びている。

 

 と...こんな感じに、「英語のプロンプト候補」と「それらの日本語訳」を同時に出力してくれたりします。これ、とてもいいですよ!日本語の候補をDeepLで英語訳する手間が省けるのですごい楽です。

 後は単純に、元素法典を使用するのも手っ取り早いですね。現状v2.5まであります。一部プロンプトだけでもかなり参考になります。

docs.qq.com

 

最後に

 

 これは比べないと何とも言えないとは思いますが、自分の記憶が正しければ、WD 1.3と比べるとかなりクオリティが上がっていると思います。

 最近はNAIばかり弄っていたので、WDもいい精度でクオリティが上がってきて嬉しいですね。今後のAIは画像のお手軽生成や音楽生成も盛り上がると思うので楽しみですね。

 

 後、簡単にお試しした感じ、比那名居天子が出てこなくなってます...ㇳㇹㇹ...。 嘘です。WDは名前のみでは上手く出力されないのをすっかり忘れていました。特徴を複数個追加すれば出てきます。NAIは名前だけで普通に出てきていたので、完全に忘れていました。

AIに白髪着物天子を書かせてみる

初めに

 NovelAIを使って、比那名居天子を白髪にして、着物を着せてみました。一言で言うと、「白髪着物天子」です。

 なぜ、白髪着物天子なのかって?心にグッと来るものがあったからです。あと、フォルダーの肥やしになるのもあれなので、大量の画像を公開します。

白髪着物天子

 一部青髪になっていますが、気にしないで下さい。

帽子あり

帽子なし

プロンプト

{{{hinanawi tenshi}}}, {{{{intricate kimono}}}}, looking at viewer, from front, [[[from above]]], 1girl, {{full body}}, {{white hair}}, walking, in shrine, in japan, {{sunset}}, happy, masterpiece, best quality, ultra detailed, an extremely delicate and beautiful, extremely detailed cg unity 8k wallpaper

Sampling

DDIM or k_euler_ancestral

最後に

 基本的にはこれだけで、プロンプトは全画像ほぼ同じです。多少、サンプリングは変えている事もありますが、「DDIM」か「k_euler_ancestral」のどちらかです。

 このサイトを覗いているという事は天子好きだと思うので、プロンプトを調整したりして、良い感じの天子絵を生成してみて下さい。

AIのOutpaintingを試してみた

初めに

 この記事は題名の通り、AI絵生成の機能の1つである「Outpainting mk2」を試してみたというものです。モデルは「Waifu Diffusion v1.3」です。

 やり方としては、「元画像をAIで生成、1方向をOutpaintingで書き足して、おかしい所をInPaintingで補正、補正済みの画像を再びOutpaintingで....」を永遠に繰り返しました。画像が余りにも大きいとVRAM的にも生成時間的にも厳しいので、程々の大きさでやめましたが...。個人的には割と綺麗に出来たつもりです。

元画像

 呪文は忘れましたが、テーマとしては「寝室で寝転んでいる女性」ですかね?この画像を生成するのも色々時間がかかった記憶があります。

拡張開始

1回目

 右方向に拡張します。余計なものが生成されていますが、どの道InPaintingで修正します。

 修正したものが、この画像です。

2回目

 左方向に生成します。

3回目

 下方向に生成します。

 ベッドの端っこを再現したいので、上手い感じの画像が生成されるまでガチャです。

4回目

 今度は上方向です。流石に壁の色がおかしいので変更したり、一部分を修正したりしたものが下図になります。

 ライトだったり、生け花だったり、割といい感じになったと思います。

5回目

 一周回って、再度左方向です。うーん、そのままでは違和感が凄いですね。

 実は、この時点でいったん日付が空いています。バージョンが変わったせいか、若干境目が目立っています。気のせいという事にしておきます。

 ただの壁だと面白くないので、謎のオブジェクトを配置してみました。どうすればいいのか、分からなくなってきました。やっぱり、ガチの絵師さんにはかないませんね...。圧倒的発想力不足...。

6回目

         

 右方向です。若干、めんどくさくなってきたのは内緒です。

 ベッドの下側を微調整しました。

やってみて分った点

  • 絵師さんは凄いですね。私だとどうしても発想力が無いので、良い雰囲気を構築するのが難しいです。
  • Outpaintingも結局ガチャです
  • 画像の半分だけ切り取って、別途生成した後に合体する作戦はだめですね
    • 例えば、右半分・左半分で分割して生成して、後で合体するといった感じです
    • 全体を含んだ場合と分割した場合では、結果がかなり異なります
    • 言われてみれば当たり前なのですが、全体を含めないと「画像全体の雰囲気」をちゃんと理解?して生成してくれません。
  • あと、VRAMが足りねぇ...。3070だときついです。

最後に

 結構、使える機能だとは思いますが、結局はガチャです。今回は1方向づつ生成していまが、全体方向にまとめて生成することも出来ます。ですが、確率がガクンと下がる気がします。

 やっぱ、これはこれで時間がかかるし、難しい~。

StableDiffusionをローカルで動かしてみた

初めに

 この記事は、本題の通り「StableDiffusionをローカル環境で動かして、画像生成してみた」というものです。ついでに、WaifuDiffusionも実行出来たので、そちらも試してみました。

準備

 といっても、ここで詳しい説明はしません。というのも、下記サイトで詳しく説明されていますし、私も下記サイトと同じ方法でやっているからですね。

gigazine.net

 WaifuDiffusionに関しては、下記サイトをご覧ください。

gigazine.net

 じゃあ、この欄は何なのかというと、個人的に勘違いした点や、補足説明を入れておきたい点を記述します。

  • Hugging Faceから学習モデルファイルをダウンロード
    • 「stable-diffusion-webgui-mater」直下に置くのではなく、「~master/models」内に置きます
    • このせいで、数日放置してました(笑)
  • GFPGANのダウンロード
    • ダウンロードした状態だと「GFPGAN~」となっていると思います
    • 名前を「GFPGAN」に変更したうえで、「stable-diffusion-webgui-mater」直下にフォルダーごと配置します
    • 正直、これに関しては元の記事が曖昧だったので、正解なのかは分からないですが、とりあえず出来たのでOKです

実行

 後は「webui-user.bat」を実行して、バッチファイル内のURLをChromeにコピペするだけです。これで画像と同じような画面が表示されれば成功です。

 1点注意点があるのですが、実行画面が表示された後にバッチファイルを消さないようにしてください。実行画面自体はあくまでGUIで、本体はバッチファイル側です。つまり、バッチファイルを消してしまうと、一切処理が実行できなくなります。

 ローカルネットワークを使って、バッチファイルとのやり取りをしているわけですね。まあ、詳しくは知りませんが...。

 

やり方

txt2img

 これは有名ですが、テキスト(prompt)から画像を生成するモードです。

gigazine.net


img2img

 インプットした画像を基にして、テキストに沿った画像を生成するモードです。

gigazine.net

gigazine.net

Extras

 インプットした画像を高解像度化するモード?だと思っています。これについてはよく分かっていません。

gigazine.net

出力

 どうでしょうか?割と正確度高めの博麗霊夢が出来ている気がします。

色々いじってみる

次に、色々組み合わせて博麗霊夢の絵を作成してみました。

 まず、通常通りに絵を描いてもらいます。因みに、キャラ名(英語)を何度も書くと、精度が上がる気がします。

 腕を上げていたので、御幣の代わりに棒を持たせてみます。

 棒だとしっくりこなかったので、棒をボールに変更した上で、両手を使って持ちます。

 陰陽玉を別途で作成し、GIMPを使っていい感じに配置します。何故か、陰陽玉が上手い感じに生成されなかったので、手動で合成しました。違和感はあると思いますが、もうどうすればいいのか分からないので、妥協しました。

 因みに、手が明らかにおかしかったので、InPaint機能を使い、手の部分のみ上手い感じに修正しました。

 半分忘れていましたが、背景を追加します。まあ、普通は博麗神社ですけど、写っている範囲での表現は厳しそうだったので、別途作成した桜の絵にしました。それを、Gimp上で重ねて、境目を綺麗にして、ノイズをかけました。違和感は相変わらずありますが、気にしてはいけません。

 最後に、好みが分かれるのですが、Extrasの機能を使って解像度を上げます。見ての通り、一部の「ぼやけ」が消えてしまいます。設定が悪いのかもしれませんが、う~ん。

 兎にも角にも、一切絵を描かず、調整のみで正確度高めの博麗霊夢が出来上がりました

比那名居天子を描いてもらいたい

 私の最推しキャラの比那名居天子を描いてほしい訳ですが、残念ながら博麗霊夢ほどの知名度が無いので、直ぐには描いてくれません。

 といった感じに、完全に別人です。「誰だよ」案件です。流石に、もう少し詳しくプロンプトを書いたほうがいいですね。

 色々、プロンプトだけをいじってやったものが上図になります。メモするのを忘れていたのですが、確かプロンプトは

「1 Girl, hinanawi_tenshi, touhou project, smile, Long light blue hair, anime, kawaii, peach on black hat, red eye, white clothing, wear a big red bow tie on clothes, full body, hinanawi_tenshi, hinanawi_tenshi, hinanawi_tenshi, hinanawi_tenshi, hinanawi_tenshi, hinanawi_tenshi, hinanawi_tenshi, hinanawi_tenshi」

こんな感じだったはずです。正直、何もしなくても十分綺麗です。が...折角なので弄っていきたいと思います。

 今回はこの絵から弄っていきます。

 右上のリボン?をInpaint機能を使って、桃と葉っぱに変更します。天子といえば帽子の上に桃ですよね。

 右端にある謎の物体を削除した上で、右腕を外側に伸ばします。

 次に、左腕も同じく外側に伸ばします。髪もいい感じに腕にかける感じが、個人的には好きですね。

 それぞれの袖の長さを調整します。長さ調整が中々難しく、無駄に時間がかかりました。

 最後に背景を付け加え、解像度を上げて終了です。自分なりには割と綺麗に出来たかなぁと思います。「すしざんまい!」ポーズに見えるのは気のせいです。

 

 折角なので、もう一回試しにやってみます。

 今回はこの画像から始めていきます。

 やっぱり、特徴である桃を帽子の上に乗っけます。

 余り変わっていないので、アクセントに鞄を左肩に付けて、ボタンも服に付けます。

 最後に背景を付けた上で、解像度を4倍に上げます。以上で完成とします。テーマは「学生服を着ておしゃべり中の(巨乳の比那名居天子」です。

 背景を色々作成したのですが、いい感じの画像が来なかった...。というより、後半が若干適当になったのは内緒です。

最後に

 以前から東方絵をAIに描かせているのですが、「それっぽい」絵しか出力出来ていなかったので、今後も頑張って正確度を上げていきたいですね。

 ローカル環境で出来るようになったので、かなり快適にAI絵の生成生活が進みます。因みに、1枚当たり5~10秒で生成出来ますね。設定でかなり変わりますが...。

 個人的には、WaifuDiffusionで人物を作成し、StableDiffusionで背景・絵の一部部品などを生成するという使い分けです。後、画像同士を上手い感じに合成してくれる画像生成AIが欲しいですね...。やはり、手動で合成すると違和感が凄いです。

 今回生成するにあたって、コツ?を共有しておきます。

  • キャラ再現をする場合は、キャラ名を何度も出すと精度が上がる
  • 全身絵はあまり生成されずらい
    • ほぼ顔か、上半身が限界な気がします...何でだろう?
  • 基本的にはシンプルなテーマで絵を描かせるのが正解な場合が多い
    • 参考にする画像をシンプルな方が良い気もします
  • 体の一部分を変更する場合、最初に大まかな(雑い)絵を出力させて、それを洗練していく方法が有効
    • 例えば、腕が中途半端にバッサリ切れていたとしても、割と問題ありません 
      • InPaintの機能は便利ですが、「変更」が得意で「新規」は不得意です
    • 他には、何も無いところの服の上にボタンを付けようとすると、上手くいきません
      • なので、運良くボタンっぽいのが生成されたらそれを採用、その画像を使って再度画像を生成すると、ボタンが増える事があります
      • ボタンが増えた画像を使うと、よりボタンに近い画像が生成されます
  • 基本的には「運ゲー
    • 上手い絵(しっくりくる絵)が来るまで絵出力ガチャをぶん回しましょう
    • もしくは、プロンプトをいじりまくりましょう
      • 最近はDeepLといったような、翻訳アプリがあります
      • プロンプトが「単語の組み合わせ」だけでも十分生成可能です。
      • シンプルな方が上手くいく事もありますし、逆に細かく書いたほうが上手くいく場合もあります
    • そこそこ上手い絵の構図が出来たら、一部分修正に入る前に、img2imgを使って、再度同じプロンプトを使って再生成してください
      • 似ている構図の絵が生成されますので、正解の絵が来る可能性が高くなります
  • 妥協も大事
    • 絵が描けない場合、細かい点を直すのは、ほぼほぼ不可能です
    • 妥協として、別で絵を出力して、手動で重ねるといった事も必要かなと思います 
      • GIMPオススメです
    • 違和感が残りますが、仕方ありません
      • もしかして、複数の絵同士を上手く合わせて出力してくれる「AI」ってありますかね?

 

 前回の東方絵関連の記事です↓

hnnitns.hatenablog.com

 

 珍しく、海外の方が東方絵を生成していた動画があったので共有しておきます。ちなみに、今回の画像は割と下の動画を参考にしていたりします。

youtu.be

youtu.be

AIで東方キャラを描いてみた

初めに

 最近話題の「Stable Diffusion」や「ERNIE-ViLG」を使って、AIに東方キャラを描かせてみました。というのも、私自身は絵が描けないので、AIに絵を描かせてみようと思い立った訳です。

 本記事は、それっぽく描けた絵のみ上げています。といっても、ほとんど「ERNIE-ViLG」なのですが...。

 「Stable Diffusion」を使って色々と頑張ったのですが、残念ながら上手く描けないですね。初音ミク・マリオ・ルフィー位のネームバリューがないと、きついみたいです...。やっぱり、海外の絵を中心に学習しているからでしょうか?

 ちなみに、この記事で上げているキャラは、私が適当に選んでいます。ですが、自分内の基準に達していない絵の場合は上げていません。また、キャラクター順は下記サイトを参考にしています。

imimatome.com

主人公

博麗霊夢

霧雨魔理沙

東方紅魔郷

チルノ

パチュリー・ノーレッジ

十六夜咲夜

レミリア・スカーレット

フランドール・スカーレット

東方妖々夢

アリス・マーガトロイド

魂魄妖夢

西行寺幽々子

八雲紫

東方永夜抄

鈴仙・優曇華院・イナバ


東方文花帖

射命丸文

東方風神録

東風谷早苗

東方心綺楼

秦こころ

東方鬼形獣

庭渡久侘歌

おまけ

Stable Diffusion's 初音ミク

 おまけなので、ネタのような絵も入れています。

Stable Diffusion's 博麗霊夢

 う~ん、全然霊夢っぽくないんですよね~。自分の力では不可能と判明しています。

最後に

 色々と中国語名を調べる→入力→待機→表示を繰り返しました。といっても、出やすいキャラと出にくいがあったりして、割と面白かったりします。ですが、やはり有名なほど正しい結果が出やすいのは変わらないですね。