View a markdown version of this page

확산 모델을 사용하여 일괄적으로 이미지 생성 - 기한 클라우드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

확산 모델을 사용하여 일괄적으로 이미지 생성

이 자습서에서는 확산 모델을 사용하여 프롬프트의 JSONL 파일에서 대량 배치 이미지 생성을 실행하는 방법을 안내합니다. GitHub의 text-to-image 배치 작업 번들을 Deadline Cloud 팜의 GPU 플릿에 제출합니다. 기본 모델은 Hugging Face의 FLUX.2 Klein 4B입니다.이 모델은 Apache 2.0 라이선스 부여, 비동기화, 4단계로 확장되며 약 13GB의 비디오 RAM(VRAM)이 필요합니다.

JSONL에서 선택한 각 줄은 생성 작업이 됩니다. 스케줄러는 사용 가능한 GPU 작업자 간에 작업을 분산하며, 각 작업자는 확산 파이프라인을 한 번 로드하고 실행하는 모든 작업에 재사용합니다. 라인에 caption 필드가 있거나 vLLM 배치 추론 번들의 출력과 연결된 generated_text 필드가 있는 경우 작업은 생성된 이미지 위에 텍스트를 명확한 오타로 합성합니다. 캡션이 없는 선은 순수 이미지를 생성하므로 번들은 일반 text-to-image 배치 생성기와 동일하게 작동합니다.

예상 시간: 팜 설정을 포함하여 30~60분. 또한 첫 번째 실행은 작업자당 약 13GB의 모델 가중치를 다운로드합니다.

이 자습서를 실행하면 작업을 처리하는 GPU 작업자 인스턴스에 대한 요금이 발생합니다.

개요

이 자습서를 완료하려면 다음 단계를 따르세요.

  1. 팜을 설정합니다.

  2. 입력 파일을 준비합니다.

  3. 이미지 생성 작업을 제출합니다.

  4. 갤러리를 다운로드하고 찾습니다.

  5. 리소스를 정리합니다.

팜 설정

NVIDIA GPUs와 최소 32GB RAM이 있는 서비스 관리형 플릿과 CondaPackagesCondaChannels 작업 파라미터를 읽는 conda 대기열 환경이 연결된 대기열이 필요합니다. FLUX.2 Klein 4B는 CPU 오프로드로 인해 16GB 이상의 GPUs(예: L4 또는 A10G)에 편안하게 맞습니다.

호환되는 팜을 가져오는 가장 빠른 방법은 vLLM 배치 추론 번들이 사용하는 것과 동일한 CloudFormation 템플릿인 GitHub에 CUDA 팜 템플릿을 배포하는 것입니다. 스택이에 도달하면 새 팜을 사용하도록 Deadline Cloud CLI를 CREATE_COMPLETE구성합니다.

deadline config set defaults.farm_id FarmId-from-stack-outputs deadline config set defaults.queue_id CUDAQueueId-from-stack-outputs
참고

번들에는 모든 세션에서 대기열의 conda 환경 위에 git에서 PyTorch와 최신 디퓨저 라이브러리를 설치하는 InstallDeps 작업 환경이 포함되어 있으며 캡션 오버레이에 대해 4개의 작은 Google 글꼴을 다운로드합니다. 최초 사용 시 작업자당 30~90초의 추가 설정 시간과 최초 실행 시 모델 다운로드가 예상됩니다. 플릿이 네트워크 제한 VPC에서 실행되는 경우 종속성을 사용자 지정 AMI 또는 conda 채널로 미리 베이크하거나 송신을 열어야 합니다.

입력 파일 준비

입력은 줄당 하나의 JSON 객체가 있는 JSONL 파일입니다. 각 줄에는 vLLM 배치 추론 번들의 출력과 연결된 prompt 필드 또는 generated_text 필드가 있어야 합니다.

{"prompt": "A golden hour photo of a sourdough loaf on a linen-covered table", "id": "loaf_01"} {"prompt": "A bakery storefront at sunrise, photorealistic", "caption": "OPEN AT DAWN", "id": "shop_01"} {"prompt": "Write a slogan for sourdough", "id": "001", "generated_text": "Real grain. Real fermentation. Real you.", "style": "rustic flat lay, warm tones"}

선택적 행별 필드에는 오버레이 텍스트에 caption 대한가 포함되어 작업 수준 스타일 접미사 , widthfont, 및 heightsteps를 재정의style합니다seed. 번들에는 vLLM 배치 번들과 동일한 제로 종속성 프롬프트 빌더 도구가 포함되어 있습니다. tools/prompt_builder.html를 열어 입력 파일을 빌드하고, 끌어서 놓아 JSONL을 가져오고, 프롬프트별 재정의를 추가합니다.

