こんにちは。ファンリピートの塙です。
今回は自分の思い通りの画像が生成できるようになるLoRAという追加学習方法を使っていらすとやの画像を学習させ、Stable diffusionを使って「いらすとや」っぽい画像の生成に取り組んでみました。
詳しいやり方はここでは紹介しませんが、実際に画像生成をしてみての結果や感想を共有できればと思います。
生成において参考にしたものに関してはURLを載せておきます。
LoRAを使うことで画像生成がどのように変化するのかを知る機会にしていただければと思います。
そもそもStable diffusionとは
利用者が入力したプロンプト(文章)を元に画像を生成する画像生成AIです。オープンソースAIとして公開されており、無料で利用することができます。
※無料で利用はできますが、そこそこのコンピュータのスペックが求められます。特にGPU性能が求められるようです。自前のノートパソコンではスペック不足だったので、Google colabの有料プランであるGoogle colab proに登録し、生成を行いました。
そもそもLoRAとは
LoRAはLow-Rank Adaptationのことで画像生成において追加学習をメモリと計算量を大幅に削減して行う手法です。画像生成の学習には膨大な計算コストが必要で、追加学習にも相応のコストが必要でした。しかし、LoRAを用いることである程度のコンピュータの性能は求められるものの、個人でも追加学習することができるようになります。
今回学習させたデータ
同じような絵柄のものを複数用意しないといけないということで、自前で絵を描くことには自信がなかったので、いらすとやの画像を学習させてみることにしました。
いらすとやの画像は一目見れば”いらすとや”の絵だと気付けるほど一貫性のある絵になっています。よって、学習もしやすいのではないかと思い使わせていただきました。
学習させた画像は以下の8枚です。(学習させる際に縦横比を揃えなければいけないとのことだったので縦に潰れたような画像になっています。)
実際に画像を生成してみる
用意した画像でLoRAを作成し、それをstable diffusionの画像生成の際に使用してみました。LoRAを使用するにあたって、weightとという値を設定する必要があり、その値によってどれほどLoRAを画像生成に作用させるかを調整することができます。一概に値が大きければ良いというわけではないようですが、今回は0, 0.5, 0.9という3つの値を利用して生成してみました。
利用させていただいたプログラムのリンクを載せておきます。
(sampling methodにはDPM++ 2M Karrasを使用しました。)
出力結果は?
今回の画像生成に使用したAUTOMATIC1111ではノーマルのプロンプトとネガティブプロンプト(してほしくないことを書く)の2種類のテキストボックスが用意されています。以下では上に描きたい絵のプロンプトを記述し、下にネガティブプロンプトを記述しています。
上記のどちらの出力もweightの数字が大きくなるごとによりいらすとやっぽい絵になっているのがわかると思います。まず、一つ目の宇宙飛行士の絵ですが、背景には大きな違いがないものの、顔に特徴が現れていると思います。目が点になっている箇所や眉毛の感じもよりいらすとやに似たものになっているのではないでしょうか。また、小さな違いですが、weightが大きいほど地面のギザギザ(芝生?)も単調な感じで表現されるようになっていたり、配色も少なくなっている点からもいらすとやの特徴が伺えます。
続いて、森に立っているスーツを着た人ですが、そもそもweightが小さい時には目がついていないです。そこからのLoRAによる恩恵が見受けられます。ただ、今回出力させるにあたって記載したプロンプトは具体性に欠けるものなので、より詳しく記載することで目がないなどの問題はプロンプトの調整でweightが低くても改善されると思います。とはいえ、LoRAがなくても良いとなるわけではありません。LoRAが用意されていることにより簡単なプロンプトでも求めている絵を作成できるというのはかなり大きな違いだと思います。
絵のタッチなどを文字で表現するのはかなり難しいので…
終わりに
いかがだったでしょうか?
個人的には思っていたよりは劇的な改善はないものの自分で学習させたデータが反映されていることが見てとれて面白いと感じました。機械学習でイラストや写真を学習させるとなるとかなりのデータが必要であったり、ガッツリスペックを積んだパソコンが必要という印象がありましたが、自分のノートパソコン上で作業が完了してしまうことに驚きました。(正確にはGoogleのGPUを使用しているわけですが)現在はまだ一般の人が学習させるにはちょっとハードルが高めで作業自体も複雑ですが、いずれ画像を用意するだけで、それ以外は簡単に学習させることのできる未来はすぐに来るような気もします。楽しみです。
最後まで読んでいただきありがとうございました。
メンバーを募集中!
当社ではお客様に向き合い、お客様の事業成功にコミットをできる仲間を募集しています。
正社員、インターンから副業まで、幅広く採用活動を進めております。プロジェクトマネージャーやシステムエンジニアとして当社のシステム開発業務に携わってみませんか?
当社と共に、業界トップを目指して挑戦したい方は未経験者から経験者まで広く募集しているので、ぜひエントリーをお待ちしています。