← Back to スタジオ真榊

Pixiv Fanbox

カラーラフを『雑塗りtile』!適正パラメータ総当り実験

Published 09/20/2023, 11:26:39 AM

カラーラフを『雑塗りtile』!適正パラメータ総当り実験

こんにちは、スタジオ真榊です。前回は白黒のラフ線画からイメージ通りのAIイラストを作っていく手法を検証してみたので、今回は最初から色塗りした「カラーラフ」を用意して、AIに仕上げてもらう手法についていろいろと試してみました。前回は「scribble」を使いましたが、今回使うのは「Tile」。主にアップスケール時の描き込み増強に使われることが多いTileですが、「低劣なディティールを捨てる」特性を利用して、今回はカラーラフ仕上げに活用してみようと思います。


(前回の記事はこちらから▼)

ラフから仕上げるAIイラスト術!線画と雑塗りi2iでどこまでやれる?

こんにちは、スタジオ真榊です。今日は「ラフから仕上げるAIイラスト術」という業業しいタイトルで、ツイッター(X)に投稿したAIイラストのワークフロー解説をお届けします。 今回、とある書籍二冊を読んだことでAIイラストへのアプローチの仕方について考え直す機会があり、Controlnetに偏重気味だったこれまでの作画...


カラーラフを描いてみた

賢木は基本的に絵の知識がほぼないのですが、例によってさいとうなおき先生の「技の書」を参考に、「カラーラフ」なるものに挑戦してみました。(絵心のある方は以下、片目をつぶって見ていただけると助かります…!)


まずはモチーフ決め。「技の書」に書かれていた表情の表現について、スレッタさんのイラストを描き換えていろいろと勉強していたのですが、その中でたまたま「逃げてる感」のある表情ができたので、なんとなくこのようにポーズ変更してみました。(おなじみControlnetの差分研究のときにご紹介した技術です)


せっかく「逃げてるスレッタさん」ができたので、今回は怒っているミオリネさんを描くことに決めました。安直!


前回はスレッタさんの純真さ、ウッカリ感、健康美と女の子らしさを描くのがテーマだったので、今回はそれと対照的に、美しくて毅然としたミオリネさんを描きたいところ。「腰に手を当てて眉をVの字にして怒っているけど、スレッタさんへの親しみや愛情が伝わってくるような、ちょっとお母さんっぽいコミカルさ」を感じられるイラストにしたいと考えました。原作で言うと、スレッタがうじうじ引きこもってたトイレの前で、腕組みして仁王立ちしていたミオリネさんのイメージです。


セリフはなんでしょうかね、「ロミジュリったら許さないからね!」みたいな感じでしょうか。元気に飛び出していく花婿に「あんたちゃんとしなさいよ!」的なことを呼びかけている感じにしましょうか。そんなことを考えつつ、とりあえず適当にイメージを描いていきます。


クリスタで横960✕縦1280pxのキャンバスに「鉛筆」ブラシで適当に描いて、レイヤーカラーで青くしたのがこれ。「技の書」にあった、骨盤つきの棒人間を描いてアタリを付ける方法でなんとなく描きました。これでも超イメージ通りです。


これを別レイヤーでもう塗ってしまいます。肌が露出しているところを肌色で塗り、別レイヤーで服を塗り、後ろ髪レイヤーと前髪レイヤーで塗っていきました。クリスタの「サブビュー」機能で公式のキャラ設定画像を表示して、細かいデザインを参考にしながら塗っていきます。AIが勘違いしにくいよう、口や服の合わせ目、ストッキングの線なども簡単に書き入れました。


前回は白黒の超適当な線画ラフを「Scribble」した後、DWposeで調整し、破綻部分を雑塗りi2iで直すということをやったのですが、今回はもうカラーラフまでできてしまったので、ポーズ抽出などはいちいちせず直で仕上げ段階まで持ち上げていきたいところです。


カラーラフをどうAIに参考にしてもらいましょうか。ぱっと思いつくのが「雑塗りi2i」ですが、これは私のような下手っぴが全身画像を描いた場合、あまりうまくいかない印象があります。結論から言うと、こういった結果になりがちだからです。

これはさきほどのひどいカラーラフをノイズ除去強度「0.5」でi2iしたものなのですが、そこからノイズ除去していくとなると、どうしても元画像の低劣な輪郭を保持してしまって、このように乱れた(ある意味ラフに正確な)結果になってしまいます。


