Stable Diffusion WebUIで発生するAPI呼び出しエラー
Stable Diffusion WebUIの使用中にAPI呼び出しエラーが発生することがあります。本記事では原因と具体的な解決方法を解説します。
エラーの症状
AUTOMATIC1111 WebUIのAPI(/sdapi/v1/txt2img等)を外部プログラムから呼び出した際に、「Connection refused」「404 Not Found」「422 Validation Error」などのエラーが発生します。
原因
1. APIが有効化されていない
デフォルトではAPI機能が無効になっています。起動オプションで有効化が必要です。
2. CORSブロック
ブラウザベースのクライアントからアクセスする場合、CORS設定が必要です。
3. リクエストボディの形式エラー
パラメータ名やJSON構造が正しくない場合にバリデーションエラーが返ります。
解決方法
手順1: API機能の有効化
# webui.shまたはwebui.batに追加
--api
# CORS許可も追加する場合
--api --cors-allow-origins=*
# 外部からアクセスする場合
--api --listen
手順2: PythonでのAPI呼び出し例
import requests, json, base64
response = requests.post("http://localhost:7860/sdapi/v1/txt2img", json={
"prompt": "a beautiful landscape, best quality",
"negative_prompt": "worst quality, low quality",
"steps": 30,
"width": 512,
"height": 512,
"cfg_scale": 7
})
result = response.json()
image_data = base64.b64decode(result["images"][0])
with open("output.png", "wb") as f:
f.write(image_data)
まとめ
Stable Diffusion WebUIのAPI呼び出しエラーについて解説しました。環境設定の見直しとバージョン確認を最初に行うことが、最も効率的なトラブルシューティングの第一歩です。
☁️ ローカル環境のトラブルを回避するなら
環境構築やGPUの問題に悩まされない、クラウドGPUという選択肢:
※ 上記はアフィリエイトリンクです。サイト運営のサポートになります。
💡 この問題を根本的に解決するには
ローカル環境のGPUトラブルが頻発する場合、ハードウェアの見直しも検討してみてください:
- VRAM不足なら → RTX 4070 Ti Super(16GB VRAM)
- メモリ不足なら → DDR5 64GBメモリ
- AI開発を体系的に学ぶなら → AI・機械学習の実践書籍