Google ColabでStable Diffusion Forgeを起動、FLUXモデルで高品質画像を生成・保存する手順
本記事では、Google Colabを用いてStable Diffusion Forgeを起動し、FLUXモデルで高品質な画像を生成、さらにGoogleドライブへ保存する手順までを解説します。提供するサンプルコードとバックアップ用のコードを利用することで、安全かつ効率的に作業を進められます。
サンプルコードについて
こちらのGoogleドキュメントにアクセスし、左上の「ファイル」→「コピーを作成」からご自身のアカウントにコピーしてご利用ください。
このサンプルコードは、高速かつ高画質な画像生成が可能な「FLUXモデル」の使用を前提としています。FLUXモデルには、VAE(Variational Autoencoder:テキストエンコーダー、クリップ、VAEのセット)が必要なタイプと不要なタイプが存在します。
- VAEが必要なモデルの場合: 「VAEあり」のサンプルコードを使用してください。
- VAEが不要なモデルの場合: 「VAEなし」のサンプルコードを使用してください。
サンプルコードに初期設定されているモデルは、VAEなしで動作するタイプです。
VAEが必要/不要な理由
- VAEが必要なモデル: Stable Diffusionのモデルは潜在空間で画像を処理します。VAEは画像を潜在空間にエンコード(圧縮)し、潜在空間から画像をデコード(復元)する役割を担います。モデル自体にVAEが組み込まれていない場合、画像を適切にエンコード/デコードできず、期待通りの画像が生成されません。そのため、外部からVAEを導入しモデルと組み合わせる必要があります。Civitai等のモデル配布サイトでは、「Recommended VAE」として特定のVAEが推奨されている場合があり、モデルの学習時に使用されたVAEと異なるVAEを使用すると、生成結果が変わる可能性があります。
- VAEが不要なモデル: 一部のモデル(特に比較的新しいモデルや特定用途に特化したモデル)は、VAEをモデル自体に組み込んでいます。モデルにVAEが組み込まれている場合、別途VAEを用意する必要がなく、モデル単体で画像を生成できます。Civitai等のモデル配布サイトで、モデルの説明に「VAE included」や「VAE baked-in」と記載がある場合は、VAEが不要な可能性が高いです。
サンプルコードの各項目
1. CIVITAI APIキーの設定
CIVITAI_API_KEY = "ここにあなたのAPIキーを入力"
CIVITAIからモデルをダウンロードするために必要なAPIキーを設定します。
【CIVITAI APIキー取得方法】
- CIVITAIのホームページを開き、アカウントにログインします。
- 右上のアイコンから「Account Settings」を選択。
- 「API Keys」項目の「+ Add API Key」をクリック。
- APIキーの名前(例:Colab)を入力し、「Save」をクリック。
- 表示されたAPIキーをコピーし、サンプルコードの「"ここにあなたのAPIキーを入力"」の部分に貼り付けます。
一度設定すれば、モデルダウンロード部分に自動的に反映されます。
2. WebUI起動時の引数
cmd_args = "--share --xformers --no-download-sd-model --theme dark"
Stable Diffusion Forgeを起動する際の設定です。
--share
: Web UIをインターネット上で公開し、どこからでもアクセスできるようにします。--xformers
: Stable Diffusionの処理を高速化するライブラリを有効にします。--no-download-sd-model
: 起動時にデフォルトのSDモデルを自動ダウンロードしないようにします。--theme dark
: Web UIのテーマをダークモードにします。
3. Stable Diffusion WebUI Forgeのインストール
print("[ Stable-Diffusion-Forge をインストールします... ]")
!git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git
%cd /content/stable-diffusion-webui-forge
Stable Diffusion WebUI Forgeをインストールします。
4. 拡張機能のインストール
print("[ civitai-blowser をダウンロードします... ]")
!git clone https://github.com/SignalFlagZ/sd-webui-civbrowser.git /content/stable-diffusion-webui-forge/extensions/sd-webui-civbrowser
print("[ adetailer をダウンロードします... ]")
!git clone https://github.com/Bing-su/adetailer /content/stable-diffusion-webui-forge/extensions/adetailer
サンプルコードでは、以下の拡張機能をインストールします。
- civitai-browser: WebUI上でCIVITAIのモデルを検索・ダウンロードできる拡張機能。
- adetailer: 画像生成時に顔の補正を行う拡張機能。
【拡張機能の追加方法】
既存の拡張機能のコードを複製し、以下の3点を変更します。
- print("[ 〇〇 をダウンロードします... ]")の〇〇の部分
- !git clone https://〇〇の〇〇の部分(追加したい拡張機能のGitHubリポジトリのURL)
- /content/stable-diffusion-webui-forge/extensions/△△の△△の部分(拡張機能のフォルダ名)
5. モデルのダウンロード
print("[ Flux.1-Dev Hyper NF4 をダウンロードします... ]")
!wget -O /content/stable-diffusion-webui-forge/models/Stable-diffusion/model.safetensors https://civitai.com/api/download/models/819165?token={CIVITAI_API_KEY}
サンプルコードでは、「Flux.1-Dev Hyper NF4」というモデルをダウンロードするように設定されています。
【モデルの変更方法】
- CIVITAIで、使用したいモデルのページを開きます。
- 「Details」欄にある「AIR」の一番右端の数字をコピーします。
- サンプルコードのmodels/819165の数字部分を、コピーしたIDに置き換えます。
- /content/stable-diffusion-webui-forge/models/Stable-diffusion/model.safetensorsのmodel.safetensorsを使用したいモデルの名前に変更します。(ファイル名は変更しなくても動作しますが、管理しやすくするために変更を推奨します。)
- print("[ 〇〇 をダウンロードします... ]")の〇〇の部分も、モデル名に合わせて変更しておくとわかりやすくなります。
6. VAEのダウンロード (VAEが必要なモデルの場合)
print("[ VAE をダウンロードします... ]")
!wget -O /content/stable-diffusion-webui-forge/models/VAE/t5xxl_fp16.safetensors https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors?download=true
!wget -O /content/stable-diffusion-webui-forge/models/VAE/ae.safetensors https://huggingface.co/black-forest-labs/FLUX.1-schnell/resolve/main/ae.safetensors?download=true
!wget -O /content/stable-diffusion-webui-forge/models/VAE/clip_l.safetensors https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors?download=true
VAEが必要なFLUXモデルを使用する場合、こちらのコードでダウンロードしてください。
7. WebUIの起動
print("[ WebUI を実行します... ]")
!python launch.py {cmd_args}
Stable Diffusion Forgeを起動します。
Google Colabでの実行手順
- Google Colabを開きます。
- 「ノートブックを新規作成」をクリック。
- サンプルコードをすべてコピーし、Google Colabのコードセルに貼り付けます。
- 必要に応じて、CIVITAI APIキーやモデル、拡張機能などを変更します。
- Googleドライブに画像をバックアップするためのコードを、Googleドキュメントからコピーし、Google Colabの新しいコードセルに貼り付けます。
!cp -r /content/stable-diffusion-webui-forge/outputs/txt2img-images/* /content/drive/MyDrive/image/
- このコードでは生成された画像が/content/drive/MyDrive/image/に保存されます。保存先を変更したい場合はパス(image)を書き換えてください。
- 右上にある「接続」をクリックし、「ランタイムのタイプを変更」を選択。ハードウェアアクセラレータを「GPU」にし、「GPUタイプ」を選択(おすすめはA100)して、「保存」をクリック。
- 各コードセルの左側にある再生ボタンをクリックして、コードを実行していきます。
- WebUIが起動したら、プロンプトなどを入力して画像を生成します。
- 生成された画像をGoogleドライブに保存するには、Stable Diffusion Forgeのコードセルの実行を停止し、Googleドライブへの保存用コードセルの再生ボタンをクリックします。
- 作業が終了したら、Google Colabの「ランタイム」→「ランタイムの接続解除と削除」をクリックして、接続を解除します。
参考動画
YouTubeでも詳しい説明をした動画がありますので、参考にしてください。