介紹 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 Inference Providers 託管的模型。

實作範例:影像轉 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 時,需具備「呼叫 Inference Providers」權限的細粒度存取令牌。

Sources