Copy & Paste Engineer

Stable Hordeで無料画像生成!APIキーなしでもOKな非同期スクリプト

Stable Hordeで無料画像生成!APIキーなしでもOKな非同期スクリプト

画像生成AIを使ってみたいけど、

という人は少なくないはず。

そんな方に最適なのが、**無料・分散型で画像を生成してくれるAPI「Stable Horde」**です。

本記事では、Google Colab上でStable Hordeを使って、プロンプトから画像を非同期生成するPythonコードを紹介します。


特徴とポイント


Stable Hordeとは?

Stable Hordeは、Stable Diffusionなどの画像生成AIを、有志による分散コンピューティングで動かす無料サービスです。


APIキー「0000000000」でも動く理由

API_KEY = "0000000000"

これは実は**「匿名ユーザー」として扱われる特別な値**です。Stable Hordeの設計上:

ただし匿名でも少量の生成テストや学習には十分な性能があります。

📌 本格的に使いたい場合は、こちらから無料登録してAPIキーを取得しましょう。


最小構成のスクリプト(Colab対応)

以下をColabセルにコピー&ペーストすればすぐ実行可能です👇

!pip install --quiet requests pillow

import requests, time, base64, io
from PIL import Image
from IPython.display import display

API_KEY = "0000000000"
headers = {"apikey": API_KEY, "Client-Agent": "colab-demo/0.1"}
payload = {
    "prompt": "夜桜の並木道を歩く少女",
    "params": {"width": 1280, "height": 704, "steps": 25, "cfg_scale": 7.5},
    "n": 1
}

res = requests.post("https://stablehorde.net/api/v2/generate/async", json=payload, headers=headers)
job_id = res.json().get("id")
print("ジョブ送信:", job_id)

while True:
    r = requests.get(f"https://stablehorde.net/api/v2/generate/status/{job_id}", headers=headers).json()
    if r.get("done"):
        img_data = r["generations"][0]["img"]
        break
    print("待機中..."); time.sleep(10)

img_bytes = base64.b64decode(img_data.split(",")[1]) if img_data.startswith("data:image") else requests.get(img_data).content
img = Image.open(io.BytesIO(img_bytes))
display(img)
img.save("output.png")

実行結果


実行するとどうなる?

🔁 状況により待機時間(数秒〜数分)が発生します。


応用:プロンプト変更、複数生成、サンプラー切り替え

生成結果が気に入らない場合は:


まとめ

項目 内容
利用サービス Stable Horde
必要なもの Colab + このスクリプトだけ
APIキー なくてもOK(匿名枠で動作)
メリット 無料、高品質、サーバ不要