Colab版導入

Last-modified: 2024-04-12 (金) 13:38:10

Colabについて

  • ローカル環境での画像生成が流行し始めた当初から、"かなりのGPUパワーが必要だから、クラウドGPUを活用できないか"と模索されていた。そんな中、Colabの使いやすさが着目され、クラウド利用者の定番になった。
    • Colab以外だとPaperspaceも使われている。あくまで体感だけど7割以上の人がColab利用、2割くらいの人ががPaperspace利用、残りがその他のクラウドサービス開拓といった印象。Paperspaceについては他のとしあきが独立項目を立ててくれたのでそちらを参照→Paperspace版導入
  • Google Colaboratory、通称Colabで行える機械学習向けのサービス。
  • Colab自体は基本無料だけど、Stable diffusion web UIの利用は課金必須。元々は無料だったが、ColabでStable diffusion web UIを走らせる人があまりにも増えたため無料枠から追放されたらしい。そもそもColabは開発者向けサービスだからしょうがないね。
    • (コメントでいただいた情報によれば)UIを通して画像生成するツールが課金対象であり、Stable diffusion自体や画像生成・学習そのものが無料禁止されたわけではない模様。diffuserssd-scriptsなどの利用は無料枠でも可能とのこと。
      • 別の情報によれば、トンネリング(gradioなどで外部からポートにアクセスすること)が無料枠NG判定の基準ともいわれているが、どちらが正しいのかは不明。
    • 枚数やデータ量で料金が決まるNovelAI等の一般的な画像生成サービスとは異なり、接続時間に応じて料金が決まるのが特徴。1000枚生成しようが10枚生成しようが接続時間が同じなら料金も同じ。
  • PCのスペックが低い。GPUがNvidiaでは無い。等スレのとしと同じような設定が使える場所で戦いたい!という人向け。ちょっと画像生成を試してみたいという人にもオススメ。グラボ購入の参考にも。課金必須とはいえ、新品グラボを買うよりははるかに出費が少なく済む。実は学習もできるので、VRAMがカツカツなとっしーにも。
    • とはいえクラウドサービスゆえの問題点も多く、あまり小回りが利かない。資金に余裕があるなら新品PCを買ってローカル入れたほうがいい。
  • 使用にはGoogleアカウントが必要です。できればGoogleDriveの容量も空いていたほうがいいです(Driveも課金すれば容量増やせる)。
  • colabの特徴として、アクセスを切断すると全データが抹消されます。ネカフェのPCのようなものです。そのため、アクセスの度にWebUIをインストールする必要があります(そのため、起動まで毎回5分前後かかります)。生成した画像も(driveに出力する設定にしていない限り)すべて消滅します。欲しい画像は小まめに保存しましょう。

またcolab規約で禁止されている部分で画像生成で使用する場合下記は特に注意が必要だと思われます。
・複数アカウントの使用による、アクセスまたはリソース使用量の制限の回避
・ディープフェイクの作成
エロ画像規定はColabでエロ画像生成して大丈夫なの?参照

基本情報

  • 詳細な情報は公式ページを参照してください→Colab公式の課金案内
  • 都度課金と月額課金のどちらかを選べる。まずは都度課金してみて、定期的に利用するようなら月額課金に移行すればいいと思う。
  • "コンピューティングユニット(CU)"を購入し、利用時間・使うGPUスペックに応じてそれを消費する。
    • 月額課金、特にPro+にするとバックグラウンドで稼働させられたりA100を優先的に利用できたりいろいろ特典がある(が、普通にStable diffusion web UIを動かすだけならProか都度課金で十分)
    • SDXLを使うなら月額課金にした方が有用(ハイメモリが必要になるので)。

(2024/4/12現在の情報です)

コース価格貰えるCU数
Pay As You Go
(都度課金)
¥1,179100CU
¥5,767500CU
Colab Pro¥1,179/月100CU/月
Colab Pro+¥5,767/月500CU/月

(※Colab Enterpriseっていう企業向けのコースもあるけど割愛)

  • Colabノートブック画面から左上の「ランタイム」>「ランタイムのタイプを変更」で使うGPUを選べる。月額課金者はメモリをハイメモリにするかどうかも選べる。
    • 2024年4月現在では、T4・V100・L4・A100の4つのGPUから選択できる。スペックが高いほどCUがガンガン削れるので注意。普通に画像生成するならT4で十分。CPUとTPUは選ばないでね。
      • V100はL4に置き換えられる形で廃止予定らしい。
  • ハイメモリを選ぶとシステムRAM容量が拡大する。SD1.5での画像生成用途ならノーマルメモリで十分。メモリと生成速度は特に関係ない(ハイメモリにしても生成速度は上がらない)。SDXLの場合はノーマルメモリだとUIが頻繁に落ちるのでハイメモリ推奨。
    • SD1.5でもControlNetを複数適用するなど負荷の高い行為をするとUIが落ちる。この場合もハイメモリにすれば解決する。
  • ColabのGPUごとの生成速度はこちら
