介绍 Daggr:以可视化检查方式以编程方式链式连接 AI 应用

Hugging Face 推出了 Daggr,这是一款开源的 Python 库,旨在通过连接 Gradio 应用、机器学习模型和自定义 Python 函数来简化 AI 工作流的创建。Daggr 允许开发者在代码中定义复杂的流水线,同时自动生成可视化画布,用于检查中间输出并重新运行特定步骤。

代码优先的工作流编排

Daggr 采用代码优先的工作流设计方式,与传统的基于节点的 GUI 编辑器形成对比。开发者在 Python 中定义流水线,Daggr 会自动生成可视化界面。这种架构确保工作流可以通过代码进行版本控制,同时提供可视化检查的优势。

关键功能包括:

  • 细粒度检查与重新运行:用户可以检查任意单个节点的输出,修改其输入,并在不执行整个流水线的情况下重新运行该特定步骤。
  • 弹性工作流:该库支持“备份节点”,允许开发者用另一个模型或 Space 替换原有模型,以确保流水线的稳定性。
  • 状态持久化:Daggr 自动保存工作流状态,包括输入值、缓存结果和画布位置。它还支持“工作表”,以在单个应用中管理多个工作空间。
  • Gradio 集成:由 Gradio 团队构建,Daggr 与 Gradio Spaces 原生集成。开发者可以通过名称和 API 端点引用任何公开或私有的 Space,无需自定义适配器。

支持的节点类型

Daggr 使用三种主要的节点类型来构建流水线:

GradioNode

GradioNode 连接到 Gradio Space 的 API 端点或本地运行的 Gradio 应用。通过设置 run_locally=True,Daggr 会克隆该 Space,创建隔离的虚拟环境,并在本地启动应用。如果本地执行失败,系统会自动回退到远程 API。

FnNode

FnNode 允许将自定义 Python 函数集成到工作流中。它用于数据处理步骤,例如图像降采样或文本操作,这些步骤不需要完整的机器学习模型。

InferenceNode

InferenceNode 使得可以直接调用通过 Hugging Face 推理提供商托管的模型。

实现示例:图像转 3D 资产流水线

为了展示不同节点类型的多样性,Daggr 可用于构建一个多阶段流水线,将 2D 图像转换为 3D 资产。典型的实现包括以下链路:

  1. 背景去除GradioNode(例如使用 BiRefNet Space)从输入图像中去除背景。
  2. 图像降采样FnNode 运行自定义 Python 函数,对图像进行缩放以提升效率。
  3. 风格增强InferenceNode(使用如 FLUX.2-klein-4B 的模型)将图像转换为干净的 3D 资产渲染风格。
  4. 3D 生成:最终的 GradioNode(使用 TRELLIS.2 Space)从增强后的图像生成 3D GLB 资产。

部署与需求

Daggr 需要 Python 3.10 或更高版本,可通过 pipuv 安装。工作流可以使用 Gradio 的隧道功能共享公共 URL,或通过在 requirements.txt 文件中添加 daggr 将其永久托管在 Hugging Face Spaces 上。在 Hugging Face Spaces 上使用 InferenceNode 时,需要具备 “Make calls to Inference Providers” 权限的细粒度访问令牌。

Sources