こんばんは、スタジオ真榊です。今回は「差分イラストを作ろう」シリーズの第三回、背景・立ち絵編です。ここまで、表情や服装、ポーズなどキャラクターの一部分についての改変方法について見てきましたが、今回は対象がキャンバス全体に広がります。

このように、キャラクターを保持しながら背景やシーンを自由に差し替えることができるようになれば、画面全体が自由にControl可能になるということ。これまで全3回で見てきた差分の技術を総動員すると、キャラクターの一貫性を保持しながらあらゆる要素を自由に変更できるようになることが分かってきました。

こちらの左→右への変化は、生成を何度も繰り返したように見えるかもしれませんが、たった1回の生成でキャラクターを保持しながらのシチュエーション変更(表情・服装・ポーズ・背景の同時コントロール)に成功しています。今回はこの最後のピースに当たる「背景差分・立ち絵差分」の作り方について検証していきたいと思います。
前回までの記事をまだ読んでいない方はこちらからどうぞ。
【第1段階】背景を消そう
さて、まずはあるイラストから「背景だけを消す」方法から見ていきましょう。複数のやり方がありますが、大きく分けて「SDwebUI上でやる方法」「外部ソフトでやる方法」の2つがあります。
・その他タブで背景を消せる「Rembg」
まず最初に紹介するのはSDwebUIの純正拡張機能「Rembg」です。インストール後、「その他」タブで背景を切り抜きたい画像をアップロード。左下にある「背景を削除」メニューからいずれかを選んで生成ボタンを押すだけです。

それぞれのモデルの違いは以下の通り。
u2net:基本の「u2net」モデルを使って背景を削除する。
u2netp:u2netの軽量版。
u2net人物区分(human seg):人物部分のみを検出するモデルを使用する。(アニメ調イラストは苦手?)
u2net 衣装区分(cloth seg):衣装(布)部分のみを検出するモデルを使用する(上半身・下半身で分けて出力されるが、服装が上下はっきりした画像でないと失敗しやすい)
シルエット:「u2net」とは別の背景削除モデル。
isnet-general-use:より軽量な背景削除モデル。
isnet-anime:フラットなアニメ調イラスト向きのモデル。
生成結果

このように、それぞれ100%完璧にではないものの、前景(キャラクター)部分が切り抜かれます。特段どれが優れているということはなく、切り抜きたい画像の性質によって得意不得意があるようです。
うまく人物だけを切り抜けているように見えても、よく見ると「切り抜いてはいけない部分が切り抜かれてしまっている」ことがあるので注意しましょう。たとえば、「u2net」のスカートの右膝の三角形部分が色褪せてしまっているのは、そこが誤って切り抜かれてしまっているからです。髪の毛まわりは逆に背景が透過しがちですね。isnet general useはベンチの一部が残ってしまった代わりに、なかなか上手に切り抜けている感じがします。
生成と同時に切り抜く「ABG extention」
こちらもSDwebUIの拡張機能。インストール後、text2text画面かimage2image画面の左下「スクリプト」欄にABGRemoverが追加されます。text2text画面で起動すると、これから画像を生成する際、背景が透過された差分やマスク画像が一緒に出力されるようになります。

【操作画面】
Only save background free pictures:元イラストとマスクが生成結果に表示されない
Do not auto save:生成された画像がフォルダに保存されない
Custom Background:カスタム背景色。右側の■をクリックして色を指定できる
Random Custom Background:背景色がランダムで決まる

デフォルト設定では、こんな感じでイラスト生成のたびにマスク画像と切り抜き済み画像(白背景)が表示されます。
Rembgのように既に手元にある画像を透過したい場合は、image2image画面で使います。その際、必ずノイズ除去の強度を0.01などの低い値に設定することを忘れないようにしましょう。画像が変容してしまいます。

このように、なかなか綺麗に抜き出すことができました。
ちなみに、こちらの機能はSDwebUI上でなくともウェブブラウザ上でデモ版を利用することができます。動作が早く品質も良いので、ブックマークしておくことをおすすめします。








