こんばんは、トウコ(@at_tokotoko)です。
ニュース記事を読むと毎日AIについての記事がたくさん配信されていますね。
AIは日進月歩の勢いでどんどん進化していて、関連書籍も日々発行されており、もうAIがなかった時代が思い出せないくらいです。
以前本でChatGPTを仕事で利用している人の比率と満足度を読んだのですが、ChatGPTを有料で使っている人ほどその満足度は高いらしいです。
ChatGPTをお試しで使ってみて、「AIって大したことないな」と思う人ほどAIの凄さにまだ気づいていないのかもしれません。
画像生成AIに手を出す理由
私もAIとは仲良く一緒に歩んでいきたいので、画像生成AIである「Stable Diffusion」に手を出すことにしました。
AIには私の苦手分野である部分を描いてもらう、参考になりそうな絵を出してもらって下地にする、など、おそらくこれから主流になるのではないかと思う部分を担っていってもらいたいんですね。
そういうことで、私の絵柄を学習してもらうのが今回の目標です。
画像生成AI 「Stable Diffusion」とは
画像生成AIは色々あるのですが、私が「Stable Diffusion」を選んだ理由は、無料であること、利用している人が多いためそれについての記事が豊富にあること、自分の絵柄を学習させる方法も資料がありそうなことです。
- 無料で頑張れば自分で環境を構築できる
- Macにも対応している
- 本やネットの記事など資料が豊富にある
- 自分の絵柄を学習させることもできる
私の環境はM1のMacbook Airなのですが、同じ環境でできた人の記事を拝見したので「いけそうじゃんやってみるか」と手を出した次第です。
本当の手を出したきっかけは、いつも読んでるブログの方が 「Stable Diffusion」の関連書籍の書評を書いていて、ご自身でもインストールされていたようなので、影響されてやってみた感じです。
本を買う前にネットの記事だけで環境だけでも構築してみよ〜ってやったらなんとかなった感じですね。また後で本も買おうと思ってるんですけど。
M1 Macbook Airに Stable Diffusionをインストールする
それでは、「Stable Diffusion」をインストールしていきましょう。
ターミナルを使用して 「Stable Diffusion」をインストール
Stable Diffusion Web UIという、ブラウザ上で操作ができるものをインストールしました。これはForge版とAUTOMATIC1111版という二つのバージョンがあるそうなのですが、私は歴史が長く、ドキュメントが豊富なAUTOMATIC1111版の方をダウンロードしました。
こちらの記事がめちゃくちゃ参考になりました。
指示されるままやっていったらエラーも全然出ず(出たのかもしれないけど)あっという間に環境が整いました。
モデルの導入
インストールするだけでは何も入れていない状態なので、モデルを入れてないとおじさんくらいしか出てきません。
なので元となるモデルを入れていきます。
モデルとは学習させたデータで、いろんなタイプのモデルがネットで公開されています。
自分が表現したい絵柄のモデルを導入することで、狙い通りの絵柄を生成させることができるわけです。
導入する時はモデルによってライセンスや制限があるので、チェックは欠かさずしておきましょう。
VAEの導入
生成した画像のくすみが気になったので調べると、VAEを導入することでくすみを回避することができると知りました。
VAEとはVariational Auto Encoderの略で、導入することで画像のくすみを軽減して鮮やかに生成してくれます。
VAEは汎用VAEとモデル専用のVAEがあり、使用しているモデル専用のVAEを使うか、なければ汎用VAEを使います。
英語と日本語の併記
Stable Diffusion Web UIはインストールして表示させると英語の画面ですが、簡単に日本語にできます。
ただ、完全に日本語にしてしまうと、参考記事が英語の場合、日本語にする前の元の英語がわからなくなってググるときに困る自体になります。(なりました)
なのでそういう時は英語と日本語の併記をすると、とても便利です、
EasyNegativeの導入
画像を生成するときにはプロンプト(呪文)を入力して画像を生成しますが、ネガティブプロンプトを入れることで、出したくない表現を出さないように指示することができます。
ただ、出したくない表現って結構被ってきますよね。低品質はいや!とか手をちゃんと描いて!とか。そういうのを一つの単語だけで全部入力してくれる拡張機能がEasyNegativeです。
ADetailerの導入
Stable Diffusionは全身画像を生成する時に顔が崩れやすかったり、手が崩れたりすることがあるのですが、それを軽減するのがADetailerという拡張機能です。
以上がStable Diffusionを導入してまずやるセットアップです。
自分の絵柄を学習させよう!
いよいよ絵柄を学習させるターンです!
LoRAで追加学習をさせようと思ったんだけど…
学習させる方法が複数あって、私はスタンダードだというLoRAという方法で追加学習させようと思いました。
モデルは絵柄の大元で、LoRAは追加学習ファイルと呼びます。LoRAはモデルとセットで使います。
LoRAは配布もされているようなのですが、オリジナルで作ることもできます。
特定のキャラクターのLoRAを作成することで、生成AIで同じキャラクターの違う表情やポーズなどを固定することができます。
なのでその学習データを作成しようと思ったのですが…、これが全く!上手くできず…
kohya_ssというアプリのWebUIバージョンをいろんな方の記事を読んでやってたのですが、ターミナルは「torchがないよ!」というばかりでそのtorchを入れても他の何かが足りないとかなんか色々言われて…
何度やっても上手くいかないんですよね。
私の環境がダメなのか色々調べたんです…
結構粘ったんですけど「こりゃあかんわ〜」となりました。
DreamArtistの導入
「他にも学習させる方法があったよな…」と思い、調べて出てきたのが「DreamArtist」です。
絵柄を学習させたいならLoRAよりDreamArtistだというブログも出てきたので、じゃあDreamArtistでやってみようと導入しました。
▼参考にさせていただきました。
注意する点として、DreamArtistは拡張機能リストからインストールすることはできるんですが、元の作者さんがもう更新してないらしくそれをインストールしてもタブが追加されないです。
なので、DreamArtistを入れたい場合、有志が作ったDreamArtist-sd-webui-extensionの方をインストールする必要があります。
あと、作成して出てきたptファイルが、私の環境だと読み込まれなくて進めないという状況でちょっとハマったのですが、Stable Diffusionを起動するときに
--disable-safe-unpickle
を追記して起動すると、バージョンのチェックをしないで起動するので上手くいきました。
DreamArtistで3000回の学習
この画像を素材にして学習させました。
とりあえず3000回にしてみました。
学習させると500回ごとに途中経過の画像が生成されます。
途中経過は「何かが生まれている…!」というような画像が多くて面白かったんですけど、私の絵柄ではないなあ〜という感じでした。
右下の画像は3000回目の画像です。
うーん似てるのかなあ…。
3000回学習を経たデータファイルで、プロンプトにデータを入力していい感じにしようとして出したのがこちら。
目の描写が私っぽいのもありますね。
でもまだまだ学習が足りないのかもしれません。
いろんな記事を見ると1万回やったという記事もあったので、そのくらいやった方が良いのかもしれません。
ただ3000回やったのでも学習にかかった時間は5日くらいだったので、1万回一気にやらずにちょっとずつやった方が安心かなあ。
多分スペックがいいパソコンならもっと早く学習してくれるのかな?
まとめ:次回に続く!?
環境の構築は結構簡単でしたし、気に入った絵柄で絵を生成したいというだけなら意外と簡単にできてしまいます。
私の環境では四苦八苦していますが、絵柄を学習させたいというのも環境によっては簡単なのかな。Windowsとか。とにかく時間はかかりますが。
私の絵柄っぽい一枚が生成されるとちょっと楽しいです。
もっと学習させて私の絵やん〜!ってなりたいですね。
すでに生成AIマスターの方、何かアドバイスしていただければ嬉しいです。
この本の購入を検討しています。
コメント