在我們上一篇文章中,我們建構了五個小型 gr.Workflow 圖形,並暗示了要建立像 AUTOMATIC1111 的 stable-diffusion-webui 那樣複雜的應用需要付出什麼。在這篇文章中,我們將帶您了解 Workflow1111,我們已將 AUTOMATIC1111 的大部分功能集重建為一個單一的工作流程畫布。

Workflow1111 是一個由七十三個節點建構而成的十一條媒體管線圖。它整合了文字轉圖像、高解析度修復、圖像轉圖像、提示詞矩陣網格、VLM 圖像審問、偵測轉修復遮罩、ControlNet 風格註釋器、背景移除、PNG 資訊儲存以及圖像轉影片等領域的 SOTA(最先進)模型。

您可以透過登入您的 Hugging Face 帳戶或提供存取權杖來執行這些管線。一旦登入,模型呼叫將使用您自己的配額。

👉 立即試用 Workflow1111,或複製該 Space 並開始為您自己的使用情境重新配置。讓我們來看看這個畫布。

畫布上的內容

所有媒體管線都是由我們上一篇文章和官方指南中涵蓋的四種運算子類型建構而成。畫布上的每個節點都封裝了一個運算子,而運算子的輸入和輸出則成為您連接邊緣的埠。作為這四種運算子類型的快速參考:fn 是一個 Python 函數,model 是透過 InferenceClient 呼叫的模型,space 是另一個 Gradio Space,而 dataset 則是 Hub 資料集中的一行。

讓我們逐一介紹這些管線。

文字轉圖像

這是核心管線。它具有您在 A1111 的 txt2img 分頁中預期的控制項:負面提示詞、步數、CFG、種子碼、寬度和高度,以及一個用於選擇檢查點的 model_id 欄位。提示詞首先會經過一個提示詞建構器 fn 節點,該節點會附加選定的風格預設並清理文字,然後進入一個模型節點,透過 Inference Providers 呼叫檢查點。

一個後處理 fn 節點會在輸出時將生成參數寫入 PNG 的中繼資料中,這就是 PNG 資訊管線稍後讀回的內容。

高解析度修復

在 AUTOMATIC1111 中,高解析度修復會先放大 txt2img 的輸出,然後進行第二次去噪處理。在這裡,它只是一個兩節點的繞道。文字轉圖像的結果會進入一個 FLUX.1-Kontext 模型節點,帶有精煉指令(「增強精細細節和微紋理,保持構圖不變」),然後返回更清晰、更大的圖像。

圖像轉圖像

同一個 Kontext 節點也兼作圖像轉圖像分頁。上傳一張圖像,描述您想要的變更,它就會返回編輯後的圖像。

讓 LLM 編寫提示詞

從一個粗略的提示詞開始,例如「暴風雨中的燈塔」。這個管線會將其發送到一個 Qwen3-4B 模型節點,一個小型 fn 節點會將回覆轉換成一個清晰的標籤列表,上限為四十個:「暴風雨中的大海、濕潤的岩石、戲劇性的構圖、低角度拍攝、體積光、不祥的氛圍。」您可以將任何擴散模型節點連接到此輸出以渲染圖像。

與 ComfyUI 不同,這裡沒有涉及自訂節點。在 Gradio 工作流程中,LLM 和擴散模型都是同一個畫布上的普通模型運算子。

將圖像讀回為提示詞

這就像 AUTOMATIC1111 的「審問」按鈕,但由 VLM 而非 CLIP 進行審問。Qwen2.5-VL 會查看一張夜市照片,並寫出一個可能產生該照片的提示詞。一個 ViT 分類器節點會讀取同一張圖像並返回標籤:餐廳 51.9%、菸草店 15.6%、玩具店 9.1%。

這兩個節點使用相同的圖像輸入,因此 gr.Workflow 會平行執行它們,您可以在執行其中一個所需的大致時間內獲得兩個答案。

偵測轉修復遮罩

AUTOMATIC1111 讓您手動繪製修復遮罩。這個管線則從偵測器生成一個。DETR 在一張街景照片中找到六個物體(三個人、一隻狗、一輛自行車和一輛汽車),從那裡工作流程分為兩個分支:一個在原始圖像上繪製偵測到的框,另一個將它們轉換為您可以饋送到下游修復管線的遮罩。

繪圖和遮罩創建都使用 Pillow 和 NumPy 在本地執行。只有偵測呼叫會離開機器。

提示詞矩陣

這就像 AUTOMATIC1111 的提示詞矩陣。一個基礎提示詞「一棵孤獨的橡樹」會與四個後綴(日出時、雷雨中、銀河下、秋霧中)由一個 fn 節點組合,每個變體都會發送到自己的文字轉圖像節點。最後一個節點將四個結果拼接成一張聯絡表。

gr.Workflow 沒有迴圈運算子,因此四個文字轉圖像節點並排在畫布上。由於它們處於相同的依賴深度,它們會平行執行,所有四張圖像會同時開始生成。

放大與背景移除

這就像 AUTOMATIC1111 中的「額外功能」分頁。有兩個放大器節點,它們採用不同的路徑。第一個是 fn 節點中的本地 Lanczos 重採樣,它不需要網路呼叫,並且可以像 Pillow 調整大小一樣快速完成。第二個是 AuraSR ×4,它是畫布上的第一個 Space 節點:它呼叫 Hub 上的 Space,並將結果視為任何其他節點輸出。

背景移除的工作方式相同。BRIA RMBG-2.0 是另一個 Space 節點,因此整個模型都位於其自己的 Space 中,而這個畫布只是呼叫它。

註釋器