GPUVRAM消費電力CUDAコア数生成速度消費CUメモ
T415GB70W25601.5:100%
XL:100%
ノーマルメモリ:1.76CU/h
ハイメモリ:1.84CU/h
画像生成だけならこれで十分。100CUで一か月50時間以上は稼働させられる。VRAMの恩恵でSDXLも出力できる。
L424GB72W74241.5:188%
XL:195%
ノーマルメモリ:選択不可
ハイメモリ:4.82CU/h
驚異的なワットパフォーマンスを見せる小さな巨人。生成速度がT4の約2倍に。学習のコスパも良い。
V10016GB300W51201.5:236%
XL:338%
ノーマルメモリ:4.82CU/h
ハイメモリ:4.91CU/h
L4に置き換えられる形で廃止予定らしい。
A10040GB400W69121.5:279%
XL:464%
ノーマルメモリ:選択不可
ハイメモリ:11.77CU/h
特大VRAMを活かして学習で無双。開発者には需要が多いらしく、繋がりにくいことも。

使い方

  • Colabはpythonで書かれたコードで動かします。このコードが書かれたものをノートブックと言います。
  • Stable diffusionを動かすノートブックを探してきて、それを自分のGoogleドライブにコピーして実行。これが基本になります。
    • ノートブックは様々な作者が公開しています。感謝の祈りを捧げながら使わせてもらいましょう。だいたいGithubに置かれています(拡張子が.ipynbならノートブックです)。
    • Stable deffusion系以外にも、ComfyUIやFooocusなどのノートブックもあります。使いたい人は探してみてください。Lora学習用のノートブックもあります。
    • 長期間更新されていないノートブックは、環境変化に対応できず動かないOR動いてもエラーしか出ない可能性があるので気をつけてください。
      • それなりの頻度で更新されていたりIssuesで利用者とやり取りしている作者であれば、ノートブックが現環境に対応しており不具合が出た時にも早めに対応してもらえる可能性が高いです。

既存のノートブックを使ってWebUIを体験

Stable Diffusion Web UIに関しては、作者のページでいくつかの導入用ノートブックが紹介されています。こちらのページのGoogle Colabの項を参照してください。
※既にエラーで画像生成できなくなっているノートブックもあるようです。
以下では、TheLastBenを例にノートブックの使い方を解説します。もしもエラーでノートブックやWebUIが正常に動作しなかった場合は、下記の「必要最小限構成のノートブックでWebUIを体験」を試してみてください。

  • 導入前の下準備
    自分のgoogleドライブ内にモデルを入れるフォルダを新規作成します。
    ここではわかりやすく「SDmodels」というフォルダを作ることにしましょう。
    あらかじめ使いたいモデルをダウンロードしてこのフォルダに入れておくと導入の手順がスムーズになります。
  • 導入用ノートブックをコピーする
    AUTOMATIC1111のgit hubページでmaintained by TheLastBenと紹介されているものをクリックします。
    左上のメニューからファイル>ドライブにコピーを保存と選択して自分のgoogleドライブに導入用ノートをコピーします。
    メニューが表示されていないときは、右上の「V」をクリックして格納されているメニューを表示させてください。
    以降の手順は自分のドライブにコピーしたノートブックにて行います。
    コピーしたノートブックをブックマークしておくと2回目以降アクセスしやすいでしょう。
  • 導入用ノートブックの実行
    最初に実行するときだけ記入が必要な欄があります。
    2回目からは上から順番に▶を押すだけです。
  • Connect Google Drive
    googleドライブに接続します。
    基本的に何も書き換える必要はありません。左上の▶を押して実行します。
    しばらく待つとGoogleドライブに接続するか確認のポップアップが出るので、Googleドライブに接続>許可とクリックします。
    このとき自分のスマホにアクティビティの確認がgoogleから送られてくることがあります。操作内容に心当たりがあると返しておきましょう。
  • Install/Update AUTOMATIC1111 repo
    Stable Diffusion web uiのインストールまたは更新を行います。
    基本的に何も書き換える必要はありません。左上の▶を押して実行します。
  • Requirements
    書き換える欄はありません。左上の▶を押して実行します。
  • Model Download/Load
    最初に実行するときだけ記入の必要があります。
    Path_to_MODELの横の欄にモデルを入れてあるフォルダのパスを記入します。
    先程「SDmodels」というフォルダを作ったはずなので
    /content/gdrive/MyDrive/SDmodels/
    と指定しておきます。違う場所や名前でフォルダを作った場合は適宜それに合わせてください。
    記入が終わったら左上の▶を押して実行します。
  • ControlNet
    基本的に何も書き換える必要はありません。左上の▶を押して実行します。
  • Start Stable-Diffusion
    基本的に何も書き換える必要はありません。
    google colabからあまりにもブツブツ接続を切られるようであればNgrok_tokenを利用しましょう。
    Ngrokにアカウントを作り、Your Authtokenから自身のAuthtokenをコピーします(このAuthtokenは他人には絶対知られてはいけません)
    コピーしたAuthtokenをNgrok_tokenの横の欄にペーストします。
    記入した内容は保存されるため2回目以降はAuthtokenをコピーしてくる必要はありません。
    USERとPasswordを利用すると少しセキュリティが向上するので、使いたい人は適当な名前とパスワードを設定してください。
    左上の▶を押して実行します。
    しばらく(けっこう)待つとRunning URLが表示されるのでクリックします。
  • 立ち上げ完了
    URLをクリックしてstable diffusion web uiが表示されたら立ち上げ完了です。
    USERとPasswordを設定した人はweb uiアクセス前に記入欄が出ます。
    Ngrokを利用している人は接続確認が出るのでvisitを選択します。

