potpro (ぽとぷろ)
Full-stuck engineer(Not Full-stack)
JS/PHP/Go/Docker/Nginxなど。技術または趣味寄りの発信ブログです。
全 85 記事NovelAIで存在しないファンアートを永遠に生成する
NovelAIで存在しないファンアートを永遠に生成する
概要
近年ではAI画像の進歩が非常に早く、めざましい進歩を遂げています。
特にStable Diffusionは、OSSとして無償公開された8月から様々なモデルを駆使したサービスが登場し、もう高メモリなGPUを積んだマシンを用意する必要もなく、誰でも手軽に生成できる時代が来ました。
その中でも、Stable Diffusionで独自のモデル使って提供しているWebサービスであるNovelAI Image Generateはひときわ目立った存在であり、特にアニメ絵や人物の生成に優れています。
今では素手でラーメンを食べる絵などネタ方面でも話題になりがちなサービスですが、クオリティが高いからこそその潜在能力は計り知れないと思っています。
存在しないファンアート
かわいいですね。ありがとうございます。
タイトルの通り、これらは全てNovelAIで生成した画像をアップスケーリング以外ほぼそのまま使っている、または数分程度加筆修正したものとなります。
絵柄もバラバラなので、知り合いの人やSkebなどのサービスで描いてもらったと言われても騙せるでしょう。
これに 「potproさん、ありがとうございました!」 みたいな架空のサインまで描くと本格的に気づけないと思います。流石にそこまでやると精神を疑われるのでやりませんが・・・。
ちなみに、これらの元となる設定はこちらです。こちらはAI生成ではなく、自分が描いた絵です。自分の絵はAIよりほとんどの人が見たら下手と言うと思うので、綺麗な絵の後にこれを出すのは非常に恥ずかしいですね。
こちらの絵は設定資料としての役割を担っていて、全ての絵の元となっています。ファンアートの方が上手いのはまあ・・・よくあることです。
生成速度や単価
NovelAIを駆使していくたび、うちのこのファンアートは精度も上がり、このレベルであれば大体1枚20分、単価は30円ほどで生成できるようになりました。
実際に依頼して描いてもらう絵などを考えるとありえない単価と速度ですが、これがAIで生成する絵という新しい方法であり、その点も含めて世代が移り変わったな、と感じます。
とはいえ、当然ながら今までのイラストレーターの絵を否定するつもりは全くありません。個人的にコミッション依頼している絵もありますし、まだAIで表現が難しいところや細かい修正、AIが想像する絵は生成が困難なシチュエーションもまだまだあります。
逆にNovelAIで生成しているとより深く感じます。普通に描くとどうやってもこんな塗りや描き方にはならないだろうな、みたいな。人間が描いたものと比べると、違和感が多すぎる表現とかもそうですね。現段階ではそれも含めて面白い部分と感じてます。
この記事では、そういった物に対応するべく修正をどのようにやっていって、クオリティを上げていっているのかの個人的にまとめたTips集となります。
また、この分野は本当にまだ研究がずっと進んでいく分野と思うので、よりよい方法があればもっと共有して、知見を深めて行ければと思っています。
というよりやってて思うのが、これよりもいい方法が絶対にあるはず。あくまで暫定的な考え方なので、もっといい方法を他の方も共有してもらえると良いと思っています。
なお、この記事はNovelAIで良いファンアート(?)を生成するかに焦点を当てていますので、機械学習の知識を深く理解するものではないです。かつわざとお絵描き調に出している節があり、{masterpiece}な絵を出す方法でも無いです。
Tips
呪文の基礎
ここに関しては詳しく説明しません。というのも、いろんなサイトが解説しているからです。
覚えておきたいのは、{}
または()
で単語を囲むと、よりその要素が強く出やすく、逆に[]
で囲むと弱くなる、と言う仕様くらいですかね。
ここで一番重視するのは 「自分が好きなタイプの絵、出したいキャラを詳細に指示する」 ことです。
近年では研究が進み、masterpiece
を使うと綺麗な絵が出るとか、そういう情報が出てきます。しかし、ファンアートを生成することに焦点を当てると、あなたが欲しい絵は本当にそうではないかもしれません。
そのため、私はmasterpieceやAdd Quality Tagsを使っていません。これらを使うと絵柄が似たものが多くなってしまうと感じているからです。
AIは言葉の意味を理解している訳ではありません。masterpiece
といえばこういうタイプの絵だよな~ということを考えるだけなので、全てにおいて万能な指示は無いです。
これらを使わずに、手書き調の絵がほしいならsketch
やoekaki,monochrome
など、抽象画のような雰囲気を出したいのであればabstract
など、AIはいろんな希望の絵に答えてくれる幅があります。
キャラの属性を詳しく指示することも必要です。あなたのキャラの全ての属性を詳細に書き込みましょう。
例えば、自分のキャラはlong twintail, green hair, green eyes, periorbital dark circles, (white) knit hat with white cat ears shape), (((jitome))), (emotionless), [glance], dowel sleeve, shool uniform, (stomach), navel, blue sailor collar, red ribbon, blue sailor skirt, short height shirts, thigh socks, long bangs, jaggy line, serafuku, human ears
あたりはほぼ確定でpromptに入れています。後はここに加えてポーズや絵柄を適宜加えていくと割と理想通りのものが出てきます。
Undesired Content(Negative prompt)もかなり重要な要素です。
ここでは例えばcat earという単語がpromptに入っているために、AIがネコを出したりネコミミのキャラと誤認してしまうことが多いです(ネコミミ帽子はネコミミではない)。また、baseball capなど別の形の帽子が出てくることも多いです。
そこでUndesired Contentにa cat,nekomimi,baseball cap
などを指定します。AIに誤認してほしくない要素を伝えましょう。よりクオリティが上がるはずです。クオリティを高めるためにはこちらの方が重要と考える人もいます。
何よりも、試行錯誤が一番重要です。頑張って自分の理想の呪文を見つけましょう。
NovelAIでの適切な呪文の探し方
と言っても、どうやったら適切な呪文を探せるのか。これもいろいろなやり方があると思いますが、自分はこのような形を取っています。
NovelAIの学習データはdanbooruというサイトを使用して作られています。
danbooruは画像にタグを付与していて、NovelAIも学習データにdanbooruのタグを使用していると推測されます。
なので、私はdanbooruのタグ検索ページから適切なタグを調べています。
このタグ検索ですがなんと日本語にも対応しており、例えば「前屈み」で検索すると「leaning_forward」と予測変換されます。便利ですね。
これをそのままpromptとして使用しています。
そしてこのサイトは画像収集サイトでもあり、タグから表示した画像を元にいろんな画像が出てきます。タグも付与されているため、その画像からどのような構図や絵柄などを調べることが出来ます。
画像にはタグがたくさんついているので、このタグをそのまま呪文として持ってくるだけでも、ニュアンスが同じような画像は案外出てきます。
特に自分で独自に構図やシーンなど、考えること結構厳しいと思うので、このやり方は非常に効率的です。どういったタグを付けるべきかの判断にも役立ちます。
Scaleの使い方
Scaleの設定はプロンプトにどの程度従うかを指定します。低いほど従わなくなり、高いほど従うようになります。大体低い=3、高い=11くらいの感覚です。
高い方が良いんじゃないと思いますが、これもまたケースによります。
高いと本当にpropmtを守る絵になりやすいです。例えばpropmtにportrait(肖像画)
を指定していると、ほとんどが正面の立ち絵になるみたいなパターンがあります。
Scaleが低いというパターンは、現実の依頼絵で言うと 「こういう指示の絵を描いてほしいけど、そんなに守らなくていいし、あなたの好きに描いてほしい」 と感じです。
なので、Scaleを低くすると設定していない構図や絵柄になります。かつ独創的な絵になりやすいです。これもまた、いろんな構図や絵柄で提案してくるのでガチャ要素があって楽しかったりします。
その中で自分の好きなものをピックアップします。ただし、これで生成した画像はかなり崩れているかもしれません。しかしそのあたりを直す方法があります。
Img2Imgで手直しする
生成した画像も、微妙に細部が異なっていたり、一部おかしかったり、変なノイズが全体を見ると目立つ、みたいなパターンは多いです。そのあたりを直したいみたいな時が良くあります。
その時は画像を元にしてAIに与えて生成する、Img2Imgの機能を利用します。
この画像は、明らかに帽子の形がおかしいです。他にもいろいろと違和感があるところも多いので、誰から見てもクオリティが良くない絵と思います。
これの変なところを直して、白い帽子にしたい。そういう時は、そのまま塗りつぶしたものを、Img2Imgに渡して、再生成してもらえばいいです。こんな感じに塗って・・・
指示は詳しいほうがいいに越したことはないですが、これくらいざっくりでも割と大丈夫です。
こんな感じです。これで、自分の想像に近づいた絵になりました。こうやってクオリティを上げて行ったりしています。
また、Img2Imgの場合、Uploaded Image Settings
という項目が出てきます。これに関しても重要な要素となります。
Img2Img: Uploaded Image Settings
Img2Imgを使用する場合、StrengthとNoiseという2つの設定項目が追加されます。
Strengthは、AIがアップロードした画像をどの程度変更できるかを指定します。低いほど元画像を守り、高いほどpromptを守ります。
Noiseは、高いほど画像に新しい要素を付与します。
なのでここでの使い方としてはこんな感じです。
「構図は気に入ってるけど全然イメージと違う絵」 はStrengthとNoiseを高めに、
「ほぼ絵柄も構図も完成しているけど細部をちょっと変えたので直したい」 という場合にはStrengthとNoiseを低めに設定しています。
ただ、Stregthはかなり低くすると全然絵が変わらないパターンが多いです。
なので、前者の場合はStrength:0.6、Noise:0.2、後者の場合はStrength:0.5、Noise:0くらいの設定をしています。ここは設定を試行錯誤していい感じになるポイントを探りましょう。
やっぱりガチャは必要
ここまで生成できましたみたいなことを言ってますが、やっぱり生成しても出てこないじゃないか!やっぱりちょっと崩れる!全然使えない!みたいなパターンは良くあります。
それらはどうやって解決するかと言うと、試行回数をひたすら増やすことです。はい。いろんなところで言われていますがガチャです。今のAIはそれが必要なのです。
当然お金も掛かります。NovelAIはanlasというポイントを生成に利用します。
anlasは購入またはサブスクリプションで獲得することができ、単価として10000anlasで10ドルです。1枚あたり3~6anlas消費するので、2000-3000枚は生成することが可能です。
これとは別にサブスクリプションで最低10ドル/月掛かるため、合わせると1枚生成当たりのコストは1円くらいと思います。これを安いと思うか、高いと思うかはわかりませんが、実際に人に依頼するよりは確実に安いはずです。
自分はまだ結構使い倒して6000anlasくらいしか使用していませんので、とりあえず20ドル(3000円ほど)買えばかなり楽しめはすると思います。
荒い画像もAIアップスケールで修正する
自分は、anlasを節約するために、基本的にSmallサイズで画像を生成しています。画像が小さい方が生成時間もanlasの消費も少なく、メリットが大きいからです。
しかし当然ですが、そうなると完成した画像は小さいままです。
サイズを大きくするための、Enhanceという機能がNovelAIにはありますが、これは絵柄なども変わってしまう可能性が高いんですよね。
なので、私はアップスケールを行う別のAIソフトを使用しています。自分が使っているのはupscaylというAIアップスケールソフトです。
このソフトはreleasesページからダウンロードしてインストールするだけですぐ使えますので、非常にお手軽です(但し、GPUが必要です)。
これがアップスケールする前とアップスケールした後の画像の比較です。ボケてる感じはなくなります。
もっと高機能なものとして、別のReal-ESRGANやSwinIRなどを使って一から構築できるものもあります。pythonをインストールしたり、知識が必要になるので手間はかかりますが、クオリティを求めるのであればそう言ったものを使用するのも良いと思います。
元が小さい画像なら、基本的にアップスケールして見栄えが悪くなることはないはずです。
本当に細かい修正は画像編集ソフトを使う
それでもよく見るとおかしな部分がある・・・だって?
そうですよね、AIで生成した画像は画像生成AIによって生成されたイラストの見分け方という記事でも語られていますが、細部を見るとおかしなところは感じます。
手などはやっぱり生成が難しいです。今までの絵も上手いこと手を隠していたような構図に気づく人もいると思います。
自分も普通に描く時に手が本当に苦手なのでAIが苦手でも仕方ないです(そうか?)。
でもどうしてもここだけは直したい、と言うところは・・・
そうなれば最終手段です。 画像編集ソフトを使いましょう。
自分はAffinity Photoを使っています。
そこまで知識がなくとも、PhotoShop等であれば修復ブラシやぼかし、色合い調整や塗りつぶしなどを駆使すれば大概の部分はごまかせるはずです。
もっと深い知識があれば、AIと気づかれなくなるレベルまで修正できることでしょう。
AI絵を加筆した絵なども出てきています。結局のところいい絵を得るということが目的なので、AIにすべてを任せる必要はありません。
最終手段と言いましたが、このやり方をやっている人は結構見ます。クオリティを上げるという作業としては実際一番効果がありますからね。
おわりに
以上となります。いかがでしたか?(いかがでしたかブログ)
ここまでやっても、やはり完璧に考える絵としては遠く、細部を見ると粗は目立ちます。人間が描く絵を超えることはまだ無いでしょうね。今はですが・・・。
AI絵の技術は過渡期で治安が非常に悪いような気もしたり、AIと人間の対立構造が出来ているような気もするのですが、私はAI絵のノウハウや知識ややり方をもっと広めて、AIで自由な発想のクオリティを上げた絵が増えるといいと思っています。
とにかく、自分は永遠にファンアートを生成できるだけでも非常に満足しています。まだまだこれから進化していくAI絵、ここにいてあることが不要になるくらい、全く手直しなど必要ないようなレベルに達するかもしれません。
非常に楽しみですね。今後も追っていきたいところです。