Hugging Face Modular Diffusers 릴리스

Hugging Face는 재사용 가능하고 독립적인 블록을 조합하여 확산 파이프라인을 구축할 수 있는 프레임워크인 Modular Diffusers를 소개했습니다. 이 접근 방식은 개발자가 텍스트 인코딩, 이미지 인코딩, 디노이징, 디코딩과 같은 구성 요소를 자유롭게 혼합·매칭하여 전체 파이프라인을 처음부터 작성하지 않고도 맞춤형 워크플로우를 만들 수 있게 합니다.

조합 가능한 파이프라인 아키텍처

Modular Diffusers는 기존 DiffusionPipeline 클래스를 보완하여 ModularPipeline 클래스를 도입합니다. 이 아키텍처는 워크플로우 정의와 모델 가중치 로딩을 분리하여 메모리 관리와 파이프라인 수정에 더 큰 유연성을 제공합니다.

핵심 운영 워크플로우

  • Workflow Definition: ModularPipeline.from_pretrained()를 사용하여 사용자는 가중치를 즉시 로드하지 않고 블록의 순서를 정의합니다.
  • Weight Loading: .load_components() 메서드를 사용해 데이터 타입, 양자화 등을 설정하고 실제 모델 가중치를 로드합니다.
  • Block Manipulation: 파이프라인이 유연한 블록으로 구성되므로 사용자는 블록을 검사·추가·제거·교체할 수 있습니다. 예를 들어, 텍스트 인코더 블록을 파이프라인에서 꺼내어 .init_pipeline()을 사용해 독립적인 파이프라인으로 실행할 수 있습니다.

맞춤 블록 개발

사용자는 ModularPipelineBlocks를 상속하는 Python 클래스를 정의하여 맞춤 블록을 만들 수 있습니다. 맞춤 블록은 다음 세 가지 주요 속성을 지정해야 합니다:

  1. expected_components: 필요한 모델과 해당 모델의 기본 Hugging Face Hub 리포지토리 경로를 정의합니다.
  2. inputs: 필수 및 선택 입력 파라미터를 정의합니다.
  3. intermediate_outputs: 블록이 하위 구성 요소에 제공하는 데이터를 정의합니다.

계산 로직은 __call__ 메서드 내에서 처리됩니다. 정의가 완료되면 이러한 블록을 기존 워크플로우에 삽입할 수 있습니다. 예를 들어, Depth Anything V2를 활용하는 DepthProcessorBlock을 ControlNet 워크플로우의 시작에 삽입하면, 해당 출력이 자동으로 이후 블록에 전달됩니다.

모듈형 리포지토리 및 허브 통합

Modular Diffusers는 "Modular Repositories"를 도입하여, 리포지토리가 모든 가중치를 로컬에 보관하는 대신 원본 모델 리포지토리의 구성 요소를 참조하도록 합니다. 이는 modular_model_index.json 파일을 통해 관리됩니다.

맞춤 블록은 Hugging Face Hub에 공개하고 trust_remote_code=True 옵션으로 다른 사용자가 로드할 수 있습니다. 이 생태계는 커뮤니티가 모델 가중치뿐만 아니라 모듈형 파이프라인 내 블록 실행에 필요한 특정 Python 로직도 공유할 수 있게 합니다.

커뮤니티 구현

Modular Diffusers 프레임워크를 사용하여 이미 여러 고성능 파이프라인이 구현되었습니다:

  • Krea Realtime Video: Wan 2.1에서 증류된 14B 파라미터 모델로, 단일 B200 GPU에서 11fps를 달성하며 텍스트‑투‑비디오와 스트리밍 비디오‑투‑비디오를 지원합니다.
  • Waypoint-1: Overworld에서 제공하는 2.3B 파라미터 실시간 확산 월드 모델로, 텍스트 프롬프트와 제어 입력을 통해 인터랙티브한 환경을 생성합니다.

Mellon과의 통합

Modular Diffusers는 노드 기반 시각 워크플로우 인터페이스인 Mellon과 통합됩니다. 이 통합은 모듈 블록(inputs, intermediate_outputs, expected_components)의 일관된 API 덕분에 Mellon이 맞춤 UI 코드를 작성하지 않아도 블록에 대한 사용자 인터페이스를 자동으로 생성할 수 있게 합니다.

Mellon 통합의 주요 기능은 다음과 같습니다:

  • Dynamic Nodes: 선택된 모델에 따라 인터페이스가 자동으로 조정되는 노드.
  • Single-Node Workflows: 전체 모듈 파이프라인을 하나의 노드로 축소하여 캔버스 혼잡을 줄이는 기능.
  • Hub Integration: Hub에 공개된 맞춤 블록을 repo_id를 통해 Mellon에 로드하고 자동으로 설정할 수 있습니다.

Sources