🖥️

Stable Diffusion WebUIとGoogle Colabで無料でAI画像を生成しよう!

2023/03/23に公開

Key Visual
これはMidjourney v5で生成したもの

概要

最近MESONではAI関連のツールの利用が福利厚生になりました🙌

弊社CEOのnote↓
https://note.com/ar_ojisan/n/n127f7dcc97c5

最近はChatGPTに始まり、AI関連のニュースが毎日飛び込んできています。すでに1ヶ月後がどうなるかすら分からないレベルになってきているなと感じています。

先日も、ChatGPTのAPIが公開されたことを受けて早速、音声を利用してAIアシスタントを作るという趣旨の記事を書きました。
https://zenn.dev/meson/articles/chatgpt-with-voice


今回はStable Diffusion WebUIというツールを利用して、AI画像を生成する方法を紹介したいと思います。
特に、Google Colabを利用することで無料で利用することができます。

最近はブログのキービジュアルはすべてAIで生成したものを利用してたりしますw

余談ですが、最近はコーディングもCursorというエディタを利用したり、GitHub Copilotを利用したりしていますが、本当にAIと共創していかないとならなくなるなということを強く実感しています。
(さらにGitHub Copilot Xなる、Cursorと同じようなコンセプトの新機能も発表されましたね)

今回用に作成したGoogle Colabがあるので、こちらをコピーして利用してみてください。

https://colab.research.google.com/drive/1kO5xJ-XHG7Hj1WHS3UiIcNdxPKmIcEHr?usp=sharing

Stable Diffusion WebUIとは

Stable Diffusion WebUIはAUTOMATIC1111さんが作成したStable DiffusionをWebのUIから操作できるツールです。
以下にGitHubリポジトリがあります。
https://github.com/AUTOMATIC1111/stable-diffusion-webui

基本的にこのツールが必要な操作をやってくれるため、準備する必要があるのは環境のセットアップやプラグインのインストールなどのみです。

環境構築

では順番に見ていきましょう。

ランタイムをGPUに変更する

Google Colabには利用するランタイムの種類を設定する項目があります。

ランタイム変更

メニューから設定画面を開いたらランタイムの種類をGPUに変更します。

GPUを選択

WebUIをダウンロードする

次にWebUIをダウンロードし、セットアップします。

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

前述のリポジトリからcloneしているのみです。clone後、 stable-diffusion-webui ディレクトリに移動します。

実行する

セットアップは以上です。非常に簡単ですね。
あとは以下のコマンドを記入して実行するのみです。

# Web UIを実行
!python launch.py --share --xformers --enable-insecure-extension-access

実行してしばらくすると、以下のようにURLが表示されるのでこれをクリックします。

起動した状態

その他のモデルを利用する

さて、さすがにこれだけだと簡単すぎるのでいくつかのTipsも書いておきたいと思います。

まずはデフォルト(v1.5)以外のモデルの利用についてです。

Stable Diffusion v2.1のモデルを使ってみましょう。以下のコマンドを利用してモデルをダウンロードします。

!wget https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -O /content/stable-diffusion-webui/models/Stable-diffusion/sd_v2.1.safetensors

モデルはHuggingFaceのモデルリポジトリからダウンロードしています。

HuggingFaceとは

HuggingFaceはAIモデルの公開や共有を行うためのサービスです。

HuggingFace

Stable Diffusionのモデルは追加学習(Fine Tuning)が可能なモデルです。そのため、様々な人がモデルを公開しています。
それを手軽に行えるサービスがHuggingFaceです。

またモデルだけでなくデータセットも公開されているので、自分のモデルを作成する際にはHuggingFaceを利用すると良いでしょう。

コマンドを再実行する

モデルをダウンロードしたら改めてコマンドを実行してWebUIを立ち上げます。
複数のモデルが該当フォルダに存在すると、WebUI側でドロップダウンメニューから選択、変更できるようになります。

モデルの選択

LoRAを利用する

LoRAというのはLow-Rank Adaption of Large Language Modelsの略で、学習済みモデルに対して追加学習し、その差分だけを保持・適用する技術です。

どういうことをやっているかについては、LINEのインターン生が書いた記事(【インターンレポート】 6.7B日本語モデルに対するLoRAチューニング)から画像を引用させていただくと、以下のようなことをやっているようです。

LoRAイメージ

このLoRAの強力なところは、通常、Stable Diffusionのモデルは数GBのモデルを利用する必要がありますが、LoRAを利用することで数MBのモデルでFine Tuningを行えるという点でしょう。

仮に元のモデルを使って新しくFine Tuningされたモデルを作る場合は同様に数GBのモデルになってしまいますが、LoRAの場合は元となるモデルに対しての差分を保持するためモデルのサイズが小さくなります。

LoRA用フォルダを作成する

LoRAモデルは所定の位置に保存する必要があります。以下のコマンドを利用してフォルダを準備します。

%mkdir -p /content/stable-diffusion-webui/models/Lora/

LoRAモデルをダウンロードする

LoRAモデルはHugging Faceなど様々な場所で公開されているので、見つけたものをダウンロードして利用します。
今回は Modern Disney LoRA を利用しました。

以下のコマンドを実行してモデルをダウンロードします。

!wget https://civitai.com/api/download/models/8354 -O /content/stable-diffusion-webui/models/Lora/modernDisneyLORA_modiV1.safetensors

コマンドを再実行

もし前段の流れでコマンドを実行している場合は同じように一度停止してから再実行してください。

実行するとLoRAが認識されているはずです。以下のボタンを押すと、認識しているLoRAモデルのリストが表示されるのでそれを押します。

LoRA設定

最後に

ほんの1ヶ月の間に本当に様変わりしましたね。シンギュラリティの足音が聞こえてきた気がします。言葉通り毎日新しいAIに関する発表が相次いでいるので、乗り遅れないように色々と触っていきたいところですね。

エンジニア絶賛募集中!

MESONではUnityエンジニアを絶賛募集中です! XRのプロジェクトに関わってみたい! 開発したい! という方はぜひご応募ください!

MESONのメンバーページからご応募いただくか、TwitterのDMなどでご連絡ください。

書いた人

えど

比留間 和也(あだな:えど)

カヤック時代にWEBエンジニアとしてリーダーを務め、その後VRに出会いコロプラに転職。 コロプラでは仮想現実チームにてXRコンテンツ開発に携わる。 DAYDREAM向けゲーム「NYORO THE SNAKE & SEVEN ISLANDS」をリリース。その後、ARに惹かれてMESONに入社。 MESONではARエンジニアとして活躍中。
またプライベートでもAR/VRの開発をしており、インディー部門でTGSに出展など公私関わらずAR/VRコンテンツ制作に精を出す。プライベートな時間でも開発しているように、新しいことを学ぶことが趣味で、最近は英語を学んでいる。

GitHub / Twitter

MESON Works

MESONの制作実績一覧もあります。ご興味ある方はぜひ見てみてください。

MESON Works

Discussion