見出し画像

背景透過画像を作成する2つの方法

今回ご紹介する拡張機能はこちら。


1:ABG_extension

  txt2img と img2img の際に、キャラのみの透過画像を作成してくれます。


2:Rembg

 WebUIの作者でもあるAUTOMATIC1111さんが公開されている拡張機能。
 既に作成した画像からキャラのみの透過画像を作成してくれます。



 Rembgの方が高性能で使用にも融通が利くと感じましたが、エラーが出るなどで若干躓く可能性も高いので、まずは導入が安定しているABG_extensionの方から説明させて頂きますね。






1:ABG_extension をインストールする



こちらのページを開いてください。




 いつもの通り、緑色の『Code▼』ボタンを押して、開いた小窓に描かれたURLの右側にある□アイコンをクリック。

 画像のように「Copied!」という吹き出しが出たら、



 ご自身のWebUIを立ち上げ、ExtensionsタブInstall from URL
 窓に先ほどのURLをペーストして、Installボタンをクリック

 数秒後にインストールできたで!!みたいな文言が出たら




 Installedタブ の中に 「ABG_extension」が確認し、
 『Apply and restart UI』ボタンを押してWebUIを再起動してください。

 これでインストールは完了です。




ABG_extension を使ってみる


 ABG_extension のUIは、txt2img と img2img の画面左下。
 Script の中に追加されています。

窓をクリックして ABG extension を選択すると、このような画面になりました。



 

 日本語化してみると、こんな感じ。

 どうやら切り抜いた際に好きな背景色を指定できたり、切り抜き画像だけじゃなくてマスク用の画像も生成したりできるようです。




 なにはともあれ、やってみましょう。
 何も難しいことはありません。

 ABG extension を選択した状態のまま、いつも通り Generate ボタン をポチるだけです。

生成中の進捗窓では、普通に背景も見えていますね。



 はい、完成しました。 この3つの画像が、いつもの txt2img-images フォルダ内に生成されています。





これが。



マスクをかけることで。




こうじゃ。



 今回は背景をがっつり指定しているプロンプトでしたので、結構残ってしまっている部分もあるようですね。

 それでも、この程度であれば消しゴムツールで簡単に修正できるレベルです。
 しっかりとキャラクターを認識して切り抜いてくれているのがわかります。

 次は、白背景キャラ立ち絵の prompt を追加して作成してみましょう。



(full body, standing, white background:1.5)




 今回はもともとシンプルな白背景を指定しましたので、しっかりとキャラクターが切り抜けています。 髪の間に少し白いのが残ってはいますが、その程度ですね。

 ABG_extensionの切り抜き精度は若干心もとない部分もありつつも、プロンプト次第で十分機能してくれる素晴らしい拡張機能です。

 なによりも、生成と同時に透過処理してくれるのは手間が省けて良いですね。






2:Rembg をインストールする

 こちらはWebUIの作者さんの拡張機能だけあって、WebUIの中だけでインストールは完結します。

 Extensionsタブ → Availableタブ → 『 Load from: 』ボタンをクリック

 すると、下にズラっと未インストール拡張機能の表が読み込まれます。



 全部読んで探すのもバカらしいので、検索窓を使いましょう。

 「Search」 の窓に 『 Rembg 』と打ち込んでください。

 表がすっきりしまして、お目当ての物がみつかりました。

 stable-diffusion-webui-rembg という文言を確認したら、右の『installボタン』をクリックしてください。
 数秒後にインストールが完了したという文言が出ればOKです。




 なんかそんな感じの出た気がするわーって思ったら、同じ Extensionsタブ 内の Installedタブ を開いてください。

 インストールしている拡張機能表の中に、stable-diffusion-webui-rembg が入っていることを確認し、オレンジ色の『Apply and restart UI』ボタンを押してWebUIを再起動します。

  これでインストール作業は完了です。






 

Rembg を使ってみる


 Rembgはどこから使うかと言いますと、『Extras』タブから使います。

 画像を単純にアップスケーラにかけたいときに使う、あそこです。
 Extrasタブを開きましたら、左下の方に小さく『Remove backgraund』という小さな窓が追加されています。

 クリックしてみましょう。


 アコーディオンが開きまして、以下のようなものが出てきます。

None:Rembgを使用しない。
u2net:一般的なユースケース向けの事前トレーニング済みモデル。
u2netp:u2net モデルの軽量バージョン。
u2net_human_seg :人物用の事前トレーニング済みモデル。
u2net_cloth_seg:人物 & 服を上半身、下半身、全身の 3 つに分解する。
silueta:u2net と同じだが、サイズが 43Mb に縮小されている。

 u2net_cloth_segだけ特殊ですが、詳しくは以下のページで説明されてますので、興味があればどうぞ。



 使い方は簡単。
 Sourceの欄に画像をぶちこんで、さっきの窓から好きなモデルを選んでポン。

 わーい、やったね!!✨

 今回は既に加筆も終わって完成した絵を切り抜いてもらいました。

 流石に背景の残りもありつつ、手の一部とかの透明度が高くなってしまっているものの、修正は容易なレベルですね。



 細かい機能の説明はこちらのページがとても詳しく丁寧でしたので、ご紹介させていただくことで代わりとさせていただきます。



 

 エラーが出た場合


 Rembg を使用した際に、エラーメッセージが出てしまい場合があります。
 わたしがそうでした。

