画風を維持しながら「AIリファイン」!提供イラスト検証で見えた"最適値" (Pixiv Fanbox)
Content
こんにちは、スタジオ真榊の賢木イオです。「AI清書」の検証は一旦終わり、と前回書いたばかりなのですが、新しい手法をたまたま見つけてしまったので、今回もAI清書についての記事。特に「原画の画風を維持した清書」の方法について検証したいと思います。
前回までの手法は、原画の色やかたちを基に、AIに自由に絵を書いてもらう形式だったので、全体的な画風はそれなりに変容してしまいます。ただ、特にキャラの目鼻立ちは個性が出る部分なので、できれば原画から大きく変えずに変化させたいところ。そこで、今回はこちらのアスカのイラストのように、できるだけ変化を抑えながらAI補正を掛ける方法について検証してみました。
ところが、実際に検証を始めてみると、私の絵で検証しても普遍性のある手法として確立できたかどうかが分かりにくいことが判明。そこで、検証用のイラストをご提供いただける方をTwitter(一部の人にはX)でゆる募したところ、こちらの皆様にご協力いただくことができました。
キムトモさん @kimutomo_2
わら(関ゆなな)さん @wara_hirono
猫黒夏躯さん @NatsukuPhoto
とりにくさん @tori29umai
きよあきさん @AI_Loli_Painter
(※順不同)
それぞれ、画風や仕上げ段階が異なるイラストをご提供くださり、投稿や記事に利用することをご了承いただいております。誠にありがとうございました!
原画をAIに「リファイン」してもらう
さて、前回までは「AI清書」という呼び方を暫定的にしていたのですが、清書やリライトというと文字やテキストを直すイメージがありますし、あくまで「AIならこう描くよ」というイメージなので、この記事中では「AIリファイン」と呼ぶことにします。
方法はごく単純で、原画にふさわしいプロンプトを考えたあと、Controlnetの「Tile」と「Canny(またはLineart)」をある重み(Weight)で重ね掛けするというものです。仕上がりや原画との相性により調整も必要ですが、おおむね次の強弱二つの設定値が有効なことが検証を通じて分かりました。
【AI補正(強)】→ごくラフな原画で、AIにしっかり描き直してもらいたい場合
①Tile
プリプロセッサ:none、重み:0.5
Starting/Ending Control Step:0~1
②Canny(原画と相性が悪い場合はLineart系)
プリプロセッサ:canny、重み:基本0.5(低劣化する場合は0.3推奨)
Starting/Ending Control Step:基本0~1(低劣化する場合は0.1~0.6推奨)
【AI補正(弱)】→AIによる絵柄変更を防ぎつつ、リッチにしてほしい場合
①Tile
プリプロセッサ:none、重み:0.9
Starting/Ending Control Step:0~1
②Canny(原画と相性が悪い場合はLineart系)
プリプロセッサ:canny、重み:0.9
Starting/Ending Control Step:基本0~1(低劣化する場合は0.1~0.6推奨)
たったこれだけです。Controlモードはすべて「Balanced」しか使いません。
・Controlnetの重みを強めると原画に近くなるが、低劣化しやすい
・弱めるとAIが自由に描けるため、クォリティアップに繋がりやすい…という関係にあります。cannyの方が低劣な線をほどよく無視してきれいに仕上げてくれるイメージがありますが、原画のタッチによってはCannyでうまく読めないことがあるので、その場合はLineart系を利用しましょう。
さっそく、この設定で「リファイン」した例を見ていきたいと思います。
【1】きよあきさん作例
きよあきさんからご提供いただいいた東北イタコさんのファンアートです。こちらをさきほどの手法でAIリファインしてみます。
まず、プロンプトでAIに原画の内容を説明します。青い服を着ていて、銀色の髪で、ケモミミで…というプロンプトを簡単に作っていきます。ゼロから考えるより、img2img画面で原画を読み込み、「DeepBooruによる解析」でベースになるプロンプトを出すのが簡単です。
もちろんこれだけでは不十分なので、次のプロンプトを自分で足しました。
「expressionless、cool、half closed eyes、thick eyebrows、red balls on ears、(black bodystocking:1.3)、holding staff、grey long hair、hime_cut、blue costume、black partially fingerless gloves、red earrings、silver very long hair」
このプロンプト設定はとても大切で、不十分なプロンプトで生成すると、AIが勝手に笑顔にしたり、イヤリングのデザインを変更したり、手に持っているものを別のものに解釈して書き換えたりしてしまいます。意図通りのリファイン結果になるように、AIに「何が描かれるべきか説明する」イメージでプロンプトを作りましょう。
・生成画面設定
生成画面の設定はこのような感じで、高解像度補助を使っています。キャンバスの縦横比が原画とずれるとトリミングされてしまうので気をつけましょう。
・1つ目のControlnet:Tile
MultiControlnet機能を使って、2つのControlnetを適用します。一つはTile。ここまでは前回までに紹介した「AI清書」と同じです。
・2つ目のControlnet:Canny
もう一つはCannyです。これを追加することで、より原画の「線画部分」をAIに印象付けて、違う絵柄になってしまうことを防ぎます。
さて、ここから重要なのは「重み」をどうするか。Controlnetの重みを強めると原画のタッチが再現されますが、ご存知のとおり低劣化してしまうことが多いです。そこで、どの数値が適正なのかX/Y/Z Plotで実験を行いました。
こちらがその結果。大きくして、原画と見比べてみましょう。
・AI補正(強):重み0.5
こちらは線が整っていますが、絵柄が変わっています。細部のディティールが足されてリッチになっているのは利点なものの、真ん中分けした髪の先がぱっつんになっていなかったり、目の光が過剰になっている点が気になります。また、クォリティアップしているとはいえ、手は正確に描けていません。
・AI補正(弱):重み0.9
こちらは線の粗さがやや気になりますが、さきほどの例と比べると、アンニュイな視線がそれなりに残せています。また、手のクォリティアップがほとんどしていない代わりに、大きく崩壊もしていません。
さらに実験範囲を広げて検証してみました。
1.Tile+Lineart Anime + Lineart anime
Cannyの変わりにLineart Animeにしたもの。重み0.4あたりからきよあきさんのイラストらしくなり、0.8以上はあまり変化がなくなっています。重みが強いほど線は低劣化する傾向にあり、背景の色合いが変化していることも分かります。これはLineart Anime独特の現象のようです。
2.Tile+Lineart realistic + Lineart
こちらはLineart Animeでなくプリプロセッサを「Lineart realistic」にし、「Lineart」に送り込んだ結果。キャラ部分はそこまで大きな差はありません。こちらも重みが強いほど線は低劣化する傾向にありますが、Lineart animeに比べて背景への影響が弱いことが分かります。
これらの結果から、とりあえずさきほど説明したように、重み0.5と重み0.9の2パターンを軸に検証を勧めていくことにしました。続いて、わら(関ゆなな)さんのイラスト4枚について検証してみます。
【2】わら(関ゆなな)さんの作例 ①スーツ男性
・AI補正(強):重み0.5(Canny使用)
AIイラストではあまり見掛けることが少ない壮年男性単体のイラストです。重み0.5で実験したところ、色合いは多少変化しているものの、よく特徴を活かしながらリファインしてくれています。特に、スーツの線画部分を細く整える効果が出ており、生成物そのままでは使えないとはいえ、作画作業の時短に役立ちそうです。女性イラストを中心に学習しているモデルが多いため、特に壮年男性のイラストは苦手(女の子か美青年っぽくなる)だと思われますが、思ったほどキラキラな目になったりはしませんでした。
このイラストでは設定を細かく変更して、さまざまな実験を行いました。使っているのは主にCannyとLineartですが、重みや適用範囲を変えることでさまざまな変化がおきます。
一つ一つ説明はしませんが、最も線が整ったのはこちらの一枚。「Tile:重み0.5、Canny:重み0.3」とかなり弱めで掛けたことで、原画の干渉が限定的になり、AIが自由に線を引くことができた結果、アニメらしい線が得られています。そのかわり、原画のディティールはほぼ失われてしまうので、顔立ちは特に加筆などの修正が必要になります。
たとえば、この画像をPhotoshopで線画化するとこのようになります。ラフから簡単にこうした線画が得られると、特に私のようなイラスト初心者にとっては手描きのワークフローに役立てられるかと思います。
【3】わら(関ゆなな)さんの作例 ②空手少女
・AI補正(強):重み0.5(Canny使用)
背景がファイヤーパターンの少女のイラストです。プロンプトは「1girl, light smile,dark red eyes, dark red hair, eyebrows visible through hair, hakama, hakama short skirt, hakama skirt, japanese clothes, blackbelt, kimono, looking at viewer, skirt, solo, white kimono,fire background」としました。
アニメスタイルのモデル(checkpoint)でリファインしたため、パキッとした塗りに仕上がっています。ただ、帯や合わせ周辺が赤や緑に見えたり、胸元のアンダーシャツが変になっている点が気になります。
・AI補正(弱):重み0.9(Canny使用)
こちらはできるだけ原画のテイストを残したもう一つのパターン。プロンプトは「dark red eyes」としたのですが、brown eyesとしていた方が原画に近い色合いだったかもしれません。元イラストのイメージをさほど壊さずにディティールを足せていると思いますが、「重み0.5」に比べるとその影響は限定的に見えます。
【4】わら(関ゆなな)さんの作例 ③制服少女
・AI補正(強):重み0.5(Lineart realistic+lineart使用)
抽象的なブルーの背景に、花びらが散っているようなパターンの幻想的なイラスト。
プロンプトは「1girl, :d, blue eyes, falling petals, foreshortening, from below, hands, jacket, long hair, smile,necktie, open mouth, outstretched arm, pleated skirt, reaching, school uniform, skirt, solo, wind,bokeh,blurry,blue background,bokeh」としました。
手前に散っている花びらが干渉して、Cannyではうまくこまかな線を抜き出せなかったため、Lineart realisticを使いました。作画ミスもありますが、おおむねこちらに手を伸ばした構図は再現できているかと思います。
【5】わら(関ゆなな)さんの作例 ④南国少女
こちらは、これまでのイラストに比べてラフ線がかなり残っている段階の作例。
右の画像のように、今回の「AIリファイン」の設定値ではスカート周りのラフな線が干渉してしまい、きれいに描画できません。真ん中の画像のように、CannyやLineartを使わず弱めのTileのみで生成すれば、つまり前回のAI清書のやり方なら回避できますが、原画のディティールは失われます。
プロンプトは「1girl, black hair, blue eyes, breasts, orange dress, flower, hair flower, hair ornament, red hibiscus, long hair, open mouth, simple background, sketch, smile, solo, white background」。
迷い線を消すとどうなるでしょうか。クリスタでささっと迷い線を塗りつぶして、tile0.5、canny0.3で生成したのがこちら。
もう少しキレイになるかなと思いましたが、多少は影響を受けてしまうようです。
原画の細部を無視してほしいときには、このように補正度の強い「tile0.5、canny0.3」設定を使うか、そもそもcannyを使わない方が良い結果になります。作画段階がどこまで進んでいるかによって設定値を使い分けると、より自分の求めているテイストが作り出せるようです。
【6】とりにくさんの作例
・AI補正(強):重み0.5(Canny使用)
大きな狐のしっぽと耳、目にかかった前髪が特徴的なイラストです。こちらは補正が強く掛かり、アニメタッチな仕上げになりました。ただ、サラシや前髪の表現は書き換えられてしまっています。特徴のある口(ω)の表現もAIではなかなか難しいですね。LoRAなどを適用する方法もありますが、これは自分で描き直したほうが早そう。
しっぽのリッチさなど部分部分で採用できる部位はありそうですが、全体としてそのまま使えるレベルではないように思います。また、原画の淡い色彩が消えてしまっているので、原画に寄せるなら色調調整も必要ですね。
・AI補正(弱):重み0.9(Canny使用)
こちらは原画をより強調したパターン。サラシや前髪が再現され、手も比較的原画の線が再現されているのが見て取れます。が、目の表現はやはり原画から書き換わっている感じがします。
Cannyは基本的に「主線のみ」を拾っているので、特に顔が小さいサイズで描かれている場合、目・鼻・口といった細部の再現は難しくなります(下図参照)
その場合、Lineart realisticを使ってこのように抽出したほうが、多少拾える線が増えるので細部の再現度は上がるようです。
どちらを採用するべきかは、原画のタッチにもよるはず。とりにくさんのイラストはペン入れ済みでラフな線がないので、Lineartの方が向いていそうです。
【7】きよあきさんの鉛筆線画をAIリファイン
これは頂戴したイラストの中で唯一の線画をAIリファインしたもの。前回の記事でも線画の直塗りをするとどうなるか実験しましたが、白主体の非常に淡い色にしかならないことが既に分かっているので、クリスタで下塗り(バケツ塗りをして適当にブラシを吹いただけ)をした上で、AIリファインしてみました。
プロンプト:1girl, loli,animal ears, bangs, brown hair,green eyes,eyebrows visible through hair, fox ears, low twintails, open mouth, simple background, butterfly, solo, upper body, yellow sweater,shirt, white background
これは既に手元に線画があるわけですから、2つ目のControlnetで読み込むのは線画の方でOKです。1つ目のTileは下塗りした画像で、いずれも重み0.5で設定しました。
少し画像が小さかったので、こちらは大きいサイズ。左がさきほどの「重み0.5」で作ったもの、もう一つ(右)は「重み0.9」でより線画を強調したものです。
線画や下塗りを強調しすぎると、やはり線や塗りの低劣化が起きることがわかります。よほど特徴的な顔立ちを残したい場合は「0.9」を使うか、後述する「inpaint法」を使うことになるのですが、スタンダードなイラストの場合は0.5くらいが一番良い結果を得られる感触があります。
ごくわずかな差として、左は蝶に「驚いて」いるニュアンスだけがありますが、右は原画の「わぁっ」と目を輝かせている感じが再現されているように見えます。また、このイラストは蝶がかなり手前にあり、女の子は奥にいるはずなのですが、AIはその位置関係も読み取れていません。やろうとすればdepthでやれなくはありませんが、これも手描き修正した方がずっと簡単でしょう。
こちらは「smile」のプロンプトを入れてAI補正強度を上げた(原画参照度を下げた)もの。顔立ちは少し離れてしまっていますが、線は比較的整っています。このあたりはまさにさじ加減というか、何を目的にAIリファインするかによって最適値が変わってくるものと思います。
【8】猫黒夏躯さんの作例(inpaint法)
最後の作例は、猫黒夏躯さんから頂戴したイラストをAIリファインしたもの。この特徴的なタッチがAIに打ち消されてしまうことを防ぐため、これまでの作例よりも工夫が必要になります。
まず、プロンプトは以下の通り。
1woman,red messy hair,blue eyes, closed mouth,short eyebrows,collared shirt, formal, glasses, necktie, hair between eyes, cigarette, smoke_trail ,black suit,black jacket, looking at viewer, ponytail,simple background, solo, white background
これまでと同じやり方でこのイラストを読み込むと、スーツに書き加えられた斜めの線を模様として読み取られてしまいますし、顔立ちもこのように大きく変容してしまいます。
そこで、まずはLineartで読み込んだ線画の斜線部分を、このように黒で塗りつぶす必要があります。
さらに、顔立ちを保護するために、3つめのControlnetとして「Inpaint Only」を追加します。このように、顔周辺を残して全体を塗りつぶしてしまいます。ちなみに、controlnetキャンバスは「s」キーで画面全体に拡大できるようになりました。(ありがたい…次は塗りつぶしたところを反転させる機能もお願いしたいです)
Controlnetの設定は以下のようになります。
(1)Tile 強度0.5 Start 0/Ending 1
(2)Lineart 強度0.5 Start 0/Ending 1
(3)InpaintOnly 強度1 Start 0/Ending 1
それで生成したのがこちら。
Inpaintを併用したことで、やや低劣な部分も残ってしまいましたが、顔立ちの特徴は維持しながらリファインすることができています。特に、右下のタバコ周りの漫画的描写はAIには理解しがたいようで、原画通りに上手にタバコを握らせたり、煙部分を上手に描写したりすることは(検証の範囲では)できませんでした。AIは「宇宙遊泳しているズボンを履いた豚」みたいな「独創的な組み合わせ」は描写できても、「独創的な表現」は描写できないのですよね。そのまま再現したい場合は、顔立ちだけでなくタバコ周辺もマスクすることになります。
こちらは別のイラストをInpaintOnlyなしでAIリファインしたもの(強度0.5と0.9)。右はかなり頑張ってくれはしているものの、やはりInpaintOnlyを使わないと、顔周りの画風をきちんと残すのは至難なようです。
猫黒さんのイラスト(せっかくなのでツイートを引用いたします)はデフォルメの効いたタッチやザカザカとしたタッチが魅力なのに、AIリファインを掛けるとせっかくの画風がAI独特の「平均化」により消されてしまう。その人固有の画風や目指す完成図によって、AIリファインが適用できるかどうかの「向き不向き」があることがわかります。
AIリファインと「トンチキカラーラフ」の違い
さて、ここ1ヶ月の研究内容は「トンチキカラーラフ」→「AI清書」→「AIリファイン」と変化してきました。もともとはこちらの記事のように、色だけを雑において生成結果を「縛る」ことで、構図やカラーリングを意図に沿ったものにしてみよう、というのが目的でした(トンチキカラーラフ)。
カラーラフを『雑塗りtile』!適正パラメータ総当り実験
こんにちは、スタジオ真榊です。前回は白黒のラフ線画からイメージ通りのAIイラストを作っていく手法を検証してみたので、今回は最初から色塗りした「カラーラフ」を用意して、AIに仕上げてもらう手法についていろいろと試してみました。前回は「scribble」を使いましたが、今回使うのは「Tile」。主にアップスケール時...
その後、私が絵を描く楽しさにハマったせいで、トンチキカラーラフではなく(ハイパー下手くそですが)下絵をAIに仕上げてもらう、という意図の研究にシフトしていき、
複雑なポーズに挑戦しよう!「雑塗りTile」作例紹介
こんにちは、スタジオ真榊の賢木イオ(@studiomasakaki)です。先週あたりからcontrolnetと手描きをミックスした生成方法を色々と模索していまして、今日はこちらのAIイラストのワークフローを振り返りたいと思います。 基本的には前回使った「雑塗りTile」をベースにしているのですが、特にミオリネさんの方は複雑な手...
いろいろ比較実験を重ねた結果、「AI清書」という概念が生まれました。
自作イラストをAIに仕上げてもらうには?比較実験で分かった"AI清書"のコツ
こんばんは、スタジオ真榊です。このところ、手描き絵をAIに「清書」してもらう手法について研究を続けています。 もともと、色を適当に置いただけの「トンチキカラーラフ」を使って思い通りの構図を出力するところからスタートしたこの研究なのですが、趣味でイラストを勉強しているうちに、タッチや描き込みを変化させ...
今回検証した「AIリファイン」は、下絵が既に個性ある絵柄を獲得している場合に、その個性をできるだけ残しながらAIに仕上げてもらう目的で研究したものです。
では、トンチキカラーラフ・AI清書・AIリファインがどう異なるかというと、入力する原画の「完成段階の違い」が大きいと言えます。トンチキカラーラフは本当にトンチキでよく、顔すら書いていませんし、線画もありません。できるだけ手間を掛けず、ただただ「どこに何をどういう形で描くか」をイメージプロンプト的に指示するだけの手法です。
「AI清書」は線画まで書き込んではいますが、線が低劣であり、むしろこれを維持されては困る(AIに"清書"してもらいたい)場合に使う方法です。このイラストなどは、ほぼ原画の低劣な線が維持されておらず、きれいに「描き直して」くれています。
これら二つは「思い描いた通りのAIイラストを短時間で出力する」目的のものでしたが、今回のAIリファインは、いったんそこそこの段階まで仕上げたイラストが手元にあって、そのテイストを残しながら、AIクオリティに仕上げてもらいたいときに使うテクニックと言えます。イラストに慣れた方よりも、私のようなイラスト初心者にこそ有用なテクニックなのかもしれません。どう影を置けばいいのか、どういうシワにすれば自然なのかが分かりますし、正しい「線」の見つけ方もAIが出してくれたお手本を見るととてもよく分かります。
終わりに - 「AIリファイン」の使い道 -
今回の「AIリファイン」はそもそも全然別の研究をしていて可能性に気づいたものです。「下絵となるイラストにテクスチャ機能を使って全体にノイズを加えたら、よりディティールアップできるのではないか?」という「AI清書版ノイズ法」みたいなことを試みていて、そっちは全く失敗してしまったのですが、「LineartやCannyを普通に掛けると低劣化するけど、重みやステップを限定して掛けたらかなりきれいに画風を残せるな」と気づいたのが始まりでした。
前回描いたアスカのイラストでは、AI清書の前後で独特の目つきがあまり残せなかった(下図参照)のですが、この方法を使うとより自分のイラストの特徴や意図を残せることに気づき、皆様のご協力もあってある程度かたちにできたのではないかなと思います。
今回の検証のために、大事なイラストを提供してくださった皆様からは、次のような感想がありました。(どの方のご意見かは伏せてご紹介します)
・自分は服などの描写にあまりこだわりがないので、まさに「平均値」が良い。(AIリファインは)そういう「個々人のキモでないところ」を底上げできるのかなと思う。
・(AI補正が強く掛かり、原画の絵柄から離れた作例について:)素材表現がリッチになったので、部分的に参考にして自分の絵を上げるのに使えそう。
・(弱めのAI補正で画風を残している作例について:)「自分の画力の少し上」を提示してもらえるのがありがたい。強い補正の表現はすごいけど、真似するにはハードルが高い。弱い補正の表現なら真似できるので、勉強しやすい。
・絵の構造と個性(特に顔)を崩さない範囲でのクオリティアップには、めちゃくちゃ使い所があると思う
・AIはどうしても「いい絵」に向かっていく。「もっと死んだ目にしたい」「若干だけどこういう口のニュアンスを出したい」といった細かなこだわりは、手描きで調整するのがいいのだろうと思う
・もちろん加筆は必要だが、完成までのかなりの時短になる。これを元に自分の絵の弱いところを見つけて塗りの練習にしたり、絵柄の研究をしたりもできそう。
・考えようによっては「自分で描くよりよくなる…」とショックを受ける絵描きさんもいるかもしれない。
・迷い線のあるイラストから、ちゃんと良い主線を探し当ててペン入れしてくれるのは大きい
・絵を描いていた者としては「自分の創造性はどこに宿っているのか?果たして本当に宿っているのか?」と考えさせられる
・絵を始めたい人や始めたての人にとっては、うまく使えば上達が爆速になるのですごくいい。既に描いている人にとってはいいアドバイザー兼アシスタントになりそう。
私のこれまでの作例でも、AIに仕上げてもらったものをそのまま完成品として出せるクォリティのものはなく、必ず生成物に加筆をして完成させています。今回の検証で分かったのは、原画を描くのと同じかそれ以上に「何を完成とみなすか」が創作性の発露なんだということです。AIにリッチに仕上げさせようとするほど原画のタッチから離れるため、そのさじ加減をどうするかが重要になるわけですが、そのさじを私が握ってしまうと、私の創作性や好みが反映されてしまう。そうすると、本来のイラストの意図からは離れてしまうわけです。
猫黒さんの作例のところでも触れましたが、絵柄によってもAIによるリッチ化の向き不向きがあります。たとえば「ちいかわ」って、もう完璧に完成していてリッチにする余地がないですよね。何を「リッチ」と受け取るか=完成に近づいていると見るか自体、個人の創作性が大きく関与するし、被写体にもよるんだと思います。
(▲以前のイラストを「AIリファイン」したもの)
服や小物、背景など細部に至るまで自分の創作性を反映させたい人もいれば、さほどこだわらない人もいるわけで、人によって「AIリファイン」の使い方はいろいろあるのかなと思います。生成物を活かして完成に近づけるのもよし、塗りの参考にだけするのもよし、自分の中にしか「このイラストの完成像」はないので、それに向けてどうAIリファインを使うかも、人それぞれということなのかなと思います。
技術検証をしていたはずなのに、美術論というか創作の本質みたいなところに行き着いたのが意外でしたが、「仕上げ」にはAIに分からない人間の美観が大きく関わるんだなというのが今回の検証で得られたことです。今回の記事は一連の「AIに自分の絵を見て、それを基に仕上げてもらう」研究の集大成と言えるものですが、いよいよ「AIイラスト」と「イラスト」の境目が曖昧になってきた感じがしています。
そんなわけで、今回はここまで。この検証結果が、どなたかの創作の役に立てばとても嬉しいです。
スタジオ真榊でした。