Stable diffusion Reimagineのインストール

Stable diffusion Reimagineのインストール ツール

「Stable diffusion Reimagineで一体何ができるの?」
「レイアウトや構図のパターンを何種類も自動的に出したい」

このような場合には、この記事の内容が参考になります。
この記事では、Stable diffusion Reimagineについて解説しています。

本記事の内容

  • Stable diffusion Reimagineとは?
  • Stable diffusion Reimagineのシステム要件
  • Stable diffusion Reimagineのインストール
  • Stable diffusion Reimagineの動作確認

それでは、上記に沿って解説していきます。

Stable diffusion Reimagineとは?

Stable diffusion Reimagineとは、類似画像を生成するWebアプリです。
どのようなモノかは、次のページから確認できます。

Stable diffusion reimagine(※ユーザー登録など不要)
https://clipdrop.co/stable-diffusion-reimagine

Stable diffusion Reimagineの実体は、unCLIPベースのモデルになります。
unCLIPとは、DALL·E 2で採用されている画像生成技術です。

この技術により、「CLIPの反転」が可能になります。
「CLIPの反転」が、類似(バリエーションのある)画像の生成を可能にしています。

そして、そのために学習されたモデルが次のページで公開されています。

stabilityai/stable-diffusion-2-1-unclip at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

CLIP毎にモデルが用意されています。

  • OpenAI CLIP(sd21-unclip-l.ckpt)
  • OpenCLIP(sd21-unclip-h.ckpt)

これらのモデルを利用するデモプログラムが、GitHubで公開済みです。
機能的には、上記で紹介したWebアプリよりも高機能かもしれません。

このデモプログラムでは、Stepsなどの設定を細かく入力可能です。

設定(VRAMのサイズ)次第により、一気に12枚の画像を表示することも可能です。

デモと言いながら、十分に完成度が高いプログラムとなっています。
以降では、このデモプログラムをStable diffusion Reimagineと呼びます。

以上、Stable diffusion Reimagineについて説明しました。
次は、Stable diffusion Reimagineのシステム要件を説明します。

Stable diffusion Reimagineのシステム要件

Stable diffusion Reimagineのポイントとなるシステム要件は、以下。

  • PyTorch 1系
  • xFormers
  • OpenAI CLIP

それぞれを以下で説明します。

PyTorch 1系

PyTorch 2系が、2023年3月にリリースされました。

処理は高速になり、後方互換性もあります。
そのため、PyTorch 2系を使いたくなります。

しかし、今回はPyTorch 1系を利用する必要があります。
それは、後述するxFormersのところで説明します。

とにかく、PyTorch 1系のGPU版をインストールしましょう。
基本的には、次の記事の内容に従えば問題ないでしょう。

なお、今回は次のコマンドでインストールしています。
(※各自の環境で利用するコマンドは異なります)

pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

xFormers

xFormersについては、次の記事で説明しています。

Stable diffusion Reimagineは、xFormers必須のプログラムとなっています。
そのため、xFormersがインストールされていないとエラーになります。

インストールは、次のコマンドで簡単に行えます。

pip install xformers

しかし、現状ではPyTorch 2系に対応するxFormersが存在していません。
その理由は、次の記事で解説しています。

したがって、必然的にPyTorch 1系のインストールが必要になるのです。

OpenAI CLIP

OpenAI CLIPについては、次の記事をご覧ください。

OpenAI CLIPがインストールされていないと、Stable diffusion Reimagineが動きません。
そのため、事前にインストールしておきます。

pip install git+https://github.com/openai/CLIP.git

以上、Stable diffusion Reimagineのシステム要件を説明しました。
次は、Stable diffusion Reimagineのインストールを説明します。

Stable diffusion Reimagineのインストール

Stable diffusion Reimagineのインストールは、Python仮想環境の利用をオススメします。
Python仮想環境は、次の記事で解説しています。

検証は、次のバージョンのPythonで行います。

> python -V  
Python 3.10.4

そして、システム要件はすべてインストール済という状況です。
このような状況において、次の手順でStable diffusion Reimagineのインストールを進めます。

  • Stable diffusion Reimagineの取得(GitHubから)
  • requirements.txtを使った一括インストール
  • モデルのダウンロード・設置

それぞれを下記で説明します。

Stable diffusion Reimagineの取得(GitHubから)

次のコマンドでGitHUbからリポジトリを取得します。

git clone https://github.com/Stability-AI/stablediffusion.git

