Daggr の紹介:視覚的検査で AI アプリをプログラム的に連結

Hugging Face は Daggr を発表しました。これはオープンソースの Python ライブラリで、Gradio アプリ、機械学習モデル、カスタム Python 関数を接続して AI ワークフローの作成を簡素化することを目的としています。Daggr を使うと、開発者はコード上で複雑なパイプラインを定義でき、同時に中間出力を検査したり特定のステップだけを再実行したりするためのビジュアルキャンバスが自動的に生成されます。

コードファーストのワークフローオーケストレーション

Daggr はコードファーストのアプローチでワークフロー設計を行い、従来のノードベース GUI エディタとは対照的です。開発者は Python でパイプラインを定義し、Daggr が自動的にビジュアルインターフェースを生成します。このアーキテクチャにより、ワークフローはコードでバージョン管理できる一方で、視覚的検査の利点も享受できます。

主な機能は次のとおりです:

  • Granular Inspection and Rerunning: 任意のノードの出力を検査し、入力を変更してそのステップだけを再実行できます。全体のパイプラインを実行し直す必要はありません。
  • Resilient Workflows: "backup nodes" をサポートしており、開発者はあるモデルや Space を別のものに置き換えてパイプラインの安定性を確保できます。
  • State Persistence: Daggr はワークフローの状態(入力値、キャッシュ結果、キャンバス上の位置など)を自動的に保存します。また、単一アプリ内で複数のワークスペースを管理するための "sheets" も提供します。
  • Gradio Integration: Gradio チームが開発した Daggr は Gradio Spaces とネイティブに統合されます。開発者は公開・非公開を問わず任意の Space を名前と API エンドポイントで参照でき、カスタムアダプタは不要です。

サポートされているノードタイプ

Daggr はパイプライン構築のために 3 種類の主要ノードを提供します。

GradioNode

GradioNode は Gradio Space の API エンドポイントまたはローカルで提供されている Gradio アプリに接続します。run_locally=True を設定すると、Daggr は対象の Space をクローンし、分離された仮想環境を作成してローカルでアプリを起動します。ローカル実行が失敗した場合は自動的にリモート API にフォールバックします。

FnNode

FnNode はカスタム Python 関数をワークフローに組み込むためのノードです。画像のダウンサンプリングやテキスト操作など、フル ML モデルを必要としないデータ処理ステップに利用できます。

InferenceNode

InferenceNode は Hugging Face Inference Providers がホストするモデルへの直接呼び出しを可能にします。

実装例:画像から 3D アセットへのパイプライン

異なるノードタイプの汎用性を示すために、Daggr を使って 2D 画像を 3D アセットに変換するマルチステージパイプラインを構築できます。典型的な実装は以下のチェーンになります。

  1. Background Removal: GradioNode(例: BiRefNet Space)で入力画像の背景を除去します。
  2. Image Downscaling: FnNode がカスタム Python 関数を実行し、効率化のために画像サイズを縮小します。
  3. Style Enhancement: InferenceNode(例: FLUX.2‑klein‑4B モデル)で画像をクリーンな 3D アセットレンダリングスタイルに変換します。
  4. 3D Generation: 最後の GradioNode(例: TRELLIS.2 Space)で強化された画像から 3D GLB アセットを生成します。

デプロイと要件

Daggr は Python 3.10 以上が必要で、pip または uv でインストールできます。ワークフローは Gradio のトンネリング機能を使って公開 URL として共有したり、requirements.txtdaggr を追加して Hugging Face Spaces に永続的にホストしたりできます。Spaces 上で InferenceNode を利用する場合は、"Make calls to Inference Providers" 権限を持つ細粒度アクセストークンが必要です。

Sources