ソフトウェア

超高精度なイラストを生成できると話題の「NovelAI」は本家Stable Diffusionにどんな改善を加えたのか?


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's Image Generation, #NovelAIDiffusion is live on https://t.co/UTsnpZKa6W now!

NovelAI Diffusion Anime image generation is uniquely tailored to give you a creative tool to visualize your visions without limitations, allowing you to paint the stories of your imagination. pic.twitter.com/WZEpQ5idgI

— NovelAI (@novelaiofficial)


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

Since we are training on Danbooru, it also learns character names and their visuals. You can prompt for "masterpiece portrait of smiling rem, re zero, caustics, textile shading, high resolution illustration" and get this: pic.twitter.com/2wqDmAxCJa

— NovelAI (@novelaiofficial)


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

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

img2imgが面白くて
これ、呪文も丁度良かったんだけど
SSR引いた気分

サムネだと一緒なの本当にすき#NovelAIDiffusion #novelAI pic.twitter.com/yCxoQgzmgK

— 東亜あじこ@Vtuber (@Ajiko_channel_v)

AIが描いた初音ミクです ヤバすぎ#NovelAI #NovelAIDiffusion pic.twitter.com/YHhf84QRoo

— ずきみかん???? (@39anartwork)


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

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

[Announcement: Proprietary Software & Source Code Leaks]

Greetings, NovelAI Community.
On 10/6/2022, we experienced an unauthorized breach in the company's GitHub and secondary repositories.

The leak contained proprietary software and source code for the services we provide.

— NovelAI (@novelaiofficial)


その後、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

この記事のタイトルとURLをコピーする

・関連記事
イラスト自動生成AI「NovelAI」について学習元となったDanbooru公式が声明を発表 - GIGAZINE

画像生成AI「Stable Diffusion」でイラストを描くのに特化したモデルデータ「Waifu-Diffusion」使い方まとめ - GIGAZINE

画像生成AI「Stable Diffusion」がどのような仕組みでテキストから画像を生成するのかを詳しく図解 - GIGAZINE

画像生成AI「Stable Diffusion」を使いこなすために知っておくと理解が進む「どうやって絵を描いているのか」をわかりやすく図解 - GIGAZINE

アーティストの権利侵害やポルノ生成などの問題も浮上する画像生成AI「Stable Diffusion」の仕組みとは? - GIGAZINE

画像生成AI「Stable Diffusion」でいろいろ特化した使えるモデルデータいろいろまとめ - GIGAZINE

画像生成AI「Stable Diffusion」で崩れがちな顔をきれいにできる「GFPGAN」を簡単に使える「Stable Diffusion web UI(AUTOMATIC1111版)」の基本的な使い方 - GIGAZINE

in ソフトウェア,   ネットサービス,   ウェブアプリ,   アート, Posted by log1i_yk

You can read the machine translated English article here.