ControlNet-V1.1検証 第二話 -乱数調整なしで100%色違いが出せる世界線-
メロボ乱数してましたね…
なつかしいな、メロボ乱数…
「ありがたみ」が無くなってキラッと光るエフェクトの硬直に対して憤りを覚えていましたね…
分からない人には意味が分からなさすぎる導入をしてしまいました。
こんにちは、Defpointです。
今回は世の男の子が小さい頃、憧れたに違いない「色違い」をたくさん出す方法をご紹介します。
もちろん”ControlNet”を使ってね!
lineartを使ってみる
今回はControlNet-V1.1に数多く搭載されているPreprocessorの一つ、"lineart"を試していきたいと思います。
しかし、第一回同様まったく仕組みがわかっていないので、そこから確かめていきたいと思います。
第一回では"shuffle"機能を取り上げているので読んでみてね!
まず、Preprocessorのlineartにも大きく4パターンあるようです。
lineart_anime
lineart_coarse
lineart_realistic
lineart_standard
3までしか数えられない私にはいっぱい機能がありすぎてよく分からないので、とりあえずpreviewを見てみましょう。
今回初めに使う元の画像はこちら↓
早速、preprocessor previewを見てみるとこんな感じでした↓
どうやら「線画」を抽出して、着色を行ってくれる機能でしょうか。
今までもInpaintingなどを使うことで色違いを作成すること自体はできたのですが、maskを作る作業があったりするので気楽にやりたい作業ではありませんでした。
このlineartで簡単に作業できるようになれば、実務的にはかなり価値のある機能ということになります!!
先ほど挙げた4つの機能の内、最後の"lineart_standard"には追記として"from white bg and black line"と書かれているので、previewを見る限り今回は対象外としても良さそうです。
よって、上3つの機能について順に見ていこうと思います!
lineart_animeについて
ひとまずControl weight=1.0として出力結果を見ていきたいと思います。
4枚ずつ画像を生成しますが、髪色だけ指定してそのほかは一切条件付けしないことでそれぞれの機能の差異を把握していきたいと思います。
purple hair
silver hair
blue hair
black hair
これらの髪色を指定して生成したものがこちら!
と、思ったけどGithubに紹介されているHugging Face上にlineart用のModelが2つあるやないか~い!!ということで、それぞれのモデル毎に比較してみます。
2つのモデルで比較してみました。
髪色に注目すると、lineart_animeモデルの方は4枚目のblack hairが再現できているのに対して、lineartモデルの方は上手く再現できていないことが分かります。
理由や原因までは分かりませんが、もしかするとpromptに対しては前者の方が上手く反映されやすいのかもしれません。
また、ジャケットの色にも違いがみられますね。
これだけでは中々傾向もつかみにくいので、次のlineart_coarseに移りましょう。
lineart_coarseについて
ところでみなさん"coarse"という単語知っていますか?
私は受験期にキクタン12000まで通読した「キショ英単語オタク」なのでもちろん、もちろん知っているのですが、一応確認しておきましょう。一応ね。念には念を。やっぱり前準備が仕事でも重要ですから。
ふ、ふ~ん。あれね。
「ドMが女王様に言われて嬉しい罵声ランキング 第20位~第27位」みたいなラインナップね。
そういう人用のね?そういう人用のlineartなのかな?(違います)
とまあ、私の脳みそから英単語が20000語消失していることが分かったところで、早速出力結果を見ていきましょう。
”coarse”という名前通り、白背景に対して元からなかったような要素が追加されているのが見て取れます。
一方で、立ち絵左側の星のエフェクトについては、先ほどのlineart_animeでは再現されていなかったのに対して、こちらではきちんと再現されています。
「元のイラストベースで線画は考えたいけれど、少しAIの柔軟な発想も見てみたい」場合などは、こちらのpreprocessorを使うことも検討できるかもしれません。
lineart_realisticについて
よくAI画像の界隈では、Modelに対して「リアル(3D)調」や「アニメ(2D)調」といった言葉が使われるので、「Preprocessorをrealistic + Modelをanime」にするのは少し変な気もしますが結果が気になるので見ていきましょう。
Modelがlineart_animeの方では、少しセンシティブな感じになってしまっている画像がありますね。
リアル調に寄せると少し視聴者の年齢を上げないといけなくなる現象は何なのでしょう?
理由は何となく想像がつきますが、そうなると昨今のトレンドは割と自然な流れなのかもしれません。
話を戻しまして、これですべてのPreprocessorの結果がそろったので簡単にまとめてみましょう。
Modelは"control_v11p_sd15s2_lineart_anime"の方がpromptに上手く従ってくれる傾向にありそう。
"control_v11p_sd15s2_lineart_anime"だと服装がPreprocessorに応じて変化するが、"control_v11p_sd15s2_lineart"はそれらの変化があまり見られない。
色相ベースだと"lineart_anime"が最も元の画像に近い結果になりそう。
彩度・明度ベースだと"lineart_coarse"がかなり元の画像に近い結果になりそう。
えちなら"lineart_realistic"かも?
あくまで私が感じたことでしかないので、根拠などは一切ないですがざっくりと上記のように差別化できそうです。
最後にControl Weightの影響を見て終わりにしましょう。
Control Weightの影響について
Preprocessorは"lineart_anime"として、
Modelは"control_v11p_sd15s2_lineart_anime"で検証していきたいと思います。
既にCW(Control Weight)=1.0の場合は出力しているので、CW=0.5, 1.5と順に結果を見ていきましょう。
なぜかCWを下げると髪色も反映されにくくなっていますね?
ネットワーク的にはあんまり関係ない部分な気がしますが不思議な感覚です。
CW=0.5だとジャケットもModelがlineartの時のように黒くなっています。
一方で、スカートは色んなバリエーションになっていますね。
CW=1.5の場合は画像が焼きついたようになってしまいます。
…なんで?
ハワイ帰り?
lineartの場合は、何か意図しないときはCW=1.0付近で良さそうです。
さいごに (実用例)
色違いを量産しまくる方法を今回は紹介してきましたが、
ここで、ふと思いました。
lineartに精通しているネテロ「あいつ、元々色ついてなくても良くねー?」
ということで、このような画像を用意しました。
カラーマンガにできるのでは?という試みです。
できました。
細かいところは少し変化しているので修整は必要そうですが、モノクロの画像を着色することが非常に容易にできるようになりました。
個人的にはかなりブレイクスルーだと思うのですが、みなさんはどう思いますか?
あまりそうでもないのでしょうか。
以上、今回はlineart機能を使ってみました。
第一回のshuffle機能を合わせて、どちらも実用レベルだなと感じています。
実際に以下の2枚から雑誌の表紙風の画像を作ってみました。
|
|
|
|
|
▼
なかなか面白い機能なので、ぜひみなさん使ってみて下さい!
ちなみにこの記事を見てくれている高校生向けに伝えることが1つあるとすれば、
「おすすめの英単語本はDATABASE 5500」
それでは、Good-Bye~♪ (英語かぶれ)
この記事が気に入ったらサポートをしてみませんか?