피드로 돌아가기
Introducing Modular Diffusers - Composable Building Blocks for Diffusion Pipelines
Hugging Face BlogHugging Face Blog
AI/ML

Introducing Modular Diffusers - Composable Building Blocks for Diffusion Pipelines

Hugging Face Diffusers가 모놀리식 DiffusionPipeline 대신 재조합 가능한 블록 기반 아키텍처로 전환해 커스텀 파이프라인 구성 시간을 단축

2026년 3월 5일9intermediate

Context

기존 DiffusionPipeline은 전체 파이프라인을 처음부터 작성해야 했으며, 텍스트 인코딩, 이미지 인코딩, 디노이징, 디코딩 등 개별 단계를 분리하거나 재조합하기 어려웠다. 특정 단계만 독립적으로 실행하거나 새로운 블록을 중간에 삽입하는 작업이 구조적으로 제한되었다.

Technical Solution

  • 블록 기반 구성으로 변경: 전체 파이프라인을 self-contained 블록들(text_encoder, vae_encoder, denoise, decode)로 분해하고 ModularPipeline 클래스로 조립 가능하게 설계
  • 동적 블록 추가/제거: sub_blocks.pop(), sub_blocks.insert() 메서드로 실행 시점에 블록을 제거하거나 삽입할 수 있으며, 나머지 블록들이 자동으로 재구성됨
  • 블록 독립 실행: 개별 블록을 .init_pipeline()으로 독립 파이프라인으로 변환해 특정 단계(예: 텍스트 임베딩 추출만)만 실행 가능
  • 커스텀 블록 정의 표준화: ModularPipelineBlocks를 상속해 expected_components, inputs, intermediate_outputs, call 메서드만 구현하면 자동으로 통합되는 규격화된 인터페이스 제공
  • 자동 데이터 흐름: 블록 간 입출력이 자동으로 연결되어 이전 블록의 출력이 다음 블록의 입력이 되고, 제공되지 않은 입력은 파이프라인 입력으로 자동 승격됨
  • Mellon 시각화 통합: 블록의 inputs, intermediate_outputs, expected_components 메타데이터를 자동 추출해 노드 UI를 생성하고 UI 코드 작성 없이 블록을 시각적으로 연결 가능

Key Takeaway

재사용 가능한 컴포넌트의 표준 인터페이스(입출력 스키마와 메타데이터)를 먼저 정의하면, 블록 조합 로직, 데이터 흐름 자동화, 시각화 UI를 모두 메타데이터만으로 자동 생성할 수 있다는 설계 원칙을 보여준다.


생성형 AI 모델 파이프라인을 개발하는 팀에서 DepthProcessorBlock 예제처럼 expected_components, inputs, intermediate_outputs, __call__을 정의한 블록 클래스를 작성하면, 기존 ControlNet 워크플로우에 동적으로 삽입할 수 있고 추가 통합 코드 없이 Mellon UI에서 즉시 시각화되는 효과를 얻을 수 있다.

원문 읽기