【五月病企画】技術で初音ミクを描く【hatsunemikuredraw】
みなさんこんばんは。五月ですね。
いつも堅苦しいことばかり書いている私も、今月は五月病なので楽しいことを考えます。
みなさんは#hatsunemikuredrawあるいは#HatsuneMikuDrawをご存知ですか?
ちょうど三年前くらいの今、各々のスタイルでセーラームーンを描くという#sailormoonredrawが流行し、それに追随して登場したのが#hatsunemikuredrawでした。コンセプトは同じく、各々のスタイルで初音ミクを描くというやつです。
私はかつて#hatsunemikuredrawを眺めるのが好きでした。それなので、今日は私も満を持して#hatsunemikuredrawをします。
技術で描く
五月病なので、技術に頼ります。
具体的には、画像を生成する類いの深層学習を用います。数ある手法の中から、今回はGANとDiffusionを採用します。
初音ミクを学習してもらうので、まずは初音ミクをかき集める必要があります。
#hatsunemikuredrawのうち、適当な基準*1を満たす画像を、1,000枚くらい*2集めてきました。
処理が大変なので、画像は256ピクセル四方にリサイズします。
GAN
GANことGenerative Adversarial Networkとは、敵対的生成ネットワークです。次のやり方と比べて、こちらは今やトラディショナルみたいです。
作り方はよくわからないので、DCGANのチュートリアルを用います。
チュートリアルに倣って、2,000ステップくらい訓練します。ほかの細かいハイパパラメータはよくわからないので、とくに気にせずそのまま設定していきます。
これが私の#hatsunemikuredrawです。
たくさんの初音ミクが生成*3されました。よく見るとガビガビですが、背格好や髪の色はさまざまです。
さまざまとは言いましたが、かなり抽象化されているようにも見えます。初音ミクを初音ミクたらしめる特徴を抽出して、まんべんなく反映している感じでしょうか。
このチュートリアルでは、学習の経過を見ることができました。徐々に初音ミクを学んでいく様子がわかります。
Diffusion
こちらはより今っぽいやり方です。今っぽいだけあって、私もよく知りません。なんかこう、ブワッとやってブワッと戻したら画像になるみたいな、そんな感じだったと思います。
これに関しては、それ用のライブラリがあるみたいなので、さっそく使います。
Diffusion Pipelineによって、Unconditional Image Generationをします。
ハイパパラメータは例を参考に、雰囲気で設定します。今度は4,000ステップくらい訓練してみます。
これも私の#hatsunemikuredrawです。
先ほどの結果とはまた雰囲気が違い、ちょっと水彩画みたいな印象があります。また先ほどと比べて、より多様性がある気がします。さすがは新しいやり方。
ケーススタディとしては、まず1行1列がとてもきれいに生成されていて、すばらしいです。ほかにも2行3列はかなりデフォルメ調で、かわいさがあります。
あとがき
五月病の私に代わって*4、技術に初音ミクを描いてもらいました。
1,000枚の#hatsunemikuredrawを学習させることで、かなりの初音ミクを生成することができました。ガビガビだったりぼやけていたりしている気がしますが、いかんせんニコニコ技術部みたいなことが好きなので、五月病の私は満足です。
ありがとうございました。
参考ページ
- 無断でダウンロードしたデータでもAI開発に使える? 改正著作権法を弁護士が解説:“おいしいデータ”で、成果が出るAIモデルを育てる(1)(1/2 ページ) - @IT
- Midjourney、Stable Diffusion、mimicなどの画像自動生成AIと著作権 | STORIA法律事務所
- 著作物が自由に使える場合 | 文化庁