NovelAI のローカルセットアップ方法と使い方のメモ書きです。
前提条件
●必要なハードウェア
最低8GBのVRAMを搭載している NVIDIA RTX GPU (AMD, Intel, Apple Silicon は現状難しい)
※VRAMについては低容量でも回避できる方法はなくはないようですが試していません。
いっぱい空きがあるSSD (sd-webに組み込む場合は大量の大容量学習済みモデルをDLします)
Windows PC (自分でできるならLinuxでもOK)
●知識
Python, condaなどを自分で導入できること
Bittorrent(Magnetリンク)が使用できること
Stable Diffusion (以降、sd) を最低一回でも使ったことがある
How to (やり方)
🔴パターンA. NAIFUを使う (お手軽GUI、ローカルGPU使用)
●Naifu のDL
まずはリークされたNovelAIの学習済みモデルを下記magnetリンクからDLします。
magnet:?xt=urn:btih:4a4b483d4a5840b6e1fee6b0ca1582c979434e4d&dn=naifu&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce
※Python が入っていない場合は入れておく。環境変数パスも追加しておく
https://www.python.org/downloads/windows/
📝 学習済みモデルに著作権はあるか?
元がリークということで不安に思われる方もいると思うので、見解を述べます。
学習済みモデルの著作権ですが、そもそも著作権が発生する条件として、現行法ではなんらかの思想やいわゆるオリジナリティが反映されているか?がキーになります。
学習済みモデルの実体は数値データに過ぎませんが、NovelAIの学習済みモデルは特定の作風(いわゆる日本の二次元イラスト)に寄っていることもあり迷われるかもしれません。
が、元がネットの画像(しかもDanbooruという転載サイト)から学習したモデルであり、
作風のコピー元が明確にあるのでNovelAIとはいえ、(sdのモデルは当然として)学習済みモデルにオリジナリティが認められる可能性は非常に低いでしょう。
仮に万が一著作権が認められたとしても、私的利用や教育は当然ながら、他にも利用を認められている条件もあります。(下記参照)
著作物が自由に使える場合|文化庁
https://www.bunka.go.jp/seisaku/chosakuken/seidokaisetsu/gaiyo/chosakubutsu_jiyu.html
ちなみに著作権法では「偶然一致した」だと権利侵害とは認められません。なので学習済みモデルを学習させたモデルを作られると別物扱いになりどうしようもないのが現状です。(つまりリークデータが完全にNovelAIのモデルと一致する、とNovelAI側は証明しなければならない)
そのためご自身でAIモデルを作成する場合は安易にコピーされない施策を考えなければならないという課題もあります。
●展開
中の program.zip を展開して、「models」と同じディレクトリに入れる
※programフォルダを作らないように。
●セットアップ
setup.bat を初回だけ実行
※torch がないと初回DLで 2.4GB くらいかかる。Cドライブの空きに注意
●web UI に入る
run.batを実行 (2回目以降はここからでOK)。
ブラウザでコマンドプロンプトに出ているURLからローカルのWebページにアクセスする。
※0.0.0.0:xxxx の場合は見れないかも。その場合は localhost:xxxx に置き換える
※生成後、再生成するとボタンが巨大化するかもしれないがブラウザの開発者ツールで消せる
●tada~!
あとはお好みのプロンプトを入力して生成するだけです。
Danbooruのタグサジェスト機能も使えるので、良さそうなタグも使える。
🔴パターンB. NovelAIモデルをDLして既存のsd-web(Stable-diffusion-webUI)に入れる
●NovelAI モデルのDL
magnet:?xt=urn:btih:5bde442da86265b670a3e5ea3163afad2c6f8ecc&dn=novelaileak&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2F9.rarbg.com%3A2810%2Fannounce&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr=udp%3A%2F%2Fopentracker.i2p.rocks%3A6969%2Fannounce
データ量が大きい( 驚異の50GB! )が、この中の
📁animefull-final-pruned
📁modules
📃animevae.pt
だけあればとりあえずOK。
●NovelAIのモデルを格納
sd-web フォルダの “webui” 以下の構造をこのようにする。
📁webui
📁models
📁Stable-diffusion
📃model.ckpt
※ from “novelAIleak\stableckpt\animefull-final-pruned\model.ckpt”
📃model.vae.pt
※ from “novelAIleak\stableckpt\animevae.pt”
時にこのvaeがないほうがいい結果になるらしい
📁hypernetworks
※ フォルダを作る
📃aini.pt
📃anime.pt
……
📃pony.pt
※ from “novelAIleak\stableckpt\modules\modules\” :全ての pt をコピー
…でOK。
●生成
あとは CFGスケール 11 で生成すればOK。
NovelAIのデフォルトネガティブプロンプトとして、
lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry
が使用可能。
また、カッコを使うことでワードの強調・弱体化が可能。
カッコひとつ括りにつき1.1倍ずつ倍化し、
()で強調、[]で弱体化する。
((黒髪)) なら、黒髪というワードが 1.1 x 1.1 = 1.21 倍 の強さで認識される。
[小さい手] なら、0.91倍となる。