Rのつく財団入り口

ITエンジニア関連の様々な話題を書いているはずのブログです。

【画像生成AI】反響があって嬉しかったのでStable Diffusionの話題を続けて和服の女の子の絵を献上するのこと

かわいいは作れるぞおおおお!!(言及記事からの流れ

 皆さんこんにちは。id:iwasiman です。最近はAI術師見習いです(キリッ

 毎月好き勝手なことを書き散らしている当ブログのじぶん Release Notesの5月号にて画像生成AIのStable Diffusionの話題を書いたところ...

iwasiman.hatenablog.com

 いつもお世話になっているご近所ブログの id:nikkie-ftnext さんのところからむちゃアツい反響が返ってきました!

nikkie-ftnext.hatenablog.com

 かわいいは作れることに気づき、新たな技術の地平に繰り出した新鮮な喜びが綴られたこの記事の圧倒的な熱量...そう、Stable Diffusion Web UIの環境構築は(ITエンジニアなら)意外に簡単だし生成は意外にできるんですよね。
 こうやって互いの反応からナニカが生まれるのがブログやってて嬉しくなる時なんですよ!(力説)
 熱量を受け取ったのでTwitterでお返事しようと思ったら長くなりそうなことに気づいて、以下お返事記事にするのです。

Apple SiliconでStable Diffusion web UIを動かす」のお話

 なるほどMacでの構築なんですね。Windowsでもmacでもコンソールから.sh/.batを叩いて起動しますが、COMMANDLINE_ARG で引数を指定できる箇所があります。
各所の環境構築記事に出てきますが、例えば...

signyamo.blog

 こちらの記事でもグラフィックボードがちと古いNVIDIA GeForce GTX 16シリーズの場合用に、オプションとして–no-halfを指定しています。
マシンスペックが足りなくて真っ黒な画像が出てきたりする際によく使われている起動オプションですね。

 画像生成時間を短くできるのでインストール後にたいていの人が設定しているxformersの導入でも、同じくCOMMANDLINE_ARGへの追加が必要になります。(これは最初に一度設定するだけなので、やっとくと吉です)

freeblog-video.com

 このようにインストール後の機能拡張の際に、Windows/Macそれぞれ用の起動用バッチファイルでオプションをいじるシーンは出てきますが、それ以外はコードの修正が必要なシーンはないようになっています。

「アニメ絵を生成したい! Counterfeit V2.5を動かす」のお話

 オッうちの記事を参考に Counterfeit V2.5をチョイスされてますね。キャ~恥ずかしい~(照)
アニメ・イラスト調のモデルの中では優秀な定番なのでまず間違いないかと思います。

 すでに気づかれてるかもしれませんが一応補足、VAEの準備が必要です。
Stable Diffusionは内部で画像の圧縮表現から画像に変換していく際の「デコーダ」という技術に、VAE(Variational Auto-Encoder,変分オートエンコーダ)という学習方法を使っているとあります。(『Web+DB PRESS』誌の特集より)
このVAEはWeb UIから設定する場所があり用語として登場、内部構造には関わらずに単に使う側の術師の人からは、「画像をきれいにする手段のひとつ」のような認識のされ方をしています。
そしてCounterfeit V2.5モデルには専用のVAEが最初から用意されています。

kurokumasoft.com

こちらのインストール方法記事にも載っていますが Counterfeit-V2.5.vae.pt をとってきて、webui/models/VAE に入れて、設定画面で選んでおけばよしです。
このVAEがあるとないとでは生成される画像の質がだいぶ違います。設定は最初の1回だけなので最初にやればOKです。

 なおこのCounterfeitはV2.5が確か今年の2月登場、4月末に最新のCounterfeit-V3.0が公開されてます。

huggingface.co

いろいろ新しくなっているのですが画風がだいぶ変わり、アニメ寄りのシャープな線になったような印象です。柔らかさはV2.5のほうがあったという声もあるし、僕も実際に試してそう感じました。出たばかりなのでぐぐってもネットの情報もまだあまりなく、手を出すにはまだ早いかなと思ってひとまず撤退しました。

プログラミング言語やライブラリのバージョンの話の世界とは違って、古くても別にバージョンアップが後から要求されたりするわけではないので好きなやつで大丈夫ですね。

モデルの選択のお話

 ググるとたくさん出てきますが、最初の選択として機械学習済みのデータを用語の「モデル」として選択するという作業があります。深く拾ってる最新記事かなと思うのは例えば以下の記事。

yuuyuublog.org

 モデルの中で大きく分けると

  1. 写真に近い実写系・フォトリアル系
  2. 中間の2.5D系 (この分類がされないときもある)
  3. アニメイラスト系

の基本3分類で、それぞれにいろんなのがあって互いにマージしあったり、沼にはまっている凄いAI術師の人だと自分の絵用に層別モデルを作っちゃったりしてそれを公開してまた使われて...と進化を続けています。ちょっとエンジニアリングの世界のOSSのエコシステムっぽいです。

 入門には有名な定番のを使えばとりあえず安心、アニメ・イラスト系でよく紹介されるのは有名なものではCounterfeit以外だとAnything-v4.0とかv5.0とかでしょうか。

huggingface.co

技術自体と同じ名前のStable Diffusionというモデルもあってこれがたぶん最初から入っていますが、派生モデルが活発すぎて本家のほうは目立ってないようです。

 AI術師としてやりこんで凝っている方ほど、マイナーだけどすごいモデルを使ったり複数使い分けたり、高度な使い方をしている印象です。

モデルによる動作の違いのお話

  モデルのインストールについて基本情報は以下。

  • ひとつひとつのモデルファイルが数Gとでかいので、HD容量の少ないマシンは注意
  • prunedとなっているのは容量を削減したファイルで、生成結果はそれほど変わらないともいわれる。容量に余裕があるなら元のを使う
  • DLしたら所定の場所に突っ込んでおくだけなので、モデルの数的には幾らとってきてもOK
  • Web UI上で設定でモデルを切り替えられるが、切り替えに10-20sぐらい掛かる

そしてモデルが違うと画風が大幅に違う以外にも、他にもいろいろ違いがあります。

  • 上述のVAEがCounterfeit-V2.5のように専用が用意されていたり、いなかったり
  • 生成の際の「Steps」の値、「CFGスケール」の値、生成の際の「サンプラー」という選択肢による結果の変動がモデルごとに違ったり
  • そもそも呪文によるプロンプトの効き具合が微妙に違ったり...

などなどと差があります。
まとめますと求める画像をアウトプットとして得たい際にインプットとして各種パラメーターを与えていくとして、「パラメーターXXの値をYYだけ変えると結果がZZだけ変わる」のXX,YY,ZZの変動具合がモデルごとによって違う、そしてパラメーターの組み合わせ数が無数にあるんですね。試行錯誤するしかなく、このへんがプログラミングの世界とはまたちょっと勝手が違う世界です。

 ということで入門するならまずは第一の基本選択として、お気に入りのモデルをひとつふたつ選んだらまずはそのモデルで固定してから呪文の練習をしていくとよいかと思います。

 僕も試行の結果、脳内の妄想→イラストとして具現化するには画風が今のところCounterfeit-V2.5が一番近いかな~と思ってこれに絞って入門を続けています。(モデルをひとつに選んでもまたその先で、呪文の工夫とか拡張機能の工夫とかいろいろ先が長いので...)

黒髪和服の女の子が無事召喚できたお話

うちの記事の呪文が役に立ったようで何よりであります。キャ~

a girl with black hair and ribbon. wearing kimono. with smile shyly. upper body. without hands. at spring morning. with cherry blossom. in anime style.

4月のリリースノートに添えた絵姿にて候

画像生成AIの種類によって呪文は幾らか違うのですが例えば...

  • Bing Image Creator の背後で動いているDALL-E2(の改良版かも)には打消しのネガティブプロンプトがないが、このStable Diffusionにはある
  • Stable Diffusion用の書式だと、(kawaii:1.5) とか重みづけができる。他それぞれのAI特有の書き方がいくつか

など、プログラミング言語の違いまではいかない方言レベルのような感じで微妙に差があります。
まあ人間の自然言語の英語はふつうに解釈できるので、上の呪文はStable Diffusionでもそのまま動いたということでしょう。without handsの呪文は利きませんでしたがそれほど破綻なく手が描画されていてめでたい。(入門するとすぐ分かるのですが、AIさんはこれがほんと苦手...!)

ちなみに呪文の先頭にいくほど効きが強くなって後のほうほど弱くなるというルールもあり、Stable Diffusionの呪文使いの間では半角カンマ区切りで詠唱していくことがほとんどです。このへんもググると色々出てくるのでよしなに。

 Bing Image Creatorで試していた先の呪文をStable Diffusion用に変換、クォリティを上げる呪文を先頭に加えますと、例えば以下のような感じになりまする。

absurdres, absolutely resolution, highres, texture, masterpirce, best quality, 1girl, black hair, semi long hair, ribbon, pink eyes, japanese kimono, shyly smile, upper body, at spring morning, under cherry blossom, in anime style

黒髪和服の女の子...と思いきや獣耳が生えてしまい申した

absurdres, absolutely resolution, highres, texture, masterpirce, best quality, 1girl, black hair, semi long hair, ribbon, pink eyes, japanese kimono, shyly smile, upper body, at spring morning, under cherry blossom, in anime style
Negative prompt: EasyNegativeV2, negative_hand-neg,
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 1229669305, Size: 512x512, Model hash: bd83b90a2e, Model: Counterfeit-V2.5

おっとっとこれは面妖な、耳が生えてしまい申した。アニメ系のモデルだとよく起こります。つまりそれだけ獣耳付きの女の子はインターネッツであまねく人気を博し、AI殿はしかとその傾向を学んでいるという証にてございまする。
ネガティブプロンプトに加えて打ち消しますと、このように人間族の女の子になりまする。

512x512で生成してございまする

absurdres, absolutely resolution, highres, texture, masterpirce, best quality, 1girl, black hair, semi long hair, ribbon, pink eyes, japanese kimono, shyly smile, upper body, at spring morning, under cherry blossom, in anime style
Negative prompt: EasyNegativeV2, negative_hand-neg, animal ears
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 1266896673, Size: 512x512, Model hash: bd83b90a2e, Model: Counterfeit-V2.5

よく使われる高解像度化(hires.fix)の機能があります。1024x1024ピクセルに大きくしてみませう。コンピューターの演算コストは(縦に伸ばす比率×横に伸ばす比率)の2乗とのこと。縦横2倍だと16倍。512x512の画像生成に手元の環境で3~4s、高解像度化すると30~40sになります。3s×16倍=48s、時間も大体合っていまする。

1024x1024に高解像度化してございまする

absurdres, absolutely resolution, highres, texture, masterpirce, best quality, 1girl, black hair, semi long hair, ribbon, pink eyes, japanese kimono, shyly smile, upper body, at spring morning, under cherry blossom, in anime style
Negative prompt: EasyNegativeV2, negative_hand-neg, animal ears
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 3484418942, Size: 512x512, Model hash: bd83b90a2e, Model: Counterfeit-V2.5, Denoising strength: 0.7, Hires upscale: 2, Hires upscaler: Latent (bicubic)

上の絵姿、女の子の手の指をよくよく見ると6本ありますし左上に謎の無意味な文字が出現しておりまする。(ネガティブプロンプトにtextとか入れると消えたりします) これらがAI殿の現在の限界、致し方なきこと。

呪文その他の細かな緒元は学ぶうちに分かってきますれば、ひとまずはこの3枚の絵姿をnikkie様に献上し、今宵は仕舞いといたしませう...

まとめ:かわいいは作れる!(繰り返し

ということで圧倒的熱量に当てられてアンサーしてしまう記事でした!

そう、生成されたときかなり感動するんですよね。
僕も昔から創作活動いろいろやってきて、ゲームでキャラクターの設定考えたりテキストにしたり小説にしたり、画像作ったりロゴ作ったりWebコンテンツ作ったり、FLASHでムービー作ったり(なつい笑)、ニコ動にボカロブームが来た時はミクさんに童謡歌わせてみたり(これもなつい笑)、一時期3Dモデルで遊んでイラストSNSのpixivで活動したり、YouTube...には手を出さずにきたり、いろいろ試して脳内妄想イマジネーションを形にしてきました。でも昔からイラストだけは描けなかったのでここは諦めていたんですよね。

そこにChatGPTと並んでこの画像生成AIのムーブメント、ピカ~と天上から救いの光が射してきてしまったわけですよ。実際にAI術師として入門するともちろん制限はまだまだあるのが分かるのですが、nikkieさんと同じくStable Diffusionとてつもなくやばい! と思っています。

か わ い い は 正 義 ! そ し て 作 れ る !
(熱気に当てられてエントリ終了)