「Stable Diffusionの呪文を自動的に作成したい」
「Prompt Extendをデモではなく、ローカル環境で動かしたい」
このような場合には、この記事の内容が参考になります。
この記事では、プロンプトを自動生成できるPrompt Extendのインストールを解説しています。
本記事の内容
- Prompt Extendとは?
- Prompt Extendのシステム要件
- Prompt Extendのインストール
- Prompt Extendの動作確認
それでは、上記に沿って解説していきます。
Prompt Extendとは?
Prompt Extendとは、Webアプリのことです。
Hugging Face上で公開されています。
Prompt Extend
https://huggingface.co/spaces/daspartho/prompt-extend
Prompt Extendを知るためには、実際にデモを動かしてみてください。
例えば、「cat」と入力して場合の結果は次のようになります。
「Extended prompt」に表示されているのは、「cat」以降に続けるプロンプトになります。
出力されたプロンプトで生成した画像は、以下。
これを何もない状態から生成するのは、難しいです。
単純に「cat」で生成した場合は、以下となります。
これはこれでアリなんですけどね。
Prompt Extendが利用するモデルは、次のサイトをもとに作成されています。
Lexica.art
https://lexica.art/
上記サイトのデータセットは、以下で公開されています。
https://huggingface.co/datasets/Gustavosta/Stable-Diffusion-Prompts
実は、これはMagicPromptと同じデータセットになります。
ただ、Prompt ExtendはMagicPromptよりも利用しやすいと言えます。
利用しやすいとは、他のプログラムに組み込むのが容易だということです。
以上、Prompt Extendについて説明しました。
次は、Prompt Extendのシステム要件を説明します。
Prompt Extendのシステム要件
基本的には、PyTorchが動けばOSは何でもよいでしょう。
Pythonのバージョンは、以下のPython公式開発サイクルに従いましょう。
バージョン | リリース日 | サポート期限 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
3.11 | 2022年10月25日 | 2027年10月 |
最も重要となるPyTorchは、次の記事に従えば簡単にインストールできます。
GPU搭載のマシンの場合は、GPU版のPyTorchをインストールしましょう。
以上、Prompt Extendのシステム要件を説明しました。
次は、Prompt Extendのインストールを説明します。
Prompt Extendのインストール
Prompt Extendのインストールは、Python仮想環境の利用をオススメします。
Python仮想環境は、次の記事で解説しています。
検証は、次のバージョンのPythonで行います。
> python -V Python 3.10.4
そして、システム要件としてはPyTorchをインストール済という状況です。
このような状況において、次の手順でPrompt Extendのインストールを進めます。
- Prompt Extendの取得(Hugging Faceから)
- requirements.txtを使った一括インストール
それぞれを下記で説明します。
Prompt Extendの取得(Hugging Faceから)
daspartho/prompt-extend at main
https://huggingface.co/spaces/daspartho/prompt-extend/tree/main
プログラム一式は、上記ページで確認できます。
これだけのファイルであれば、一つづつダウンロードしてもよいでしょう。
ただ、数が多くなってくると手動ダウンロードは面倒です。
そのようなときにために、huggingface_hubというモノが存在します。
huggingface_hubを利用すれば、一括でプログラム一式を取得可能です。
今後もHugging Face上のアプリをダウンロードする可能性があるなら、是非ともインストールしておきましょう。
huggingface_hubをインストールできたら、次のコードを実行します。
from huggingface_hub import snapshot_download snapshot_download( repo_id="daspartho/prompt-extend", repo_type="space", revision="main", cache_dir="./")
上記コードを実行すると、ダウンロード処理が開始されます。
ダウンロードは、一瞬で終わります。
処理が完了すると、ディレクトリ上に「spaces–daspartho–prompt-extend」を確認できます。
そして、「snapshots」以下にあるファイル・ディレクトリをコピーします。
「2fb6f31fd819db290ab33becb12f518a30243eda」は、リポジトリのバージョンです。
正確には、この長たらしいディレクトリより下のモノをコピーします。
コピーしたファイルは、コンテンツルートに保存します。
requirements.txtを使った一括インストール
コンテンツルートには、コピーしたrequirements.txtが存在しています。
requirements.txt
transformers torch gradio
このファイルから、PyTorch関連を取り除きます。
その結果として、requirements.txtは次のようになります。
transformers gradio
このrequirements.txtを利用して、必要なモノを一気にインストールします。
今回は、数が少ないので個別にインストールしても構わないですけどね。
実行するのは、次のコマンドです。
pip install -r requirements.txt
処理完了までは、しばらく時間がかかります。
処理が完了したら、Prompt Extendのインストールは終了です。
以上、Prompt Extendのインストールを説明しました。
次は、Prompt Extendの動作確認を説明します。
Prompt Extendの動作確認
Prompt Extendの起動は、app.pyを実行します。
正常に起動できると、コンソールには以下のように表示されます。
Running on local URL: http://127.0.0.1:7860 To create a public link, set `share=True` in `launch()`.
では、ブラウザで「http://127.0.0.1:7860」にアクセスします。
Hugging Face上のデモと同じ画面を確認できます。
「dog」と入力した結果の画面は、次のようになります。
動作は、Hugging Face上のアプリと全く同じです。
ただし、同じ「dog」でも結果は都度異なります。
また、次のコードでも動かすことが可能です。
from transformers import pipeline prompt = "dog" pipe = pipeline('text-generation', model='daspartho/prompt-extend') result = pipe(prompt+',', num_return_sequences=1)[0]["generated_text"] print(result)
コンソールには、次のように結果が表示されます。
dog, wearing a futuristic suit, intricate, highly detailed, digital painting, artstation, concept art, sharp focus, illustration, art by Gustave Dore, octane render, unreal engine 5, 8 k, art by artgerm and greg rutkowski and alphonse mucha,
以上、Prompt Extendの動作確認を説明しました。