🧠

Google Colabを利用してAuto Photoshop StableDiffusion Pluginを簡単に使おう!

2023/02/01に公開

Key Visual
※ この画像は今回のPluginを使って作成しました

概要

最近はAIのニュースに事欠かなくなってきましたね。特にChatGPTの活躍はめざましく、これからどんなことができるようになるのかワクワクしています。

今回はそんなAIの中でも、画像生成に革新を起こしたStable Diffusionの、Photoshop向けプラグインを見つけたのでその使い方を解説していこうと思います。

MESONのエンジニアチームでは最近AIについて話すことが多く、XRとの相性もいいため特に力を入れていきたいなと考えています。

プラグインはGitHubで公開されているので細かい部分についてはREADMEをご覧ください。今回はGoogle Colabを利用した方法について書いていきたいと思います。Google Colabを利用することで、自身のPCでStable Diffusionをセットアップしなくても動作させることができます。

https://github.com/AbdullahAlfaraj/Auto-Photoshop-StableDiffusion-Plugin

How to install

プラグインのREADMEを参考にインストールしていきます。

まず大まかなフローは以下のようになります。

  1. プラグインのダウンロード
  2. Google Colab上にStable Diffusionを立てる
  3. Adobe UXP Developer Toolのセットアップ
  4. プラグイン用サーバの起動
  5. Photoshopにプラグインをロードし実行する

まずはプラグイン自体をダウンロードします。

Git clone
git clone https://github.com/AbdullahAlfaraj/Auto-Photoshop-StableDiffusion-Plugin.git

Google Colabの準備

READMEではAUTOMATIC1111/stable-diffusion-webuiのセットアップについて書かれていますが、このWeb UIはGoogle Colab上でも動かせるようになっているので今回はGoogle Colab上に構築したものを利用します。

上で書いたGoogle Colabコピーして、後述する launch.py の編集後に実行できるように少しだけ改変したものをアップしているので以下を開いてください。

https://colab.research.google.com/drive/14OswMxXQByGQc6eMv9ldmfrqBv0YLEVX

念の為、コード自体も掲載

以下のふたつのコードブロックをそれぞれセルに入力します。

!pip install -q https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.16/xformers-0.0.16+814314d.d20230118-cp38-cp38-linux_x86_64.whl
!pip install -q --pre triton

!git clone -b v1.6 https://github.com/camenduru/stable-diffusion-webui
!wget https://raw.githubusercontent.com/camenduru/stable-diffusion-webui-scripts/main/run_n_times.py -O /content/stable-diffusion-webui/scripts/run_n_times.py
!git clone https://github.com/camenduru/deforum-for-automatic1111-webui /content/stable-diffusion-webui/extensions/deforum-for-automatic1111-webui
!git clone https://github.com/yfszzx/stable-diffusion-webui-images-browser /content/stable-diffusion-webui/extensions/stable-diffusion-webui-images-browser
!git clone https://github.com/camenduru/stable-diffusion-webui-huggingface /content/stable-diffusion-webui/extensions/stable-diffusion-webui-huggingface
!git clone https://github.com/camenduru/sd-civitai-browser /content/stable-diffusion-webui/extensions/sd-civitai-browser
!git clone https://github.com/camenduru/sd-webui-additional-networks /content/stable-diffusion-webui/extensions/sd-webui-additional-networks
%cd /content/stable-diffusion-webui

!wget https://huggingface.co/ckpt/sd14/resolve/main/sd-v1-4.ckpt -O /content/stable-diffusion-webui/models/Stable-diffusion/sd-v1-4.ckpt
!wget https://huggingface.co/ckpt/stable-diffusion-2-1-base/blob/main/v2-1_512-ema-pruned.ckpt -O /content/stable-diffusion-webui/models/Stable-diffusion/v2-1_512-ema-pruned.ckpt

!sed -i -e '''/prepare_environment()/a\    os.system\(f\"""sed -i -e ''\"s/dict()))/dict())).cuda()/g\"'' /content/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/util.py""")''' /content/stable-diffusion-webui/launch.py
!python launch.py --share --xformers --enable-insecure-extension-access

上記Google Colabを開いたらまず最初のセルを実行し、必要なファイルをダウンロードします。

ダウンロードが終わったら以下にある launch.py を少し編集します。164行目にある以下の部分を編集してください。( "" となっている箇所に --api を追加します)

