一個功能強大的命令列工具,透過 WebUI API 自動化 Stable Diffusion 圖像生成。可以用不同的設定生成多張圖像,即時監看進度,並將結果連同中繼資料一起儲存。
彩色終端機介面會顯示:
- 帶有視覺回饋的即時進度條
- 逐步的生成追蹤
- 預估剩餘時間與完成狀態
- 依訊息類型上色的輸出
這個工具與開發環境配合良好,輸出簡潔,除錯方便。
- 批次處理:從 JSONL 檔案處理多組設定
- 即時進度:帶有逐步生成追蹤的即時進度條
- 彩色輸出:由 chalk 提供色彩的美觀終端機介面
- 安全結束:按 'z' 會在目前的生成完成後安全結束
- 有條理的輸出:依日期自動整理目錄
- 儲存中繼資料:可選的 JSON 中繼資料檔,包含生成參數
- 彈性設定:豐富的 CLI 選項方便自訂
- 詳細記錄:帶有時間戳記與檔案路徑的詳細模式
# Clone or download the project
cd stable-diffusion-api-automate
# Install dependencies
npm install- 設定環境變數:
複製範例環境檔並加以修改:
cp .env.example .env編輯 .env 檔案:
# Required: Your WebUI API URL
SD_WEBUI_URL=http://192.168.100.105:7860
# Optional: Default paths (can be overridden by CLI options)
# CONFIGS_FILE=prompts/configs.jsonl
# OUTPUT_DIR=out- 啟用 API 啟動 Stable Diffusion WebUI:
# Windows
.\webui.bat --listen --api
# Linux/Mac
./webui.sh --listen --api--listen 旗標允許外部連線,--api 則啟用本工具所需的 API 端點。
更詳細的 API 文件請參閱:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/API
- 準備設定檔(
prompts/configs.jsonl):
{"prompt": "1girl, solo, green tracksuit, black hair, brown eyes, mischievous smile", "negative_prompt": "worst quality, bad quality", "width": 720, "height": 1280, "sampler_name": "Euler a", "steps": 28, "cfg_scale": 7, "seed": -1, "batch_size": 1, "n_iter": 2, "hires_fix": false}
{"prompt": "1girl, solo, red dress, blonde hair, blue eyes, gentle smile", "negative_prompt": "worst quality, bad quality", "width": 720, "height": 1280, "sampler_name": "Euler a", "steps": 28, "cfg_scale": 7, "seed": -1, "batch_size": 1, "n_iter": 1, "hires_fix": false}- 執行工具:
npm start- 監看進度,如需停止請按 'z' 安全結束。
# Run with default settings
npm start
# Show help
npm run help
# Run with verbose logging
npm start -- -v
# Use custom config file and output directory
npm start -- --configs-file custom.jsonl --output-dir ./my-images
# Save metadata files
npm start -- --save-meta
# Quiet mode (no config logging)
npm start -- --disable-log-config| 選項 | 說明 | 預設值 |
|---|---|---|
--configs-file <path> |
設定 JSONL 檔案的路徑 | 來自 .env 或 prompts/configs.jsonl |
--output-dir <path> |
圖像輸出目錄 | 來自 .env 或 out |
--base-url <url> |
WebUI API 基礎 URL | 來自 .env 或 http://localhost:7860 |
--save-meta |
儲存中繼資料 JSON 檔 | false |
--disable-log-config |
停用設定記錄 | false |
-v, --verbose |
啟用詳細記錄 | false |
-h, --help |
顯示說明 | - |
- 'z' 或 'Z':安全結束(完成目前的生成後停止)
- Ctrl+C:強制結束(立即終止)
本工具使用環境變數進行設定。請在專案根目錄建立 .env 檔案:
# Required: WebUI API URL
SD_WEBUI_URL=http://localhost:7860
# Optional: Default file paths
CONFIGS_FILE=prompts/configs.jsonl
OUTPUT_DIR=out設定依以下順序套用(優先順序由高到低):
- 命令列參數(例如
--base-url http://localhost:8080) - 環境變數(來自
.env檔案) - 預設值
# Local WebUI (default port)
SD_WEBUI_URL=http://localhost:7860
# Local WebUI with custom port
SD_WEBUI_URL=http://localhost:8080
# Remote WebUI on local network
SD_WEBUI_URL=http://192.168.1.100:7860
# Remote WebUI with custom port
SD_WEBUI_URL=http://192.168.1.100:8080設定檔應為 JSONL(JSON Lines)格式,每一行包含一個完整的 Stable Diffusion API 請求內容:
{
"prompt": "your positive prompt here",
"negative_prompt": "your negative prompt here",
"width": 720,
"height": 1280,
"sampler_name": "Euler a",
"steps": 28,
"cfg_scale": 7,
"seed": -1,
"batch_size": 1,
"n_iter": 2,
"hires_fix": false
}支援所有標準的 Stable Diffusion WebUI API 參數:
prompt- 正向提示詞文字negative_prompt- 負向提示詞文字width,height- 圖像尺寸sampler_name- 取樣方法steps- 取樣步數cfg_scale- CFG 比例值seed- 隨機種子(-1 表示隨機)batch_size- 每批圖像數量n_iter- 反覆次數hires_fix- 啟用高解析度修正- 以及更多……
本工具提供詳細的即時進度資訊:
🔄 [████████████████░░░░░░░░░░░░░░] 57.1% Step 16/28 ETA: 12.3s
🔄 Iter 1/2: [████████████████░░░░░░░░░░░░░░] 57.1% Step 16/28 | Overall: [████████░░░░░░░░░░░░░░░░░░░░] 28.6% ETA: 25.1s
📸 [████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 30.0% Config 3/10
生成的檔案依日期整理:
out/
└── 2025-08-14/
├── 1723648392847-2605429855.png
├── 1723648392847-2605429855.meta.json (if --save-meta)
├── 1723648394123-2605429856.png
└── 1723648394123-2605429856.meta.json (if --save-meta)
圖像以 [timestamp]-[seed].png 格式命名
timestamp:生成圖像時的 Unix 時間戳記seed:生成實際使用的種子(來自 API 回應)
啟用 --save-meta 後,每張圖像都會附帶一個 .meta.json 檔案,內容包含:
{
"config": {
"prompt": "...",
"negative_prompt": "...",
"width": 720,
// ... full generation parameters
},
"response": {
"info": {
"seed": 2605429855,
// ... API response metadata
},
"timestamp": "2025-08-14T12:34:56.789Z",
"filename": "1723648392847-2605429855.png",
"seed": 2605429855
}
}- 以
--listen --api旗標執行的 Stable Diffusion WebUI - 在
.env檔案中設定的 WebUI 端點(見「環境設定」一節) - 執行本工具的電腦必須能連線到 WebUI
啟用 API 啟動 WebUI:
# Windows
.\webui.bat --listen --api
# Linux/Mac
./webui.sh --listen --api重要:--listen 與 --api 兩個旗標都必須提供:
--listen:允許其他電腦連線--api:啟用 REST API 端點
完整的 API 文件與進階設定選項請前往:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/API
- 確認 WebUI 以
--api旗標執行 - 檢查伺服器的 IP 與連接埠是否正確(預設:
192.168.100.105:7860) - 確認防火牆設定允許連線
- 本工具會自動監看
/sdapi/v1/progress端點 - 如果進度看起來卡住了,伺服器可能負載過重
- 試著減少
n_iter或batch_size的值
- 查看 WebUI 主控台中的錯誤訊息
- 確認提示詞中沒有無效字元
- 確認 WebUI 已載入模型
- 確認終端機支援原始模式(raw mode)輸入
- 試著多按幾次 'z'
- 最後手段是使用 Ctrl+C(目前的生成可能不會被儲存)
# Generate images with default settings
npm start# Custom configuration with metadata saving
npm start -- \
--configs-file ./my-prompts.jsonl \
--output-dir ./renders \
--save-meta \
--verbose# Minimal output, no config logging
npm start -- --disable-log-config- Fork 儲存庫
- 建立功能分支
- 進行修改
- 充分測試
- 提交 pull request
MIT 授權,可自由使用並依需要修改。

