Keras Stable Diffusion : 概要 (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 12/27/2022
* 本ページは、github の divamgupta/stable-diffusion-tensorflow レポジトリの以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Web: www.classcat.com ; ClassCatJP
Keras Stable Diffusion : 概要
Stable Diffusion の Keras / Tensorflow 実装です。
重みはオリジナル実装からポートされました。
Colab ノートブック
試す最も簡単な方法は Colab ノートブックの一つを使用することです :
- GPU Colab
- GPU Colab Img2Img
- GPU Colab インペインティング
- GPU Colab – Tile / Texture 生成
- GPU Colab – Pytorch ckpt 重みのロード
- GPU Colab + 混合精度
- デフォルトの Colab GPU で品質の劣化なしに画像 (512×512) 毎 ~10s 生成時間 (ソース)
- TPU Colab
- 単一画像生成に対しては GPU より遅いですが、8+ 画像の大きなバッチに対しては高速です (ソース)。
- GPU Colab with Gradio
- GPU Colab – 動画生成
インストール
python パッケージとしてインストールする
pip を使用して git レポジトリによりインストールする :
pip install git+https://github.com/divamgupta/stable-diffusion-tensorflow
レポジトリを使用してインストールする
zip ファイルをダウンロードするか、git でレポジトリを複製するかのいずれかでレポジトリをダウンロードします :
git clone git@github.com:divamgupta/stable-diffusion-tensorflow.git
仮想環境なしに pip を使用する
requirements.txt ファイルか requirements_m1.txt ファイルを使用して依存関係をインストールします :
pip install -r requirements.txt
virtualenv で仮想環境を使用する
- python3 のために仮想環境を作成します :
python3 -m venv venv
- Activate your virtualenv:
source venv/bin/activate
- requirements.txt ファイルか requirements_m1.txt ファイルを使用して依存関係をインストールします :
pip install -r requirements.txt
使用方法
Python インターフェイスを使用する
パッケージを使用したら、それを以下のように使用できます :
from stable_diffusion_tf.stable_diffusion import StableDiffusion
from PIL import Image
generator = StableDiffusion(
img_height=512,
img_width=512,
jit_compile=False,
)
img = generator.generate(
"An astronaut riding a horse",
num_steps=50,
unconditional_guidance_scale=7.5,
temperature=1,
batch_size=1,
)
# for image to image :
img = generator.generate(
"A Halloween bedroom",
num_steps=50,
unconditional_guidance_scale=7.5,
temperature=1,
batch_size=1,
input_image="/path/to/img.png"
)
Image.fromarray(img[0]).save("output.png")
git レポジトリの text2image.py を使用する
必要なパッケージはインストールしたと仮定して、以下を使用してテキストプロンプトから画像を生成できます :
python text2image.py --prompt="An astronaut riding a horse"
生成された画像はレポジトリのルートに output.png として名前付けられます。別の名前を使用したい場合には、–output フラグを使用してください。
python text2image.py --prompt="An astronaut riding a horse" --output="my_image.png"
画像サイズ、ステップ数等を含む、より多くのオプションについては text2image.py ファイルを確認してください。
git レポジトリの img2img.py を使用する
必要なパッケージはインストールしたと仮定して、以下を使用してテキストプロンプトから画像を修正できます :
python img2img.py --prompt="a high quality sketch of people standing with sun and grass , watercolor , pencil color" --input="img.jpeg"
生成された画像はデフォルトではレポジトリのルートに img2img-out.jpeg として名前付けられます。別の名前を使用したい場合には、–output フラグを使用してください。
ステップ数を含む、より多くのオプションについては img2img.py ファイルを確認してください。
出力例
この実装を使用して以下の出力が生成されました :
- A epic and beautiful rococo werewolf drinking coffee, in a burning coffee shop. (萌えている喫茶店で、コーヒーを飲む英雄的で美しいロココ調の狼男) ultra-detailed. anime, pixiv, uhd 8k cryengine, octane render
- Spider-Gwen (スパイダーグウェン) Gwen-Stacy Skyscraper (高層ビル) Pink White Pink-White Spiderman Photo-realistic 4K
- A vision of paradise, Unreal Engine
インペインティング
Image2Image
- a high quality sketch of people standing with sun and grass , watercolor , pencil color
Keras Stable Diffusion 動画生成
- A beautiful street view of prague, artstation concept art, extremely detailed oil painting, vivid colors
References
- https://github.com/CompVis/stable-diffusion
- https://github.com/geohot/tinygrad/blob/master/examples/stable_diffusion.py
<