ノートブックに記入した内容は自動保存されるので2回目からは上から順に▶を押して実行していくだけです。
自動で上から順番に実行していってくれるので、次の▶を押すのに完了を待つ必要はありません。
ただし急いでクリックしすぎてgoogleドライブに接続する確認のポップアップを消さないようにだけ気をつけてください。

  • 立ち上げ中にバグってしまったら
    画面上部のメニューからランタイム>ランタイムを接続解除して削除と選択します。
    接続解除後、再接続して最初の▶から順に実行をやり直してください。
  • モデルやLoRAの利用
    モデルファイルは最初に作った「SDmodels」フォルダに入れてください。
    違う場所や名前でモデル用フォルダを作った場合はそこに入れてください。
    LoRAを入れるフォルダは導入用ノートブックが自動で作成します。
    自分のgoogleドライブの中のsd/stable-diffusion-webui/models/Loraの中に使いたいLoRAファイルを入れてください。
    Loraフォルダの中にさらにフォルダを作って、その中にLoRAを入れても認識してくれます。
    ただし別フォルダであったとしても、Loraフォルダ全体で同じ名前のLoRAが複数存在してはいけません。

必要最小限構成のノートブックでWebUIを体験

ここまで、既存のノートブックを使用する方法を紹介しましたが、ノートブックを自作する方法もあります。自作と言っても、基本的にはコードをコピペするだけです。
以下では、コード知識がなくても使える必要最小限構成のコードを紹介します。これをコードとしてコピペすればStable diffusion web UIを体験できます。
CUをもっていないと途中で手詰まりになるので注意してください!
https://colab.research.google.com/ にアクセスし、左上の「ファイル」を押して「ノートブックを新規作成」を押す。
 ※この時点でノートブックがGoogle driveに保存されます。Google driveの中の「Colab Notebooks」というフォルダの中に生成されています。次回以降はコピペ作業なしでdriveから起動できます。
左上に「Untitled0.ipynb」と名前があるので、必要に応じて名前を変えましょう。

初期起動の場合は、CPUで処理するモードになっています。
必ず名前の下にある「ランタイム」を押して、「ランタイムのタイプを変更」を押してください。
上記の4種類のGPUから1つ選んでください(迷ったらT4を選んでください)。

そして、以下のコードをコピペしてください。OrangeMix3というモデルを使う構成です。

!pip3 install torch==2.1.2+cu121 torchvision==0.16.2+cu121 torchaudio==2.1.2+cu121 torchtext==0.16.2 torchdata==0.7.1 --index-url https://download.pytorch.org/whl/cu121
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
%cd /content/stable-diffusion-webui
!wget https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors -O /content/stable-diffusion-webui/models/Stable-diffusion/AOM3A1_orangemixs.safetensors
!wget https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -O /content/stable-diffusion-webui/models/VAE/orangemix.vae.pt
!python launch.py --share --no-half-vae

コピペしたら、一行目の「!pip3 install~」の横に白丸に三角のボタンがあるのでそこを押してください。
起動までに数分かかるので待ちましょう(だいたい5分から10分程度です)。

このような表示が出たら起動完了しました。
Running on public URL: https:000000000000000000.gradio.live
 ※0のところは例です。本来なら、英数字が色々混ざってるURLです。
準備ができたら、リンクをクリックしてください。

起動したら、プロンプトにとりあえず1girlと記入して、512x512サイズで1枚画像を生成してみましょう。無事に生成できれば成功です。
あとは一部を除いて通常の1111と同じ使い方です。
お疲れ様でした。

  • 生成画像に不満がある場合のトラブルシューティング
    • Clip skipを1から2に変更してみてください。
    • VAE(SD VAE)をAutomaticからorangemix.vae.ptに変更してみてください。既に選択されている場合でも、一応右の更新ボタンを押してみてください。
    • モデル(Stable Diffusion checkpoint)がAOM3A1_orangemixs.safetensorsになっていることを確認してください。なっている場合でも、一応右の更新ボタンを押してみてください。
    • さらに高品質な画像を求める場合は、クオリティタグの使用やembedding・Loraの活用、controlnetの導入などが考えられます。これらは通常のローカルと共通です。
      • colabでもローカルでも画像の品質は同じです。colabだから画像の質が悪いということはありません。試行錯誤しながら品質を追求しましょう。
コードについての簡単な解説
  • 1行目
    環境設定です。Colab上でStable Diffusion Web UIを動かせるようにPyTorchをインストールします。
  • 2~3行目
    Stable Diffusion Web UI本体をgithubからcolabにダウンロードします。本体のインストールだと思ってください。
  • 4~5行目
    モデルとVAEのダウンロードです。サンプルとしてOrangeMix3を指定しました。
    事前にdriveにモデルを用意している方は、この4~5行目のコードを省略できます。詳しくはこちら
  • 6行目
    起動コードです。うしろに --shereなどのコマンドがありますが詳細はこちらを見てください。

WebUIをカスタマイズする

