-
Hugging Face Daggr 앱 체이닝 플랫폼 완벽 가이드: AI 워크플로우 구축의 새로운 패러다임 (2026년 1월)AI 개발 2026. 1. 31. 14:17반응형
Hugging Face Daggr란 무엇인가
2026년 1월 29일, Hugging Face에서 AI 워크플로우 구축의 새로운 패러다임을 제시하는 오픈소스 라이브러리 Daggr를 공식 발표하였습니다. Daggr는 Gradio 앱, ML 모델, 커스텀 Python 함수를 하나의 워크플로우로 연결할 수 있는 혁신적인 앱 체이닝 플랫폼입니다. 가장 주목할 만한 특징은 코드 중심(Code-first) 접근 방식을 유지하면서도 자동으로 시각적 캔버스를 생성하여 중간 출력을 검사하고, 개별 단계를 재실행하며, 복잡한 파이프라인의 상태를 관리할 수 있다는 점입니다.
현재 Hugging Face에는 200만 개 이상의 AI 모델과 50만 개 이상의 데이터셋이 등록되어 있으며, Daggr를 통해 이러한 방대한 리소스를 손쉽게 연결하고 활용할 수 있게 되었습니다. 특히 Daggr는 노코드(No-code)부터 로우코드(Low-code), 프로코드(Pro-code)까지 다양한 수준의 개발자들이 AI 파이프라인을 구축할 수 있도록 설계되어 있어, AI 개발의 민주화에 크게 기여할 것으로 기대됩니다.
Daggr의 핵심 아키텍처와 노드 시스템
Daggr 워크플로우는 방향 그래프(Directed Graph)로 연결된 노드들로 구성됩니다. 각 노드는 Gradio Space API 호출, 모델 추론 호출, 또는 Python 함수와 같은 계산 단위를 나타냅니다. 모든 노드에는 입력 포트와 출력 포트가 있으며, 이 포트를 통해 노드 간 데이터가 흐르게 됩니다. Daggr는 세 가지 핵심 노드 타입을 제공합니다.
GradioNode는 Gradio Space API 엔드포인트를 호출하는 노드입니다. Hugging Face Spaces에서 호스팅되는 모든 Gradio 앱이나 로컬에서 실행 중인 앱에 연결할 수 있습니다. run_locally=True 옵션을 설정하면 Daggr가 자동으로 해당 Space를 복제하고, 격리된 가상 환경을 생성한 후 앱을 실행합니다. 로컬 실행이 실패할 경우에는 원격 API로 자동 폴백됩니다.
FnNode는 커스텀 Python 함수를 실행하기 위한 노드입니다. 데이터 전처리, 후처리, 변환 등 사용자 정의 로직을 워크플로우에 통합할 때 사용됩니다. 이를 통해 Gradio 앱이나 모델 사이에서 필요한 데이터 가공 작업을 유연하게 처리할 수 있습니다.
InferenceNode는 Hugging Face Inference Providers를 통해 모델을 호출하는 노드입니다. 이 노드를 사용하면 Hugging Face Hub에 등록된 다양한 모델들을 직접 워크플로우에서 활용할 수 있습니다. 예를 들어 moonshotai/Kimi-K2.5:novita와 같은 최신 모델도 간단하게 연결할 수 있습니다.
시각적 검사와 상태 관리 기능
Daggr의 가장 강력한 기능 중 하나는 자동 생성되는 시각적 캔버스입니다. 이 캔버스를 통해 워크플로우의 각 단계에서 생성되는 중간 출력을 직접 확인할 수 있으며, 전체 파이프라인을 재실행하지 않고도 개별 노드만 원하는 만큼 반복 실행할 수 있습니다. 이는 복잡한 AI 파이프라인을 디버깅하고 최적화하는 데 매우 유용합니다.

