本記事ではStable DiffusionをGoogle Colab上で動かす方法について解説します。
Stable Diffusionできること
Stable Diffusionを使うことで次のようなことが可能になります。絵を書く自信がなくても、自由自在にイラストの作成が可能ですし、リアルな写真も作成することができます。
- ユーザーが指示文(呪文(プロンプト))を入力するだけで、簡単に画像やイラストを作成
- 人物や風景、空想上の生き物、機械、インテリアなど多岐にわたる画像やイラストの作成
- 画像やイラストの人物のポーズの変更など、書き換えができる
- データを学習させて、特定の人物の画像や、キャラクターの画像を生成できる。
- 画像の細かい設定の指示にも対応
実写画像の生成例
これらはStable Diffusionで生成した画像ですが、実写画像は現実と見分けがつかないレベルになっています。
本記事の内容をマスターして、次の記事を参考にすることですぐに実写画像が生成できるようになるので、この記事を読み終えたら次の記事を参考にしてみてください。
アニメイラストや有名キャラクターの作成も可能
イラストに関してもかなり高品質なアニメイラストが生成できます。
Stable Diffusionというとオリジナルなキャラクターしか生成できないと思われがちですが、実は有名のデータでカスタマイズされたLoRAという拡張機能のようなものを使うことでアニメキャラクターの画像を生成することができます。
LoRAはすでに数多くのアニメキャラクターの物が公開されているので、慣れればLoRAをダウンロードして、キャラクターの画像をいくらでも作成することができます。
本記事で解説しているStable Diffusion Web UIが使えるようになれば、アニメキャラクターも簡単に作れるようになります。方法については次の記事で解説しているので、アニメキャラクターの生成に興味があれば次の記事も参考にしてみてください。
Stable Diffusionをお手軽に使ってみるには?
Stable Diffusionはオープンソースで、コードをそのまま実行することも可能ですが、環境構築が難しく、動かし方もコードを理解する必要があるので、意図した通りに動かずに挫折してしまう人が多いです。そこで、一般的によく使われているのがStable Diffusion Web UIというツールで、これを使うと、ほとんどプログラミングの知識はいらず、さらに拡張性の高い機能を提供しているので、プログラマにとっても便利なツールです。今回はStable Diffusion Web UIを通して、Stable Diffusionを使っていきます。
Stable Diffusion Web UI(automatic1111)でできること
Stable Diffusion Web UIで、具体的にできることとしては次のような機能があります。
- Stable Diffusionをブラウザ経由で実行できるツール
- 直感的なUIなので、プログラミングの知識がなくても使いこなせる。
- オープンソースなので無料で利用できる
- 日本語化できるので英語に自身がなくても安心
- 頻繁に更新されており、拡張機能をインストールすることで便利な機能を追加できる
- 拡張機能のインストールがほぼボタン操作で完結するので特別な知識が必要ない。
- Stable Diffusionのほぼすべての新機能が拡張機能の追加で利用できる。
ただし、Stable Diffusion Web UIを使うには、ある程度の性能のGPUを搭載しているPCが必要となります。なので、もし高性能なPCを持ってない人は、クラウドを使うのをおすすめします。クラウドサービスといっても多くありますが、今回はもっともメジャーで親しみやすいGoogle Colabを使っていきます。
Google Colabとは?
Google ColabとはGoogleが提供しているサービスです。Google Colabの機能は次の通りです。
- Pythonの開発環境を構築せずにブラウザ上でPythonコード利用できる。
- Pythonコードに限らず、環境構築用のコードが利用できる。
- GPUやTPUなど、高性能なハードウェア機能を使用できる。
- Googleドライブとの連携が可能で、Googleドライブ上にノートブックを保存したり、ソースコードやデータを保存できる。
Google ColabでStable Diffusionを使う際の注意点
Google Colab上でStable Diffusionを動かすには有料版を使う必要がある
Google ColabはStable Diffusionを使った画像生成で急激に利用率が高まった背景で、無料版だとStable Diffusionの利用に制限がかかっております。
2023/7時点では以下の警告が表示されます。このような警告が表示された場合、続行をクリックすることで動きはしますが、すぐにシャットダウンされます。そもそも許可されてないコードを実行して万が一アカウント凍結になったら大変なのでおすすめはしません。
そのため、Google ColabでStable Diffusionを利用するためには、有料版への加入が必要となります。月額大体1200円となります。
Googleは規約が厳しいので注意
Google Colabで画像生成する場合の注意点としてはプライバシーの問題です。Googleはドライブ上の写真をスキャンしている可能性があり、ポリシーに違反する画像は消されるということが報告されています。そして場合によってはアカウント凍結されるリスクもあるためセンシティブな画像は生成しないようにしましょう。
Google ドライブにエロ画像を入れたら削除された? 「怖い」「検閲か」と不安広がる → Google「人による確認はしていない」 – ねとらぼ (itmedia.co.jp)
PaperSpaceもおすすめ
Google Colab Proですがコスパを考えると同じ値段でPaperSpace Proに加入できて、使いたい放題なのでコスパは良いです。また、PaperSpace Proは成人向けコンテンツを再生した際にアカウントが凍結されるようなリスクがGoogleアカウントが凍結されることに比べると少ないです。PaperSpaceは紹介リンク経由だと$15のクレジットもついてくるので、もし興味があればこちらの記事を参考にしてみてください。
Stable Diffusion Web UIをGoogle Colabで動かす
Stable Diffusion Web UIをGoogle Colabで動かす手順は大きく分けて次の通りです。
- ノートブックを取得してドライブにコピー
- ランタイムを設定する
- Stable Diffusion Web UIの設定
ノートブックを取得してドライブにコピー(1/3)
Stable Diffusion Web UIをGoogle Colabで動かしていきます。そのために、まずはノートブックを取得します。ノートブックとは、プログラムをインストールしたり、実行するための処理が書かれたものです。
今回はもっとも人気のあるStable Diffusion Web UIのフォークであるAUTO1111を使っていきます。
AUTO1111のページにアクセスして、”maintained by TheLastBen”をクリックしてノートブックを開きましょう。
“ドライブにコピー”をクリックして、自身のドライブ上にノートブックをコピーします。
“fast_stable_diffusion_AUTOMATIC1111.ipynb のコピー“というタイトルでノートブックが開かれればコピー成功です。元のページ”fast_stable_diffusion_AUTOMATIC1111.ipynb”はもう使わないので閉じておきましょう。
ランタイムを設定する(2/3)
次にランタイムを変更しましょう。ランタイムとは、プログラムが実行される環境のことです。Stable DiffusionはColabで用意されているランタイムの中では、低い性能のランタイムで十分なので設定しています。
ランタイムを次のように設定します。
- ランタイムのタイプ: Python3
- ハードウェア アクセラレータ: GPU
- GPUのタイプ: T4
- ランタイムの仕様: 標準
Stable Diffusion Web UIの設定(3/3)
“Connect Google Drive”のセルを実行します。実行方法ですが左の再生ボタンをクリックするとセルが実行されます。もしくは、セルをクリックして選択状態にしてShift + Enter でセルを実行することもできます。
ノートブックがGoogle Driveにアクセスするため認証を求められます。「Google ドライブに接続」をクリックして、認証してください。
次にInstall/Upadte AUTOMATIC1111 repoを実行します。これでAUTOMATIC1111の本体であるソースコードがランタイムにダウンロードされます。
次にRequirementsを実行します。これでStable Diffusion WEB UIを動作させるために必要なソフトウェがインストールされます。
次にモデルのダウンロードを行います。今回はBeautiful Realistic Asiaモデルを利用します。このモデルは実写のアジア人を作成しやすい人気モデルです。MODEL_LINKにhttps://huggingface.co/BanKaiPls/AsianModel/resolve/main/BRAV5finalfp16.safetensorsを入力してモデルをダウンロードします。今回はsafetensors形式なのでsafetensorsにチェックを入れましょう。
次はControl Netをインストールします。これはStable Diffusionの拡張機能なのでなくても大丈夫ですが、OpenPoseは写真のポーズを変更できる便利な拡張機能なので追加しておきます。Model:をOpenPoseに設定します。
Start Stable-DiffusionセルではStable DIffusion WEB UIを実行することができます。このセル実行してStable Diffusion Web UIを起動しましょう。
数十秒程度で以下のようなメッセージが表示されます。Running on public URL:のあとにURLが表示されているのでそこへアクセスするとStable Diffusion Web UIが表示されます。
リンクへアクセスすると、以下のような画面が表示されます。
Stable Diffusion Web UIで呪文(プロンプト)から画像を生成する
画像を生成するときに呪文(プロンプト)という画像を説明する文章を入れます。またネガティブ呪文(プロンプト)という生成して欲しくないネガティブ呪文(プロンプト)を同時に入力することで高品質な画像が生成できます。今回は、以下のサンプルを入力してください。
呪文(プロンプト):
sfw,Photo of 20 years Japanese girl in Shibuya.
ネガティブ呪文(プロンプト):
EasyNegative,(worst_quality:2.0),low quality,blur,blurry,jpeg artifacts,deformed ugly,pixelated,normal quality,bad anatomy,
以下のように右の方に生成された画像が表示されます。
パラメータを調整して画像を調整します。
WidthとHeightが画像サイズの調整をしてみます。高さを変えて縦長の画像を生成します。
以下のように縦長の画像が生成されます。
次にBatch countを設定します。Batch countは画像を生成する回数です。8と設定すると、画像が8回生成されます。
次にBatch Sizeを設定します。Batch sizeは一度に生成されれる画像枚数です。つまり、Batch count✕Batch size枚の画像が生成されます。
- Batch Size: 4
- Batch Count:4
で生成すると16枚の画像が生成されます。
Control Net OpenPoseでポースを変更する
sd-webui-OpenPose-editor editingをインストールします。
終わった拡張機能を読み込みます。読み込みには再起動が必要になります。Installedタブに切り替えて、Apply and quitで一度停止します。
Stable-Diffusion WebUIが落ちるので、colabの画面に戻って、”Start Stable-Diffusion”を実行して再度、起動します。再度、URLが表示されるので、そこへアクセスして、再度、WEB UIを開きます。
インストールが完了したらtxt2imgのタブに戻って、以下の設定で画像を生成します。
- 呪文(プロンプト): sfw,bikini,standing,full body,Photo of 20 years Japanese girl on the beach.
- ネガティブ呪文(プロンプト): EasyNegative,(worst_quality:2.0),low quality,blur,blurry,jpeg artifacts,deformed ugly,pixelated,normal quality,bad anatomy,
- Batch count: 4,Batch size: 1
- Width: 512,Height: 768
- Seed: 1(シードを設定することで本記事と同じ画像が生成されます。)
次にControlNetの設定画面を開きます。
編集したい画像をドラッグアンドドロップします。
下にスクロールしてControl TypeでOpenPoseをクリックしますと、自動で設定が行われます。次にポーズ抽出ボタンをクリックしてポーズを抽出します。
するとポーズが抽出されます。
ポーズをつけて、WEBUIに送ります。
ポーズが変更されていることを確認します。
Enableにチェックをいれます。
この状態で再度画像を生成するとポーズに従って画像が生成されます。
Colabのランタイムを開放する
これでStable Diffusionの基本的なチュートリアルを完了します。このまま、Stable Diffusion Web UIをつけっぱなしにしていると、クレジットが消費されてしまうので、もし使わない場合はランタイムを削除しましょう。
その他のTips
再度、Stable Diffusionを起動するには?
再度、Stable Diffusionを起動する場合は、ダウンロードしたファイルがドライブに保存されているため、次回起動するとき、ダウンロードは短縮されます。ただし、設定値などもあり全てのセルを実行する必要があるので注意してください。
Model Download/Loadのセルですでにダウンロードしているモデルのパスを指定しましょう。
Path_to_MODELで”/content/gdrive/MyDrive/sd/stable-diffusion-webui/models/Stable-diffusion/model.safetensors”などを指定
stable-diffuison-webuiのフォルダ構成など
Stable Diffusion Web UIの本体はsd/stable-diffusion-webui配下に保存されています。stable-diffusion-webuiの重要なディレクトリは次のとおりです。
- stable-diffusion-webui/outputs : 生成した画像が保存されています。
- stable-diffusion-webui/outputs : Stable Diffusionモデルが保存されています。
Google Colab/Driveで画像生成する際の注意点
Google Colabで画像生成する場合の注意点としてはプライバシーの問題です。Googleはドライブ上の写真をスキャンしている可能性があり、ポリシーに違反する画像は消されるという減少も報告されています。そして場合によってはアカウント凍結されるリスクもあるためセンシティブな画像は生成しないようにしましょう。
結構衝撃だったこと。
— マメ (@jetdaizu) March 14, 2023
小さい頃のお風呂に入ってる写真やプールに入ってる写真をGoogleフォトにあげると、警告なしで一発BANされます。(家族だろうが児童ポルノ判定)
YouTube, Gmail, Googleドライブ全て利用停止。今写真持ってる方はまだAIに気づかれてないだけなので今のうちに削除しておきましょう
画像生成AIは呪文(プロンプト)の解釈が曖昧なため、対策していても児童ポルノに近しい画像が生成されることがあります。それが児童ポルノと判定されてアカウント凍結になるリスクはあるため、Google Colabでアダルト画像を生成するのは避けましょう。また子供画像を生成しただけでもモデルによってはアダルトな画像になる危険性もあるのでクラウドでは子供の画像は生成しないほうが無難です。
また、Googleドライブは、様々な用途で利用されるため、意図せずに生成された画像が表示されることもあります。そのため、生成する画像についてはなるべく注意してください。他者から見られたくない画像を生成した場合は、stable-diffusion-webui/outputsを削除すると良いでしょう。
コメント