先ほど、一部を除いてと言いました。
拡張機能やモデル、VAE、学習データ等入れるときは通常の1111と比べて若干面倒ではあります。
これは、colabがアクセス切断と同時に全データを削除するためです。
通常とは全く異なるやり方で諸々入れる事になるので、よく読んで進めてください。

  • 拡張機能をインストールしたい→こちら
  • モデル・VAE・学習データ(Loraなど)を追加したい
    • GoogleDriveの空き容量に余裕があり、WebUIの起動を速くしたい人→こちら
    • GoogleDriveの空き容量に余裕がない

拡張機能をインストールしておく

拡張機能導入についてです。これを見ながら入れてもいいのですが、一回起動することにExtensionを開いてダウンロードするのはめんどくさいと思います。
どうせならモデルデータダウンロードと一緒にに拡張機能入れればよくね?
というわけでその導入の仕方を解説していきます。
今回の使用拡張機能は、Booru tag autocompletionを例に使って導入していきます。
先ほどのコードの

!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
「ここ」
%cd /content/stable-diffusion-webui

「ここ」って示してるところにコードを入力(コピペ)していきたいと思います。
まず改行して、下のコードを入力してください。

!git clone https://github.com/DominikDoom/a1111-sd-webui-tagcomplete /content/stable-diffusion-webui/extensions/a1111-sd-webui-tagcomplete

これであとは起動するだけです。
基本、拡張機能入れるときはこれを覚えておけばいいです。

!git clone 「githubにある導入したい拡張機能のリンク」 /content/stable-diffusion-webui/extensions/「拡張機能の名前」

driveに保存してあるモデル・VAE・学習データをそのまま利用する

  • 起動時にモデル等が置いてあるパスを指定すれば、driveに保存されたファイルを直接利用することができ、アクセスの度にダウンロードする必要がなくなります。
    あらかじめモデルをdriveに用意している場合は、上記最小構成のモデルダウンロード部分のコードを省略できます。
    こちらのページも参照してください→Colab1111でGoogleドライブからモデルを読み込む
    • メリット:データのダウンロードが必要最小限になるので起動が速くなる。面倒なコード実行・ファイル操作を省略できる
    • デメリット:データが多いとgoogleドライブの空き容量を食いつぶす(課金すれば容量拡張可能)

まず、先ほど紹介したstable diffusion起動コードを見てみましょう。

!python launch.py --share --no-half-vae

このコードは2つの意味に分かれています。

  • !python launch.py→stable diffusionの実行ファイル。これで本体を起動させている。
  • --share --no-half-vae→実行にあたっての引数(オプション)指定。(shareでgradioへのアクセスを、no-half-vaeでVAEを16ビットフロートに切り替えないようそれぞれ指定している)
    実はStable Diffusion Web UIには多くのオプション機能が存在しており、活用次第でかなり便利になります。→詳しくは「webui-user.bat」を編集する参照。
    そこで、①driveにデータを用意しておき、②driveとcolabをリンクして、③driveに保存したデータの場所を指定すれば、drive上のファイルを直接利用することができます。

①driveにデータを用意しておく
まずGoogle driveにデータを用意しておきましょう。
モデル・VAE・Lora・embeddingなどなど・・・
モデルはモデルのフォルダ、VAEはVAEのフォルダにまとめて置いてください。
フォルダ名は半角英数字にした方が無難です。スペース・日本語・全角英数字を使うとトラブルの原因になるかもしれません。

②driveとcolabをリンクさせる
まずこのコードをコピーして実行します。

from google.colab import drive
drive.mount('/content/drive')

実行すると、driveにマウントする許可を求めるメッセージが出ます。許可をして、次のページで自分のgoogleアカウントを選択しましょう。
しばらくするとマウントが完了し、colab上からdriveの全ファイルが認識可能になります。

③引数でファイルの場所を指定する
まず、driveのパスについて確認しましょう。
colab画面の左側にいくつかアイコン(メニュー)があります、その中のフォルダの形をしたアイコンをクリックしましょう。
すると、colab上のファイルが表示されます。driveマウントが成功していれば「drive」というフォルダもあるはずです。
このdriveフォルダを展開し、目当てのファイルを置いたフォルダを探してください。
フォルダが見つかったら、右側の縦に点が3つ並んでいるマークをクリック(もしくは当該フォルダを右クリック)し、「パスをコピー」を選択します。
これで、driveのパスの準備ができました。参考までに、マイドライブ直下に「model」というフォルダを作成した場合、以下のようなパスになっているはずです。

/content/drive/MyDrive/model

では、もう一度stable diffusionの起動コードを見てみましょう。

!python launch.py --share --no-half-vae

このように、引数を追加したい場合はlaunchi.pyの後ろに半角スペース+--引数、半角スペース+--引数と記入していきます。
フォルダを指定する引数を以下に例示します。必要な分だけ使ってください。初めての方はまずモデルだけで試してみましょう。HNなども指定できますがここでは割愛します

  • モデル→--ckpt-dir /content/drive/MyDrive/〇〇(モデルを置いたフォルダのパス)
  • VAE→--vae-dir /content/drive/MyDrive/〇〇(VAEを置いたフォルダのパス)
  • embeddings→--embeddings-dir /content/drive/MyDrive/〇〇(Easynegativeなどを置いたフォルダのパス)
  • Lora→---lora-dir /content/drive/MyDrive/〇〇(スレで配布されたLoraを置いたフォルダのパス)

