こんばんは、スタジオ真榊です。前回の「Pix2pixでイラストを変化!10種の実験で分かったこと」に引き続き、今回もControlnet1.1でできることを検証していきます。
今回紹介するのは、新モデル「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モデルにしかできないメリットのはっきりした使い途を考えてみます。





