이미지 생성 가이드

MediaPipe 이미지 생성기 작업을 사용하면 텍스트 프롬프트를 기반으로 이미지를 생성할 수 있습니다. 이 작업에서는 텍스트 이미지 변환 모델을 사용하여 확산 기법을 통해 이미지를 생성합니다.

이 작업은 모델이 보강하고 생성을 위한 참조로 사용할 수 있는 선택적 조건 이미지와 함께 텍스트 프롬프트를 입력으로 받습니다. 컨디셔닝된 텍스트-이미지 생성에 관한 자세한 내용은 컨디셔닝된 텍스트-이미지 생성을 위한 기기 내 확산 플러그인을 참고하세요.

이미지 생성기는 학습 또는 재학습 중에 모델에 제공된 특정 개념을 기반으로 이미지를 생성할 수도 있습니다. 자세한 내용은 LoRA로 맞춤설정을 참고하세요.

시작하기

이 작업의 사용을 시작하려면 대상 플랫폼별 구현 가이드 중 하나를 따르세요. 다음 플랫폼별 가이드에서는 기본 모델을 사용하는 코드 예시 및 권장되는 구성 옵션을 통해 이 작업의 기본 구현을 안내합니다.

태스크 세부정보

이 섹션에서는 이 태스크의 기능, 입력, 출력 및 구성 옵션을 설명합니다.

기능

이미지 생성기를 사용하여 다음을 구현할 수 있습니다.

  1. 텍스트 이미지 생성 - 텍스트 프롬프트로 이미지를 생성합니다.
  2. 조건 이미지로 이미지 생성 - 텍스트 프롬프트와 참조 이미지를 사용하여 이미지를 생성합니다. 이미지 생성기는 ControlNet과 유사한 방식으로 조건 이미지를 사용합니다.
  3. LoRA 가중치를 사용한 이미지 생성 - 맞춤설정된 모델 가중치를 사용하여 텍스트 프롬프트로 특정 사람, 객체, 스타일의 이미지를 생성합니다.
작업 입력 작업 출력
이미지 생성기는 다음 입력을 허용합니다.
  • 텍스트 프롬프트
  • 시드
  • 생성 반복 수
  • 선택사항: 조건 이미지
이미지 생성기는 다음과 같은 결과를 출력합니다.
  • 입력을 기반으로 생성된 이미지입니다.
  • 선택사항: 생성된 이미지의 반복 스냅샷입니다.

구성 옵션

이 태스크에는 다음과 같은 구성 옵션이 있습니다.

옵션 이름 설명 값 범위
imageGeneratorModelDirectory 모델 가중치를 저장하는 이미지 생성기 모델 디렉터리 PATH
loraWeightsFilePath LoRA 가중치 파일로 경로를 설정합니다. 선택사항이며 모델이 LoRA로 맞춤설정된 경우에만 적용됩니다. PATH
errorListener 선택적 오류 리스너를 설정합니다. N/A

이 작업은 사용자가 작업 입력에 조건 이미지를 포함할 수 있도록 하는 플러그인 모델도 지원합니다. 이를 통해 기반 모델이 이를 보강하고 생성을 위한 참조로 사용할 수 있습니다. 이러한 상태 이미지는 얼굴 특징, 가장자리 윤곽선, 깊이 추정일 수 있으며, 모델은 이미지를 생성하기 위한 추가 컨텍스트와 정보로 사용합니다.

기반 모델에 플러그인 모델을 추가할 때 플러그인 옵션도 구성합니다. 얼굴 랜드마크 플러그인은 faceConditionOptions를 사용하고, Canny Edge 플러그인은 edgeConditionOptions를, Depth 플러그인은 depthConditionOptions를 사용합니다.

Canny Edge 옵션

edgeConditionOptions에서 다음 옵션을 구성합니다.

옵션 이름 설명 값 범위 기본값
threshold1 이력 절차의 첫 번째 임곗값입니다. Float 100
threshold2 이력 절차의 두 번째 임곗값입니다. Float 200
apertureSize Sobel 연산자의 조리개 크기입니다. 일반적인 범위는 3~7입니다. Integer 3
l2Gradient 기본 L1 norm 대신 이미지 경사 크기를 계산하는 데 L2 norm을 사용할지 여부입니다. BOOLEAN False
EdgePluginModelBaseOptions 플러그인 모델의 경로를 설정하는 BaseOptions 객체입니다. BaseOptions 객체 N/A

이러한 구성 옵션의 작동 방식에 대한 자세한 내용은 Canny Edge 감지기를 참조하세요.

얼굴 특징 옵션

faceConditionOptions에서 다음 옵션을 구성합니다.

