介绍 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 资产。典型的实现包括以下链路:
- 背景去除:
GradioNode(例如使用 BiRefNet Space)从输入图像中去除背景。 - 图像降采样:
FnNode运行自定义 Python 函数,对图像进行缩放以提升效率。 - 风格增强:
InferenceNode(使用如 FLUX.2-klein-4B 的模型)将图像转换为干净的 3D 资产渲染风格。 - 3D 生成:最终的
GradioNode(使用 TRELLIS.2 Space)从增强后的图像生成 3D GLB 资产。
部署与需求
Daggr 需要 Python 3.10 或更高版本,可通过 pip 或 uv 安装。工作流可以使用 Gradio 的隧道功能共享公共 URL,或通过在 requirements.txt 文件中添加 daggr 将其永久托管在 Hugging Face Spaces 上。在 Hugging Face Spaces 上使用 InferenceNode 时,需要具备 “Make calls to Inference Providers” 权限的细粒度访问令牌。