MediaPipe 이미지 생성기 작업을 사용하면 텍스트 프롬프트를 기반으로 이미지를 생성할 수 있습니다. 이 작업에서는 텍스트 이미지 변환 모델을 사용하여 확산 기법을 통해 이미지를 생성합니다.
이 태스크는 텍스트 프롬프트를 입력으로 받으며, 모델이 보강하여 생성의 참조로 사용할 수 있는 조건 이미지(선택사항)도 받습니다. 조건부 텍스트 이미지 변환 생성에 관한 자세한 내용은 조건부 텍스트 이미지 변환 생성을 위한 온디바이스 확산 플러그인을 참고하세요.
이미지 생성기는 학습 또는 재학습 중에 모델에 제공된 특정 개념을 기반으로 이미지를 생성할 수도 있습니다. 자세한 내용은 LoRA로 맞춤설정을 참고하세요.
시작하기
대상 플랫폼에 관한 다음 구현 가이드 중 하나에 따라 이 작업을 시작합니다. 다음 플랫폼별 가이드에서는 기본 모델과 권장 구성 옵션을 사용하는 코드 예시를 통해 이 작업의 기본 구현을 안내합니다.
태스크 세부정보
이 섹션에서는 이 태스크의 기능, 입력, 출력, 구성 옵션을 설명합니다.
기능
이미지 생성기를 사용하여 다음을 구현할 수 있습니다.
- 텍스트 이미지 변환 생성: 텍스트 프롬프트로 이미지를 생성합니다.
- 조건 이미지를 사용한 이미지 생성 - 텍스트 프롬프트와 참조 이미지를 사용하여 이미지를 생성합니다. 이미지 생성기는 ControlNet과 유사한 방식으로 조건 이미지를 사용합니다.
- LoRA 가중치를 사용한 이미지 생성: 맞춤설정된 모델 가중치를 사용하여 텍스트 프롬프트로 특정 인물, 물체, 스타일의 이미지를 생성합니다.
태스크 입력 | 태스크 출력 |
---|---|
이미지 생성기는 다음 입력을 허용합니다.
|
이미지 생성기는 다음과 같은 결과를 출력합니다.
|
구성 옵션
이 태스크에는 다음과 같은 구성 옵션이 있습니다.
옵션 이름 | 설명 | 값 범위 |
---|---|---|
imageGeneratorModelDirectory |
모델 가중치를 저장하는 이미지 생성기 모델 디렉터리입니다. | PATH |
loraWeightsFilePath |
LoRA 가중치 파일의 경로를 설정합니다. 선택사항이며 LoRA로 모델이 맞춤설정된 경우에만 적용됩니다. | PATH |
errorListener |
선택적 오류 리스너를 설정합니다. | N/A |
이 태스크는 플러그인 모델도 지원합니다. 이를 통해 사용자는 태스크 입력에 조건 이미지를 포함할 수 있으며, 기반 모델은 이를 보강하고 생성의 참조로 사용할 수 있습니다. 이러한 조건 이미지는 얼굴 지형지물, 가장자리 윤곽선, 깊이 추정치일 수 있으며, 모델은 이러한 이미지를 이미지를 생성하기 위한 추가 컨텍스트 및 정보로 사용합니다.
기반 모델에 플러그인 모델을 추가할 때는 플러그인 옵션도 구성합니다. 얼굴 지형지물 플러그인은 faceConditionOptions
를 사용하고, Canny 가장자리 플러그인은 edgeConditionOptions
를 사용하며, 깊이 플러그인은 depthConditionOptions
를 사용합니다.
Canny 가장자리 옵션
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 가장자리 검출기를 참고하세요.
얼굴 특징 옵션
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 플러그인에는 다음과 같은 구성 옵션이 포함됩니다.
옵션 이름 | 설명 | 값 범위 | 기본값 |
---|---|---|---|
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 가장자리 검출기를 참고하세요.
얼굴 특징 플러그인
얼굴 특징 플러그인은 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 추정 모델이 필요합니다.
Depth 플러그인에는 다음과 같은 구성 옵션이 포함됩니다.
옵션 이름 | 설명 | 값 범위 | 기본값 |
---|---|---|---|
depthModelBaseOptions |
조건 이미지를 만드는 모델의 경로를 설정하는 BaseOptions 객체입니다. |
BaseOptions 객체 |
N/A |
depthPluginModelBaseOptions |
플러그인 모델의 경로를 설정하는 BaseOptions 객체입니다. |
BaseOptions 객체 |
N/A |
LoRA를 사용한 맞춤설정
LoRA로 모델을 맞춤설정하면 이미지 생성기가 학습 중에 고유한 토큰으로 식별되는 특정 개념을 기반으로 이미지를 생성할 수 있습니다. 학습 후 새로운 LoRA 가중치를 사용하면 모델은 텍스트 프롬프트에 토큰이 지정될 때 새 개념의 이미지를 생성할 수 있습니다.
LoRA 가중치를 만들려면 특정 객체, 사람 또는 스타일의 이미지에 대해 기반 모델을 학습해야 합니다. 그러면 모델이 새로운 개념을 인식하고 이미지를 생성할 때 이를 적용할 수 있습니다. 특정 사용자 및 얼굴의 이미지를 생성하기 위해 LoRa 가중치를 만드는 경우 이 솔루션을 본인의 얼굴이나 본인에게 권한을 부여한 사용자의 얼굴에만 사용합니다.
다음은 DreamBooth 데이터 세트의 찻주전자 이미지를 토큰 'monadikos teapot'을 사용하여 학습한 맞춤 모델의 출력입니다.
프롬프트: 거울 옆에 있는 모나디코스 주전자
맞춤설정된 모델은 프롬프트에서 토큰을 수신하고 LoRA 가중치에서 묘사하는 법을 학습한 주전자를 삽입한 후 프롬프트에 요청된 대로 거울 옆에 이미지를 배치합니다.
자세한 내용은 Vertex AI의 Model Garden을 사용하여 기반 모델에 LoRA 가중치를 적용하여 모델을 맞춤설정하는 맞춤설정 가이드를 참고하세요.