Google Colab で ControlNet によるpix2pixを試す
「Google Colab」で「ControlNet」によるpix2pixを試したので、まとめました。
1. ControlNet
「ControlNet」は、入力に対して画像で条件づけするDiffusionモデルです。入力画像の構造を維持したまま、pix2pixできます。
構造を維持するために、以下の10種類の手法が提案されています。
2. Colabでの実行
「Google Colab」での実行手順は、次のとおりです。
エッジ検出で構造の維持を行う「Canny Edge」を使っています。
(1) メニュー「編集→ノートブックの設定」で、「ハードウェアアクセラレータ」に「GPU」を選択。
(2) Googleドライブにマウント。
# Googleドライブのマウント
from google.colab import drive
drive.mount("/content/drive")
(3) 作業フォルダに移動。
以下ではマイドライブ直下のworkを作業フォルダとしています。
# 作業フォルダの作成と移動
import os
os.makedirs("/content/drive/My Drive/work", exist_ok=True)
%cd "/content/drive/My Drive/work"
(4) パッケージのクローン。
# パッケージのクローン
!git clone https://github.com/lllyasviel/ControlNet.git
%cd ControlNet
(5) 「requirements.txt」作成して、「ControlNet」フォルダ直下に配置。
リポジトリにはconda用の「environment.yaml」しかないので、自前で用意します。
・requirements.txt
gradio
albumentations
opencv-contrib-python
imageio
imageio-ffmpeg
pytorch-lightning
omegaconf
test-tube
streamlit
einops
transformers
webdataset
kornia
open_clip_torch
invisible-watermark
streamlit-drawable-canvas
torchmetrics
timm
addict
yapf
prettytable
(6) HuggingFaceから「control_sd15_canny.pth」をダウンロードして、「ControlNet/models」フォルダに配置。
(7) パッケージのインストール。
# パッケージのインストール
!pip install -r requirements.txt
(8) 「ControlNet/gradio_canny2image.py」の最終行を次のように変更。
Colabではローカルでなくshare=Trueでシェアして利用します。<user>と<password>は新規のユーザー名とパスワード (公開コンテンツにアクセスするために利用) を指定してください。
(9) 「ControlNet/gradio_canny2image.py」の実行。
!python gradio_canny2image.py
(10) 「public URL」が表示されたら、クリック。
(11) 先程指定したユーザー名とパスワードでログイン。
(12) 画像をアップロードして、プロンプトを入力して、Runボタンを押す。
猫を維持したまま背景がビーチになりました。
関連
この記事が気に入ったらサポートをしてみませんか?