見出し画像

ChaiNNerくん、キミinpaintingに対応してたのね

ChaiNNerですがVer0.18.0からinpaintingに対応していました(この投稿を描いている時点ではVer0.18.3が最新)。inpaintingは簡単に言えば、画像上のいらないものをいい感じに消してくれる機能です。ストックフォトをやっている身としては、写真を売るためには映っていてはいけないものを消し去る技術は興味があります(普段はLightroomで不要な物を消す処理をしてます)。少しではありますが、ストックフォト用に使えるか?という観点で実験してみたのでサンプルを投稿してみたいと思います。

ストックフォトで写真を売るならこう言うロゴは消したい

inpaintingのザックリ説明

inpainting機能を使えば画像から不要な物(人、物、企業のロゴとか)を消し去ってくれます。不要な物が写っている範囲はマスク画像(何もしない部分を黒、消したいものがある部分が白の画像)で指定することができます。

この投稿で書いている不要物を消すために使うLaMaモデルやMATモデルでは消したい範囲の周囲から消したい物の裏には何があるかを推測して補完しているようで、消した部分に何か全く別なものを書き足すと言うような処理にはなっていません(細かい仕組みは調べてないので個人的な推測)。

stable diffusion等の画像生成AIにも inpainting機能はあるみたいですが、画像生成AIの言うinpaintingは指定範囲を描き直すと言う意味合いのようなのでこの投稿で言うinpaintingとは意味が違う思います(超適当)。


chaiNNerでのinpaintingの使い方

  1. ChaiNNer掲載ページからLaMaもしくはMATモデルをダウンロードする。

  2. ChaiNNerでLaMaもしくはMATモデルを使って処理を組む。

  3. 元画像とマスク画像(画像上のを消したい範囲を指定する画像)を準備、3で作ったchaiNNerファイルで処理する。

LaMa、MATの入手先:https://github.com/chaiNNer-org/chaiNNer

書いても分かりづらいので簡単なサンプルファイルを置いておきます。サンプルファイルはLaMaを使った形で作っていますがMAT(※)を使う場合でもやり方は同じです。

ノードのイメージ

※ MATは私のノートPCだとGPUとCPUの組み合わせがよくないのか、CPUモードでしか動きませんでした。CPUでも動かなくはないですが、やはりGPUを使わないと処理時に時間がかかるので、ここに載せてあるサンプルは全てLaMaモデルで作っています。


LaMaモデルでの処理結果

<処理前提など>
・ 元は46084x3456pxの画像
・ 自分のPC環境では46084x3456pxのままでは処理できなかったので25%に
  縮小してからinpainting処理をして、最終的に4倍にアップスケーリング
・ マスクは適当にwindows付属のペイントソフトで作成
・ サンプル画像は以下のような構成で作成

サンプル画像の構成

サンプル1
一見上手く消えたように見えますがマスク画像が適当過ぎたせいで柱の立体構造がおかしなことになって騙し絵のようになってしまいました。

サンプル1-1

マスク画像を少し手直ししてみた所、柱の立体構造も残しつつ人を消してくれました。前後関係や立体関係が分からなくなるようなマスクではうまく行かないようです。

サンプル1-2

サンプル2
こちらもマスクが適当過ぎてパイプの後ろにある柱部分が丸っと消えてしまいました。結果も不自然です。

サンプル2-1

マスクを直したら良い感じになりました。よく見ると柱の直線感がないせいで若干不自然さはあるものの、ぱっと見では分からないと思います。

サンプル2-2

サンプル3
良い感じに消えてくれています。芝部分が潰れて妙なパターンが出てしまっているのは縮小やアップスケーリングしているからだと思われます。

サンプル3

サンプル4
赤い服を着た人の向こう側にある柱の根元周りをアップで見ると少々厳しい気がします。拡大しないのであれば十分だと思います。

サンプル4

サンプル5
コカコーラのロゴが綺麗に消えてますが、バイクに乗った人のところは若干不自然。しかし後ろにある赤いクーラーボックスはうまいこと誤魔化してくれてると思います。Lightroomでは絶対にこう言う結果にはならない。

サンプル5

サンプル6
ワンちゃんなど最初から居なかったんだ。いいね?

サンプル6

まとめ

ストックフォトに使えるか?
inpainting機能はストックフォトにも使えそうです。ただし、自分の環境では元画像を縮小→inpainting→アップスケーリングとするしかなく、その過程で細部が潰れてしまったり、妙なパターンが出てくる場合があるので使う写真には注意が必要そうです。

inpaintingの効果について
不要な物を消す範囲を指定するためのマスク画像の準備が手間ではあるものの全体的には良い感じに消えてくれてると思います。実際の比較はしていないですが、物によってはLightroomで消すより良い結果になるものもある気がします。
Lightroomの不要物を消す機能は写真として過剰にならない(極力余計な描写はしない)範囲で適用しているのに対して、LaMaモデルでは「わたし、絶対消すから!」と言う強い意志を感じます。


最後までご覧いただきありがとうございました。もしよければサポートからの支援やKo-fiからコーヒー1杯おごって下さい。明日のやる気に繋がります。
https://ko-fi.com/taktak2nak

ここから先は

0字

¥ 100

この記事が気に入ったらサポートをしてみませんか?