Daggr는 워크플로우 상태를 자동으로 저장하고 관리합니다. 입력값, 캐시된 결과, 캔버스 위치 등이 모두 보존되어 세션 간에도 작업 상태를 유지할 수 있습니다. 또한 출처 추적(Provenance Tracking) 기능을 제공하여, 이전 결과를 탐색할 때 해당 출력을 생성한 정확한 입력값을 자동으로 복원하고, 워크플로우에서 어떤 부분이 최신 상태가 아닌지 시각적으로 표시해 줍니다.
다중 워크스페이스(Sheets) 기능도 지원됩니다. 하나의 그래프 내에서 여러 개의 독립적인 워크스페이스를 생성하여 서로 다른 입력 세트나 실험을 병렬로 진행할 수 있습니다. 이는 A/B 테스트나 다양한 파라미터 조합을 비교할 때 특히 유용합니다.
실전 예제: 이미지 생성 및 배경 제거 파이프라인
Daggr를 활용한 첫 번째 실전 예제로 이미지 생성 후 배경을 자동으로 제거하는 파이프라인을 구축해 보겠습니다. 이 예제는 두 개의 GradioNode를 연결하여 완전한 워크플로우를 만드는 방법을 보여줍니다.
import random import gradio as gr from daggr import GradioNode, Graph # Step 1: 이미지 생성 노드 image_gen = GradioNode( "hf-applications/Z-Image-Turbo", api_name="/generate_image", inputs={ "prompt": gr.Textbox( label="Prompt", value="A cheetah sprints across the grassy savanna.", lines=3, ), "height": 1024, "width": 1024, "seed": random.random, }, outputs={ "image": gr.Image(label="Generated Image"), }, ) # Step 2: 배경 제거 노드 bg_remover = GradioNode( "hf-applications/background-removal", api_name="/image", inputs={ "image": image_gen.image, # 이전 노드의 출력과 연결 }, outputs={ "original_image": None, # 이 출력은 숨김 "final_image": gr.Image(label="Final Image"), }, ) # 그래프 생성 및 실행 graph = Graph( name="Transparent Background Generator", nodes=[image_gen, bg_remover] ) graph.launch()위 코드에서 주목할 점은 bg_remover 노드의 입력으로 image_gen.image를 지정한 부분입니다. 이렇게 이전 노드의 출력을 다음 노드의 입력으로 직접 연결함으로써 데이터 흐름이 자동으로 설정됩니다. 또한 원하지 않는 출력은 None으로 설정하여 UI에서 숨길 수 있습니다.
고급 예제: 이미지에서 3D 에셋 생성 파이프라인
더 복잡한 멀티 에이전트 워크플로우의 예로, 일반 이미지에서 3D 에셋을 생성하는 4단계 파이프라인을 살펴보겠습니다. 이 예제에서는 GradioNode, FnNode, InferenceNode를 모두 활용합니다.
from daggr import GradioNode, FnNode, InferenceNode, Graph from PIL import Image from daggr.state import get_daggr_files_dir import gradio as gr import uuid # Step 1: 배경 제거 (로컬 실행) background_remover = GradioNode( "merve/background-removal", api_name="/image", run_locally=True, inputs={"image": gr.Image()}, outputs={ "original_image": None, "final_image": gr.Image(label="Final Image"), }, ) # Step 2: 이미지 다운스케일 (FnNode 사용) def downscale_image_to_file(image, scale: float = 0.25): pil_img = Image.open(image) scale_f = max(0.05, min(1.0, float(scale))) w, h = pil_img.size new_w = max(1, int(w * scale_f)) new_h = max(1, int(h * scale_f)) resized = pil_img.resize((new_w, new_h), resample=Image.LANCZOS) out_path = get_daggr_files_dir() / f"{uuid.uuid4()}.png" resized.save(out_path) return str(out_path) downscaler = FnNode( downscale_image_to_file, name="Downscale image for Inference", inputs={ "image": background_remover.final_image, "scale": gr.Slider( label="Downscale factor", minimum=0.25, maximum=0.75, step=0.05, value=0.25, ), }, outputs={ "image": gr.Image(label="Downscaled Image", type="filepath"), }, ) # Step 3: FLUX 모델로 3D 렌더링 최적화 flux_enhancer = InferenceNode( model="black-forest-labs/FLUX.2-klein-4B:fal-ai", inputs={ "image": downscaler.image, "prompt": gr.Textbox( label="prompt", value="Transform this into a clean 3D asset render", lines=3, ), }, outputs={ "image": gr.Image(label="3D-Ready Enhanced Image"), }, ) # Step 4: 3D 에셋 생성 trellis_3d = GradioNode( "microsoft/TRELLIS.2", api_name="/image_to_3d", inputs={ "image": flux_enhancer.image, "ss_guidance_strength": 7.5, "ss_sampling_steps": 12, }, outputs={ "glb": gr.HTML(label="3D Asset (GLB preview)"), }, ) # 전체 파이프라인 실행 graph = Graph( name="Image to 3D Asset Pipeline", nodes=[background_remover, downscaler, flux_enhancer, trellis_3d], ) graph.launch()이 파이프라인은 입력 이미지의 배경을 제거한 후, 추론 효율성을 위해 이미지 크기를 축소하고, FLUX 모델을 통해 3D 렌더링에 최적화된 형태로 변환한 다음, 최종적으로 Microsoft의 TRELLIS.2 모델을 사용하여 GLB 형식의 3D 에셋을 생성합니다.
Kernel Hub와 Upskill 도구 연계
Hugging Face는 Daggr 외에도 AI 개발을 가속화하는 두 가지 중요한 도구를 제공합니다. 먼저 Kernel Hub는 Python 라이브러리와 애플리케이션에서 최적화된 컴퓨트 커널을 Hugging Face Hub에서 직접 로드할 수 있게 해주는 플랫폼입니다. Model Hub가 모델을 위한 것이라면, Kernel Hub는 GPU에서 특정 연산을 가속화하는 저수준 고성능 코드 스니펫(커널)을 위한 것입니다.
Kernel Hub에서 제공하는 커널의 예로는 FlashAttention과 같은 고급 어텐션 메커니즘, INT8이나 INT4와 같은 저정밀도 데이터 타입을 효율적으로 계산하는 커스텀 양자화 커널, Mixture of Experts(MoE) 레이어와 같은 복잡한 아키텍처에 필요한 특수 커널, 그리고 LayerNorm이나 RMSNorm과 같은 활성화 함수와 정규화 레이어 등이 있습니다.
---- 이미지 3번 ----
Upskill은 대규모 모델로 에이전트 스킬을 생성하고 평가한 후, 이를 더 작은 모델에서 사용할 수 있도록 해주는 도구입니다. 예를 들어, Claude Opus-4.5와 같은 강력한 모델을 사용하여 CUDA 커널 작성과 같은 복잡한 작업에 대한 스킬을 생성하고, 이 스킬을 오픈소스 모델에서도 활용할 수 있게 합니다. 이는 비용 절감과 도메인 특화 문제 해결에 매우 유용합니다.
Hugging Face Skills는 데이터셋 생성, 모델 훈련, 평가와 같은 AI/ML 작업에 대한 정의를 제공합니다. 이러한 스킬은 OpenAI Codex, Anthropic Claude Code, Google DeepMind Gemini CLI, Cursor 등 주요 코딩 에이전트 도구들과 상호 운용됩니다. Claude를 사용하여 오픈소스 LLM을 파인튜닝하고, 훈련 작업을 클라우드 GPU에 제출하며, 완료된 모델을 Hugging Face Hub에 푸시하는 것도 가능합니다.
워크플로우 공유 및 배포 방법
Daggr로 구축한 워크플로우는 다양한 방식으로 공유하고 배포할 수 있습니다. 로컬 테스트의 경우 graph.launch()를 호출하면 기본적으로 포트 7860에서 앱이 실행됩니다. 외부 공유가 필요한 경우 graph.launch(share=True)를 사용하면 Gradio가 임시 공개 URL을 생성해 줍니다.
영구적인 호스팅이 필요한 경우 Hugging Face Spaces에 배포할 수 있습니다. Space를 생성하고 requirements.txt에 daggr를 추가한 후 앱을 배포하면 됩니다. Daggr는 로컬 Hugging Face 토큰을 자동으로 사용하여 ZeroGPU 할당량 추적, 프라이빗 Spaces 접근, 게이트된 모델 접근 등을 처리합니다.
배포 방식 명령어 용도 로컬 실행 graph.launch() 개발 및 테스트 임시 공유 graph.launch(share=True) 데모 및 협업 영구 배포 Hugging Face Spaces 프로덕션 서비스 개발자를 위한 활용 팁
개발자들이 Daggr를 효과적으로 활용하기 위한 몇 가지 팁을 소개해 드립니다. 첫째, 백업 노드 기능을 활용하시기 바랍니다. 워크플로우 중간에 모델이나 Space를 교체할 수 있어 장애 상황에서도 파이프라인을 유연하게 유지할 수 있습니다.
둘째, 로컬 실행 옵션을 적극 활용하시기 바랍니다. run_locally=True를 설정하면 Space를 자동으로 복제하여 로컬에서 실행합니다. 다만 일부 모델은 CUDA나 ZeroGPU로 이동될 수 있으므로, CPU에서 실행해야 하는 경우 해당 Space를 복제하여 수정하시기 바랍니다.
셋째, InferenceNode를 Spaces에 배포할 때는 세분화된 HF 액세스 토큰을 사용하시기 바랍니다. "Make calls to Inference Providers" 권한만 있는 토큰을 사용하는 것이 보안상 바람직합니다.
# Daggr 설치 pip install daggr # 또는 uv pip install daggr # Python 3.10 이상 필요비개발자를 위한 노코드 활용 가이드
코딩 경험이 없는 사용자도 Daggr의 시각적 캔버스를 통해 AI 워크플로우를 탐색하고 실행할 수 있습니다. Hugging Face Spaces에는 이미 구축된 다양한 Daggr 워크플로우가 공개되어 있어, 직접 코드를 작성하지 않고도 이러한 워크플로우를 사용해 볼 수 있습니다.
시각적 캔버스에서는 각 노드의 입력값을 조정하고, 실행 버튼을 클릭하여 결과를 확인할 수 있습니다. 각 단계의 중간 출력도 실시간으로 확인할 수 있어 AI 모델의 작동 방식을 이해하는 데도 도움이 됩니다. 특정 단계만 다시 실행하거나 다른 파라미터로 실험해 보는 것도 간단합니다.
기능 설명 시각적 캔버스 코드 없이 워크플로우 구조와 데이터 흐름 확인 중간 출력 검사 각 단계의 결과물을 실시간으로 확인 단계별 재실행 전체를 다시 실행하지 않고 특정 노드만 재실행 상태 저장 작업 상태가 자동 저장되어 나중에 이어서 작업 가능 출처 추적 이전 결과를 만든 정확한 입력값 자동 복원 Daggr와 기존 도구의 비교
Daggr는 기존의 AI 워크플로우 도구들과 어떻게 다른지 비교해 보겠습니다. LangChain이나 LlamaIndex와 같은 프레임워크는 주로 LLM 애플리케이션 구축에 초점을 맞추고 있습니다. 반면 Daggr는 Gradio 생태계와의 깊은 통합을 통해 멀티모달 AI 워크플로우를 더 쉽게 구축할 수 있습니다.
ComfyUI와 같은 노드 기반 도구는 강력한 시각적 인터페이스를 제공하지만, 코드 중심의 유연성이 부족할 수 있습니다. Daggr는 코드 우선 접근 방식을 유지하면서도 시각적 캔버스를 자동 생성하여 두 가지 장점을 모두 제공합니다.
특징 Daggr LangChain ComfyUI 코드 중심 O O X 시각적 캔버스 자동 생성 LangSmith 필요 기본 제공 Gradio 통합 네이티브 별도 설정 X HF Hub 연동 200만+ 모델 제한적 제한적 멀티모달 강력 지원 이미지 중심 향후 전망과 주의사항
Daggr는 현재 베타 버전으로, 의도적으로 가볍게 설계되어 있습니다. API는 버전 간에 변경될 수 있으며, 워크플로우 상태가 로컬에 저장되지만 업데이트 중 데이터 손실이 발생할 수 있습니다. 프로덕션 환경에서 사용할 때는 이러한 점을 고려하시기 바랍니다.
그러나 Daggr의 등장은 AI 워크플로우 구축의 새로운 표준을 제시하고 있습니다. Hugging Face의 방대한 모델 생태계와 결합하여, 개발자와 비개발자 모두가 복잡한 AI 파이프라인을 손쉽게 구축하고 실험할 수 있는 환경이 마련되었습니다. 앞으로 Daggr가 어떻게 발전해 나갈지 주목할 필요가 있습니다.
Daggr에 대한 더 자세한 정보는 Hugging Face 공식 블로그와 GitHub 저장소에서 확인하실 수 있습니다. 버그 리포트나 기능 요청은 GitHub Issues를 통해 제출할 수 있으며, 이미 구축된 다양한 예제 워크플로우도 Hugging Face Spaces에서 직접 체험해 보실 수 있습니다.
반응형'AI 개발' 카테고리의 다른 글
Hugging Face Upskill로 Claude CUDA 커널 오픈소스 모델 학습 가이드 (2026년 2월) (0) 2026.02.02 2026년 AI 에이전트 보안 위협과 다크 LLM 현황 분석: 기업의 대응 전략은? (0) 2026.02.01 NVIDIA Cosmos Policy 로봇 제어 AI 모델 기술 분석 및 활용 가이드 (2026년 1월) (0) 2026.01.30 Hugging Face Kernel Hub와 Upskill 도구를 활용한 CUDA 커널 개발 가이드 (2026년 1월) (0) 2026.01.29 DeepSeek V4 코딩 특화 AI 모델 출시 전망 및 기술 분석(2026년 2월) (1) 2026.01.26