2022-10-08

結局、NovelAIの独自技術ってなんだったんだ?

NovelAIのgithubからリークした。

掲示板などを読んでみると、単純にStable Diffusionアニメ絵学習させただけではなさそうだった。

アニメ画像学習させた.ckpt(GB単位)と、付属データらしい.vae.pt(数百MB)と、更にhypernetworkという新しい単語が出てきて、.ptファイルというのもあるらしい。

.pt既存のTextual inversionでも使われている拡張子なのだが同じだろうか。


hypernetworkを読み込ませないと、崩れたアニメ絵が出てくるようだ。

NovelAI側のヘルプを見ると、プロンプトの最初に『masterpiece, best quality,』をつけるとクオリティが上がるらしく、拡張する時に追加しているキーワードなのかもしれない。


で、結局NovelAIはどうやって実現しているのか。

拡散モデル研究している人も知りたいというツイートをみたので論文にない独自方法なのか?

vae.ptというファイルからの推測だとVAE学習させてるのかな?


追記

どうやらhypernetworksという技術を追加で使っているらしい。

AUTOMATIC 1111にhypernetworksに関する実装が追加されている。現在gitブランチでhypernetworksトレーニングコード実装開始されている。

掲示板などを見ていくと、prompt最初に{masterpiece}を最初につけないと、いわゆるNovelAIっぽいアニメ絵にならないらしい。

{masterpiece}をつけない場合キャラ名は認識しているっぽいが、WaifuDiffusionっぽい崩れた画像が出てくるようだ。(アニメ画像学習した.ckptだけで動作し、.vae.ptは動いてない?hypernetworksが効いてない?)

キャラ名については、同一名で作品が違うという場合があるので、おそらく学習時に別の単語に置き換えていると想像する。(NovelAIでキャラ名を入れた際に候補が出るが、変換しているはず)


他にpromptトークン数をNovelAIは拡張している。

StableDiffusionの75トークンは、512x512の画像との対応付けから来ているというのが、付け焼き刃の知識での理解なのだが、どう対応付けしているのか。

最初に{masterpiece}があった場合フラグONにして、CLIPに渡すときは{masterpiece}を除外ってのは想像できるが、それでもトークンが余る。


Waifu Diffusion V1.3がリリースされ、学習する枚数を増やしたが、掲示板などに貼り付けてあるものを見る限り、まだ手は改善されてない。

最終リリース前(epoch5,6?)のものとの比較した画像も流れているが、見ても違いはわからない。

Stable DiffusionがDiffusion modelで精度が高い先端モデルとされているが、単純に学習枚数だけ増やしても手は描けない、ということではないだろうか。

追記

NovelAIが解説記事をあげていた。

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

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん