OpenAIのAPIを使って、指定したテキストと枚数で、自動的に画像生成するPythonコードを作成してもらった

Bing_AI-Chatに、OpenAIのAPIを使って、指定したテキストと枚数で、自動的に画像生成するPythonコードを作成してもらいました。

ChatGPTだといろいろとエラーが出て、コードが作れませんでした(ChatGPTが重くて回答がこなかった時間帯だったか、指示文次第かもしれませんが)。

なお、OpenAI のOrganization ID、APIシークレットキーは事前に取得済みです。また、必要なモジュール、ライブラリも事前にinstall済みです。

Bing_AI-Chatの指示文:

OpenAIの APIを使って、画像を生成するpythonプログラムを書いてください。Organization IDとAPIシークレットキーは取得済みです。生成する画像のテキスト、生成する枚数を指定できるようにしてください。生成した画像は連番のファイル名でローカルディレクトリに保存するようにしてください。

回答:

OpenAI APIを使って、画像を生成するPythonプログラムを書くことができます。OpenAI APIは、GPT-3という第3世代の生成言語モデルを提供しています。このモデルを使用することで、テキストから画像を生成することができます。以下の手順でPythonプログラムを作成してください。

  1. OpenAI APIのOrganization IDとAPIシークレットキーを取得する
  2. PythonのOpenAI APIクライアントをインストールする
  3. Pythonプログラムを作成する
  4. プログラムを実行する

以下は、Pythonプログラムの例です。このプログラムは、OpenAI APIを使用して、指定されたテキストから画像を生成し、ローカルディレクトリに保存します。


import openai
import requests
import json

openai.api_key = "YOUR_API_KEY"

def generate_images(prompt, num_images):
    response = openai.Image.create(
        prompt=prompt,
        n=num_images,
        size="1024x1024"
    )

    for i, image in enumerate(response["data"]):
        image_url = image["url"]
        image_data = requests.get(image_url).content

        with open(f"image_{i}.png", "wb") as f:
            f.write(image_data)

generate_images("猫の画像", 5)
        

この例では、generate_images関数が定義されています。この関数は、指定されたテキストから画像を生成し、ローカルディレクトリに保存します。prompt引数には、画像の生成元となるテキストを指定します。num_images引数には、生成する画像の枚数を指定します。この例では、「猫の画像」というテキストから5枚の画像を生成しています。

結果:

無事に成功して画像が5枚、生成されてローカルディレクトリに保存できていました。

sizeは512x512として、generate_images("tiger is playing in the water", 5) として実行しました。

日本語のテキストだと画像生成が思うように出来なかったので(指示が反映しきれてない画像が出てくる)、英語にしています。

ちなみに、画像5枚でも30秒程度かかりました。無料で使っている手前、あまり負荷はかけないほうがよさそうです。