背景を消したくてツールを開いたら、
テキスト入力欄しかなかったことがあります。
そのツールの説明には「AI画像編集」と書いてありました。
嘘ではありません。
でも中身は生成専用で、
既存の画像から背景を抜く機能は入っていなかった。
似たようなことを何度か繰り返して、ようやく気づきました。
「AI画像編集」という言葉が、
まったく違う4つの技術をまとめて指しているんですね。
4つは原理から違う
整理すると、こうなります。

| 系統 | やること | 入力 | 出力 |
| 生成 | ゼロから作る | テキスト(+参照) | 新規画像 |
| inpaint | 一部を描き直す | 画像+マスク+指示 | 部分置換された画像 |
| upscale | 解像度を上げる | 画像 | 高解像度画像 |
| 背景除去 | 被写体と背景を分ける | 画像 | 透過画像 |
同じツールに全部入っていることもありますが、
内部では別の処理が走っています。
で、実務でいちばん効いてくる違いはここでした。
-
生成 … 何もないところから作る
-
inpaint … 周囲から推測して埋める
-
upscale … 既存のピクセルから推測して増やす
-
背景除去 … 新しい情報は作らない。分類するだけ
最後の一行に気づいたとき、
それまでの失敗がだいたい説明できました。
背景除去だけ、性質が違う
他の3つは何かを「作って」います。背景除去だけは作りません。
各ピクセルを「被写体」か「背景」かに振り分けているだけです。
だから速い。生成処理が走らないので。元画質も損なわれない。
でも、境界の判定を間違えます。
そしてこれが厄介で、間違えた分は後から直せません。
元データに境界の情報がないからです。
判定を誤りやすい条件は、経験上こう決まっていました。
| 条件 | 何が起きるか |
| 髪と背景の色が近い | 毛束ごと削られる、または残る |
| 細い毛が散っている | 一本ずつは拾えない |
| 半透明(ガラス、薄い布) | どちらか一方に倒される |
| 影が濃い | 影を被写体と誤認 |
| 逆光 | 輪郭全体が曖昧になる |
黒髪を暗いグレーの壁の前で撮った写真で、
これを痛感しました。
人の目には髪と壁の区別がついているのに、
データ上の色差はごくわずか。
処理は「どこまでが髪か」を判定できず、
まとめて削るか、まとめて残すかのどちらかになる。
撮り直したほうが早い、という結論になりました。
加工で20分粘るより、
壁から離れて撮り直す5分のほうが確実でした。
inpaintは「周囲がある」前提
マスクで範囲を指定して、そこだけ描き直す処理です。
仕組み上、周囲のピクセルを手がかりにしています。
だからマスクの大きさで結果が変わる。
| マスクの大きさ | 結果 |
| 小さい | 周囲の情報が多く、自然になじむ |
| 大きい | 手がかりが減り、ほぼ生成に近くなる |
マスクが画面の半分を超えたら、
それはもうinpaintではなく生成です。
周囲から推測できる範囲を超えているので、
結果も生成と同じくらい不確定になります。
「一部だけ直したいのに全然違うものが出てくる」ときは、
たいていマスクが大きすぎます。
upscaleが「作っている」もの

ここは誤解されやすいところだと思います。
学習型のupscaleは、
低解像度と高解像度のペアを学習したモデルが
「たぶんこうだろう」を補っています。
ディテールが増えたように見える。
でも増えているのは、もっともらしい細部であって、
元の被写体にあった細部ではありません。
なので、
-
風景写真の質感を上げる → 有効
-
遠くの看板の文字を読む → できない(読める文字を「作る」だけ)
-
人物の顔を鮮明にする → 印象は変わるが、本人性は保証されない
2番目を期待して使ったことがあって、
出てきた文字がまったくのでたらめでした。
読めるようになったのではなく、読める形が生成されただけだった。
証拠性が要る場面では、この差が問題になります。
順番で結果が変わる
複数の処理を組み合わせるとき、順番があります。

1. 背景除去(分類) 2. inpaint(部分修正) 3. upscale(最後)
upscaleを最後にする理由 — 先に拡大すると、
後続の処理が大きい画像に対して走るので
時間もメモリも余計にかかります。
それに、拡大時に作られた「もっともらしい細部」を、
inpaintがさらに解釈することになる。
背景除去を最初にする理由 — 分類処理なので、
画質が変わる前のほうが精度が出ます。
upscale後の「作られた細部」は、境界判定を混乱させます。
逆順を一度やって、髪の輪郭が異常に複雑になったことがあります。
拡大時に生成された毛のディテールを、
分類処理が真面目に判定しようとした結果でした。
触ったときの見分け方
初めてのツールで「これは何系統か」を判断する方法です。
| 挙動 | 系統 |
| 処理が一瞬で終わる | 背景除去(分類のみ) |
| マスクを描かされる | inpaint |
| 出力解像度が入力より大きい | upscale |
| テキスト欄がある | 生成またはinpaint |
| 数十秒〜数分かかる | 生成系(拡散処理が走っている) |
処理時間がいちばん分かりやすい指標です。
分類は速く、生成は遅い。両方が混ざっているツールは、
内部で複数系統を組み合わせています。
動画生成の前処理として
最近は、動画生成の参照画像を用意する場面で
この4系統を使い分けています。
参照画像の条件は、だいたいこうです。
解像度が十分、被写体が画面の一定割合を占める、
背景がシンプル、細部の情報量が多すぎない。
ここに各系統が対応します。
| やりたいこと | 使う処理 |
| 解像度が足りない | upscale |
| 背景がうるさい | 背景除去 → 単色で埋める |
| 一部だけ直したい | inpaint |
| そもそも素材がない | 生成 |
前処理を挟むかどうかで、動画生成の結果はけっこう変わります。
元画像が条件を満たしていないまま動かしても、良くはならない。
ただ、前処理と生成を別々のツールでやると、
書き出して、保存して、次のツールで開いて、
という受け渡しが毎回発生します。
私はCrePalで工程をつないで確認するようにしていますが、
個別の処理を細かく制御したい場合は
専用ツールを組み合わせるほうが自由度は高いです。
受け渡しの手間と制御の細かさ、どちらを取るかだと思います。

「AI画像編集でうまくいかない」と思っていたことの大半は、
系統の選び間違いでした。
背景除去で済む話にinpaintを使えば余計な情報が増えるし、
生成でしか作れないものをupscaleで出そうとしても出てこない。
やりたいことが4つのどれなのかを最初に決める。
それだけで、ツール選びも、
失敗したときの原因究明も、かなり単純になりました。