テスターちゃん【4コマ漫画】

ソフトウェアテストの用語、やり方などを4コマ漫画でわかりやすく説明する(予定の)ブログです。脱線も多いです。



自分のマンガのキャラをAIに学習させてみた[Stable diffusion+LoRA]

僕は絵を描くことが好きだけど、マンガで大量に絵を描くときはメンドイと思うことがあります。

今マンガを描いていてそんな気持ちがわいて「そうだ、AIに自分のキャラを覚えさせて出力させよう」と考えました。

試してみた結果を書こうと思います。

 

 

今は簡単に絵を学習させるようなサービスはない(2024/5/2現在)

以前、絵柄を学習・出力させるサービスが一瞬出ました。

案の定絵師の間から大クレームが出てクローズしました。

絵師の間では、トレースした絵を自分の絵として発表する人が問題視されています。

そこに絵柄を覚えさせて出力するサービスの登場です。

自分の絵ではなく、人の絵を勝手に覚えさせて出力させてしまう人は出てきてしまうでしょう。

そのようなわけで気軽に試せるツールは残念ながらありません。自分の絵を覚えさせるにしても自分で環境構築・学習を行う必要があります。

僕はLoRA(Low-Rank Adaptation)という手法を使いました。

これは既存のモデルのパラメータに、別途学習したパラメータを追加することで新しいタスクやデータに対応させます。

モデル全部を再学習させるわけではなく、既存のモデルはそのままで、それに新しいパラメータをくっつけることで新しい知識をゲットさせるやり方です。

オプション装備と言えばわかりやすいかもしれません(笑)

 

構築方法は割愛

詳しい構築方法は記載しません。

sd-scriptsを使用しました。

windowsですと途中tritonwindowsに対応していないので詰みます。

windowsの方は wsl -d ubuntu といったようにwslを使う必要があります。

また様々なブログに書かれている方法でも結構エラーが発生します。

エラーを調べてどのライブラリが足りないか、バージョンの依存関係など調べてpip installしていきましょう。

学習については以下のような設定で行いました。

学習回数は20回。lossは0.06ほどでこれ以上学習させてもこれくらいでした。

 

学習データは使ってもいいです

学習データは「テスターちゃん」に出てくるりんちゃんです。

以下のリポジトリにTrainingData.zipを置きますのでどなた様も使っても問題ありません。(エッチな絵はダメ)

GitHub - jam0824/LoRATrainingData: LoRA用の学習データです

タグデータは作るのが面倒だったのでイメージtoテキストのAIで出力させたものをそのまま入れてます。また全てに"rinchan"タグを入れています。

吹き出しや背景を消した画像が入っています。

 

そんなことはいいから結果は!?

結果としては

特定のキャラを出すのはやっぱり難しい。手直しして使う必要あり。

モブキャラを描いてもらうには良さそう

です。

結構イイ感じではあるのですよ。

けどちょっときらら系になるといいますか幼くなるといますか……。

出力を並べてみます。

 

ControlNet + LoRAも試してみた

ControlNetとは、ポーズや構図を画像で指定する技術です。

それとLoRAでよりイメージしたものに近い絵を出そうと試みました。

こちらは……

下絵には使えそうだけど、これでいけるかというと難しい

でした。

以下のような下絵段階の絵を指定してみました。

出力させるとこうなりました。

イイ感じではあるけど、そのままきれいな線になってくれたら嬉しかったんだけどなーといったところです。

 

まとめ

自分の絵を学習させて出力させるのは、おおよそそれっぽい絵が出てくることがわかりました。

ただ、オリジナリティがある特定キャラを安定して出すのは今のところ難しそうに見えます。

飾り気がなくてシンプルなキャラならいけそう、または毎度変わってもいいようなキャラ――つまりモブキャラに活用するのは良さそうです。

また、最終的なキャラとして使わずとも、ネーム段階である程度あたりをつけるのにつかっても良さそうです。

 

僕は絵を描くことが好きなのか、最終成果物が欲しいのか?

AIで絵を出力していて思ったこと。

 

僕は絵を描きたいんだっけ?

最終成果物(出来上がった絵)が欲しいんだっけ?

 

マンガであれば、僕の場合は「初心者のみんなにソフトウェアテストの知識を面白おかしくわかりやすく届けたい!」という想いがあります。

それを表現するための絵は僕が描いてもAIが描いても最終的に上のことが届けられていたらヨシとなります。

ならば「出来上がった絵が欲しい」がコスパ/タイパ的には良いです。

実際、この実験を行った目的はそうです。

 

けどそう考えて、AIで出力された絵を切り貼りしているシーンを想像したとき「僕は面白くないな」と感じました。

僕は「みんなが知識が得られたらそれだけで幸せ」といった聖人君主ではなく、自分自身も楽しみたいわけです。

僕は絵を描くたびに

「今回は可愛く描けた!」

とか

「前よりうまくなってんじゃん~」

なんて毎度まさに自画自賛しています(笑)

自分の手で少しずつ形ができていくのも好きだし、自分が頭の中でイメージしていることがその通り絵に描き表せたときはとても嬉しい。自分の成長を感じたときなんてニマニマしています。

そんな「お絵描き活動」が僕は好きなんだと思います。

 

だからと言ってすべてをすべて自分で描くのが好きかというと今度は「メンドイ」が首をもたげてくるわけです。

僕はわがままなのです(笑)

なので最終的には

「自分で描きたいところは描く。そうでもないところはAIでいっか」

と自分の中で決着しました(笑)