例えば以下のようになります。これを流用する場合、パスは適宜追加改変してください。

  • モデルの場所だけ指定する場合
    !python launch.py --share --no-half-vae --ckpt-dir /content/drive/MyDrive/model
  • モデルとLoraの場所を指定する場合
    !python launch.py --share --no-half-vae --ckpt-dir /content/drive/MyDrive/model --lora-dir /content/drive/MyDrive/Lora

しばらくして表示されたgradioのURLをクリックし、driveに置いてあるモデルが反映されていれば成功です!(表示されない場合、モデルやVAEの横にある更新ボタンを押してみてください)
モデルのdrive指定に成功した場合、最小構成のモデルダウンロード部分のコードを省略できます。起動がちょっと速くなるよ!やったねたえちゃん!

モデルとVAEをダウンロードして使う

あらかじめデータをdriveに用意せず、モデルとVAEをアクセスの度にダウンロードして使う方法についてです。
今までAnything V3で解説してきましたが、ほかのモデル、VAEを使いたいときがあると思います。
例、AnyV4やV4.5、7thやWaifuやAbyss等々…
Huggingfaceにあるモデル、VAEは簡単に落とせます。

ここでは、7th_anime_v1を例に使っていきたいと思います。

!wget https://huggingface.co/syaimu/7th_Layer/resolve/main/7th_anime_v1/7th_anime_v1.1.safetensors -O /content/stable-diffusion-webui/models/Stable-diffusion/7th_anime_v1.1.safetensors

このコードを入力すれば7thのV1を使えるようになります。がもっと詳しいやり方を…
まずここ(7th_anime_v1の配布元)にアクセスします。
そしたら真ん中の枠の文章にある、download を右クリックしてください。
そうすると、リンクのコピーがあるのでそれを押してください。
そしてColabに戻って、

!wget 「ここ」 -O /content/stable-diffusion-webui/models/Stable-diffusion/「使用モデルの名前」

「ここ」と書かれているところに、さっきのリンクをコピーしてください。
※wgetと「ここ」の間は半角スペース、「ここ」と-Oの間は半角スペースを開けてください。
そして、分かりやすいように「使用モデルの名前」も決めておいてください。

これで後はモデルを選択して完了です。
モデルデータは基本、

!wget 「Huggingfaceからコピーしたリンク」 -O /content/stable-diffusion-webui/models/Stable-diffusion/「使用モデルの名前」.safetensors

と、覚えとけばいいと思います。
 ※VAEも同様の手順で出来ます。
Colabは7.7GB以上のモデルデータは読み込めないらしいが詳細は不明。一応6.9GBのSDXLモデルは読み込めたが・・・

学習データをダウンロードして使う

あらかじめdriveにデータを用意せず、学習データをダウンロードして使う方法についてです。
「CivitaiにあるやつをColabで使いたい」や、「スレにあったLoraを使ってみたい!」等、という人もいると思います。
Huggingfaceのアカウントを持ってない人は作ってください。Huggingfaceを使用します。
まず使いたい学習データをダウンロードしてきます。
そしたらHuggingfaceに行って、自分のアイコンのマークを押して、「+New Model」を押してください。
次のページに進んだら、Model nameのところに好きな名前を入力します。
そして、Licenseは一番下にある「Other」にしてください。(意味がないと思うけど一応)
この時、下にあるPublicやPrivateを変更しないでください。(デフォはPublic)
名前を決めたら、下にある「Create model」を押してください。
次のページに移動したら、「Model card」の隣にある、「Files and versions」を選択してください。
そしたら右にある「Add file」を押して、「Uplode files」を押してください。
Drag files/folders…ってとこがあるのでそこにアップロードしたい学習データをいれてください。
入れたら、「Commit changes to main」を押してください。アップロードの処理が始まります。
できたら、後はモデルデータと同じようにしていくだけです。が、学習データを使うにまだコードをいじらないといけません。
Loraを例とします。
モデルデータとLoraを同時にダウンロードする時、Loraではエラーが出てしまいます。
原因は、Loraの指定されたディレクトリがないからです。
Loraのディレクトリが作り始めるのはコードの一番下にある、

!python launch.py --share --xformers --no-half-vae

が、初めて動作して作られるものなんです。
それの回避策として、先にフォルダを作りましょう。
Loraを例としますが、HN・DB・TIを扱うときはこちらで状況に応じてフォルダ名を変えてください。

!mkdir /content/stable-diffusion-webui/models/Lora/

これを、Loraのダウンロードの前に配置してください。
そうするとエラーが出ずにそのまま進めます。
あとは通常の1111と同じ使い方です。

まとめて画像のダウンロードする方法

基本は右下にある「Save」を押せば一枚ずつ画像がダウンロードできるようになってますが、たまに全て作った絵をまとめてダウンロードしたい方もいると思います。
そのために、まとめてダウンロードする方法を2つ教えします。
その1、Google driveを経由してダウンロード(これが一番おすすめ)
めっちゃ爆速。他の方法のダウンロードと比べてなんじゃこりゃってなるくらいのやつ。
この方法を使うときは、Google driveの容量がたくさん空いていることを確認してください。
まず、左上の「+コード」を押してこのコードを入力してください。

from google.colab import drive
drive.mount('/content/drive')

