LoginSignup
11
8

More than 1 year has passed since last update.

自前のStable Diffusionを他の人にも使わせる方法

Posted at

未曾有のStable Diffusionブーム!!!

未曾有の.png
タイトル通り、gradio版Stable Diffusionで生成したタイトル画像です。

いまAI画像生成でStable Diffusionが話題です。試した方は他の人にもオススメしたいくらいでしょう。
ただ、快適な環境は導入するのにひと手間どころでなく面倒。
だけど非エンジニアの人にはもっと楽に使わせてみたい。そんな願望に応えられる環境がありました。

導入をしなくていいだけのパッケージはタケノコのように増えています。これは、あなたの余りあるグラフィック性能を分け与えるのに使えます(私の説明文がヘッタクソな翻訳文なのはこういう文体が好きだからです。ほっといてくれ)。

Gradio採用版StableDiffusion

Stable Diffusionのforkリポジトリです。 gradio.appを採用しており、GUIとサービス公開機能を備えています。
https://github.com/hlky/stable-diffusion

生成した画像をimg2imgやGANでの拡大を行うGUIに転送することもできます。
image.png

導入方法

事前条件

  • 私はWindows+PowerShellで行っているので、その手順を示します。他の環境では読み替えてみてください。
  • CUDA環境とCUDNNが入っている必要があります。
  • Anacondaを導入してください。
  • Windowsの場合はGit環境が別途必要です。 Git for Windows やクライアントソフトを使用してください。

Cloneする

  1. Anaconda PowerShell Promptを立ち上げます。検索窓からanaと打ち込むと見つけることができます。
    image.png

  2. プロンプトからStable Diffusion Gradio版をCloneします。

    git clone git@github.com:hlky/stable-diffusion.git
    
    • すでにStable Diffusionがある場合には名前をつけておきましょう。
    git clone git@github.com:hlky/stable-diffusion.git stable-diffusion-test
    

データセットの導入

  1. https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/blob/main/sd-v1-4.ckpt をダウンロードして下さい。
  2. ckptファイルを models/ldm/stable-diffusion-v1/model.ckpt にリネームして移動しておいてください。

セットアップ

  1. condaコマンドでセットアップします。conda acitivateコマンドでは設定した環境をアクティブにしています。
    conda env create -f environment.yaml
    conda activate ldm
    
  2. pipコマンドで追加インストールします。
    conda install pytorch torchvision -c pytorch
    pip install transformers==4.19.2 diffusers invisible-watermark
    pip install -e .
    

実行

  1. 起動コマンドを入れればこれで動きます。エラーが起こるときは内容を見直してみましょう。アクセスURLはプロンプト内に表示されます。
    python scripts/webui.py
    

image.png

  1. http://localhost:7860/ にアクセスしてGUIが表示されれば成功です。
  2. --share オプションでgradio.appへの公開、更に続けて --share-password パスワードをオプション引数にすることででログインパスを設定することができます。

私の環境だけかもしれないけど修正したポイント

  1. pip install pynvml を実行。
  2. stable-diffusion-test\ldm\models\autoencoder.py
    1. from taming.modules.vqvae.quantize import VectorQuantizer2 as VectorQuantizer -> from taming.modules.vqvae.quantize import VectorQuantizer
  3. stable-diffusion\scripts\txt2img.py
    1. from torch import autocast -> from torch.cuda.amp import autocast
  4. この手順には画像拡大用のGANのモデル入れ込みがないかもです。
11
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8