번들 sample_prompts.jsonl 파일은 vLLM 배치 추론 번들에서 생성된 베이커리 슬로건인 10-이미지 베이커리 캠페인 데모로, 재현 가능한 시각적 객체를 위해 스타일 힌트가 계층화되어 있습니다.

이미지 생성 작업 제출

GUI 제출자와 함께 제출하려면
  1. text_to_image_batch 번들 디렉터리에서 제출자를 엽니다.

    deadline bundle gui-submit .
  2. 입력 JSONL 파일을 선택합니다. 베이커리 캠페인 데모를 sample_prompts.jsonl 사용해 보세요.

  3. 프롬프트 범위(예: 처음 10개 프롬프트의 1-10 경우)를 설정하고 출력 디렉터리를 선택합니다.

  4. 선택적으로 StyleSuffix, 너비높이를 조정합니다. JSONL에 캡션 또는 슬로건이 있는 경우 오버레이 캡션을 로 두거나 순수 이미지 생성을 false 위해 로 설정합니다. true

  5. 제출을 선택합니다.

또는 CLI를 사용하여 제출합니다.

deadline bundle submit . \ --parameter InputFile=$PWD/sample_prompts.jsonl \ --parameter Prompts=1-10 \ --parameter OutputDir=$PWD/output

PromptsChunkSize 파라미터는 Deadline Cloud 작업 청킹 기능을 사용하여 vLLM 배치 추론 번들과 동일한 방식으로 작동합니다. 자세한 내용은 작업 템플릿에 대한 작업 청킹 단원을 참조하십시오. ModelName 파라미터는 SDXL Turbo 및 Stable Diffusion 3.5를 포함하여 디퓨저 라이브러리가 로드할 수 있는 모든 것을 허용합니다. 전체 파라미터 목록과 다른 모델의 설정은 GitHub의 샘플 README에서 파라미터 표를 참조하세요.

갤러리 다운로드 및 찾아보기

결과를 다운로드하고 찾아보려면
  1. 작업이 완료되면 제출 시 사용한 디렉터리에서 다운로드 명령을 실행하여 OutputDir 경로가 동일한 위치로 확인되도록 합니다.

    deadline job download-output --job-id job-id
  2. 모든 아티팩트는 로 설정한 경로의 output/ 하위 디렉터리 아래에 있습니다OutputDir. 원시 PNGs는에 output/images/있고, 결합된 메타데이터는에 있으며output/output.jsonl, 검색 및 CSV 내보내기가 가능한 정적 갤러리 뷰어output/gallery.html입니다.

  3. 직접 열 때 갤러리의 이미지가 로드되지 않는 경우 file:// URLs에 대한 브라우저 보안 제한gallery.html입니다. 대신 디렉터리를 제공합니다.

    cd OutputDir/output && python3 -m http.server 8080 # open http://localhost:8080/gallery.html

vLLM 배치 추론의 체인

클래식 흐름은이 번들을 vLLM 배치 추론 번들과 페어링합니다.

  1. vLLM 배치 추론 번들을 사용하여 슬로건, 캡션, 장면 설명 또는 alt-text 등의 텍스트를 생성합니다. 출력은 한 줄에 generated_text 필드가 output.jsonl 있습니다. vLLM을 사용하여 배치 LLM 추론 실행을(를) 참조하세요.

  2. (선택 사항)를 열고tools/prompt_builder.html,에 드롭output.jsonl하고, 프롬프트별 캡션, 스타일 또는 시각적 설명을 추가 또는 편집하고, 다시 내보냅니다.

  3. JSONL을 로 사용하여이 번들을 제출합니다InputFile. 작업당 스크립트는 자동으로를 오버레이 캡션generated_text으로 사용합니다.

줄에 generated_text 슬로건과 원래 LLM가 모두 있는 경우 prompt작업 스크립트는 슬로건이 너무 추상적이어서 모델에 구체적인 주제를 제공할 수 없기 때문에 요청에서 주제를 가져와 확산 모델의 시각적 프롬프트로 사용하려고 합니다. 작업자는 잘못된 추출을 발견할 수 있도록 작업당 시각적 프롬프트 소스를 로깅합니다.

정리

지속적인 요금을 방지하려면이 자습서를 위해 생성한 리소스를 정리하십시오.

자습서 리소스를 정리하려면
  1. CUDA 팜 CloudFormation 템플릿을 배포한 경우 CloudFormation 콘솔에서 CloudFormation 스택을 삭제합니다.

  2. 기존 팜을 사용하고이 자습서를 위한 GPU 플릿을 생성한 경우 해당 플릿을 중지하거나 삭제합니다. 기존 공유 플릿을 사용한 경우 그대로 둡니다.

  3. 로컬 출력 파일이 더 이상 필요하지 않은 경우 제거합니다.

다음 리소스는 추가 정보를 제공합니다.