このコマンドは、自分のアカウントをColabにマウントさせるコマンドです。
コマンドを実行したら、「このノートブックに Google ドライブのファイルへのアクセスを許可しますか?」と出てくると思います。そしたら、「Google driveに接続」を押してください。
新しいウィンドウがでて、アカウント選択の欄が出ると思います。
枠の中にあるアカウントを選択してください。
「Google Drive for desktop が Google アカウントへのアクセスをリクエストしています」と出ると思います。
下にスクロールして、「許可」を押してください。
そして、

Mounted at /content/drive

と、出ると思います。
こちらの文字が出たらマウント成功です。
次に、また左上の「+コード」を押してこのコードを入力してください。

!zip -r /content/AI.zip /content/stable-diffusion-webui/outputs/txt2img-images/
!cp /content/AI.zip /content/drive/MyDrive/AI.zip

こちらのコマンドは作った絵をZIPファイルにして、そのZIPファイルをGoogle driveにアップロードするコマンドです。
実行したら何も表示が出ずに完了すると思いますが、それで大丈夫です。そして、Googlw driveのページを開いてください。
この時、「AI.zip」があれば成功です。もし、なかった人は何回かウェブページを更新してみてください。
※たくさん生成すれば、アップロードに時間かかるかもです。気長に待ちましょう。
あとはダウンロードして終わりです。
※どえっっっっなイラストを生成した人へ
一番下に書いてありますが、Google driveにどえっっっっなイラストをあげるとやばいです。(詳しくは一番下に)
なので、ダウンロードしたら直ぐに消しましょう。ごみ箱からもね。
その2、Colabから直接ダウンロード(非推奨)
こちらは、Google driveの容量の空きがないよ!って人向けです。
ただ、めちゃくちゃダウンロード時間が長いです。
おま環にもよりますが自分は、119枚の109MBで10分でした。参考程度に。
まず、左上の「+コード」を押してこのコードを入力してください。

!zip -r /content/AI.zip /content/stable-diffusion-webui/outputs/txt2img-images/

こちらのコマンドは作った絵をZIPファイルにするコマンドです。
ZIPファイルにできたら、左にあるフォルダのマークを押してください。
そしたら、「AI.zip]というファイルがあると思います。
そのファイルを選択して、右クリックしてください。
ダウンロードの欄があると思うのでクリックして、気長に待ちましょう。
ダウンロードができたら成功です。

蛇足だぞ俺

from google.colab import files
files.download("/content/AI.zip")

このコマンドでzipにしたファイルをダウンロードすることもできる。
プログレスバーと進捗%も出るが上記方法と所要時間は変わらない多分。
zip化コマンドとダウンロードコマンドを合体させたらワンタッチになるかもしれないが最近Colabで触ってないからわかんないぞ俺。

生成・保存が終わったら

生成し終わったら、Colabでの動作を止めないと裏で少し動いてしまう。(まぁ10~20分くらいすれば自動で止まるけれども。)
そのために止めておく方法を載せておく。
まず、現在動かしているコードを止める。そして、上のタスクバーにある、「ランタイム」を押してください。
そして、「ランタイムを接続解除して削除」を押してください。
そしてポップアップ…?みたいなのが出てきて、「リセットしてもよろしいですか?」
とでるので、「はい」を押す。
注意・ランタイムを削除すると、作ってきたイラストのデータがぶっ飛んでしまうので、保存していない人は保存をしておこう。

おまけ1・動作中にバグってしまったら

もし動作中にバグってしまったとき、ある程度はプログラムの再起動で治る。
システムRAMやGPURAMの限界を突破してUIが落ちちゃったときも再起動すれば仕切り直せる。
だた、バグったときいつも「ランタイムの切断」をして再起動していると時間がかかってしまう。
そんな時、新しく「+コード」を押して

!python launch.py --share --no-half-vae

を一番下に置いておくとよい。
(モデルやVAEなどの引数を追加した場合はそれも忘れずに!)
このコードは、Stable diffusionを起動するためのコマンドである。
これを置いといておけば、生成途中になんかあった時でもコードを停止してこのコマンドを実行すれば良いだろう。
※重大なバグが出たときは、ランタイム自体を再起動することになるかもしれません。

おまけ2・グラボごとの生成速度と高速化

  • 「クラウドを利用する」ことの特性上、通信ラグや回線混雑の影響を非常に受けやすいです。時間帯によって生成スピードが安定しない場合があります。
    • 画像生成の流れは通常のローカルと同じなのですが、命令送信と結果受信にgradioを通す点が異なります。そのためgradioliveの転送速度がボトルネックになります(クラウド上のグラボ自体の生成能力は一定です)。「生成は終わってるのになかなか画像が表示されない」といった悲しい事態がちょくちょくあります。特にデータ量の大きい高解像度画像で発生しやすいです。
    • 同様のことはi2mでも発生します。命令だけでなく元画像も一緒に送信するためです。i2mの元画像のファイルサイズにも気を遣う必要があります。
  • ボトルネックをすこしでも減らすために考えられる手段は以下の通りです。とにかくデータ量を減らしましょう。
    • 生成画像・グリッド画像・プレビュー画像を全てjpgにする
      • 最も効果があります。WebUIの設定画面で画像の拡張子を変更できます(デフォルトではすべてpng)。かなりの生成速度アップが期待できます。webpでも構いません。
    • ライブプレビューを切る
      • 気持ち速くなるかな程度でそれほど目立った効果はありませんでした。ライブプレビューはオンにしておき生成スキップを活用した方がいい気がします。
    • (i2mの場合)画像を小さくリサイズする/拡張子をjpgに変更する
      • 転送データ量が減少し速度アップが期待できます。
    • ngrokを使う
      • 平常時はgradioと速度差はほとんどないのですが、gradioが重いときや落ちたときの代替手段になります。起動コードの引数で利用可能になります。無料会員は毎月のデータ量に上限があるそうです。
  • T4・L4・V100・A100それぞれの画像生成速度を計測しました。SDWebUI(not forge)・gradioliveを使用し、ほかの設定はリンク先と同様です。
    • 「T4はRTXでいうと○○に相当」のような比較は上記の理由から困難です。生成時間のストレス体感や使い勝手の参考程度にどうぞ。
    • 生成画像・グリッド画像・プレビュー画像全てをpngで出力したタイムとjpgにしたタイムの両方を記載します。

