DALL-E 모델로 이미지 생성

Azure OpenAI Service에는 DALL-E라는 이미지 생성 모델이 포함되어 있습니다. 이 모델을 사용하여 원하는 이미지를 설명하는 자연어 프롬프트를 제출할 수 있으며, 모델은 제공한 설명을 기반으로 원본 이미지를 생성합니다.

이 연습에서는 DALL-E 버전 3 모델을 사용하여 자연어 프롬프트를 기반으로 이미지를 생성합니다.

이 연습은 약 25분 정도 소요됩니다.

Azure OpenAI 리소스 프로비전

Azure OpenAI를 사용하여 이미지를 생성하려면 먼저 Azure 구독에서 Azure OpenAI 리소스를 프로비전해야 합니다. 리소스는 DALL-E 모델이 지원되는 지역에 있어야 합니다.

  1. https://portal.azure.com에서 Azure Portal에 로그인합니다.
  2. 다음 설정을 사용하여 Azure OpenAI 리소스를 만듭니다.
    • 구독: DALL-E를 포함하여 Azure OpenAI 서비스에 대한 액세스가 승인된 Azure 구독 선택
    • 리소스 그룹: 리소스 그룹 선택 또는 만들기
    • 지역: 미국 동부** 또는 **스웨덴 중부*을 선택합니다.
    • 이름: ‘원하는 고유한 이름’**
    • 가격 책정 계층: 표준 S0

    * DALL-E 3 모델은 미국 동부스웨덴 중부 지역의 Azure OpenAI 서비스 리소스에서만 사용할 수 있습니다.

  3. 배포가 완료될 때까지 기다립니다. 그런 다음, Azure Portal에서 배포된 Azure OpenAI 리소스로 이동합니다.
  4. Azure OpenAI 리소스에 대한 개요 페이지에서 시작 섹션까지 아래로 스크롤하여 AI 파운드리 포털(이전에는 AI 스튜디오)로 이동하는 단추를 선택합니다.
  5. Azure OpenAI Foundry 의 왼쪽 창에서 배포 페이지를 선택하고 기존 모델 배포를 확인합니다. DALL-E 3에 대한 배포가 아직 없는 경우 다음 설정을 사용하여 dall-e-3 모델의 새 배포를 만듭니다.
    • 배포 이름: dalle3
    • 모델 버전: 기본 버전 사용
    • 배포 유형: 표준
    • 용량 단위: 1K
    • 콘텐츠 필터: 기본값
    • 동적 할당량 사용: 사용할 수 없음
  6. 배포가 되었으면 왼쪽 창의 이미지 페이지로 다시 이동합니다.

이미지 플레이그라운드에서 이미지 생성을 살펴봅니다.

Azure AI 파운드리 포털의 이미지 플레이그라운드를 사용하여 이미지 생성을 실험할 수 있습니다.

  1. 이미지 플레이그라운드 섹션에서 DALL-E 3 배포를 자동으로 선택해야 합니다. 선택되지 않은 경우 배포 드롭다운에서 선택합니다.
  2. 프롬프트 상자에 생성하려는 이미지에 대한 설명을 입력합니다. 예: An elephant on a skateboard 그런 다음 생성을 선택하고 생성된 이미지를 확인합니다.

  3. 보다 구체적인 설명을 제공하도록 프롬프트를 수정합니다. 예: An elephant on a skateboard in the style of Picasso. 그런 다음 새 이미지를 생성하고 결과를 검토합니다.

    두 개의 생성된 이미지가 있는 Azure AI 파운드리 포털의 이미지 플레이그라운드.

REST API를 사용하여 이미지 생성

Azure OpenAI 서비스는 DALL-E 모델에서 생성된 이미지를 포함하여 콘텐츠 생성을 위한 프롬프트를 제출하는 데 사용할 수 있는 REST API를 제공합니다.

Visual Studio Code에서 앱 개발 준비

이제 Azure OpenAI 서비스를 사용하여 이미지를 생성하는 사용자 지정 앱을 빌드하는 방법을 살펴보겠습니다. 여기서는 Visual Studio Code를 사용하여 앱을 개발합니다. 앱의 코드 파일은 GitHub 리포지토리에 제공되었습니다.

: mslearn-openai 리포지토리를 이미 복제한 경우 Visual Studio Code에서 엽니다. 그렇지 않은 경우에는 다음 단계에 따라 개발 환경에 복제합니다.

  1. Visual Studio Code 시작
  2. 팔레트를 열고(Shift+Ctrl+P) Git: Clone 명령을 실행하여 https://github.com/MicrosoftLearning/mslearn-openai 리포지토리를 로컬 폴더(아무 폴더나 관계없음)에 복제합니다.
  3. 리포지토리가 복제되면 Visual Studio Code에서 폴더를 엽니다.

    참고: Visual Studio Code에서 열려는 코드를 신뢰하라는 팝업 메시지가 표시되면 팝업에서 예, 작성자를 신뢰합니다. 옵션을 클릭합니다.

  4. 리포지토리의 C# 코드 프로젝트를 지원하는 추가 파일이 설치되는 동안 기다립니다.

    참고: 빌드 및 디버깅에 필요한 자산을 추가하라는 메시지가 표시되면 나중에를 선택합니다.

애플리케이션 사용

C# 및 Python용 애플리케이션이 모두 제공되었습니다. 두 앱 모두 동일한 기능을 제공합니다. 먼저, Azure OpenAI 리소스에 대한 엔드포인트와 키를 앱의 구성 파일에 추가합니다.

  1. Visual Studio Code의 탐색기 창에서 Labfiles/05-image-generation 폴더를 찾아 언어 선택에 따라 CSharp 또는 Python 폴더를 확장합니다. 각 폴더에는 Azure OpenAI 기능을 통합할 앱에 대한 언어별 파일이 포함되어 있습니다.
  2. 탐색기 창의 CSharp 또는 Python 폴더에서 기본 설정 언어에 대한 구성 파일을 엽니다.

    • C#: appsettings.json
    • Python: .env
  3. 만든 Azure OpenAI 리소스의 엔드포인트를 포함하도록 구성 값을 업데이트합니다(Azure Portal의 Azure OpenAI 리소스에 대한 키 및 엔드포인트 페이지에서 사용 가능).
  4. 구성 파일을 저장합니다.

애플리케이션 코드 보기

이제 REST API를 호출하고 이미지를 생성하는 데 사용되는 코드를 탐색할 준비가 되었습니다.

  1. 탐색기 창에서 애플리케이션의 기본 코드 파일을 선택합니다.

    • C#: Program.cs
    • Python: generate-image.py
  2. 파일에 포함된 코드를 검토하고 다음 주요 기능을 확인합니다.

    • 이 코드는 헤더에 서비스 키를 포함하여 서비스 엔드포인트에 https 요청을 보냅니다. 이 두 값은 모두 구성 파일에서 가져옵니다.
    • 요청에는 이미지 기반 프롬프트, 생성할 이미지 수, 생성된 이미지 크기 등 일부 매개 변수가 포함됩니다.
    • 응답에는 DALL-E 모델이 사용자가 제공한 프롬프트에서 추정하여 더 설명적으로 표현한 수정된 프롬프트와 생성된 이미지의 URL이 포함됩니다.

    중요: 권장 되는 dalle3 이외의 배포 이름을 지정한 경우 배포 이름을 사용하도록 코드를 업데이트해야 합니다.

앱 실행

이제 코드를 검토했으므로 코드를 실행하고 일부 이미지를 생성할 차례입니다.

  1. 코드 파일이 포함된 CSharp 또는 Python 폴더를 마우스 오른쪽 단추로 클릭하고 통합 터미널을 엽니다. 그런 다음 적절한 명령을 입력하여 애플리케이션을 실행합니다.

    C#

    dotnet run
    

    Python

    pip install requests
    python generate-image.py
    
  2. 메시지가 표시되면 이미지에 대한 설명을 입력합니다. 예: 연을 날리는 기린.

  3. 이미지가 생성될 때까지 기다립니다. 하이퍼링크가 터미널 창에 표시됩니다. 그런 다음 하이퍼링크를 선택하여 새 브라우저 탭을 열고 생성된 이미지를 검토합니다.

    : 앱이 응답을 반환하지 않으면 잠시 기다렸다가 다시 시도합니다. 새로 배포된 리소스를 사용할 수 있게 되기까지 최대 5분이 걸릴 수 있습니다.

  4. 생성된 이미지가 포함된 브라우저 탭을 닫고 앱을 다시 실행하여 다른 프롬프트로 새 이미지를 생성합니다.

정리

Azure OpenAI 리소스 사용이 완료되면 Azure Portalhttps://portal.azure.com에서 리소스를 삭제해야 합니다.