見出し画像

使い方は人次第?GLIGENとは

こんにちは、Hi君です。
今回はバウンディングボックスとプロンプトを指定し、指定した領域に対象物を生成するための手法であるGLIGENについてお話ししたいと思います。

GLIGENにはオンラインデモ及びSD拡張パッケージがあります。ただしSD拡張につき、サンプラー設定によっては意図した動作を行えない事もあるようです。一方、Latent Coupleでも指定した領域に指定した対象を画像生成することが出来るので、ツールとしてどちらが優位かはよくわかりませんでした。
個人的には、バウンディングボックスで指定した領域にプロンプトで描画するための一貫性のある定式化として、GLIGENが最先端のモノと言えるのではないかと思っています。

元論文のプロジェクトページ


GLIGEN:
Open-Set Grounded Text-to-Image Generation

参考リンク


参考にしたリンクはこちらです。いろいろと概要が書いてあるので興味があればぜひ読んでみてください。SDとは独立している新しいフレームワークであることはわかりましたが、他との差はまだはっきりわかっていません。work4ai/GLIGEN

オンラインデモ


実際に触ってみたい方はこちらのページよりどうぞ。ページ下部に例がいくつかあります。

SD WebUI(AUTOMATION1111)用の拡張機能


ashen-sensored/sd_webui_gligen

sd-webui-controlnetの関連discussions

Install時メモ


実際にインストールした際に感じたことや注意点をまとめてみました。

  • WebUI上でGLIGENを実行するためにはnatsortとeasing_functionのインストールが必要です。

  • これらはpipコマンドでインストールする事ができるが、それだけではGLIGENを正常に実行することが出来ませんでした。

  • その後、インストールしたと思っていたのにも関わらずnatsortがimportできないとエラーが出ることに…

  • webui.shを実行した際に内部的に呼び出されるpip(またはpython)は、あくまでシェルスクリプト内で作成されたvenv仮想環境上で定義されている実行コマンドであり、ホスト環境のpip/pythonとは必ずしも一致しないモノであることに留意する必要があります。

ホスト環境で定義されたpython/pipコマンドを利用する(pipでnatsortやeasing_functionをインストールした後にWebUI上にそれを反映できるような形にする)には、python_cmd環境変数を設定してください。この時、その値は、利用したいpythonコマンドの絶対パスを指定する必要があります。
例: (ubuntu環境での場合、webui.shの前に下のコマンドを実行する)

WebUIを実際に使ってみた


拡張機能が正常にインストール・起動できるとtxt2imgタブやimg2imgタブに”Pluggable GLIGEN”という名前の欄が追加されました!

プロンプトは以下の通り:

a dog and an apple
Negative prompt: EasyNegative
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3289410147, Size: 512x512, Model hash: c057647b23, Model: SE_V2_A

Used embeddings: EasyNegative [119b]

Time taken: 17.82sTorch active/reserved: 3284/4438 MiB, Sys VRAM: 6119/8112 MiB (75.43%)

わかったこと


サンプラーの設定によっては上手くいかないこともありました。
例えばEuler aの場合、意図した形・DDIM(デフォルトのパラメタ設定の場合)だと、それなりに意図と違うモノが出力されてしまいます。

a dog, an apple, an asparagus
Negative prompt: EasyNegative, human
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 1035501277, Size: 512x512, Model hash: c057647b23, Model: SE_V2_A

Used embeddings: EasyNegative [119b]
Time taken: 17.59sTorch active/reserved: 3284/4438 MiB, Sys VRAM: 6168/8112 MiB (76.04%)


githubのREADME.mdに以下の注意事項が書かれています。

Warning: experimental inital implementation, does not work with 75+ token or batching yet.

便利ではありますが、まだクセがあるのでこちらももう少し研究が必要そうです。
お付き合いありがとうございました!

文:Hi君
協力:inaho株式会社

いいなと思ったら応援しよう!