「Stable Diffusionのプロンプト作成を効率化したい」
「 MagicPrompt Stable Diffusionをデモではなく、ローカル環境で動かしたい」
このような場合には、この記事の内容が参考になります。
この記事では、Stable Diffusionの呪文作成を効率化する方法を解説しています。
本記事の内容
- MagicPrompt Stable Diffusionとは?
- MagicPrompt Stable Diffusionのシステム要件
- MagicPrompt Stable Diffusionのインストール
- MagicPrompt Stable Diffusionの動作確認
それでは、上記に沿って解説していきます。
MagicPrompt Stable Diffusionとは?
MagicPrompt Stable Diffusion(以下MagicPromptと呼ぶ)とは、便利ツールです。
テキストを少し入力すると、それ以降のテキストを自動的に表示してくれます。
Googleのオートコンプリートと言えば、イメージしやすいでしょう。

オートコンプリートは、自動補完や入力補完とも呼ばれます。
Stable Diffusionのプロンプト生成において、MagicPromptは同じように機能します。
実際に次のページから、MagicPromptの動作を確認できます。
Stable Diffusion Prompt Generator
https://huggingface.co/spaces/Gustavosta/MagicPrompt-Stable-Diffusion
例えば、犬についての呪文を生成したいとします。
その場合、「dog」と入力して「送信」ボタンをクリック。
(※Stable Diffusionのプロンプトは英語入力がデフォルト)

そうすると、Stable Diffusionで使えるプロンプトが複数表示されます。
生成されるプロンプトは、毎回異なります。
MagicPromptは、GPT-2をベースにテキストを生成しています。
GPT-2については、次の記事で説明しています。
データセット(約8万件)は、以下のサイトから収集されているようです。
Lexica.art
https://lexica.art/
API(※)が用意されておらず、スクレイピングでデータを収集したようです。
MagicPromptの開発者はその点で苦労したと記載されています。
※2022年9月22日にAPIが公開されたようです。
https://lexica.art/docs
スクレイピングについては、次の記事で解説しています。
以上、MagicPrompt Stable Diffusionについて説明しました。
次は、MagicPrompt Stable Diffusionのシステム要件を説明します。
MagicPrompt Stable Diffusionのシステム要件
MagicPromptのシステム要件は、明記されていません。
そもそも、導入手順が公開されているわけでもありません。
MagicPromptのデモ画面のソースが、公開されているだけです。
https://huggingface.co/spaces/Gustavosta/MagicPrompt-Stable-Diffusion/tree/main

これを読み解いて、システム要件を導きだしています。
OSは、Pythonが動けばどこでもよいでしょう。
また、PythonのバージョンはPyton 3.7以降としておきます。
以下のPython公式開発サイクルを意識する必要がありますので。
| バージョン | リリース日 | サポート期限 |
| 3.6 | 2016年12月23日 | 2021年12月23日 |
| 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月 |
あと、PyTorchのインストールが前提となります。
これが唯一のシステム要件と言っても良いかもしれません。
PyTorchのバージョンは、最新版(安定版)を推奨しておきます。
PyTorchのインストールについては、次の記事で説明しています。
GPUが利用可能であれば、GPU版PyTorchのインストールをオススメします。
以上、MagicPrompt Stable Diffusionのシステム要件を説明しました。
次は、MagicPrompt Stable Diffusionのインストールを説明します。
MagicPrompt Stable Diffusionのインストール
MagicPromptのインストールを行います。
PyTorchがインストール済みであることを前提とします。
その前提で以下を進めていきます。
- パッケージのインストール
- 必要ファイルのダウンロード
パッケージのインストール
インストールするパッケージは、以下。
- gradio
- transformers
- transformers[sentencepiece]
gradioについては、デモ画面を動かすために必要です。
画面が不要である場合は、gradioをインストールする必要はありません。
でも、動作確認時に便利なのでインストールしておきましょう。
インストールには、次のコマンドを実行します。
pip install gradio pip install transformers pip install transformers[sentencepiece]
必要ファイルのダウンロード
プロンプトの自動生成には、次のファイルを利用しています。
ideas.txt(約12万行のデータが登録されています)

このファイルは、次のURLからダウンロードできます。
https://huggingface.co/spaces/Gustavosta/MagicPrompt-Stable-Diffusion/raw/main/ideas.txt
プログラムから読み込みができる場所に、ダウンロードしたファイルを保存しておきます。
以上、MagicPrompt Stable Diffusionのインストールを説明しました。
次は、MagicPrompt Stable Diffusionの動作確認を説明します。
MagicPrompt Stable Diffusionの動作確認
MagicPromptの動作確認を行います。
動作確認には、次のコードを利用します。
app.py
import gradio as grad
import random
import re
from transformers import pipeline, set_seed
gpt2_pipe = pipeline('text-generation', model='Gustavosta/MagicPrompt-Stable-Diffusion', tokenizer='gpt2')
with open("ideas.txt", "r") as f:
line = f.readlines()
def generate(starting_text):
for count in range(4):
seed = random.randint(100, 1000000)
set_seed(seed)
if starting_text == "":
starting_text: str = line[random.randrange(0, len(line))].replace("\n", "").lower().capitalize()
starting_text: str = re.sub(r"[,:\-–.!;?_]", '', starting_text)
print(starting_text)
response = gpt2_pipe(starting_text, max_length=random.randint(60, 90), num_return_sequences=4)
response_list = []
for x in response:
resp = x['generated_text'].strip()
if resp != starting_text and len(resp) > (len(starting_text) + 4) and resp.endswith(
(":", "-", "—")) is False:
response_list.append(resp + '\n')
response_end = "\n".join(response_list)
response_end = re.sub('[^ ]+\.[^ ]+', '', response_end)
response_end = response_end.replace("<", "").replace(">", "")
if response_end != "":
return response_end
if count == 4:
return response_end
txt = grad.Textbox(lines=1, label="Initial Text", placeholder="English Text here")
out = grad.Textbox(lines=4, label="Generated Prompts")
examples = []
for x in range(8):
examples.append(line[random.randrange(0, len(line))].replace("\n", "").lower().capitalize())
title = "Stable Diffusion Prompt Generator"
description = 'This is a demo of the model series: "MagicPrompt", in this case, aimed at: Stable Diffusion. To use it, simply submit your text or click on one of the examples.<b><br><br>To learn more about the model, go to the link: https://huggingface.co/Gustavosta/MagicPrompt-Stable-Diffusion<br>'
article = "<div><center><img src='https://visitor-badge.glitch.me/badge?page_id=magicprompt_Stable Diffusion' alt='visitor badge'></center></div>"
grad.Interface(fn=generate,
inputs=txt,
outputs=out,
examples=examples,
title=title,
description=description,
article=article,
allow_flagging='never',
cache_examples=False,
theme="default").launch(enable_queue=True, debug=True)
app.pyは、デモ画面のソースとして公開されているモノです。
「ideas.txt」のパスには、注意してください。
上記コードを実行すると、コンソールに以下が表示されます。
Running on local URL: http://127.0.0.1:7860 To create a public link, set `share=True` in `launch()`.
Chromeなどのブラウザで「http://127.0.0.1:7860」にアクセスします。
そうすると、デモ画面が確認できます。

見た目は、全く同じですね。
「dog」と入力して「送信」ボタンをクリックしたら、次のように表示されました。

ローカル環境にて、MagicPrompt Stable Diffusionを動かすことができました。
以上、MagicPrompt Stable Diffusionの動作確認を説明しました。






