見出し画像

【Stable Diffusion】LoRA + Vroidで自社キャラクターの画像量産を試みる

巷ではAIによって、たくさんのクオリティの高いイラストが、ガチャを引いているかの如く生成され続けています。プロンプトのアイデア次第では、オリジナリティにチャレンジすることもできるし、思いもよらなかったアイデアに驚くこともある、単純な楽しさというのもあるけど、自分にとってこれをどうやって自分の仕事やプライベートプロジェクトに取り込めるかが重要だと思っています。

そこで自社キャラクター(ブリ子やレヴィ)制作にもAIを活かせないかと思い、その手段の一つとしてStable Diffusion + LoRAで、モデルと追加の学習データを、画像生成に利用できる仕組みに辿り着きました。

自分はイラストレーターさんのようにポンポン描けるわけではないから、アニメーション用の素材制作などが効率化できるといいなと思い試してみましたが、現状はなかなかうまくはいかないですね。とりあえず簡単な基礎知識といま現在の状況の備忘録として。

単純にプロンプトいれて作成

単純にとはいえそれなりに考えて、結構な数のプロンプト入れて作成してみました。

奥行きがある感じ
面白い構図
なんかかっこいいw

使ったツール

Google Colabを利用する方法もありますが、自分はStable Diffusion Web UI AUTOMATIC1111版と、Kohya's GUI(Kohya版LoRAをブラウザで感覚的に利用することができる)をPCにインストールしてローカルで作る方法で試しました。

これら導入の手順は他に任せます。

LoRAによるオリジナルっぽい生成

LoRA(Low-Rank Adaptation)とは簡単に言うと、AIの転移学習の一種であり、元のモデルで学習した知識を、ユーザー独自のデータセットを用いて再学習させることで、特定の分野に特化した新しい特徴を追加することができるというものです。

キャラクター生成の例で説明すると、例えば「アニメキャラクターを生成する」元のモデルと、「特定のキャラクターを生成する」という新しいタスクとする場合、共通の特徴を新しいタスクのキャラクター生成に利用できるというものです。

なのでそういう意味ではオリジナルを完コピしたイラスト量産のイメージとは違うため、ウェイト調整にもよりますが「オリジナルっぽい」というのはそういうことで、コスプレさせるみたいなイメージが近いのかなと思います。とはいえこれらを活用して、ブリ子やレヴィなどの制作にも活かせたらという試みです。

データセットの収集方法

有名なキャラクターであれば、ウェブから容易に収集できますが、いろいろと課題はあると思うので、アウトかどうかはかわかりませんが課題がある認識はもっておいたほうがよいと思います。

なんだかんだ言ってこの部分はとても大変な部分で、どう用意・収集するかなど人によっては大きな障壁になる部分です。自分はというとオリジナルキャラクターですから自分で用意すればいいわけです。効率よく多くのポーズをしたイラストを用意するために、今回はVroidで作成したキャラクターのスクリーンショットを活用することにしました。

Vroidでセルルック風に作成したのブリ子、衣装別にスクショデータ作成

背景は変えたほうが良いらしいが、めんどくさいからやらなかった

このポーズ達が学習に最適なポーズかはわかりません。blenderとかでVRMデータを突っ込むと学習に最適なポーズを自動で出力してくれるみたいな都合のよいプラグイン誰か作ってくれないかなあ、、。

モデルの学習方法

使用したモデルは「anything-v4.0.ckpt」を使用しました。

LoRAの設定はさまざまなページで参考にさせてもらいましたが、どれも全然違う設定なので、総当たりで試していくしかないなと、、。大きくは以下項目を中心になんどか作り直しました。

・どのモデルを利用するか
・教師データを10枚の場合と40枚の場合
・正則化画像のありなし(png)
・epoch数を1〜10くらいでstep数が1500〜10000になるように調整
・Optimizerの変更(Adfactor, AdamW)
・Learning rateの変更
・NetworkRnakがNetworkAlphaの調整(4,1、8,4、128,64、128,128など)
・その他Shuffle caption、Color augmentation(true, false)

などなど、設定を変更して試行錯誤を繰り返しました。できたファイルをStable diffusionのLoRAで試してみたものの一部です。

生成された画像たち

だいぶ細かくパラメータの調整を行いながら作成しました。Vroidでもセルルック風に作っていたものの3D感が抜けきらない感じでしたが、そういうものはなくなったかなと。Vroidで出力したものを学習させたせいか、手が崩れたものが多かったように思います。また、学習用に用意したポーズに近いのかなと思います。逆に言えば欲しいポーズを学習させておくと良いのでしょうか。出力された背景も同じプロンプトでもかなりランダムで、これらの課題は今後ControlNetを活用して微調整を試みたいと思います。

ある程度成功といえるが、中に着ているTシャツの柄までは再現できず
構図は意のままには難しいが試行錯誤の上、、
モデルを変更してみたパターン
服を変えたバージョン。こちらは10枚で学習。
Seed値を固定してもパラメータ変更で背景も変わってしまう

どのようにクリエイティブ系のAIを活用できるか

同人系では実際に作ったものを売ったり買ったりしているみたいです。かなりのスピードで量産され、AI系制作物に少し規制が入ったとの情報もあります。作品の価値や差別化、オリジナリティなどについても議論されているようですが、これはもしかしたら同人系だけの話ではなくなる可能性はゼロではないです。

今回プロンプトを色々試行錯誤してみて、一つの絵を作る際に場所、ライティング、ポーズ、構図、奥行き、時間帯など様々な経験を元に有効なプロンプトを探して指定しました。何かディレクターの仕事に似てるなと思ったのですが、画面を構成する要素をどれだけ知っているか、どのように伝えれば理解できるか、単純にボタンを押せば良いというわけではなく、AIとのコミュニケーション能力が問われるなと。Gen-2などのtext to movieなども出てきたので、プロンプトの研究、AIとのコミュニケーション能力向上は大事かなと思ってます。

ちょうどお仕事で社員の写真をイラスト化したい、みたいなお話が出てました。そこで今回の仕組みを使えるかなと思ったのですが、まだまだ意のままに操れるわけでもないので提案は見送ったのですが、使う使わないは別として、選択肢として持っているのは依頼側としても心強いと思います。
まだ直近だとイメージボードや絵コンテ、提案書など、不確定要素を含む場であったら、比較的使いやすいのかなと思いました。逆に納品データのハードルが高くなってしまうかもしれないのだが、、。

以前、絵が苦手な映像ディレクター向けに、AIで絵コンテを作るサービスというのを提案したことはあった(自分が使いたかった)のですが、興味を示してもらうまでに至らなかったので途中でやめました。いまはControlNetで似たようなことができるので、それを絵コンテのフォーマットに出力できるものがあったら嬉しいなあ、、。

あとはやっぱり背景イラストに使いたいなあと。ただ現状こちらも意ままに出すのは難しそうで、アニメや漫画でも連続したシーンなどで、角度が違うものを出力する必要があるシーンとか、そういうのを考えると難しそうではあります。それまではブリ子ロジックもまだ有効なのかなと。

次はControlNetも併用してみます。


いいなと思ったら応援しよう!