Workflow1111 使用 Gradio Workflow 重現 AUTOMATIC1111 功能
TL;DR
Workflow1111 是一個 Gradio Workflow,使用 73 個節點與十一個媒體管道,重現了 AUTOMATIC1111 的 stable-diffusion-webui 核心功能集,讓任何人只需透過瀏覽器即可執行文字轉圖像、修復、放大、影片生成等操作,而無需擁有 GPU。
Workflow1111 是什麼
Workflow1111 是一個單一的 gr.Workflow 面板,將 十一個不同的媒體管道 結合在一起。該圖形包含 七十三個節點,分為四種運算元類型(fn、model、space、dataset)。每個節點包裝了一個函數、一個透過 InferenceClient 存取的 Hugging Face 模型、另一個 Gradio Space 或資料集的一行資料。結果是模組化且基於瀏覽器的使用者介面,其標籤與擴充功能與 AUTOMATIC1111 的 stable-diffusion-webui 相同。
"你可以透過登入你的 Hugging Face 帳戶或提供存取權杖來執行這些管道中的任何一個。登入後,模型呼叫會使用你自己的配額。" – Hugging Face 博客
核心管道及其實作
文字轉圖像
- 複製 txt2img 標籤,包含負面提示、步數、CFG、種子、寬度、高度和檢查點選擇等控制項。
- 提示經過
fn節點,加入風格預設並清理文字,接著由model節點透過推理提供者呼叫所選的擴散檢查點。 - 一個後處理
fn節點將生成參數寫入 PNG 元資料,以便後續取得。
高解析度修復
- 實作 AUTOMATIC1111 的先放大再精細化工作流程,採用兩個節點的迂迴設計。
- 文字轉圖像管道的輸出會送至 FLUX.1-Kontext
model節點,附帶精細指令(「增強細節與微紋理,保持構圖相同」)。
圖像轉圖像
- 重複使用相同的 Kontext 節點:上傳圖像,描述期望的編輯內容,即可獲得編輯後的結果。
LLM 生成提示
- 將粗略提示送至 Qwen3-4B
model節點。 - 下游的
fn節點將 LLM 回應格式化為最多四十個標籤的清單,可餵給任何擴散模型節點。
圖像轉提示(探查)
- 使用 Qwen2.5-VL-7B-Instruct 產生輸入圖像的文字描述。
- 同時,ViT-base-patch16-224 分類器回傳標籤機率。
- 並行執行表示兩項結果可在約一次模型呼叫的時間內同時取得。
檢測轉填補遮罩
- DETR-ResNet-50 檢測器識別物件(例如:人、狗、腳踏車、汽車),並產生邊界框。
- 一個分支在圖像上繪製邊界框;另一分支將邊界框轉換為二進位遮罩,供後續填補使用。
- 檢測在遠端執行;繪圖與遮罩建立則在本地使用 Pillow/NumPy 完成。
提示矩陣
- 一個
fn節點將基礎提示擴展為四個後綴,創造四個平行的文字轉圖像節點。 - 最終節點將四個結果拼接成一張聯絡表。
- 不需要迴圈運算元;平行節點可同時執行。
放大與背景移除
- 兩條放大路徑:本地 Lanczos 插值(
fn節點)與外部 AuraSR ×4 Space(space節點)。 - 背景移除呼叫 BRIA RMBG-2.0 Space,使模型與主畫布隔離。
標註工具(ControlNet 風格前處理器)
- Canny、線稿、草圖、亮度深度與壓縮效果皆以純 NumPy
fn節點實作。 - 36 個運算元節點中有 32 個是
fn節點,其中 22 個完全在程序內執行,無需網路呼叫,使大部分畫布可在離線狀態下運作。
PNG 元資料
- 複製 AUTOMATIC1111 的 PNG 元資料儲存方式:一個後處理節點將參數寫入 PNG 的
parameters區塊;專用管道則讀取回傳(提示、負面提示、步數、CFG、種子、尺寸、模型)。
圖像轉影片
- PNG 元資料節點也提供給 Wan 2.2 I2V A14B
model節點,用以動畫化圖像(例如:一隻睡覺的狐狸醒來)。 - 單一上傳可驅動多個下游管道。
在你自己的 GPU 上執行
- 預設情況下,所有
model與space呼叫皆透過推理提供者或外部 Space 使用遠端硬體,因此即使沒有本地 GPU 也能運作。 - 任何
fn節點皆可替換為本機載入的模型。部落格提到 FastVideo/fastvideo-fasth3-preview,它在 ZeroGPU 配額上執行精簡版的 MiniMax-H3 模型。 - 例子繫結語法:
@spaces.GPU(duration=get_duration, size=GPU_SIZE) def _generate(prompt_embeds, text_token_tags, height, width, num_frames, seed): ... gr.Workflow(bind={"generate": _generate, "status": status}).launch() - ZeroGPU 會自動為函式呼叫配置 GPU,並在完成後釋放;
gr.Workflow對此分配毫無知覺。
每個輸出都是自動 REST API
- 每個輸出節點都會變成一個類型化的端點(例如:
/image、/edited_image、/generated_prompt)。 - 例子客戶端呼叫:
from gradio_client import Client client = Client("ysharma/Workflow1111", oauth_token="hf_...") image, params, hires = client.predict( "a red fox in a snowy pine forest", "", "Cinematic", "enhance fine detail", api_name="/image" ) - 端點也相容 Model Context Protocol (MCP),讓 AI 助手(Claude Code、Cursor 等)可直接調用。
與 ComfyUI 的比較
| 特性 | Workflow1111 (Gradio) | ComfyUI |
|---|---|---|
| 硬體抽象 | 節點可指向遠端推理提供者、Spaces 或資料集;無需本地 GPU。 | 主要為本地 GPU 執行;外部呼叫需自訂 scripting。 |
| 自動 API 產生 | 每個輸出節點自動成為 REST 端點,無需手動路由。 | 無內建 API 產生;開發者必須自行揭露端點。 |
| 基於 OAuth 的多使用者存取 | 使用者以 Hugging Face 帳戶登入;使用量計費至其配額。 | 通常為單使用者桌面應用程式。 |
| 混合模式圖形 | 擴散、LLM、VLM、檢測、影片模型共存於同一畫布。 | 支援多種模型類型,但整合常需自訂節點。 |
| 自訂邏輯 | 簡單的 Python fn 節點允許在畫布上執行任意程式碼。 |
自訂節點需撰寫 C++/Python 延伸模組。 |
部落格總結指出,Gradio Workflow 提供瀏覽器優先、零安裝的體驗,其廣度媲美 ComfyUI,同時還具備遠端執行與自動 API 功能。
從你的工作流程開始
- 建立最小工作流程:
import gradio as gr def your_function(text: str) -> str: return text.upper() gr.Workflow(bind=[your_function]).launch() - 使用
bind=參數繫結額外的函數、模型或 Spaces。 - 使用
edges=參數或在畫布上互動連接節點。 - 使用
gradio deploy部署,將其發布至 Hugging Face Spaces。 - 從公開 Space 複製 Workflow1111,刪除或取代節點,並試驗新管道。
如需完整的架構細節,請參閱官方 Gradio Workflow 教程。
為何重要
- 展示了複雜、多模型的 UI 架構可以在無需本地 GPU 的情況下組裝,降低創作者與研究者的門檻。
- 提供統一且自動產生的 API 表面,使將生成管道整合到更大系統或 AI 助手中變得輕而易舉。
- 將 Gradio Workflow 定位為 ComfyUI 之類僅限桌面的節點編輯器的直接雲端首選競爭對手,擴展了快速原型設計與部署的生態系。
歡迎自由複製此 Space,重新混搭管道,並在 X 上分享你的創作,標記 @gradio。