옵션 이름 설명 값 범위 기본값
minFaceDetectionConfidence 얼굴 인식이 성공한 것으로 간주되기 위한 최소 신뢰도 점수입니다. Float [0.0,1.0] 0.5
minFacePresenceConfidence 얼굴 특징 감지에서 얼굴 인기척 점수의 최소 신뢰도 점수입니다. Float [0.0,1.0] 0.5
faceModelBaseOptions 조건 이미지를 만드는 모델의 경로를 설정하는 BaseOptions 객체입니다. BaseOptions 객체 N/A
FacePluginModelBaseOptions 플러그인 모델의 경로를 설정하는 BaseOptions 객체입니다. BaseOptions 객체 N/A

이러한 구성 옵션의 작동 방식에 관한 자세한 내용은 얼굴 랜드마크 작업을 참고하세요.

심도 옵션

depthConditionOptions에서 다음 옵션을 구성합니다.

옵션 이름 설명 값 범위 기본값
depthModelBaseOptions 조건 이미지를 만드는 모델의 경로를 설정하는 BaseOptions 객체입니다. BaseOptions 객체 N/A
depthPluginModelBaseOptions 플러그인 모델의 경로를 설정하는 BaseOptions 객체입니다. BaseOptions 객체 N/A

모델

이미지 생성기에는 확산 기술을 사용하여 새 이미지를 생성하는 텍스트 이미지 변환 AI 모델인 기반 모델이 필요합니다. 이 섹션에 나열된 기반 모델은 고급형 스마트폰에서 실행되도록 최적화된 경량 모델입니다.

플러그인 모델은 선택사항이며 기본 모델을 보완하므로 사용자가 보다 구체적인 이미지 생성을 위해 텍스트 프롬프트와 함께 추가 조건 이미지를 제공할 수 있습니다. LoRA 가중치를 사용하여 기반 모델을 맞춤설정하는 것은 객체, 사람, 스타일과 같은 특정 개념에 대해 기반 모델을 학습시키고 이를 생성된 이미지에 삽입하는 옵션입니다.

기반 모델

기반 모델은 텍스트 프롬프트에서 이미지를 생성하는 잠재 텍스트-이미지 확산 모델입니다. 이미지 생성기를 사용하려면 기반 모델이 다음 모델을 기반으로 runwayml/stable-diffusion-v1-5 EMA-only 모델 형식과 일치해야 합니다.

다음 기반 모델도 이미지 생성기와 호환됩니다.

기반 모델을 다운로드한 후 image_generator_converter를 사용하여 모델을 이미지 생성기에 적합한 기기별 형식으로 변환합니다.

필요한 종속 항목을 설치합니다.

$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py

convert.py 스크립트를 실행합니다.

$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>

플러그인 모델

이 섹션의 플러그인 모델은 Google에서 개발한 것으로 기반 모델과 함께 사용해야 합니다. 플러그인 모델을 사용하면 이미지 생성기가 텍스트 프롬프트와 함께 조건 이미지를 입력으로 허용하므로 생성된 이미지의 구조를 제어할 수 있습니다. 플러그인 모델은 특히 기기 내 확산을 위한 새로운 아키텍처를 통해 ControlNet과 유사한 기능을 제공합니다.

플러그인 모델은 기본 옵션에서 지정해야 하며 추가 모델 파일을 다운로드해야 할 수도 있습니다. 각 플러그인에는 상태 이미지에 관한 고유한 요구사항이 있으며 이미지 생성기로 생성할 수 있습니다.

Canny Edge 플러그인

Canny Edge 플러그인은 생성된 이미지의 원하는 가장자리를 개략적으로 보여주는 조건 이미지를 허용합니다. 기반 모델은 조건 이미지가 암시하는 가장자리를 사용하고 텍스트 프롬프트를 기반으로 새 이미지를 생성합니다. 이미지 생성기에는 조건 이미지를 만드는 기능이 내장되어 있으며 플러그인 모델만 다운로드하면 됩니다.

Canny Edge 플러그인 다운로드

Canny Edge 플러그인에는 다음 구성 옵션이 있습니다.

옵션 이름 설명 값 범위 기본값
threshold1 이력 절차의 첫 번째 임곗값입니다. Float 100
threshold2 이력 절차의 두 번째 임곗값입니다. Float 200
apertureSize Sobel 연산자의 조리개 크기입니다. 일반적인 범위는 3~7입니다. Integer 3
l2Gradient 기본 L1 norm 대신 이미지 경사 크기를 계산하는 데 L2 norm을 사용할지 여부입니다. BOOLEAN False
EdgePluginModelBaseOptions 플러그인 모델의 경로를 설정하는 BaseOptions 객체입니다. BaseOptions 객체 N/A

