[Python] ChatGPT APIを使ってみる(画像生成編)

Python

こちらの記事でPythonでChatGPT APIを使ってみるところまで解説しました。

本記事はテキストの生成ではなく、画像を生成してみるところまでを解説します。

ChatGPT APIを使えるようにする

こちらの記事に従ってChatGPT APIを使えるようにします。

ChatGPT APIを使って画像を生成する

openaiパッケージとrequestsパッケージを利用しますので、事前にpipコマンドでインストールしておきます。

> pip install openai
Collecting openai
  Downloading openai-1.54.3-py3-none-any.whl.metadata (24 kB)
Collecting anyio<5,>=3.5.0 (from openai)
  Downloading anyio-4.6.2.post1-py3-none-any.whl.metadata (4.7 kB)
Collecting distro<2,>=1.7.0 (from openai)
  Downloading distro-1.9.0-py3-none-any.whl.metadata (6.8 kB)
  :
Installing collected packages: sniffio, pydantic-core, jiter, idna, h11, distro, colorama, certifi, annotated-types, tqdm, pydantic, httpcore, anyio, httpx, openai
Successfully installed annotated-types-0.7.0 anyio-4.6.2.post1 certifi-2024.8.30 colorama-0.4.6 distro-1.9.0 h11-0.14.0 httpcore-1.0.6 httpx-0.27.2 idna-3.10 jiter-0.7.0 openai-1.54.3 pydantic-2.9.2 pydantic-core-2.23.4 sniffio-1.3.1 tqdm-4.67.0

> pip install requests
Collecting requests
  Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting charset-normalizer<4,>=2 (from requests)
  Downloading charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl.metadata (36 kB)
  :
Installing collected packages: urllib3, charset-normalizer, requests
Successfully installed charset-normalizer-3.4.1 requests-2.32.3 urllib3-2.3.0

スクリプト全体

簡単なサンプルコードを載せておきます。
ここでは「chatgpt_image.py」ファイルに保存したとします。

import requests
from openai import OpenAI

if __name__ == "__main__":
    client = OpenAI(api_key="XXXXXXXX")

    prompt = "毛布にくるまって寝ている猫の画像を生成して"

    response =  client.images.generate(
        model  = "dall-e-3",
        prompt = prompt,
        n      = 1,
        size   = "1024x1024"
    )

    image_url = response.data[0].url
    image_data = requests.get(image_url).content

    with open("chatgpt-genimage.png", "wb") as f:
        f.write(image_data)

スクリプト解説

簡単にスクリプトを解説していきます。

解説
    client = OpenAI(api_key="XXXXXXXX")

api_key は取得したSECRET KEYに置き換えてください。

解説
    prompt = "毛布にくるまって寝ている猫の画像を生成して"

ChatGPTに生成して欲しい画像をテキストでまとめます。
具体的に細かく指定することで、期待した画像を生成しやすくなります。

解説
    response =  client.images.generate(
        model  = "dall-e-3",
        prompt = prompt,
        n      = 1,
        size   = "1024x1024"
    )

画像生成のためのAIモデルの指定や、生成する枚数とサイズを指定します。
モデルによって、生成できるサイズに制限がありますので注意してください。
選択できるモデルについては、こちらのページの「画像モデル」が参考になります。

APIの詳細については、本家サイトのImage generationを参照ください。

解説
    image_url = response.data[0].url
    image_data = requests.get(image_url).content

    with open("chatgpt-genimage.png", "wb") as f:
        f.write(image_data)

ChatGPTで生成した画像データを「chatgpt-genimage.png」ファイルに保存します。

実行結果

chatgpt_image.py を実行することで、chatgpt-genimage.pngファイルが生成されます。

python chatgpt_image.py

本記事では猫の画像を生成してみました。
実行する度に新たな画像が生成されますので、自分の気に入る画像になるまで繰り返し実行できます。
ただし、モデルによって消費されるトークン数が異なりますので、消費金額にはご注意ください。

まとめ

ChatGPT APIを使って画像を生成してみました。
生成された画像データをさらに加工して、、といった面白い使い方もできそうです。

コメント

タイトルとURLをコピーしました