본문 바로가기

IT/개발

chatGPT, OpenAI API, DALLI-E 모델을 이용한 이미지 생성 기초

반응형

 

1.1     Image Models

 

 

1.1.1  DALL-E 모델 설명

 

DALL-E는 자연어로 된 설명을 바탕으로 사실적인 이미지와 예술 작품을 만들 수 있는 인공지능 스템

 

 

-       dall-e-3 DALL-E : 3 2023년 11월에 출시된 최신 DALL-E 모델

-       DALL-E-2 2022년 11월에 출시된 이전 DALL-E 모델

 

 

-       텍스트 프롬프트를 기반으로 처음부터 이미지 생성(DALL-E 3 DALL-E 2)

-       새 텍스트 프롬프트에 따라 모델이 기존 이미지의 일부 영역을 대체하도록 하여 이미지의 편집된 버전 생성(DALL-E 2만 해당)

-       기존 이미지의 변형 만들기(DALL-E 2만 해당)

-       dall-e-2의 경우 256x256, 512x512, 1024x1024 지원, dall-e-3 1024x1024, 1792x1024, 1024x1792 지원

 

참고 : DALL-E 3가 달라진 점 상세

What's new with DALL·E-3? | OpenAI Cookbook

https://cookbook.openai.com/articles/what_is_new_with_dalle_3

 

 

1.2     Image Object

 

OpenAI API에 의해 생성된 이미지의 URL이나 콘텐츠 객체를 나타내며 지정한 응답 형식에 따라 다음과 같은 형태로 표현됨

 

{

  "url": "...",

  "revised_prompt": "..."

}

  

-       b64_json 문자열 : 응답 형식이 b64_json인 경우 생성된 이미지의 base64로 인코딩된 JSON

-       url 문자열 : 응답_형식이 url(기본값)인 경우 생성된 이미지의 URL

-       개정된_프롬프트 문자열 : 프롬프트에 수정 사항이 있는 경우 이미지를 생성하는 데 사용된 프롬프트

 

 

1.3     이미지 생성

 

1.3.1  API 설명

 

기능

프롬프트가 지정된 이미지를 생성

 

사용법 :

 

Request

client.images.generate(

  model="dall-e-3",

  prompt="A cute baby sea otter",

  n=1,

  size="1024x1024"

)

 

Response

{

  "created": 1589478378,

  "data": [

    {

      "url": "https://..."

    },

    {

      "url": "https://..."

    }

  ]

}

 

파라메터 :

 

-       Prompt :  dall-e-2의 경우 1000, dall-e-3의 경우 4000

-       n :  생성할 이미지 수. 1에서 10 사이, dall-e-3의 경우 n=1만 지원

-       quality : 생성될 이미지의 화질 HD dall-e-3에서만 지원

 

 

 

-       response_format : 생성된 이미지가 반환 형식. URL 또는 b64_json

-       size : 생성된 이미지의 크기. dall-e-2의 경우 256x256, 512x512, 1024x1024 지원, dall-e-3 1024x1024, 1792x1024, 1024x1792 지원

-       style : 생성 이미지 스타일. vivid는 사실적,선명 natural : 자연스러움, dall-e-3에서만 지원

 

 

 

1.3.2  프롬프트로 이미지 생성 해보기

 

고려사항

 

DALL-E 3을 사용할 때 이미지의 크기는 1024x1024, 1024x1792 또는 1792x1024 픽셀

기본적으로 이미지는 표준 화질로 생성되지만 DALL-E 3을 사용할 때는 화질을 HD로 설정할 수 있음

정사각형의 표준 화질 이미지가 가장 빠르게 생성됨

 

DALL-E 3을 사용하면 한 번에 1개의 이미지를 요청가능

DALL-E 2를 사용하면 최대 10개의 이미지를 요청가능

 

from openai import OpenAI

client = OpenAI()

 

response = client.images.generate(

  model="dall-e-3",

  prompt="a white siamese cat",

  size="1024x1024",

  quality="standard",  

  n=1,

)

 

image_url = response.data[0].url

print(image_url)

 

 

response = client.images.generate(

  model="dall-e-3",

  prompt="신나게 달리고 있는 파란색 강아지와 뒤를 따라가는 노란색 고양이를 그려줘",

  size="1024x1024",

  quality="hd",  

  n=1,

  response_format="b64_json"

)

 

image_url = response.data[0].url

print(image_url)

 

 

#이미지 다운로드 추가

import requests

 

save_path = "dog.png"

response = requests.get(image_url, stream=True)

if response.status_code == 200:

    with open(save_path, 'wb') as file:

        for chunk in response.iter_content(chunk_size=128):

            file.write(chunk)

    print(f"이미지 다운로드 완료: {save_path}")

else:

    print(f"이미지 다운로드 실패. HTTP 상태 코드: {response.status_code}")

 

 

생성된 이미지를 수정하거나 유사이미지를 생성하고자 할때 다음을 참고

 

https://yongeekd01.tistory.com/145

 

DALLI-E 모델을 이용한 이미지 수정 및 유사이미지 만들기(chatGPT, OpenAI API)

DALLI-E 모델 설명 참조 https://yongeekd01.tistory.com/144 chatGPT, OpenAI API, DALLI-E 모델을 이용한 이미지 생성 기초 1.1 Image Models 1.1.1 DALL-E 모델 설명 DALL-E는 자연어로 된 설명을 바탕으로 사실적인 이미지와

yongeekd01.tistory.com

 

참고  : 

https://platform.openai.com/docs/api-reference/images

 

 

 

반응형