Canny、線稿、素描、亮度深度和海報化是您通常從 AUTOMATIC1111 的 ControlNet 擴充功能中獲得的前處理器。在這裡,每個都是用純 NumPy 編寫的 fn 節點,沒有模型在背後。在預載入的建築立面範例照片上,每個註釋器在 CPU 上大約需要半秒鐘。

應用程式中有 36 個運算子節點,其中 32 個是 fn 節點,其中 22 個完全在程序內執行,無需網路呼叫。如果您失去連線,大約三分之二的畫布仍可繼續工作。由於這些是常規的 Python 函數,您也可以直接測試它們,無需畫布、伺服器或 GPU。

PNG 資訊

AUTOMATIC1111 將生成細節儲存在 PNG 的參數文字區塊中,而 PNG 資訊分頁會讀回它們。Workflow1111 也是如此。文字轉圖像管線上的後處理節點會寫入中繼資料,而這個管線會讀回它,包括提示詞、負面提示詞、步數、CFG、種子碼、圖像大小和模型。

圖像轉影片

PNG 資訊讀取的圖像節點也饋送給 Wan 2.2 I2V A14B 節點,該節點會將其動畫化;在演示範例中,一隻睡著的狐狸醒來並開始移動。沒有第二個上傳框,因為一個參考節點可以饋送您需要的任意數量的下游管線,因此單次上傳即可讀取其中繼資料並在同一個畫布上進行動畫處理。

在您自己的 GPU 上執行模型

到目前為止,每個模型呼叫都透過 Inference Providers 或 Space 傳送到其他人的硬體。這就是為什麼您可以無需自己的 GPU 即可建構和執行像 Workflow1111 這樣的應用程式。

然而,fn 節點只是 Python,因此它同樣可以在本地載入模型並在您自己的 GPU 上執行。FastVideo/fastvideo-fasth3-preview 是一個 gr.Workflow 應用程式,它正是這樣做的。它執行 FastH3,這是 MiniMax-H3 的四步蒸餾版本,並在 ZeroGPU 上生成帶有音軌的影片。

整個應用程式歸結為一個綁定函數:

@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 不需要知道這些。它只是呼叫 fn 節點。

這也不是 Spaces 特有的。將 bind= 指向一個載入本地檢查點的函數,在您自己的機器上執行 .launch(),Workflow1111 畫布就可以驅動您自己的 GPU。

每個輸出都是一個 API

畫布上的每個輸出節點都成為一個 REST 端點,無需手動編寫路由。Workflow1111 暴露了其中九個:/image、/edited_image、/generated_prompt、/recovered_prompt、/detected_objects、/x_y_grid、/upscaled_local、/annotator_map 和 /png_info。

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", # Prompt

"", # Negative prompt

"Cinematic", # Style preset

"enhance fine detail", # Hires refine instruction

api_name="/image",

)

這些相同的端點也是 MCP 工具。使用 mcp_server=True(指南)啟動,每個輸出節點都會顯示為 AI 助理可以呼叫的工具。將 Claude Code、Cursor 或任何 MCP 客戶端指向伺服器 URL:

{

"mcpServers": {

"workflow1111": {

"url": "https://ysharma-workflow1111.hf.space/gradio_api/mcp/",

"headers": { "X-HF-Token": "hf_..." }

}

}

}

現在,代理程式可以生成圖像、讀回提示詞或執行偵測作為更大任務中的步驟,無需任何黏合程式碼。每個呼叫者都會在 X-HF-Token 標頭中發送自己的權杖,因此 Space 不會持有自己的權杖。

與 ComfyUI 的比較

AUTOMATIC1111 為我們提供了功能列表,但 Gradio Workflow 真正被拿來比較的是 ComfyUI,因為兩者都是節點圖。對於許多人們想要建構和發布的內容,gr.Workflow 涵蓋了相同的領域。

一個節點可以是您不擁有的硬體。它可以透過 Inference Providers 執行,呼叫 Hub 上的任何 Space 或任何 API,或從資料集中提取。這就是 Workflow1111 無需自己的 GPU 即可執行的原因。

每個輸出都成為一個類型化的 REST 端點。這些端點是從圖形生成的。訪客可以使用自己的身份執行工作流程。開啟 OAuth,分享公共 URL,任何人都可以登入並使用應用程式,無需安裝任何東西。

在同一個畫布上混合模型和模態。擴散模型、LLM、VLM、偵測器和影片模型都可以是同一個工作流程的一部分。需要自訂內容嗎?編寫一個函數。自訂節點是一個 Python 函數,因此它可以做任何 Python 能做的事情。

結果是一個多模型管線,人們可以在瀏覽器中打開、登入、立即使用,並從程式碼中呼叫。

建立您自己的工作流程

Workflow1111 有 73 個節點,但它最初只有這樣:

import gradio as gr

def your_function(text: str) -> str:

pass

gr.Workflow(bind=[your_function]).launch()

bind= 將您的函數變成節點,edges= 連接它們,而 .launch() 則在您的瀏覽器中打開畫布,以便您可以在那裡繼續編輯。準備好後,gradio deploy 會將整個內容部署到 Space 上。gr.Workflow 指南包含所有詳細資訊,包括 JSON 綱要和每個運算子類型。

如果您更喜歡從已經可用的東西開始,請打開 Workflow1111,點擊「複製」,然後選擇其中一個管線進行更改:刪除節點、替換模型、重新連接流程。如果您想從更小的規模開始,上一篇文章有五個工作流程,您可以在大約一分鐘內讓它們運行起來。

無論您建構了什麼,請在 X 上發布並標記 @gradio。我們很樂意推廣您的工作流程。