Google ColabとStable Diffusionで画像を作る方法

AIツール

Google ColabとStable Diffusion概要を軽くおさらい

Google Colabとは

Google Colabとは、Googleが提供しているクラウド型のプログラミング実行環境です。正式には「Google Colaboratory」と呼ばれ、ブラウザ上でPythonコードを書き、そのまま実行できるサービスです。

通常、プログラミングやAI開発を行うには、自分のパソコンにソフトをインストールし、環境を整える必要があります。しかしGoogle Colabでは、Googleアカウントとインターネット環境さえあれば、すぐに使い始めることができます。

Stable Diffusionとは

Stable Diffusionとは、テキストから画像を生成できるAIモデルのひとつです。文章で指示を出すと、その内容に沿った画像を自動で作り出します。

この、クラウド上でプログラミングコードを実行できるGoogle Colabに、Pythonというプログラミング言語でStable Diffusionを利用できる環境をダウンロードして使おう。というのが今回の目的です。

Google ColabとStable Diffusionで画像を作る際に気を付けるべきこと

Google ColabでStable Diffusionを利用するにあたり、禁止されていることや注意すべきことについて解説します。

Google Colabで禁止されていること

Google Colabを利用する上でやってはいけないことを、利用規約を元に以下にまとめました。

  • 有料プランのGPUを第三者に使わせない
  • 共同利用やアカウント使い回しはNG
  • Colab環境そのものを第三者に再販売しない
  • 有料GPUを使った画像生成サービスを「転売」しない
  • 画像を大量保存するストレージ代わりにしない
  • 違法コンテンツ生成
  • 著作権侵害画像の作成
  • ハラスメント・暴力・違法用途の生成
  • 実在人物の権利侵害

参考:Colab 有料サービスに関する利用規約

たとえば、アダルト系の画像を作ったり、Colab環境でStable Diffusionを運用して、それをサービスとして提供するのは禁止です。

Google Colabの無料プランだとStable Diffusionは利用できない

結論として、Google Colabの無料プランでStable Diffusionを起動して画像を作ることはできません。

その理由として、Google Colabの無料プランでは、Stable Diffusionの利用がせいげんされているためです。もしダウンロードしようと試みたとしても、ほぼ確実に以下のエラー文が表示します。

RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check

そのため、Google ColabでStable Diffusionを使いたい場合は、Google Colabの有料プランに加入する必要があります。

有料プランについては「Google Colabの有料プランに加入する」にて解説しています。

Google ColabでStable Diffusionを使う手順

Google ColabでStable Diffusionを使う手順は以下のとおりです。

  1. Google Colabの有料プランに加入する
  2. Google ColabにStable Diffusionをダウンロードする
  3. Stable Diffusionで画像を作る方法

各手順ごとに詳しく解説します。

Google Colabの有料プランに加入する

まずはGoogle Colabを開きます。検索欄で「Google Colab」と入力すれば出てきます。

Google Colabを開くと上記画面が表示されるので「ノートブックを新規作成」をクリックします。

新しいノートブックが表示されます。必須ではありませんが、右上のノートブック名はクリックして変更することが可能です。

そして、画面中央がプログラミングコードの入力欄になってます。後々、こちらにStable Diffusionをダウンロードするコードを入力します。

ノートブックの右上にある「接続」の横にある▶アイコンを押します。表示内容から「リソースを表示」をクリックしましょう。

このリソース欄は、Google ColabでCPUやGPUをどれだけ消費したのか確認できる画面です。

表示内容から「Colab Proにアップグレードする」をクリックしましょう。

Colabのプラン表が表示されます。この中でおすすめのプランが「Pay As You Go」です。

  • Colab Pro:月額契約のプラン
  • Pay As You Go:買いきりプラン

Colab ProとPay As You Goプランはいずれも同じ料金でGPUを利用できます。つまり、月額か買い切りかの違いなので、まずは使い切りである「Pay As You Go」がおすすめです。

Google ColabにStable Diffusionをダウンロードする

続いて、先ほど紹介したGoogle Colabの画面中央に、Steble Diffusionをダウンロードするコードを入力します。以下のコードをコピーして貼り付けてください。

# 0) 取得
%cd /content
!rm -rf stable-diffusion-webui
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui stable-diffusion-webui
%cd /content/stable-diffusion-webui
!git checkout tags/v1.10.1

# 1) Python 3.10 venv
!apt-get update -y -qq
!apt-get install -y -qq python3.10 python3.10-venv python3.10-distutils curl
!test -x /content/py310/bin/python || /usr/bin/python3.10 -m venv /content/py310
!/content/py310/bin/python -m pip install -U --no-cache-dir "pip==23.3.2" "setuptools==69.5.1" "wheel==0.41.3"

# 2) ★Stable Diffusion 本体の clone 先を fork に差し替え(今回の主因)
import os, shutil
repo_dir = "/content/stable-diffusion-webui/repositories/stable-diffusion-stability-ai"
shutil.rmtree(repo_dir, ignore_errors=True)

