介紹 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 資產的多階段管線。典型的實作包括以下流程:
- 背景去除:使用
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 時,需具備「呼叫 Inference Providers」權限的細粒度存取令牌。