こんばんは、スタジオ真榊です。世間がAdobeの画像生成AI機能「ジェネレーティブ塗りつぶし」に揺れている中、今夜は「消し」に特化したインペイントツール「LamaCleaner」についての検証記事をお伝えします。というのも、ジェネレーティブ塗りつぶしについて検証を行っていくに当たって、その前にどうしても触れておかざるを得ないツールだからなんですね。
「LamaCleaner」は、画像の中に映り込んだ余計なものをマスクすると違和感なく消してくれる「消しゴムマジックで消してやるのさ」的なツール。やろうと思えばSDwebUIのinpaint機能でも似たことができるわけですが、スピードや手軽さが段違いで、非常にスムーズに「消し」や「なじませ」ができます。一方で、今話題の「ジェネレーティブ塗りつぶし」は「消し」だけでなく「足し」もできるツール。普段の画像生成にそれぞれどのように活かせるか、前後編に分けて見ていきたいと思います。
こんにちは、スタジオ真榊です。皆さんGWの真っ只中でしょうか?賢木は休みでも休みじゃなくてもSDwebUIをめっちゃ楽しんでおります!
さて今日はControlnet1.1の全体検証とまとめ記事が一段落ついたのを受けまして、以前のこちらのツイートのように「CN1.1の最新モデルを組み合わせたらどんなことができるのか?」を検証してみたいと思います。
写真とイラストの融合はできるのか?
controlnet1.1をフルに使うと言っても、色々な組み合わせ方があるわけですが、まず最初に思いついたのが自分で撮影した写真をイラスト化できるのか?ということ。賢木は(もちろんド素人ですが)スマホで写真を撮るのが大好き。「いろいろな場所で撮影した風景写真をイラストに取り込むことができたら、作品の幅が非常に広がるのでは」と常々思っていました。
これを思いついたのは、こちらの「wama@iphoneで3Dスキャンする人」さんのツイートを拝見したとき。
写真を繋ぎ合わせて一つの3Dデータにしてしまい、スマホの中に保持していつでもどんな画角でも呼び出すことができる…いまはこんなことが簡単にできてしまうのですね。
例えば、あるホテルの室内をiphoneで3Dスキャニングしておけば、あとで室内のいろんな背景を自由に画角を動かして再現できるわけです。それを漫画作品の背景にもし使えたとしたら、なんと画像生成AIの弱点だった「背景の同一性」を難なく担保できてしまうのですよ。例えば、エロゲなんかでは室内の背景素材があったとしたら、せいぜい「昼」とか「夜」とか「ズームアップ」といった差分を作るくらいで、その前でキャラの立ち絵をカチャカチャ動かして場面を表現していたわけですが、もし実在の室内データを3Dで保持できたら、ベッド上でもソファに座っているところでも入室時のコマでも、なんでも簡単に背景素材画像にすることができます。
3Dにするときにもちろん画質は落ちますが、基本的な主線や凹凸さえ保持できていればControlnetでイラスト化できるわけですし、撮影OKな場所であれば権利問題もクリアできますね。
とまあ、夢は広がるばかりなのですが、そもそも今回の主題である「風景写真とイラストとの融合」ができなくては取らぬ狸の皮算用。できるのか?できないのか?まずは検証をやってみましょう。
こんばんは、スタジオ真榊です。今夜は2023年4月25日付で完成したばかりのControlnet1.1用モデル「Tile」についての報告です。Controlnet1.1で使えるものの中でもひときわ異質なこのモデル。アップスケール用なのか?それともCannyやDepthのように構図を写し取るためのものなのか?いろいろと検証してみました。
※Controlnet全体についての基本的な使い方や各モデル紹介については、こちらの記事(▼)をご参照ください。
Tileってどんなモデル?
Controlnet1.1が公開された当初、Tileは「未完成」という注釈つきのモデルでした。モデル一覧では「control_v11u_sd15_tile」が公開され、プリプロセッサ一覧には入力画像にガウスぼかしを掛ける「Tile gaussian」というものが掲載されていました。その後、2023年4月25日に「完成」がアナウンスされ、新たなモデルとして「control_v11f1e_sd15_tile」が公開。「Tile gaussian」は「tile resample」に姿を変た…という経緯があります。
一体、何ができるモデルなのか?公式に書かれている説明は下記のようなものです。
・このモデルはさまざまな方法で使用できますが、大きく分けて、次のような2 つの動作をします。
1.入力画像の細部を無視して、新しいディティールを生成する
2.分割したタイルのsemantics(データが意味するもの)とプロンプトが一致しない場合、プロンプトを無視して生成を行う
入力画像の細部を無視できるため、低品質なディティールを洗練されたものに置き換えることができます。
わかるような、わからないような。
例えば、64×64の小さな犬のアイコンをそのまま8倍の512×512にズームすると、
このようにぼやけてしまいます。
これは元画像のディティールが画像縮小の影響で失われてしまっているためですね。これを入力画像にしてi2iで高品質にしようとしても…
元画像の「低品質な細部」にひっぱられて、このように低品質な画像ができてしまいます。
Tileはこうした「低品質な細部」を無視しつつ、もとのアイコンの犬の全体の形を保ちながら、アイコンに存在しない詳細な毛並みに置き換えてくれるというものです。
こちらの画像をご覧ください。
これは、i2iではなくt2iで、先程の64x64pxの画像をTileで読み込ませて512x512で生成したもの。元画像になかったディティールが追加されていることが分かると思います。
「おお、じゃあこれ、アップスケール用のモデルなんですね?」と思うところですが、公式はあくまで「アップスケールもできるが、本来はディティールの置き換え(または追加)を行うモデル」だと念を押しています。
公式が提案する「Tileの使い方」は次の5つ。
①2倍、4倍、または8倍のアップスケールができる
②入力した画像のディティールを追加、変更、または再生成できる
③RealESRGANなどのアップスケーラーによって崩壊してしまったディテールを修正、改良、改善できる
④ノイズ除去強度を最強の「1」にしても、タイルごとに別の絵になることを防げる
⑤簡単に色分けされた下書きイラストを完成させられる
このうち、①のアップスケールについては、ほかのアップスケーラーのようにイラストを高解像度化するのではなく、「イラストに描かれたものを認識し、より高い解像度でゼロから描き直す」のだというのです。一体どういうことなのか?それを今回検証していきたいと思います。