Google Colab ではじめる DreamBooth|npaka|note
「Google Colab」で「DreamBooth」を試す方法をまとめました。
1. DreamBooth
「DreamBooth」は、数枚の被写体画像 (例 : 特定の犬) と対応するクラス名 (例 : 犬) を与えてファインチューニングすることで、Text-to-Imageモデルに新たな被写体を学習させる手法です。愛犬の合成画像を生成できる画像生成AIとして話題になりました。
GPU 16GBで動くDreamBooth実装を作ってくれた方がいたので、「Google Colab」でも試せるようになりました。
・diffusers/examples/dreambooth at main · ShivamShrirao/diffusers
2. ライセンスの確認
HuggingFaceからStable Diffusionをはじめてダウンロードする人は、以下のサイトにアクセスして、ライセンスを確認し、「Access Repository」を押し、「Hugging Face」にログインして(アカウントがない場合は作成)、同意します。
3. 入力画像の準備
今回はうちの猫を学習させるため、写真を5枚ほど用意しました。
4. 学習の実行
(1) メニュー「編集→ノートブックの設定」で、「ハードウェアアクセラレータ」に「GPU」を選択。
(2) GPUの確認。
16GB以上であることを確認します。
(3) パッケージのインストール。
(4) 入力画像を配置するフォルダを作成。
(7) 入力画像をアップロード
左端のフォルダアイコンでファイル一覧を表示し、「/content/diffusers/examples/dreambooth/inputs」の「︙」でアップロードを選択し、入力画像をアップロード。
(8) HuggingFaceにログイン。
(9) 学習の実行。
「instance_prompt」には、"a photo of sks <クラス名>"を指定します。クラス名は写真のオブジェクトが属する種別で、今回は猫(cat)になります。
「/content/diffusers/examples/dreambooth/model/data」にモデルが出力されます。(diffusersの形式?)
5. 推論の実行
(1) Stable Diffusionパイプラインの準備
(2) 推論の実行。
(3) 生成した画像の確認。
左端のフォルダアイコンでファイル一覧を表示し、output.pngをダブルクリックします。
・写真 (a photo of sks cat)
・油絵 (sks cat of oil painting)・ぬいぐるみ (sks cat plush toy)・ドット絵 (sks cat of pixel art)・ロボット (robot of sks cat)・スーパーヒーロー (super hero of sks cat)・本物
6. 参考
公式のColabノートブックが動かなかったので、以下のColabノートブックを参考にさせてもらいつつ、公式のメモリ減らすオプションを追加してみました。