新モデル「inpaint」でイラストの続きを描いてもらおう!【Controlnet1.1検証】 (Pixiv Fanbox)
Content
こんばんは、スタジオ真榊です。前回の「Pix2pixでイラストを変化!10種の実験で分かったこと」に引き続き、今回もControlnet1.1でできることを検証していきます。
「Pix2pix」でイラストを変化!10種の実験で分かったこと【Controlnet1.1検証】
こんにちは、スタジオ真榊です。前回の記事に引き続き、今夜もControlnet1.1の新モデル検証の続きをお届けしたいと思います。 今回検証するのは「Pix2pix」。前回はイラストの要素をばらばらにして再構成する「Shuffle」について研究しましたが、Pix2pixは再構成ではなく「変化」を扱う新技術です。Controlnetのアップデ...
今回紹介するのは、新モデル「inpaint」。これはその名の通り、マスクした部分を描き直すインペイント機能に特化したControlnetモデルです。とはいえ「image2image画面で通常のインペイントをするのとどう違うの?」というのが最初に覚える疑問。text2textの画面でどうやってインペイントすればいいのかも含め、何ができるようになったのかを検証していきましょう。
なお、この記事では、img2imgタブで利用する従来のinpaint機能を「i2iインペイント」、今回検証するcontrolnet1.1のモデルとしてのinpaintを「inpaintモデル」と呼んで区別することにします。
実験:髪色を変化させる
さて、まずはinpaintモデルを使った描き直しはi2iインペイントとどう違うのか?ということを理解したいので、前回と同様の髪色変化実験を行ってみました。
まずはtext2textのタブでcontrolnet画面を開きます。モデル画像を読み込ませ、変化させたい部分をマスクしました(画面左)。これはi2iインペイントと同じですね。髪のみを変化させたいので、このようにできるだけ顔面を残しておきます。プリプロセッサは「inpaint global harmonious」、モデルはinpaintモデルを指定します。いまはこれしかありませんが、公式によればのちのち「inpaint_restrict」というプリプロセッサも追加される(かもしれない)そうです。
プロンプトは「red hair」のみ。img2imgではなく、text2textの画面でOKです。
するとこのように、赤い髪の女の子が生成されました。
元画像と見比べてみましょう。
背景の色合いを見ると、マスクしていない部分も微妙に変化していることが分かります。今後のアップデートでこれは克服される可能性があるようですが、現状ではこのような影響があることをまず認識しておく必要があります。
さきほどの例では髪がうまくマスクできていませんでしたので、もう一つ、もっとわかりやすいよう髪型自体を変更する実験をします。プロンプトを「twintails」にして、キャンバスサイズも倍の大きさにします。すると…
このような結果になりました。髪型部分を広く描き直していながら、マスク部分が周囲から浮かないよう、調和してくれることが分かります。このあたり、i2iインペイントでは細かくマスクのぼかしなどを設定しないといけなかったので、お手軽といえばお手軽ですね。
ただ、こちらはi2iインペイントで髪を「red hair」にレタッチしたものなんですが…
あちらは設定するパラメータが多くて失敗も多いものの、ちゃんと正しい設定値を理解していればもっと自然にできてしまうんですよね。よく見るとマスクの痕跡はあるものの、これもアップスケールしたら消すことが可能。かつ、マスクした部分以外は元のままなので、「やっぱりこっちでいいんじゃないか?」となってしまいます。
さらに言えば、前回紹介した「pix2pix」をi2iインペイントの画面で使ってしまえば、元イラストの輪郭をきちんと残したままレタッチすることができるわけです。当然、マスク部分以外が変色することもありません。
では、わざわざマスク外に影響を出してまで「調和させるinpaint」を使うアドバンテージはどこにあるのか、いろいろ使い途を探ってみることにします。
実験:服装を変化させる
プロンプトを「detailed school uniform」のみとし、このようにマスクして生成しました。
結果、このような結果に。
元イラストの輪郭に引っ張られず、ちゃんとスカートの形も大きく変化させられているのはプラスポイントですが、マスクしていない髪部分が別の形に変わってしまっています。(※生成画像サイズを落としているので画質が低いのは関係ありません)
ちなみに、i2iインペイントで試したところ、
服の外形は元画像にひっぱられてしまう(ロングスカートになってしまう)ものの、うーんこっちのほうがしっかりできてるぞ…。「周囲と調和させられる」ことをどうメリットにするか考えないと、単なる「置き換え」だけではメリットが見えてきにくいですね。
実験:表情変化を試す
次に、顔面のレタッチを試しました。
プロンプトは「happy smile」のみ。
問題なくできてはいますが、これも通常のi2iインペイントとの違いまでははっきりしません。特に、背景の鮮やかな緑が褪せてしまう影響があまりよろしくなく、使い所に悩むところです。もちろん、i2iインペイントに比べて設定値がほとんどなく、安易に掛けられるのは大きなプラスポイントではありますが、もっとinpaintモデルにしかできないメリットのはっきりした使い途を考えてみます。
実験:崩壊した手を直せる?
以前こちらの記事で挑戦した、崩壊した手の修正をinpaintモデルでやってみました。
【ゲームエンド!?】controlnet拡張で手の描写を支配しよう!
こんばんは、スタジオ真榊です。なぜか本日突如として7年間続いたシャドウバンが解けまして、ツイッター上でたくさん通知が来て楽しい一日を過ごせました笑 18禁アカウントなのにいいんですかねイーロンさん… さて、本日は非常にエキサイティングなControlnetの拡張機能が登場しましたので、さっそく実験をしてみました...
お題となる画像は同じものを使います。
こちらの手が崩壊したイラストをこのようにマスクしまして、
プロンプト「peace sign with both hands」で生成を繰り返してみました。
(※ネガティブプロンプトにTextualInversionのbadhandv4、EasyNegativeを使って修正を掛けています)
これもいろいろとinpaintモデルの問題点が明らかになるケースです。左手はもともとの形がそれなりにピースっぽく整っていたためか、割と正解に近づいてはいたのですが、右手の方はどうにもならない感じ。さらに、緑色の服になってしまう一枚もあり、マスク部分以外に予想外の変化が起きてしまう弊害がここにも生じています。
実験:イラストの一部を消して置き換える
いろいろと行き詰まっていた中で、「周囲と調和させる」のが得意なのであれば、イラストの一部を消してしまうのも得意なのではないか?と思いつきました。「消しゴムマジックで消しちゃうのさ!」というやつです。
(https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features より引用)
こちらの犬を消すテストは皆さん見たことがあると思いますが、このように、通常のi2iインペイントは続きをそれなりに想像はしてくれるものの、上手にベンチの網目を再現することはできません。攻殻機動隊の光学迷彩みたいな痕跡が残ってしまっています。
そこで、二人の女の子が描かれたこちらのイラストをお題にして、実験を行ってみることにしました。
これから、イラストの右側の女の子を消してみます。なんだか手品師の宣言みたいになってしまいましたが、自然に調和させるのが得意なモデルであれば、これくらいの無茶振りには答えてほしいところ。
このように女の子をマスクしまして、消えた部分に描かれるべきものをプロンプト指定します。単に消すだけでは面白くないので、「holding bouquet, serafuku,black pleated skirt」としました。
その結果…
なんと!これは非常にうまくいきました。ほとんど細かい設定もなく、安易にマスクして「ブーケとプリーツスカート」と注文しただけで、これはかなり素晴らしい結果ではないでしょうか。
ちなみに、こちらが通常のi2iインペイントで同じことを試した結果です。
このことからはっきりしたのは、controlnet1.1のinpaintモデルは「細かい設定をしなくても、マスクで断絶した部分を上手に空気を読んでつなげてくれる」力があるということ。
そこで、もう一つ実験をしてみます。
実験:続きを描いてもらう「outpaint」
sdwebUIにもアウトペイント機能がありますが、inpaintモデルを使って同じようなことができないか試してみます。つまり、既にある画像のキャンバスの外側を描いてもらう試みですね。
まず、画像編集ソフトで元画像のキャンバスを広げた画像を用意します。
こちら、クリックしてもらうとわかるのですが、左右に白い余白がある横長の画像となっています。こちらの白い部分をインペイントしてもらうのが今回の実験。「描いてない部分をインペイントしてもらう」わけですから、実質的にはアウトペイントですね。
controlnetの画面でこちらの画像を開き、左右の白い部分をマスクします。プロンプト欄は続きを描いてほしい部分を入力します。今回は続きの公園を描いてほしいので、「grass, outdoors, park, sky,no humans」としてみましょう。
これで生成したのがこちら。
出力サイズが小さいので中央の女の子は元画像より画質が下がってしまいました。元画像は横1024✕縦1536pixelで、この出力サイズは横768✕縦512。元画像をそのまま左右に広げるなら、横2048✕縦1536になるのですが、そのサイズで生成すると…
こうなります。サイズが大きすぎて崩壊するのですね。横2048✕縦1536を崩壊せず生成するには、image2imageかLine artなどで描くべき構図を指定しないといけません。
一方、「小さく出して大きくする」仕組みである高解像度補助(Hires.fix)の方は望みがあります。このように、線も切れずきれいに延長を描いてもらえます。
ただ、いったん768✕512を作ってから2倍しているので、アップスケールの間に中央の女の子はやはり元画像から離れてしまいます。
そこで人力マージの出番です!
さきほどできたイラストからちょうど良いものを選んで、元画像とクリスタでぴったり重ね合わせ、柔らかめの消しゴムで境目をなじませます。
するとこのように、中央部はそのままで、元イラストの「続き」を描いてもらうことができました!
今度はこちらの画像を、左右だけでなく横にも縦にも広げてみます。足が見切れてしまっているので、これは難しいように思えますが、どうなるでしょうか。
このように、768✕512のキャンバスに縮小して入れて…
さきほどと同様にふちを塗りつぶします。
プロンプトは「beautiful sky, beautiful beach, panorama」とします。768✕512を2倍設定で「高解像度補助」すると、このようなビーチ画像が得られます。
やはり中央の女の子は別人ですが、さきほどのイラストを画像編集ソフトで重ねて…
余計な部分を消しゴムで消してなじませると…
はい!素晴らしい~!
今回は実験なのでスカートが透けてるとか右手がおかしいとかの破綻は直していませんが、雑に重ねて消しゴムしただけでこれができるのは十分実用レベルだと思います。
やはり、通常のi2iインペイントではできないような「続きを想像して描いてなじませる」ことが、inpaintモデルは上手なようです。逆に、これ単独で崩壊した手を直したり、小さい範囲をピンポイントに望んだものへ修正することはあまり得意ではないようですが、イラストの一部を大きくマスクして入れ替えたり、存在しない「続き」を想像したりする作業のときに大いに活用できそうですね。
終わりに
そんなわけで、これで「Lineart anime」と「新Openpose」に加え、「shuffle」「pix2pix」「inpaint」の三種の紹介が終わりました。
Controlnet1.1爆誕!顔抽出&アニメ主線抽出&線画塗りを試してみた
こんばんは、スタジオ真榊です。AIイラスト術天下一武道会の開催真っ最中ですが、Controlnet1.1がSDwebUIの拡張機能にぃ… きたー!!! というわけで、既に午前2時なのでかなり限定的な内容にはなりますが、前置きは全てすっ飛ばして最速でアプデ方法と注意点、使用感をお伝えしていきます。今回は「FaceLandmark」によ...
【Controlnet1.1検証】新モデル「Shuffle」でイラストを"再構成"しよう!
はいこんばんは、スタジオ真榊です。前回の「Controlnet1.1爆誕!顔抽出&アニメ主線抽出&線画塗りを試してみた」に引き続き、今回もControlonet1.1の検証記事をお届けします。 これから検証するのは、「Shuffle」「Pix2Pix」「Inpaint」の新顔3種モデル。前回紹介した「新Openpose」と「LineartAnime」はControlnet1....
「Pix2pix」でイラストを変化!10種の実験で分かったこと【Controlnet1.1検証】
こんにちは、スタジオ真榊です。前回の記事に引き続き、今夜もControlnet1.1の新モデル検証の続きをお届けしたいと思います。 今回検証するのは「Pix2pix」。前回はイラストの要素をばらばらにして再構成する「Shuffle」について研究しましたが、Pix2pixは再構成ではなく「変化」を扱う新技術です。Controlnetのアップデ...
どれもこれまでのcontrolnetにはなかった素晴らしい技術です。明確な完成イメージを持ってAI生成を利用している方々にとっては、特に心強い武器になるのではないかと思います。controlnet1.1の更新は続いていますし、紹介できていない諸機能もまだまだあるので、引き続き検証を続けていきたいと思います。
何度も検証を繰り返して分かったような気になったり…
やっぱり分からなかったり…
これがControlnet1.1の楽しさ!もうすぐ大型連休ですが、ますます盛り上がっていきたいですね。
それでは、今夜も長い記事を読んでくださりありがとうございました。皆様、よきコントロールネットライフを!
スタジオ真榊でした。