伝えたいのはこのカラーラフの「意図」であって「輪郭」ではないよね、ということですね。ラフをほどよく参考にしつつ、しっかり「清書」してもらうために、今回はControlnet「tile」を使いました。タイルは「低劣な詳細を削除して、描き込みを増やして描きなおしてくれる」Controlnetモデル。詳しくは個別記事やアップスケール特集で解説しているので、まだ触ったことがない方はこちらを参照してください。

アップスケール?描き直し?新モデル「Tile」ができること

こんばんは、スタジオ真榊です。今夜は2023年4月25日付で完成したばかりのControlnet1.1用モデル「Tile」についての報告です。Controlnet1.1で使えるものの中でもひときわ異質なこのモデル。アップスケール用なのか?それともCannyやDepthのように構図を写し取るためのものなのか?いろいろと検証してみました。 ※Contro...


アップスケールが理解る!i2i/Tile/LoRA/Hires/Extraぜんぶ解説【15000字】

【2023/08/30更新】「AnimeSharp」「UltraSharp」の制作者さんより、商用利用不可のライセンスについてご回答を頂きましたので、該当部分に追記しました。 こんばんは、スタジオ真榊です。今回は、AIイラストを高画質にする「アップスケール」の方法についての大型まとめ記事をお届けします。 先日、FANBOXのメインコン...


要するに、元画像の低劣な部分をほどよく無視して、意図を読み取って詳細化してくれるモデルですので、下手っぴなカラーラフからも意図だけを読み取って「清書」してくれるわけです。


プリプロセッサは今回は「なし」。Weight(Controlnetの重み)は、重すぎるとi2iで失敗したときのように輪郭に引っ張られてしまうので、少し弱めの「0.8」とします。同様の理由で、Controlモードも「My prompt is more important(Controlnetの入力画像よりプロンプトのほうが重要)」にしました。

Tile用のプリプロセッサは、画像の解像度をわざと落として入力する「resample」、入力画像の色を変容させにくくする「colorfix」、さらに鮮明にする「colorfix+sharp」とあるのですが、今回は元画像の低劣な輪郭やカラーに引っ張られることを避けるため、あえて何もせずにそのまま入力します。


プロンプトは「miorine rembran, defmiorine, long hair, green jacket, red necktie, angry,open mouth, looking another,green shorts, pantyhose, hands on hip +LoRA」。例によって高解像度補助を付けず、4枚テスト生成してみます。


おおむねこちらの意図を理解してくれたようですね。背景のノイズは高解像度補助を掛ければ消えると思うので、左上の1枚のSeed値を採用し、今度は高解像度補助あり(animesharpで2倍、ノイズ除去強度0.4)で1枚生成します。その他の設定はほぼ同じです。


こちらがその生成結果。

きれいにはなったのですが、一つ大きな問題が生じました。


頭身が低い!


これはこれでかわいらしいのですが、私のラフが短足過ぎたせいで、本物のミオリネさんに比べて頭一つ以上ちっちゃめになってしまいました。その他、制服の袖口や肩章がおかしいのも見て取れるので、雑塗りi2iで直してしまいましょう。


こちらが作業のGIF動画です。おもいっきり力技、見たまんまですね。細かいディティールはどうせi2i過程で取捨選択されてしまうので、こだわる必要はありません。


こうして得られたものを再びTileに放り込みます。プロンプトなどの設定はさきほどと同様で、768✕512pxを「高解像度補助」で2倍にしています。


こちらが生成結果。頭身がほどよく直りましたね。

ただ、せっかく直した袖の中がやっぱりおかしくなっています。LoRAが学習不足であることが原因なので、これはもう最後に直したほうがてっとり早そう。こちらのイラストを1.6倍にi2iアップスケールします。

背景になぜかゆがみが出てしまいましたが、細かい部分はどうせ画像編集してしまうので、ここまででAIの仕事は終了。Photoshopで背景を切り抜きまして、目や口や袖を加筆してしまいます。今回、ミオリネさん部分は最終的に小さめサイズにすることを決めていたので、本当にささっと直した程度です。


内そで部分は影も省略してしまったのですが、あとで見たら遠目から見ても「のっぺり」していて悪目立ちしていました。こういうディティールも大事にしないといけないのですね。一見キバっぽく見えるように歯を描いたのが可愛いポイントです。可愛いですね。


あれやこれやと加筆・仕上げして、最終的にできあがったのがこちら。前回と同様に集中線的な役割をする切り欠きのある宇宙背景と組み合わせて、奥行きを擬似的に表現してみました。左上の空間が寂しいので、セリフもここに入れてバランスを取りました。