os.environ["STABLE_DIFFUSION_REPO"] = "https://github.com/joypaul162/Stability-AI-stablediffusion.git"
os.environ["STABLE_DIFFUSION_COMMIT_HASH"] = "f16630a927e00098b524d687640719e4eb469b76"

# 3) NumPy互換対策(必要最低限)
import pathlib, textwrap
constraints_path = "/content/sdwebui_constraints.txt"
pathlib.Path(constraints_path).write_text(textwrap.dedent("""\
numpy==1.26.4
scikit-image==0.21.0
scipy<1.12
"""))

!/content/py310/bin/python -m pip install --no-cache-dir -r requirements_versions.txt -c /content/sdwebui_constraints.txt
!/content/py310/bin/python -m pip install --no-cache-dir --force-reinstall -c /content/sdwebui_constraints.txt \
  "numpy==1.26.4" "scikit-image==0.21.0" "scipy<1.12"

# 4) Animagine XL V3(HuggingFace直:Civitaiキー不要)
import os
ckpt_dir = "/content/stable-diffusion-webui/models/Stable-diffusion"
os.makedirs(ckpt_dir, exist_ok=True)

model_name = "Animagine-XL-V3.safetensors"
model_url  = "https://huggingface.co/cagliostrolab/animagine-xl-3.0/resolve/main/animagine-xl-3.0.safetensors?download=true"
dest = os.path.join(ckpt_dir, model_name)

if not os.path.exists(dest):
    !wget -q --show-progress "{model_url}" -O "{dest}"
else:
    print("Model exists, skip")

# 5) 起動(安全寄り:危険フラグ無し / xformers無し)
%env MPLBACKEND=Agg
!MPLBACKEND=Agg /content/py310/bin/python launch.py --share

コードを張り付けたあとは、Google ColabでGPUを利用するための設定を行います。

画面上部のメニュー欄から「ランタイム」→「ランタイムのタイプを変更」をクリックします。

初期状態だと「CPU」にチェックが入っているはずなので、それを「T4 GPU」に変更して「保存」をクリックしましょう。

次に、画面右上の「接続」を押してランタイムを起動します。そのあと、コード入力欄の左にある再生ボタンをクリック。またはメニュー欄の「すべてのセルを実行」をクリックしましょう。

どちらをクリックしても問題ありません。

すると、コードが実行されてStable Diffusionのダウンロード処理が開始します。作業が完了するまでしばらく待機しましょう。

ちなみに、私がダウンロードしたときは約6分ほど待ちました。

上記のように「Running on pulic URL~」という表示があればダウンロード完了です。

表示されている「.live」のURLをクリックしてみて下さい。Stable Diffusionが立ち上がるはずです。

【Google Colab】Stable Diffusionで画像を作成する方法

この画面がSteble DiffusionのWeb UI画面です。まずは利用するモデルを追記することから始めましょう。

画面上部の「Stable Diffusion checkpoint」には、ダウンロードしたモデル一覧が表示されます。

実は、先ほどStable Diffusionと一緒に「Animagine-XL」というモデルもダウンロードしているので、このモデル名が表示されるはずです。こちらを選択しましょう。

続いて、作りたい画像をプロンプトで指定します。プロンプトには、作りたい画像の特長を入力する欄と「出したくない要素」をAIに指定する「ネガティブプロンプト」の指示欄があります。

物は試しなので、以下のプロンプトとネガティブプロンプトを入力して「Generate」ボタンをクリックしてみましょう。

【プロンプト】
masterpiece, best quality, monochrome, lineart, 1girl, solo, 20 years old, flat chest, short hair, black hair, hair between eyes, black eyes, long-sleeves, white hoodie, long pants, blue jeans, open eyes, open mouth, standing, cowboy shot, from front, looking at viewer, white background, simple background
【ネガティブプロンプト】
Worst Quality, Low Quality, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, normal quality,signature, watermark, username, blurry, multiple legs, multiple hands, incorrect limb and crotch, less than surrealism, fused fusion, long body, bad perspective, logo

すると、以下のような画像が生成されます。

生成した画像は、画像の右下にある「.KB」というリンクをクリックすることでダウンロードできます。これが基本的な操作です。

また、生成した画像の左側にある各機能の内容を表にまとめました。

項目説明
Width画像の横幅を指定する機能。
Height画像の縦幅を指定する機能。
Hires. fix低解像度で生成した画像を高解像度化する機能。
RefinerSDXLで2段階生成を行い、細部を仕上げる機能。
Batch count同じ設定で画像を繰り返し生成する回数を指定する機能。
Batch size一度に同時生成する枚数を指定する機能。

たとえば「Batch size」の数字を1から3にすると、1回の生成で3枚画像が生成されます。

この3枚の画像は、生成AIが同じプロンプトで異なる画像ができるように、それぞれ若干違いがある画像が生成されるのが特徴です。

コメント

タイトルとURLをコピーしました