[ONNXRuntimeError] : 1 : FAIL : LoadLibrary failed with error 126 "" when trying to load "E:\NEW_SD\stable-diffusion-webui\venv\lib\site-packages\onnxruntime\capi\onnxruntime_providers_tensorrt.dll"


 なんとか自力で乗り越えましたので、

『お前は、俺のようにはなるな…!!』

 という熱い気持ちでここに解決法を記します。



 実際のところ、こちらのコメント欄にいらっしゃるJudyさんが天啓を残してくださっていました。


 私はこういったものは全くわからないド素人ですので手順は説明はしますが、正直私もわかってません。

 なんか、NVIDIAのCUDAを落として、アレをソレしてパスをうんたらです。
 クーダってなんでしょうね?食べログかな???🤔



 まずはこちらにCUDA12.0をダウンロードしにいきましょう。

 記事を書いている段階では、ここにありました。

 


 次のページ。

 CUDA Toolkit 12.1.0 !! 君に決めたぁ!!!

 Lastest Release。 つよそう。(小並感


 ご自分の環境に合ったものをダウンロードしてください。
 うちはWindows12なんですが、選択肢に無かったのでWindows11用のを選びました。

 ダウンロードできたら、インストールしちゃってください。
 特に迷うこともなく、インストールはできると思います。





 あとねーなんかねー。
 もう一個落としてこないといけないんだって~。

 それがこちら。

てんそぁ~りついーと???
 はぁ。 そっすか。





 こちらのボタンからダウンロードしようとすると、ログインアカウントが必要だ、とか「お前もメンバーにならないか」みたいなことを言われます。



 ならない。

 と答えたら話が進まなかったので、仕方なく適当な名前で登録しました

 なんか、メールアドレスに確認メールが届いたり、なんやかんやありまして。

 ようやくダウンロードページに進めました。

 TensorTR 8。 つよそう(粉蜜柑




 ダウンロードしたところ、ZIPファイルでしたので解凍しておきます。

 中には「 TensorRT-8.6.0.12 」というフォルダがあり、さらにその下には「 lib 」とか「 bin 」とか、「 onnx_graphsurgeon 」みたいなフォルダがズラっと並んでました。

 インストーラーみたいなのは無さそうですね。





 さて、ここで先ほどの Judyさん のコメント欄が効いてきます。


 日本語でおk。

 『とりま、ファイル揃ってたら「 webui-user.bat 」に記述加えてパスればイケっしょ!!ヨロ~!!!』

 と言ってます。





 とりあえず、わかんないときは人の言うことを聞いておきましょう。

 まずは先ほど解凍したファイルの中にあった「 TensorRT-8.6.0.12 」というフォルダを、まるごと C:\Program Files\Common Files という場所に移動させましょう。



 ジュディさんは「それがその種の理想的な場所かどうかわからないので、走行距離はさまざまです!」と自信なさげですが、


 だいじょうぶ、イケるイケる!!!

 Hey , judy!! 自信持ってこ!!!!👌✨




 ジュディ曰く、「webui-user.bat」に

set PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin;C:\Program Files\Common Files\TensorRT-8.6.0.12\lib;%PATH%

という文言を付け加えろとのこと。



 webui-user.bat と言えば、WebUIを起動するときにいつも使っている、アレです。

 ご自身がお使いの Stable Diffusion のフォルダを開いて、webui-user.bat を右クリックし、メモ帳で開くなり、編集なりしてください。

 開いてみたんですが、xformersの時みたいに最初から『set PATHなんちゃら』って行は用意されてないんでですね💦

 ええい、ままよ!!!
 

 紛れ込ませればダマせるでしょ!の勢いで丸ごとペーストして保存しました。
 
 だって、chatGPT君に聞いても「PATHにパスしてください」とか、頭痛が痛いみたいなことしか言わないので、もう飛び込むしかないんです。



 しかし、恐る恐る試してみると、どうでしょう!!



 そこには見事なキャラ抜き透過画像が咲き誇っていましたとさ!!


 めでたしめでたし。🌸






 もし、それでもダメだった場合は、CUDA Toolkitがちゃんとインストール完了してるか確認してみてください。

 私はインストール前のまま次に進んでしまっていたため、「やっぱりダメだ~😭」と勘違いして諦めかけました。




 もし、それでも更にダメだった場合は、

 Pythonが2重でインストールされちゃったりしてないか確認してみてください。

 この辺でも、同じようなエラーが出るとか出ないとかそんな感じのノリのアレを見ました。
 私は3.10.5の方を残して、3.11.3の方は一旦アンインストールしました。

 効果があったのかどうかは、成功してしまった今となってはよくわかりません…。
 



 この記事のなにかしらがいい感じにサクっと貴方のお役に立てたら幸いです。

 いつもよりIQ低めの、はかな鳥でした。🐣✨


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