セリフをそのまま書き入れるとこれまた平面っぽくなってしまうので、奥行きを出すために変形ツールでパースをつけました。ただ、セリフで粗密のバランスを取るのは正直あまりかっこよくはないんですよね。アップのミオリネさんの顔を左上にカットインさせたほうがよかったな、と今になって思います。


さて、イラスト制作はここまでで終了なのですが、「雑塗りTile」を今後も実践的に使っていきたいので、XYPlotを使って適切なパラメータを探る実験をしてみたいと思います。



「雑塗りTile」バリエーション実験


さきほどは直観的にプリプロセッサ「なし」+「Weight0.8」+「My prompt is more important」でTileを掛けたのですが、実際このあたりの設定を変更するとどのような結果になるか実験してみました。読み込ませたのはどれも同じ、最初のトンチキ・カラー・ラフです。


①プリプロセッサ「なし」


おおむね予想どおりというところでしょうか。


・カラーラフを重視しすぎない「My prompt is more important」がやはり最も品質がよくなる。ほか二つは低劣なラフに引っ張られすぎる。

・Weightが強すぎると、これもラフに引っ張られて低劣な結果になる。ただ、ちびキャラや子供キャラを描くときなど、ラフの頭身や特殊なポーズをあえて再現したい場合は有効と思われる。

・逆にWeightが弱いと、CNモードがどれでもあまり変わらない結果になる。ただ、意外とWeight0.5程度でも意図をちゃんと汲んでくれるようだ。


…ということで、やはり「My prompt is more important」をWeight0.5~0.8程度で掛けるのが有望そうな感触です。逆に、ある程度正確なカラーラフを描ける方なら、「Controlnet is more important」をWeight強めで掛けることも選択肢に入ってくると思います。普通のt2iではなかなか出せない、特殊なポーズを再現するときなどに使えるでしょうか。


②プリプロセッサ「colorfix+sharp」(sharpness:1)

colorfix+sharpは、通常のTileだと色彩が変更されたり、ぼやけたりしてしまう不具合をクリアするために作られたプロプロセッサ。Controlnetの公式では、3つのプリプロセッサのうち「最善」と説明されているのですが、「variation」(デフォルト8)と「sharp」(デフォルト1)という二つの設定値があり、うまく設定できないと色合いが濃くなりすぎたり、ジャギジャギした見た目になってしまう点に注意が必要です。


とりあえずデフォルトのvariation8、sharpness1で生成した結果がこちら。

このようににじみが全体に出てしまい、うまくいかない結果になってしまいました。「My prompt is more important」で顕著なのが謎ですね。


③「colorfix+sharp」(sharpness:0.25)

sharpnessは経験則的に0.5以下が良いとされていますので、今度は「0.25」にして同じ実験を行いました。(variationは8のまま)



結果、変わらず。どうも、このにじみはvariationのせいらしいことが分かりました。


※ちなみに、sharpness「0.25」だと左のように色がやや淡くなり、デフォルトの「1」だと右のように、より濃くなります。線画部分がはっきり太くなるので、好みで調節するのがよいかと思います。


公式ではあまり「variation」が何をするパラメータなのか言及されていないのですが、普通に考えればColorfixに関連するバリエーションなのでしょうから、「どれくらい入力画像の色を忠実に再現するか」、逆に言えば「色を変化させてよいか」ということかなと想像します。(公式でvariationパラメータについて言及されているURLがあったら、どなたか教えていただけたら追記いたします!)


「カラーラフの色から離れられなさすぎて(カラーラフの色指定に縛られすぎて)こうしたにじみが生じた」という仮説を立ててみましょう。もしそうであれば、数値を高めることでぼやけは消えるはずです。


こちらが実験結果。「My prompt is more important」のsharpness:0.25で、variationだけを変えた結果です。

仮説が正しいかどうかは別として、結果的にvariation32にすればぼやけは消えることが分かりました。どういう理屈でこういう結果になるのかははっきり説明できませんが、「Tile colorfix+sharp」で雑塗りTileをするときはvariationの値に注意したほうが良さそうですね。


(※この問題、ミオリネさんLoRAとの相性など「おま環(=賢木の環境だけで起きている不具合)」である可能性も否めないので、もし同じ実験をしてみたよという方がいらっしゃいましたらコメントいただけると嬉しいです)


④「colorfix+sharp」(sharpness:0.5、variation32)