- commandline_args = os.environ.get('COMMANDLINE_ARGS', "")
+ commandline_args = os.environ.get('COMMANDLINE_ARGS', "--api")

編集後に、最後のセルを実行して起動します。

しばらくすると以下のような画面になるので、Running on public URL の部分をメモっておいてください。後半で利用します。

Colab URL

Adobe UXP Developer Toolのインストール

以下のリンクからツールをダウンロード、インストールします。

https://developer.adobe.com/photoshop/uxp/devtool/installation/

インストール後、初回はDevelper Modeを有効化するか聞かれるので有効化します。

起動後にプラグインを追加します。「Add Plugin」ボタンを押して、ダウンロードしてきた Auto-Photoshop-StableDiffusion-Plugin/manifest.json を指定します。

Add Plugin

追加すると以下のようにリストに表示されます。

Listed Plugin

Photoshopを開発者モードに

次に、Photoshopを起動し「開発者モード」を有効化します。

有効化するには 編集 > 環境設定 > プラグイン から 開発者モードを有効にする のチェックをオンにします。

Developer Mode

Pluginのロード

Photoshopを起動したのち、先ほど追加したプラグインをLoadします。

Load Plugin

Plugin用のサーバを起動

Stable Diffusion用のサーバとは別に、プラグインを利用するためのサーバも立ち上げる必要があります。 Auto-Phothop-StableDiffusion-Plugin の中にある start_server.sh を実行し、サーバを起動します。

$ ./start_server.sh
エラーの対処

サーバ起動時、利用しているPythonの環境によってはエラーが出るかもしれません。自分はAnnacondaを利用していて、以前に色々いじっていたのもあって PyYAML がアンインストールできないエラーが発生しました。このあたりは個別対応になるのでご自身で出たエラーに応じて対処してください。ちなみに自分のこのエラーは解決できなかったので新しい仮想環境を作成して対処しました・・・。

プラグインの設定

プラグインをロードすると以下のようなウィンドウが自動で立ち上がります。

Plugin Window

ウィンドウの中に Settings というタブがあるのでそこを開き、Google Colab実行時に発行されたURL(Running on public URL のURL)を設定します。

Plugin Window

URLを設定したら Stable Diffusion タブに戻り、「Refresh」ボタンを押してモデルを更新します。

Refresh Models

すると図のようにモデルがリストされるのでそれを選択します。

Stable Diffusionを試す

以上でセットアップ終了です。

簡単に利用するには矩形選択ツールで範囲を指定し、プロンプトを入力して「Generate txt2img」ボタンを押すだけです。(上の例では「a cat」と入れている部分です)

実行すると以下のように猫が描画されます。(少し時間がかかります)

A cat

詳しい使い方は以下のチュートリアル動画などを参考にしてみてください。

https://www.youtube.com/watch?v=XaR-D1ZVrjw

モデルの追加・変更

セットアップ時には簡単のためにモデルについて言及しませんでしたが、Stable DiffusionなどのモデルをシェアできるHugging Faceというコミュニティサイトがあります。そこにたくさんのモデルがアップロードされているので、Pythonコードの wget の部分を色々変更してみると好みの絵を作りやすくなると思います。

モデルの追加・変更
!wget https://huggingface.co/ckpt/sd14/resolve/main/sd-v1-4.ckpt -O /content/stable-diffusion-webui/models/Stable-diffusion/sd-v1-4.ckpt
!wget https://huggingface.co/ckpt/stable-diffusion-2-1-base/blob/main/v2-1_512-ema-pruned.ckpt -O /content/stable-diffusion-webui/models/Stable-diffusion/v2-1_512-ema-pruned.ckpt

モデルデータは以下にたくさんあるのでご自身で色々試してみてください。

https://huggingface.co/ckpt

最後に

最近のAIの発展は本当に驚かされますね。今回は簡単な絵を書くだけでしたが、一部分だけをマスクしてそこを描き直してもらうみたいな使い方もできるようです。企画書の挿絵を自分で作ったり、インディゲーム開発者の説明絵に使ったり、など、今まではイラストレーターに依頼しなければならなかったようなものが自分でも作れるようになるかもしれませんね。

この他にも、ChatGPTを筆頭に実に様々なAIが登場しています。特にXRでは音声認識など、声の入力との相性がよさそうだなと思っています。今後は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