[Google colab] LooseControlを動かす
1.LooseControl
Stable diffusionにて画像生成を行う際に,深度情報を条件づけ出来るネットワークです.
拡散モデルベースの画像生成は精巧な画像を生み出せる一方,制御面においては未だ改善が必要です.
同様の手法にControlNetが存在しますが,詳細な深度情報が求められるため,ビジネスへ応用しようとした場合使い勝手の面で壁に当たることが想像できます.
今回のLooseControlは3Dboxを配置するのみで画像内のオブジェクトを操作できるとのことで触ってみたので動かし方を書き留めておきます.
2. Google colabでの実行
google colabを使って動かします.
GPUはT4を使用しました.
(1) パッケージのインストール
!git clone https://github.com/shariqfarooq123/LooseControl
%cd LooseControl
(2) 足りないライブラリをインストール
公式の手順通りではcolabで動かすことが出来なかったため,足りないライブラリを引っ張ってきます.
!pip install gradio
!pip install gradio_editor3d
!pip install diffusers
!pip3 install --force einops==0.4.1
(3) gradioを動かせるように修正
公式の実装はローカルでの使用が前提なため,このままではcolabでwebUIを起動することが出来ません.app.pyを開き最後の行に引数を追加して以下のように修正してください.
・LooseControl/app.py
demo.queue().launch(share=True) # .launchにshare=Trueを追加
(4) 実行
最後です,app.pyを実行し「Running on public URL: ----」をクリックしてください.webUIが起動し操作を行うことが出来ます.
!gradio app.py
webUI操作方法
webUIのEditor3Dからオブジェクトを操作できます.オブジェクトをクリックした後各種パラメータをいじって形状を操作してください."Toggle mode”で深度情報を表示できます.
ちなみにカメラに関してはショートカットキーも設定されています.
オブジェクトを操作した後はプロンプトに生成したい情報を入力し"Render"ボタンから画像を生成可能です.
生成結果
試しにソファを生成してみました.使用プロンプトは「sofa in country house」です.
ここまで大雑把な画像から配置をコントロール出来るのはかなり応用の幅が効きそうです,Controlnet単体ではこの生成は不可能だと思います.
条件に沿った出力は体感3~4枚に1枚といった感じでした.今後の学習データの質向上に期待です.
この記事が気に入ったらサポートをしてみませんか?