Stable Diffusionよりもはるかに高い精度でイラストを生成できる画像生成AIサービス「NovelAI」のAIモデルについて、NovelAIの開発チームが自身のブログで解説しています。

NovelAI Improvements on Stable Diffusion | by NovelAI | Oct, 2022 | Medium

https://blog.novelai.net/novelai-improvements-on-stable-diffusion-e10d38db82ac



NovelAIは2021年6月15日にベータ版が公開されたSaaSモデルの有料サブスクリプションサービスで、アメリカのAnlatanによって運営されています。もともとはその名の通りに小説を自動生成するAIでしたが、2022年10月3日に画像生成機能を実装しました。



NovelAIが画像生成に用いているモデルは、2022年8月に一般公開されたオープンソースモデルのStable Diffusionと同じ潜在拡散モデルといわれています。しかし、NovelAIは本家Stable Diffusionと比べてもはるかに高精度の二次元イラストを生成可能で、その学習に用いたデータセットには、海外の二次元画像サイトである「Danbooru」の画像を多く含んでいることを明らかにしています。



Danbooruに掲載されているイラストの大部分がPixivやTwitterをはじめとするSNSで発表されたイラストの無断転載によるものですが、作品を管理する「タグ」が非常に多彩で充実しているのが大きな特徴。データセットは本来画像だけではなく、モデルに認識させるためのタグ付けが必要になりますが、Danbooruのタグシステムをこのデータセットのタグに流用できるため、比較的ローコストで膨大なデータセットを用意できるというのがポイント。そのため、Waifu-Diffusionなどのイラストに特化した画像生成AIモデルは、Danbooruを元にしたデータセットで学習を重ねています。

NovelAIはWaifu-Diffusionと同じDanbooru由来のデータセットで学習していますが、Stable DiffusionやWaifu-Diffusionとは一線を画すレベルで高精度のイラストを生成することができました。





しかし、オープンソースのStable DiffusionやWaifu-Diffusionと異なり、あくまでもSaaSベースのサブスクリプションでモデルは非公開となっているNovelAIが実際にどういう仕組みなのかは不明でした。

そして2022年10月6日、NovelAIの公式Twitterアカウントは、AnlatanのGitHubリポジトリがハッキングに遭い、NovelAIのソースコードが流出したと発表しました。



その後、NovelAIの開発チームは10月11日付けで、NovelAIが「Stable Diffusionのモデルアーキテクチャとトレーニングプロセスを変更したものである」ことを明らかにしました。

Stable Diffusionではテキストと画像を結びつけるために「CLIP」と呼ばれるモデルを利用しています。このCLIPを改良し、タグベースのプロンプトをより有効に活用できるようにし、入力したプロンプトに対する生成画像の精度を高めているとのこと。

また、Stable Diffusionはデフォルトで512×512ピクセルというアスペクト比1:1の画像を生成するのですが、たまにアスペクト比が1:1ではない画像から無理やり1:1の画像を切り抜いたかのような変な構図の画像が生成されることがあります。これは、AIモデルの学習時にGPUの効率を最適化するために、複数のトレーニング画像を一気にアスペクト比1:1にクロップしてから学習するためです。

このアスペクト比1:1へのクロップが以下の画像のように画面中央を基準に行われることが多く、たとえば「王冠をかぶった騎士」の画像なのに、クロップした後の画像には王冠が含まれていないということが起こり得ます。そこで、NovelAIでは中央クロップではなくランダムクロップにすることで、この問題を少し改善することに成功したそうです。



さらにこのアスペクト比の問題を解決するために、NovelAIではデータセット用にカスタムバッチ生成コードを実装しているとのこと。Stable Diffusionでは最大画像サイズが512×512ピクセルと定義されていますが、NovelAIでは512×768ピクセル、最大ディメンションサイズを1024と定義されています。最大画像サイズを大きくするということは多くのVRAMを必要とするため、アルゴリズムを調整し、GPU処理の効率を上げているそうです。

そして、オリジナルのStable Diffusionにおけるプロンプトの最大長を3倍に延長し、より多くの情報をプロンプトに詰め込むことで、画像の制御をよりきめ細かく行えるようにしているとのこと。

加えて、NovelAIはモデル生成を制御する新しい方法として「HyperNetworks」と呼ばれるモジュールを開発しています。このHyperNetworksは「大きなネットワーク内の複数のポイントで単一の小さなニューラルネットワークを適用する」というもので、もともと小説を自動生成するためのテキスト生成トランスフォーマーモデルとして、ニューラルネットワークのさまざまな構成について繰り返し実験が行われていました。ただし、HyperNetowrksはモデルを十分に汎(はん)化できず、全体の学習容量が非常に小さくなってしまうことが問題だったとのこと。

しかし、このHyperNetworksを画像生成AIのStable Diffusionに応用することで、より多くの学習能力を持ちながら実稼働環境で十分通用する性能を維持できたそうです。結果として、NovelAiがStable DiffusionやWaifu-Diffusionと比較して画像生成の精度が非常に高いのは、モデルのネットワーク構成が根本から改善されているからというわけです。

なお、NovelAIのリーク直後、Stable Diffusionの非公式webUIツールで恐ろしい速度で更新を重ねる「AUTOMATIC1111版Stable Diffusion web UI」に、リークされたNovelAIのモデルを読み込める「Hypernetwork」機能が追加されました。これにより、AUTOMATIC1111版Stable Diffusion web UIでNovelAIを再現することが可能になっています。

added support for hypernetworks (???) · AUTOMATIC1111/stable-diffusion-webui@bad7cb2 · GitHub

https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/bad7cb29cecac51c5c0f39afec332b007ed73133



Emulate NovelAI · Discussion #2017 · AUTOMATIC1111/stable-diffusion-webui · GitHub

https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/2017