家庭用グラボと比較する場合は、やかもち先生の下記記事を参照してください。
【Stable Diffusion】AIイラストにおすすめなグラボをガチで検証【GPU別の生成速度】 | ちもろぐ
値をお借りしたグラフ(SD1.5 512): 512×512:ハローアスカベンチマーク
値をお借りしたグラフ(SDXL 1024): 1024×1024:トキ(ネイティブ高解像度イラスト)

T4-pngT4-jpgL4-pngL4-jpgV100-pngV100-jpgA100-pngA100-jpg
SD1.5(512・28step・10枚)65.7sec63.7sec36.5sec33.8sec29.0sec27.0sec25.2sec22.8sec
SDXL(1024・15step・5枚)111.0sec96.6sec55.7sec49.5sec33.7sec28.6sec25.9sec20.8sec

おまけ3・Colabでエロ画像生成して大丈夫なの?

一応Google Colaboratoryではエロ画像にまつわる制限は明示されていません。
新しく書いた人からの補足
「上に関して。自分がColab上でどえっっっっなのをたくさん作って3時間続けて触ってたけど、ColabでのBANとかはなかったです。」
「安心だな!と思ってる人がいると思いますが、あくまでも個人での行動なのでそこは気を付けてください。

ただしGoogleドライブを利用する場合は別です。
Googleドライブの規約でエロ画像に関する項目だと下記が主に該当します。
※創作物つまり二次絵でも引っかかります。
※尚、GoogleフォトやGmail等ストレージ保存系もほぼ同じ規約です。

「児童の性的虐待と搾取」
児童の搾取や虐待にあたるコンテンツは、アップロードしたり、共有したりしないでください。
これには、児童の性的虐待のすべての画像(漫画も含む)や、児童を性的に表現したすべてのコンテンツが含まれます。
「同意のない露骨な画像」
個人的なヌードや、性的に露骨もしくは露骨ではなくても性的なものを連想させる画像または動画を、本人の同意なしに保存、配信しないでください。
「未成年者の未承諾の画像」
未成年者の画像を、その子どもの親、保護者、または法定代理人による明示的な同意なしに保存または配信しないでください。

特に日本の二次元イラスト・アニメ・ゲームのキャラクターは、あちらでは幼いキャラと見られることが多く「児童の性的虐待と搾取」と判定されることがあるようです。
これらはGoogleドライブ上に存在した時点でアウト判定をくらいます。
グロ関係も規制があります
「暴力、流血」
衝撃を与えることや世間を騒がせること、冒涜を主な目的とした、実在する人物または動物に関する暴力的または残虐なコンテンツを保存、配信することは許可されません。
※これらの各種規制はAIによる自動システムによるスキャンでオート判定されます。
※規制対象に引っかかったファイルは自動的に削除orアクセス禁止措置を受けます。(勿論最悪垢BANです)
またGoogleドライブと同期しなくても、Google Colaboratoryのデータは動作中Googleのcolabサーバー上に保存されています。
colab動作AUTOMATIC1111で生成された画像も初期設定なら全保存されているのでGoogleの各種スキャンを受ける可能性があります。
一切保存しないようにセットしても結局はGoogleのサーバー動作なので対象になっている可能性があります。
新しく書いた人より
上にも書いたけど、Colabにどえっっっっなのを置いても大丈夫だった。
何が言いたいかというと、「Colabはある程度は大丈夫だった。」
ということです。
※ーーーに関しては、自分の思い込みなので文字間違っていたら消しといてください。

Googleに限らず性的コンテンツの規制はAppleやMicrosoft等のストレージサービスも似たような感じです。

おまけ4・起動の度に設定が初期化されるのがめんどくさい。設定引き継げない?

毎回clip skipを2にしたり、いちいちクオリティタグを入力したりするのは面倒ですよね。
WebUIの設定情報はstable-diffusion-webuiフォルダ内のconfig.jsonui-config.jsonに保存されています。接続を切断する前にこれらを保存しておけば、次回以降起動時にこの2ファイルをcolabに放り込んで前回の設定を復活させることが可能です。
まずWebUIを起動して好きな設定にしたら、colabではなくWebUIだけを再起動します。その状態でconfig.jsonとui-config.jsonをダウンロードします。そして次回起動時にcolab内のstable-diffusion-webuiフォルダに上記2ファイルをアップロードすれば完了です。
ui-config.jsonをメモ帳で編集すると、起動時のプロンプト・生成サイズ・バッチ数・CFGスケールなどを指定できます。あらかじめクオリティタグなどを記入しておくと便利です。
ちなみに、config.jsonとui-config.jsonをドライブに保存しておき、driveにマウントした上でWebUIの起動コードの直上に