이러한 구성 옵션의 작동 방식에 대한 자세한 내용은 Canny Edge 감지기를 참조하세요.

얼굴 랜드마크 플러그인

얼굴 랜드마크 플러그인은 MediaPipe 얼굴 랜드마크의 출력을 조건 이미지로 허용합니다. 얼굴 랜드마크는 얼굴 특징의 존재와 위치를 매핑하는 단일 얼굴의 상세한 얼굴 메시를 제공합니다. 기반 모델은 상태 이미지에서 암시하는 얼굴 매핑을 사용하고 메시를 통해 새 얼굴을 생성합니다.

얼굴 랜드마크 플러그인 다운로드

얼굴 랜드마크 플러그인에는 상태 이미지를 만들려면 얼굴 랜드마크러 모델 번들도 필요합니다. 이 모델 번들은 얼굴 랜드마크러 작업에서 사용하는 것과 동일한 번들입니다.

얼굴 랜드마크 모델 번들 다운로드

얼굴 랜드마크 플러그인에는 다음 구성 옵션이 있습니다.

옵션 이름 설명 값 범위 기본값
minFaceDetectionConfidence 얼굴 인식이 성공한 것으로 간주되기 위한 최소 신뢰도 점수입니다. Float [0.0,1.0] 0.5
minFacePresenceConfidence 얼굴 특징 감지에서 얼굴 인기척 점수의 최소 신뢰도 점수입니다. Float [0.0,1.0] 0.5
faceModelBaseOptions 조건 이미지를 만드는 모델의 경로를 설정하는 BaseOptions 객체입니다. BaseOptions 객체 N/A
FacePluginModelBaseOptions 플러그인 모델의 경로를 설정하는 BaseOptions 객체입니다. BaseOptions 객체 N/A

이러한 구성 옵션의 작동 방식에 관한 자세한 내용은 얼굴 랜드마크 작업을 참고하세요.

Depth 플러그인

Depth 플러그인은 객체의 단안 깊이를 지정하는 조건 이미지를 허용합니다. 기반 모델은 조건 이미지를 사용하여 생성할 객체의 크기와 깊이를 추론하고 텍스트 프롬프트를 기반으로 새 이미지를 생성합니다.

Depth 플러그인 다운로드

깊이 플러그인에는 조건 이미지를 만들려면 깊이 추정 모델도 필요합니다.

심도 추정 모델 다운로드

Depth 플러그인에는 다음 구성 옵션이 포함되어 있습니다.

옵션 이름 설명 값 범위 기본값
depthModelBaseOptions 조건 이미지를 만드는 모델의 경로를 설정하는 BaseOptions 객체입니다. BaseOptions 객체 N/A
depthPluginModelBaseOptions 플러그인 모델의 경로를 설정하는 BaseOptions 객체입니다. BaseOptions 객체 N/A

LoRA를 사용한 맞춤설정

LoRA로 모델을 맞춤설정하면 이미지 생성기가 학습 중에 고유 토큰으로 식별되는 특정 개념을 기반으로 이미지를 생성할 수 있습니다. 학습 후 새로운 LoRA 가중치를 사용하면 모델이 텍스트 프롬프트에 토큰이 지정되면 새로운 개념의 이미지를 생성할 수 있습니다.

LoRA 가중치를 생성하려면 특정 객체, 사람 또는 스타일의 이미지를 기반으로 기반 모델을 학습시켜야 합니다. 그래야 모델이 새로운 개념을 인식하고 이미지 생성 시 적용할 수 있습니다. 특정 인물 및 얼굴의 이미지를 생성하기 위해 LoRa 가중치를 만드는 경우, 본인 얼굴 또는 권한이 부여된 사람들의 얼굴에만 이 솔루션을 사용하세요.

다음은 'monadikos Teapot' 토큰을 사용하여 DreamBooth 데이터 세트에서 찻주전자 이미지로 학습된 커스텀 모델의 출력입니다.

프롬프트: 거울 옆에 있는 모나디코스 찻주전자

맞춤설정된 모델은 프롬프트에서 토큰을 수신하고 LoRA 가중치를 표현하는 방법을 학습한 찻주전자를 삽입한 다음 프롬프트에서 요청한 대로 거울 옆에 이미지를 배치합니다.

Vertex AI를 사용한 LoRA

자세한 내용은 Vertex AI의 모델 가든을 사용하여 기반 모델에 LoRA 가중치를 적용하여 모델을 맞춤설정하는 맞춤설정 가이드를 참조하세요.