ダウンロードできたら、リポジトリルートへ移動しておきます。

cd stablediffusion

基本的には、ここで作業を行います。

requirements.txtを使った一括インストール

リポジトリルートで、次のファイルを確認できます。

requirements.txt

albumentations==0.4.3
opencv-python
pudb==2019.2
imageio==2.9.0
imageio-ffmpeg==0.4.2
pytorch-lightning==1.4.2
torchmetrics==0.6
omegaconf==2.1.1
test-tube>=0.7.5
streamlit>=0.73.1
einops==0.3.0
transformers==4.19.2
webdataset==0.2.5
open-clip-torch==2.7.0
gradio==3.13.2
kornia==0.6
invisible-watermark>=0.1.5
streamlit-drawable-canvas==0.8.0
-e .

現状では、特に修正は不要です。
よって、そのまま次のコマンドを実行します。

pip install -r requirements.txt

インストールには、しばらく時間がかかります。

モデルのダウンロード・設置

Stable Diffusion v2.1-768ベースの次のファイルをダウンロードします。
どちらか一つだけでも良いですが、私は両方ダウンロードしています。

保存先は、「checkpoints」です。
さらに、次の処理を行います。

mkdir -p checkpoints/karlo_models
cd checkpoints/karlo_models
wget https://arena.kakaocdn.net/brainrepo/models/karlo-public/v1.0.0.alpha/096db1af569b284eb76b3881534822d9/ViT-L-14.pt
wget https://arena.kakaocdn.net/brainrepo/models/karlo-public/v1.0.0.alpha/0b62380a75e56f073e2844ab5199153d/ViT-L-14_stats.th
wget https://arena.kakaocdn.net/brainrepo/models/karlo-public/v1.0.0.alpha/85626483eaca9f581e2a78d31ff905ca/prior-ckpt-step%3D01000000-of-01000000.ckpt
cd ../../

Windowsの場合、wgetは非常に遅く安定していません。
そのため、ダウンロードはChromeなどのブラウザで行った方がベターです。

また、「use_karlo」(任意)を利用する場合は次の処理も行います。
両方のファイルで9GBの容量があります。

cd checkpoints/karlo_models
wget https://arena.kakaocdn.net/brainrepo/models/karlo-public/v1.0.0.alpha/efdf6206d8ed593961593dc029a8affa/decoder-ckpt-step%3D01000000-of-01000000.ckpt
wget https://arena.kakaocdn.net/brainrepo/models/karlo-public/v1.0.0.alpha/4226b831ae0279020d134281f3c31590/improved-sr-ckpt-step%3D1.2M.ckpt
cd ../../

この処理は、今回は必須ではありません。
すべてダウンロードした場合、次のようなファイル構成になります。

以上、Stable diffusion Reimagineのインストールを説明しました。
次は、Stable diffusion Reimagineの動作確認を説明します。

Stable diffusion Reimagineの動作確認

Stable diffusion Reimagineは、次のコマンドで起動します。

streamlit run scripts/streamlit/stableunclip.py

起動すると、コンソールに次のように表示されます。

You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://192.168.11.50:8501

そして、自動的にブラウザで「http://localhost:8501/」を開きます。
開かない場合は、このURLにアクセスします。

画面上にエラーの表示がなければ、正常に起動できています。
ただし、次のエラーは無視しても問題ありません。

画像をアップロードすれば、このエラーは消えます。
まずは、モデルを選択しましょう。

「Full Karlo」以外で各自がダウンロードした方を選びます。
それ以外はデフォルトのままでOK。

では、画像をアップロードしましょう。

アップロードできたら、「Sample」ボタンをクリックします。
処理が完了すると、次のように4枚の画像が表示されます。

まあ、アップロードした犬に似ていると言えば似ています。
設定を変更すれば、もっと似るのかもしれませんね。

生成された画像は、次のようなパスで保存されています。

stablediffusion\outputs\demo\stable-unclip\Stable unCLIP-L\samples\000000195.png

あと、「Sample」クリック時にエラーが出るかもしれません。
その場合は、次の設定を変更すればエラーが解消する可能性があります。

数値を下げれば、その分だけ処理の負荷も減ります。
どうもVRAMに余裕がないと、エラーが出るようです。

その際、画像サイズを512×512にするのも有効です。

以上、Stable diffusion Reimagineの動作確認を説明しました。

タイトルとURLをコピーしました