!cp /content/drive/MyDrive/config.json  /content/stable-diffusion-webui/
!cp /content/drive/MyDrive/ui-config.json  /content/stable-diffusion-webui/

の2行を挿入すると、起動時に自動で設定ファイルが読み込まれるようになります。とても便利なのでcolabを常用する方は活用していただきたいです。

おまけ5・昨日まで動いていたノートブックが急に動かなくなった!/急に画像が生成できなくなった!

colabユーザーあるあるです。
colabのライブラリーが告知なく更新される(しかも割と頻繁に)ので、動作環境が変わりノートブックが正常動作しなくなることが原因です。
また、WebUI自体のバージョンアップが原因になることもあります。
こうなった場合、解決には専門的な知識が必要になります。
突如ノートブックが動作しないORエラーを吐くようになった場合、基本的にはノートブック作者が対応してくれるのを待つ以外にありません
ある程度知識がある人なら情報収集して適宜ノートブックを修正すればいいのですが・・・

おまけ6・forge版も動くの?

動きます。colabにおいても通常版より生成が速くなることが確認できました。
colabは使用時間で課金額が決まるので、正直なところ通常版よりもforge版のほうをおすすめしたいです。
forge用の最小構成コードを置いておくので、興味のある方は試してみてください。

!pip3 install torch==2.1.2+cu121 torchvision==0.16.2+cu121 torchaudio==2.1.2+cu121 torchtext==0.16.2 torchdata==0.7.1 --index-url https://download.pytorch.org/whl/cu121
!git clone https://github.com/lllyasviel/stable-diffusion-webui-forge
%cd /content/stable-diffusion-webui-forge
!wget https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors -O /content/stable-diffusion-webui-forge/models/Stable-diffusion/AOM3A1_orangemixs.safetensors
!wget https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -O /content/stable-diffusion-webui-forge/models/VAE/orangemix.vae.pt
!python launch.py --share --no-half-vae

指摘・更新するべき箇所や助言など

  • 導入用ノートブックの手順を記述しました -- 2023-05-04 (木) 15:00:38
  • 接続が5分と持たず切れてしまいます。ほかのコメントで大きな画像の生成していると切れやすいとあったのですが、画像生成しない状態でもすぐに切れて細かい設定も呪文の設定すらできません。なにか対処法はありませんでしょうか? -- 2023-05-09 (火) 12:30:04
    • いまcolabとgoogle driveの接続がめちゃくちゃ悪いのでそのせいかもしれません。一時的なバグなのか、googleがstablediffusion使わせないようにしてるのかは分かりません。自分の場合はngrok使うと切断頻度がマシになりました -- 2023-05-09 (火) 22:10:10
      • Google Colabの規約が更新されて、Stable Diffusionその他諸々などの文字列が入ったコードを実行しようとすると強制的にランタイムが切断されるようです。 -- 2023-05-22 (月) 19:42:00
  • 導入用ノートブックでcolabのランタイムの接続解除は「Start Stable-Diffusion」の「▶」ボタンを押して切る以外に方法はないのでしょうか? -- 2023-05-15 (月) 15:44:31
    • メニューのランタイムのところにセッションの管理っていう項目があってそこから切断することもできます -- 2023-05-28 (日) 14:01:17
  • 「Stable Diffusion」を無料枠の禁止と説明していますが、名称が不正確です。実際に禁止されて警告や切断の扱いとなるのは、Stable Diffusion web UIComfyUIまたはその派生物のようにUIを持ったStable Diffusionで、Diffusersやsd-scriptsのようなUIを持たないStable Diffuionの画像生成や学習は依然自由に行えます。これはノートブック上での操作が規約表現上の「インタラクティブなコンピューティング」にあたるため、問題ない行為であるのではないかと解釈しています。 -- 2023-12-20 (水) 23:05:59
  • CoLabはBANされにくいんじゃなくて規約違反データチェック頻度が低いんだと思う。外部公開できないし数時間で消えるし。ただ、BAN基準自体は同じだろうし、稀なチェックが1分後に来てBANされるかもしれないし、BANされたらそのGoogleアカウントは連携ログイン含めて全滅なので、エロ・グロ・巨乳ではない女性の画像の生成はやめたほうが無難かと。使いたいなら規約は守ろう。 -- 2024-03-05 (火) 20:31:12
    • エロ画像作れない画像生成なんて楽しいのかよ!!という向きもあろうが、うーん、まあ、まあまあ楽しいのである。エロ系が他のところで解消されてる前提になっちゃうけど。 -- 2024-03-05 (火) 20:31:53

(Tips)

  • 既存コメントの先頭にあるラジオボタンをONにすると、そのコメントの下にぶら下げ返信する形になる(ツリー構造)。
  • コメントの文中で↵ボタン(下の画像参照)を押すと「&br;」の文字列が挿入される。これは送信後に改行として機能するので、文章の整形に役立つ。
    br.png

短縮URL生成