UNO: 바이트댄스가開発した 다중 주제 조건부 이미지 생성 모델 57

小编 ·

UNO: 바이트댄스가開発した 다중 주제 조건부 이미지 생성 모델

UNO는 바이트댄스 연구팀이 개발한 다중 주제 조건부 이미지 생성 모델로, 디퓨전 트랜스포머의 인컨텍스트 생성 능력을 활용해 높은 일관성의 다중 주제 페어 데이터를 생성합니다.

UNO: 바이트댄스가開発した 다중 주제 조건부 이미지 생성 모델

UNO란 무엇인가요?

UNO는 바이트댄스 연구팀이 개발한 다중 피사체 조건부 이미지 생성 모델로, 확산 트랜스포머의 컨텍스트 생성 능력을 통해 높은 일관성을 가진 다중 피사체 페어 데이터를 생성합니다.

UNO의 핵심 특징

  • 다중 이미지 조건부 생성: 단일 피사체 및 다중 피사체 기반의 이미지 생성을 지원하며, 한 장 또는 여러 장의 참조 이미지를 바탕으로 새로운 이미지를 생성할 수 있습니다.

  • 점진적 교차 모달 정렬: 텍스트와 이미지 등 서로 다른 모달리티를 단계별로 정렬하여 생성 일관성을 높이며, 두 단계로 진행됩니다. 첫 번째 단계에서는 단일 피사체 컨텍스트 생성 데이터를 사용하여 사전 학습된 텍스트-이미지 모델을 미세 조정해 단일 피사체-이미지 모델로 만들고, 두 번째 단계에서는 생성된 다중 피사체 데이터 쌍에 대해 학습을 계속 진행합니다.

  • 범용 회전 위치 임베딩: 다양한 해상도와 화면 비율의 이미지 생성을 지원하며, 시각적 피사체 제어를 확장할 때 발생하는 속성 혼동 문제를 효과적으로 완화합니다.

UNO核心特点.webp

UNO의 핵심 메커니즘:

  • 점진적 교차 모달 정렬(Progressive Cross-Modal Alignment): 두 단계로 진행됩니다. 첫 번째 단계에서는 단일 피사체 컨텍스트 생성 데이터를 사용하여 사전 학습된 텍스트-이미지 모델을 미세 조정해 단일 피사체-이미지 모델로 만들고, 두 번째 단계에서는 생성된 다중 피사체 데이터 쌍에 대해 학습을 계속 진행합니다.

  • 범용 회전 위치 임베딩(Universal Rotary Position Embedding, UnoPE): 시각적 피사체 제어를 확장할 때 발생하는 속성 혼동 문제를 효과적으로 완화하며, 다양한 해상도와 화면 비율의 이미지 생성을 지원합니다.

UNO의 작동 원리

UNO는 확산 트랜스포머의 컨텍스트 생성 능력을 활용하여 높은 일관성을 가진 다중 피사체 페어 데이터를 생성합니다. 텍스트-이미지 모델에서 반복적으로 학습되며, 독자적인 점진적 교차 모달 정렬 및 범용 회전 위치 임베딩과 같은 메커니즘을 통해 단일 피사체 및 다중 피사체 기반 생성에서 높은 일관성과 제어 가능성을 동시에 구현합니다.

UNO工作原理.jpg

UNO 활용 시나리오

  • 단일 피사체 생성: 한 장의 참조 이미지를 바탕으로 이미지를 생성합니다. 예를 들어 시계 이미지 하나를 바탕으로 해변에 있는 시계 이미지를 생성할 수 있습니다.

  • 다중 피사체 생성: 여러 장의 참조 이미지를 바탕으로 이미지를 생성합니다. 예를 들어 인형 이미지와 수정 구슬 이미지를 참조 이미지로 사용하여 수정 구슬 안에 들어 있는 인형 이미지를 생성할 수 있습니다.

  • 컨텍스트 생성: 컨텍스트 프롬프트를 통해 높은 일관성을 가진 이미지를 생성합니다. 예를 들어 "빨간 파라솔이 있는 해변의 시계"라는 프롬프트와 시계 참조 이미지를 결합하여 설명에 부합하는 이미지를 생성합니다.

UNO 사용 방법

환경 설정:

  • 가상 환경을 생성하고 의존성을 설치합니다:

python -m venv uno_env
source uno_env/bin/activate
pip install -r requirements.txt
  • 모델 가중치 다운로드: 자동 다운로드(추론 스크립트 실행 시 코드가 자동으로 다운로드)하거나, huggingface-cli를 사용하여 수동으로 지정된 디렉터리에 가중치를 다운로드합니다.

추론 예시: 다음 명령어를 실행하여 이미지를 생성합니다:

python inference.py --prompt "A clock on the beach is under a red sun umbrella" --image_paths "assets/clock.png" --width 704 --height 704

학습: 학습 스크립트를 실행합니다:

accelerate launch train.py

관련 링크

프로젝트 홈페이지:https://bytedance.github.io/UNO

GitHub 저장소:https://github.com/bytedance/UNO

arXiv 논문:https://arxiv.org/abs/2504.02160

데모:https://huggingface.co/spaces/bytedance-research/UNO-FLUX