Workflow1111 使用 Gradio Workflow 重現 AUTOMATIC1111 功能

TL;DR

Workflow1111 是一個 Gradio Workflow,使用 73 個節點與十一個媒體管道,重現了 AUTOMATIC1111 的 stable-diffusion-webui 核心功能集,讓任何人只需透過瀏覽器即可執行文字轉圖像、修復、放大、影片生成等操作,而無需擁有 GPU。


Workflow1111 是什麼

Workflow1111 是一個單一的 gr.Workflow 面板,將 十一個不同的媒體管道 結合在一起。該圖形包含 七十三個節點,分為四種運算元類型(fnmodelspacedataset)。每個節點包裝了一個函數、一個透過 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 上執行

  • 預設情況下,所有 modelspace 呼叫皆透過推理提供者或外部 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 功能。


從你的工作流程開始

  1. 建立最小工作流程
    import gradio as gr
    def your_function(text: str) -> str:
        return text.upper()
    gr.Workflow(bind=[your_function]).launch()
    
  2. 使用 bind= 參數繫結額外的函數、模型或 Spaces。
  3. 使用 edges= 參數或在畫布上互動連接節點。
  4. 使用 gradio deploy 部署,將其發布至 Hugging Face Spaces。
  5. 從公開 Space 複製 Workflow1111,刪除或取代節點,並試驗新管道。

如需完整的架構細節,請參閱官方 Gradio Workflow 教程


為何重要

  • 展示了複雜、多模型的 UI 架構可以在無需本地 GPU 的情況下組裝,降低創作者與研究者的門檻。
  • 提供統一且自動產生的 API 表面,使將生成管道整合到更大系統或 AI 助手中變得輕而易舉。
  • 將 Gradio Workflow 定位為 ComfyUI 之類僅限桌面的節點編輯器的直接雲端首選競爭對手,擴展了快速原型設計與部署的生態系。

歡迎自由複製此 Space,重新混搭管道,並在 X 上分享你的創作,標記 @gradio。

Sources