返回 文章 build CMS 文章

Gradio 推出 gr.Workflow:可视化搭建 AI 工作流并一键部署为 API

用 Gradio 的 gr.Workflow 在画布上拖拽搭建 AI 流水线,并自动获得可调用的 REST API。

Gradiogr.WorkflowAI工作流Hugging Face
成长分 / 100 72 综合收获、行动、留存与影响

Gradio 推出 gr.Workflow:可视化搭建 AI 工作流并一键部署为 API
为什么值得读了解 Gradio 新推出的 gr.Workflow 如何将复杂 AI 流水线可视化,降低开发门槛。

学习如何将工作流自动暴露为 REST 端点,无需额外工作即可从代码调用。

关键洞察
  1. gr.Workflow 直接内置于 Gradio,工作流是一个图,包含引用(输入)、算子(执行步骤)和主体(输出)三种节点。
  2. 算子可以是 Python 函数、Hugging Face 推理提供程序上的模型、另一个 Gradio Space 或 Hub 数据集中的一行。
  3. 每个工作流同时也是一个 API,每个输出都会变成以其标签命名的 REST 端点,可用 Gradio 客户端或 curl 调用。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:6361

文本转视频 • 13B • 已更新 • 1.42k • 63

** gr.Workflow**,直接内置于 Gradio,构建了该流程

理解其概念的最佳方式是观看几个实际运行的工作流。下面的每个应用都是一个实时的 Huggingface Space,你可以打开、运行和复制。

上传一张图片,输入编辑指令(“把它变成雪冬场景”、“加上太阳镜”、“把车变成红色”),然后取回编辑后的照片。整个应用是一个单一节点,通过 Hugging Face 推理提供程序调用 Qwen-Image-Edit

👉 试试图像编辑器流程

一个图,三个流程。从提示词开始,用 FLUX 生成一张图片,然后将其传递给一个背景移除 Gradio Space 以将其变成贴纸。一个主题通过文本转语音 Gradio Space 变成旁白,而同一主题通过一次 LLM 调用变成一个吸引人的剧集标题。

那是一个画布,通过 Hugging Face 推理提供程序 进行两次模型调用,以及对 Gradio Spaces 的两次调用。

由于这是一个工作流,三个输出中的每一个也都有自己的 REST 端点:/sticker

/voiceover

/episode_title

。你可以直接从代码中调用其中任何一个,而无需打开 UI。请参阅下面的从代码调用以获取可运行的示例。

输入一个想法,它就会一次性变成一组生成的艺术作品:一张来自 FLUX 的基础图像、该图像的两个 AI 重新构想(一个柔和的水彩版本和一个霓虹赛博朋克版本),以及一个由 LLM 撰写的画廊标题。

每张图像都由一个使用推理提供程序的模型节点直接从提示词生成,而标题则来自一个调用 LLM 的 fn

节点。这就是扇出模式的实际应用:一个想法可以同时馈送给多个操作符,全部并行生成。

输入一个 Hugging Face 数据集 ID,例如 stanfordnlp/imdb

mteb/tweet_sentiment_extraction

,单个输入会扇出到四个操作符节点,这些节点使用 Datasets Server API 实时分析数据集。

你会得到一个概览卡片、前几行的预览、每列统计信息以及一个分布图表,所有这些都独立且并行计算。这就是工作流的力量!

到目前为止,每个节点都会访问 Hugging Face。但一个 fn

节点只是 Python,这意味着它也可以在 Space 内的 GPU 上运行模型。

@spaces.GPU

装饰绑定函数,当节点运行时,ZeroGPU 会为该调用抓取一个 GPU,运行模型,然后释放它。我们并不总是需要依赖推理提供程序或现有的 Gradio Spaces。

看看这个演示,它使用通过 Diffusers 加载的 Lightricks/LTX-Video 为一张静态图像添加动画,完全通过一个节点运行。gr.Workflow

不需要了解你的 GPU 设置。它只是调用绑定函数。

每个工作流都是一个图,包含三种节点:引用(你的输入)、算子(执行工作的步骤)和主体(你的输出)。算子可以是你的 Python 函数、Hugging Face Inference Providers 上的模型、另一个 Gradio Space,或 Hub 数据集中的一行。你通过在类型化端口之间拖拽来连接它们,点击 Run,然后观看每个结果就地出现。

你构建的每个工作流同时也是一个 API,无需额外工作。每个输出都会变成一个以其标签命名的 REST 端点,你可以使用 Gradio 客户端从 Python 调用它。以下是一个针对多端点演示 Space 的实时、无需令牌的示例,完全原样:

from gradio_client import Client
client = Client("ysharma/gr-workflow-multi-endpoint-API")
print(client.predict("hello there friend", api_name="/word_count")) # -> 3
print(client.predict(20, api_name="/fahrenheit")) # -> 68.0

调用模型或 Space 的端点会在 Hugging Face token 下运行,因此在创建客户端时请传入一个:

from gradio_client import Client, handle_file
client = Client("ysharma/gr-workflow-image-editor", token="hf_...")
edited = client.predict(
handle_file("dog.jpg"),
"turn it into a snowy winter scene",
api_name="/edited_image",
)

更喜欢纯 HTTP?每个端点也都可以通过 curl 访问:

curl -s https://ysharma-gr-workflow-multi-endpoint-API.hf.space/gradio_api/call/word_count \
-H "Content-Type: application/json" -d '{"data": ["hello there friend"]}'

最快的上手方式是打开上面的任意一个演示,点击 Duplicate,然后开始重新连接。在 Python 中,它简短到只需:

import gradio as gr
def your_function(text: str) -> str:
pass
gr.Workflow(bind=[your_function]).launch()

完整的操作演示、算子类型、JSON schema 以及可复用模式,请参阅 Gradio 文档中的官方 gr.Workflow 指南

你甚至可以用 gr.Workflow 构建像 AUTOMATIC1111 这样复杂的项目

。请关注我们的下一篇文章,我们将一步步带你构建它。这里先剧透一下 😉👇

快速、高效且支持多语言的文本转语音

即时移除图像背景

用一个提示词创建多种艺术风格和标题

通过即时可视化摘要探索 Hugging Face 数据集

用自定义文本指令编辑图像

将图片制作成短视频

太喜欢了 🔥

史诗级更新!

¡Órale! Gradio 的 gr.Workflow 太棒了,因为它让你可以在交互式画布上搭建超级复杂的 AI 流水线,而不用被乱七八糟的代码搞得头疼。这真是一个超酷的工具,可以可视化流程的每一步、实时调试,并分分钟把你的模型直接部署到 Hugging Face Spaces。说实话,对于任何从事生成式 AI 工具开发的人来说,这能大大减轻工作量。https://starzbetmex.com/