AI PLAY玩法更新持续收录
← 回到更新流

2026-09-10 · 原文发布日

用Gradio Workflow复刻AUTOMATIC1111的画布工作流

Hugging Face作者用73个节点、11条管线在一张Gradio Workflow画布上重建了AUTOMATIC1111的大部分功能:文生图、高清修复、图生图、提示词矩阵、VLM反推提示词、检测生成局部重绘蒙版、背景移除、图生视频等。节点分函数、模型、Space、数据集四类,连线即串联。用HF账号登录后调用走自己的额度,还可以复制整个Space自行改线。

原文要点

Hugging Face官方博客介绍了Workflow1111:用73个节点、11条管线在一张Gradio Workflow画布上重建了AUTOMATIC1111的大部分功能,涵盖文生图、高清修复、图生图、提示词矩阵、VLM反推、检测生成重绘蒙版、ControlNet式预处理器、背景移除、PNG Info和图生视频。节点分四类:fn(Python函数)、model(InferenceClient调模型)、space(调Hub上其他Space)、dataset(Hub数据集行)。用HF账号登录后模型调用走自己的额度;画布上每个输出节点自动成为REST端点(共9个),开启mcp_server=True后同时是MCP工具。Space可复制(Duplicate)后自行改线。

这次做成什么

先用HF账号在Workflow1111里跑通文生图和一条并行管线,再复制Space改一条线,最后在自己机器上用bind/edges写一个最小gr.Workflow并通过API/MCP调用它。

准备什么

  • 一个Hugging Face账号及访问令牌(模型调用走你自己额度,可能产生费用)
  • 本地Python环境,可用pip安装gradio与gradio_client(版本要求以官方guide为准)
  • 做本地GPU实验才需要自有显卡,仅用画布不需要

具体怎么做

  1. 登录跑通核心管线

    打开ysharma/Workflow1111并用HF账号Sign in。在文生图管线填prompt、negative prompt、steps、CFG、seed、宽高和model_id(可先试文章示例'a red fox in a snowy pine forest'与风格预设),点运行;输出PNG内会写入生成参数,供PNG Info管线读回。

  2. 体验并行与外部节点

    用同一张示例图分别跑VLM反推(Qwen2.5-VL)和ViT分类:两个节点共享同一输入、处于同一依赖深度,会并行执行。再试AuraSR×4超分和BRIA RMBG-2.0背景移除——它们是space节点,实际调用Hub上的其他Space。

  3. 复制Space改一条线

    点Duplicate复制整个Space到自己名下,选一条管线动手:删掉不需要的节点、把文生图的输出改接到另一个model节点,或调整提示词矩阵的后缀fn节点。保存后用自己的HF配额验证新流程。

  4. 本地写最小工作流并暴露API

    pip安装gradio后运行本文的最小示例:两个fn节点经bind/edges串成“润色提示词→统计字数”的小画布,.launch()后浏览器可编辑连线;再用gradio_client按api_name调用输出端点,验证“每个输出即API”。

可直接复制的材料

最小gr.Workflow示例(本地可跑)

本站独立编写的入门示例,非Workflow1111源码;bind/edges用法依据官方文档描述,不同gradio版本的参数细节请以官方guide核对。

import gradio as gr

def polish(text: str) -> str:
    return text.strip().rstrip("。") + ",细节丰富,构图完整。"

def stats(text: str) -> dict:
    return {"chars": len(text), "preview": text[:20]}

demo = gr.Workflow(
    bind=[polish, stats],
    edges=[(polish, stats)],
)
# 如需把输出端点同时暴露为MCP工具,改用:
# demo.launch(mcp_server=True)
demo.launch()

MCP客户端配置示例

本站按原文给出的结构整理;token换成你自己的HF令牌,每个调用者用自己的token,Space本身不持密钥。

{
  "mcpServers": {
    "workflow1111": {
      "url": "https://ysharma-workflow1111.hf.space/gradio_api/mcp/",
      "headers": { "X-HF-Token": "hf_换成你自己的token" }
    }
  }
}

gradio_client调用示例

调用结构来自原文示例;/image等9个端点的参数顺序以Space页面底部的API文档为准。

from gradio_client import Client

client = Client("ysharma/Workflow1111", oauth_token="hf_换成你自己的token")
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",
)
print(type(image), params)

输入与输出示例

本站虚构演示,仅说明各端点字段对应关系,非实际生成结果;生成耗时取决于模型与额度,不做保证。

输入

登录Space后在文生图管线输入prompt“a red fox in a snowy pine forest”、风格预设Cinematic、steps 28、CFG 3.5、seed 42、768×768,点运行

对应输出

输出区得到一张雪地狐狸PNG;PNG Info管线从该图读回:prompt=a red fox in a snowy pine forest, negative=(空), steps=28, cfg=3.5, seed=42, size=768x768, model=所选checkpoint。同时该输出经 /image 端点可被gradio_client以相同参数取到

做完检查这些

  • 未登录时Space提示需要HF账号或token,登录后模型调用能正常返回并消耗自己额度
  • VLM反推与ViT分类用同一输入几乎同时返回,确认并行执行而非排队
  • 复制后的Space里删除或改接一个节点后,对应管线输出随之变化
  • 本地最小示例launch后浏览器出现可编辑画布,gradio_client能按api_name拿到stats节点的字典输出

容易卡住的地方

  • 登录后所有模型调用走你自己账号的Inference额度,高频生图/视频会产生实际费用
  • space节点(AuraSR、RMBG-2.0)依赖Hub上其他Space可用性,对方下线该分支即失败
  • 文中称多数本地fn节点在断网时仍可用,但model/space节点必须联网,别把整画布当离线工具
  • 文章未承诺各模型生成耗时与费用数字,勿据此估算成本
  • 本地复刻需自行安装gradio,bind/edges的JSON schema细节以官方gr.Workflow guide为准

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Rebuilding AUTOMATIC1111 with Gradio Workflow
原作者
Hugging Face / 文章署名作者
原始发布日期
2026-09-10T00:00:00+00:00
来源
https://huggingface.co/blog/gradio-workflow-1111