というわけで、線画はある程度はっきりしてほしいのでsharpnessを「0.5」とし、variationはもっとも絵柄への悪影響が少ない「32」にして、もう一度総当り実験を行いました。


プリプロセッサ「なし」では背景がグレーになっている画像が多かったのですが、こちらはきちんと真っ白にできていますね。どうやらこれが現時点で考えられる最適値のようなので、カラーラフから「雑塗りtile」するときはこちらを参考にパラメータを設定してみてはいかがでしょうか。


しかし、Weightが大きくなるにつれ短足になっていくミオリネさんには申し訳ないかぎりです…(笑)


終わりに

そんなわけで、「『雑塗りtile』でカラーラフ仕上げ!適正パラメータ総当り実験」でした。雑塗りカラーラフを「tile_colorfix+sharp」にsharpness:0.5、variation32で読み込ませる手法はなかなか応用が効くので、ぜひ試してみてくださいね。


これは水星の魔女1話の「例のポーズ」を再現したくて、お絵かきを試みたもの。指が骨折したり、そでの部分が破綻したりしていますが、5分程度のお絵かきでこのイレギュラ―なポーズを再現できるのはすごいことでして…



Controlnetがデビューした2月に全く同じ試みをしたときの結果を見ていただければ、本当にこなれてきたな~と感慨深く思う限りです。


自分でちゃんと描くことを恐れなくなったことで、すごく自由度が広がった感じがしますし、何よりAIイラストに触ることが格段に楽しくなってきました。このあいだまとめ買いした書籍の最後の一冊は「デジタルイラスト 瞳の描き方辞典」なので、これも勉強してもうちょっとくらいは上手になれたらなと思います。


それでは、また近いうちに。スタジオ真榊でした。




Attachments (21)

uvotHlVxhUrV2iCRwR3idhp9.png

uvotHlVxhUrV2iCRwR3idhp9.png

h6XjH1d1qDWXzKaMQPT13D1W.png

h6XjH1d1qDWXzKaMQPT13D1W.png

bIjTk0sETzeDbQUekOlGykez.png

bIjTk0sETzeDbQUekOlGykez.png

m1hfYv9ZnGc5HHjenQuGtV5V.png

m1hfYv9ZnGc5HHjenQuGtV5V.png

M0WXKxhxJtWyYQzJDxA9G3Eg.png

M0WXKxhxJtWyYQzJDxA9G3Eg.png

6j65W8cf2oyGBT1fDoZekv2L.png

6j65W8cf2oyGBT1fDoZekv2L.png

A26cPI0jSte0u62O6YAj6eTM.png

A26cPI0jSte0u62O6YAj6eTM.png

Yumi4FrtME4y5YuUXrhO6qCY.gif

Yumi4FrtME4y5YuUXrhO6qCY.gif

svtIwXvHVBE4PU0vtmTPZQg7.png

svtIwXvHVBE4PU0vtmTPZQg7.png

JowhO3o2Af1FIar2NzPTmnl2.png

JowhO3o2Af1FIar2NzPTmnl2.png

puLwubJwhv0UQSpLYs5POXKm.png

puLwubJwhv0UQSpLYs5POXKm.png

8uwnZML0paitXo5nBLld3TV7.png

8uwnZML0paitXo5nBLld3TV7.png

EVpHZjAbU5HOH7ms0NcyPJyY.png

EVpHZjAbU5HOH7ms0NcyPJyY.png

Z7Ev3qn1ZHb7XWjj1HveP0n3.png

Z7Ev3qn1ZHb7XWjj1HveP0n3.png

nhKyO1Y1M52cy829mzGktlPY.png

nhKyO1Y1M52cy829mzGktlPY.png

R3Ppg63HOITmaAYTQN2C3AeT.png

R3Ppg63HOITmaAYTQN2C3AeT.png

cm8rDqAYnxy1meujGFAcSnbd.png

cm8rDqAYnxy1meujGFAcSnbd.png

tPLyvz6pLKPSRfFL4rfy4oZl.png

tPLyvz6pLKPSRfFL4rfy4oZl.png

QHXwAgcI7WdxSonO50blQtOT.png

QHXwAgcI7WdxSonO50blQtOT.png

meidm9nkJGVTfeKmhzdbIziP.png

meidm9nkJGVTfeKmhzdbIziP.png

PVme1SzgFPHDSbcz5Ajet2Kt.png

PVme1SzgFPHDSbcz5Ajet2Kt.png