AI DAILY / 2026-09-11
用 Gradio Workflow 重做 AUTOMATIC1111
Rebuilding AUTOMATIC1111 with Gradio Workflow
全文中文翻译 · AI 生成,仅供学习交流
用 Gradio Workflow 重建 AUTOMATIC1111
它整合了 SOTA(state-of-the-art,当前最优)模型,覆盖文生图(text-to-image)、高分辨率修复(hi-resolution fix)、图生图(image-to-image)、提示词矩阵网格(prompt-matrix grids)、VLM 反推(VLM interrogate)、检测生成 inpaint 蒙版(detection-to-inpaint masks)、ControlNet 风格的标注器(ControlNet-style annotators)、背景移除(background removal)、PNG 信息存储(PNG Info storing)以及图生视频(image-to-video)。
你可以登录 Hugging Face 账号或提供访问令牌(access token)来运行任意一条流水线(pipeline)。登录之后,模型调用会使用你自己的配额(quota)。
👉试试 Workflow1111,或者复制这个 Space,然后根据自己的用例重新连线。
我们一起走一遍画布。
画布上的内容
所有媒体流水线都由上一篇博文和官方指南里介绍过的四种算子类(operator kind)构成。画布上的每个节点都封装一个算子,算子的输入和输出会变成你用边(edge)连接的那些端口(port)。先快速回顾一下这四种算子类:fn 是 Python 函数,model 是通过 InferenceClient 调用的模型,space 是另一个 Gradio Space,dataset 是 Hub 数据集中的一行数据。
我们一条一条过这些流水线。
文生图
这是核心流水线。它带有你在 A1111 的 txt2img 标签页中会期望的那些控件:负向提示词(negative prompt)、步数(steps)、CFG、种子(seed)、宽度和高度,外加一个用于挑选检查点(checkpoint)的 model_id 字段。提示词先经过一个 prompt-builder fn 节点,该节点会追加所选的风格预设(style preset)并清理文本,然后送入一个 model 节点,通过 Inference Providers 调用检查点。一个后处理 fn 节点在输出端把生成参数写入 PNG 的元数据,这部分稍后会由 PNG Info 流水线读回。
高分辨率修复
在 Automatic1111 中,高分辨率修复会先放大 txt2img 的输出,然后再跑一遍去噪(denoising)。在这里则换成了一个两节点的支线。文生图的结果进入一个 FLUX.1-Kontext model 节点,配上一句精修指令("enhance fine detail and micro-texture, keep the composition identical"),回来时画面更清晰、尺寸更大。
图生图
同一个 Kontext 节点同时也兼任图生图标签页。上传一张图片,描述你想做的修改,它就会返回编辑后的图像。
让 LLM 写提示词
先写一个粗略的提示词,例如 "A lighthouse in a storm."。这条流水线把它送入一个 Qwen3-4B model 节点,再由一个小 fn 节点把回复整理成一份干净的标签列表,最多四十条:"stormy sea, wet rocks, dramatic composition, low angle shot, volumetric lighting, ominous tone."。你可以把任意一个扩散模型节点接到这个输出后面来渲染图像。
这里没有涉及任何自定义节点,跟 ComfyUI 不同。在 Gradio workflow 中,LLM 和扩散模型在画布上都是普通的 model 算子。
把图像读回为提示词
这类似于 AUTOMATIC1111 的 Interrogate 按钮,只不过反推(interrogate)工作由 VLM(视觉语言模型,Vision-Language Model)来完成,而不是 CLIP。
Qwen2.5-VL 看一张夜市照片,并写出一段本来可能生成这张照片的提示词。一个 ViT(Vision Transformer)分类器节点读取同一张图像并返回标签:restaurant 51.9%,tobacco shop 15.6%,toyshop 9.1%。
两个节点共用同一张图像作为输入,因此 gr.Workflow 会并行运行它们,你得到两份答案所花的时间大致与跑单个节点相当。
检测生成 inpaint 蒙版
AUTOMATIC1111 需要你手动画一个 inpaint 蒙版。这条流水线改用检测器来生成。
DETR 在一张街拍照片中找出六个目标(三个人、一条狗、一辆自行车、一辆车),随后流水线分为两支:一支把检测到的框画在原图上,另一支把它们转成蒙版,可以接到下游的 inpaint 流水线使用。
绘制和蒙版生成都在本地用 Pillow 和 NumPy 完成。只有检测调用会离开本机。
提示词矩阵
这和 AUTOMATIC1111 的 prompt matrix 类似。基础提示词 "a lone oak tree" 由一个 fn 节点与四个后缀(在日出时、在雷暴中、在银河下、在秋雾中)组合,每个变体各自送入一个文生图节点。最后一个节点把四张结果拼成一张拼贴图(contact sheet)。
gr.Workflow 没有循环算子,所以四个文生图节点并排摆在画布上。由于它们处于同一依赖深度,会并行运行,四张图同时开始生成。
放大与背景移除
这相当于 Automatic1111 的 Extras 标签页。这里有两个放大节点,走的路径不同。第一个是 fn 节点里的本地 Lanczos 重采样,不需要任何网络调用,速度取决于 Pillow 能多快完成缩放。第二个是 AuraSR ×4,也是画布上第一个 space 节点:它调用 Hub 上的一个 Space,并把结果当作任何其他节点的输出来使用。
背景移除的工作方式相同。
BRIA RMBG-2.0 是另一个 space 节点,整个模型都部署在它自己的 Space 中,本画布只是把它调用进来。
标注器
Canny(边缘检测)、line art(线稿)、sketch(素描)、luma-depth(亮度深度图)、posterize(色调分离)通常是 Automatic1111 的 ControlNet 扩展所提供的预处理器。这里每一个都是一个用纯 NumPy 写成的 fn 节点,背后不带任何模型。在一张预加载的建筑外立面示例图上,每个标注器在 CPU 上大约耗时半秒。
应用里共有 36 个算子节点,其中 32 个是 fn 节点,22 个完全在进程内运行,不发任何网络请求。即使断网,画布大约三分之二仍能继续工作。由于这些都是普通的 Python 函数,你也可以在没有画布、服务器或 GPU 的情况下直接测试它们。
PNG Info
AUTOMATIC1111 把生成细节存在 PNG 的 parameters 文本块里,由 PNG Info 标签页读回。Workflow1111 同样如此。文生图流水线上的后处理节点写入元数据,这条流水线则把它读回来,包括提示词、负向提示词、步数、CFG、种子、图像尺寸和模型。
图生视频
PNG Info 所读取的那个图像节点同时也连入一个 Wan 2.2 I2V A14B 节点,由它把图像动起来;在演示样例中,一只睡着的狐狸醒来并开始活动。这里没有第二个上传框,因为一个引用节点可以同时驱动