見出し画像

DALL-EのAPIをPythonで使う方法

OpenAIからリリースされたDALL-EのAPI(パブリックベータ版)を早速使っていきたいと思います。

料金について

まずは気になるAPIの使用料ですが、DALL-Eは従量課金制になっています。しかし、最初は18$まで無料で使うことができ、1024×1024のサイズの画像を生成するのに0.020$必要なので、単純計算で900枚の画像が生成できることになります。
ちなみにOpenAI公式のDALL-E appだと無料で生成できるのは50枚だけなので、かなりお得だと思います。ぜひ試してみてください。

準備

まずはOpenAIにアクセスして、右上のSIGN UPからアカウントを登録しましょう。登録が終わるとAPI KEYが付与されます。
次に必要なモジュールをインストール&アップデートします。

pip install --upgrade openai

画像の生成

最初に、取得した自分のAPI KEYをスクリプト中に入れましょう。次にopenaiのImage.create関数を使って画像の生成をおこなっています。promptはDALL-E appのコレクションを参考にすると面白いです。今回はドキュメントを参考に白いシャム猫の画像を生成しました。
同じpromptでも、実行するたびに、少し違った画像が生成される事があります。

指定できる画像のサイズは256×256と512×512, 1024×1024の3つです。
nで生成する画像の枚数を指定できます。

import openai

openai.api_key =  "YOUR API KEY"

response = openai.Image.create(
  prompt="a white siamese cat",
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']
print(image_url)


生成された画像(./sample_image/original.pngとして保存)

画像の編集

次にopenaiのImage.create_edit関数を使って、一部が切り取られた画像の編集をしていきます。スクリプト中の"./sample_image/original.png"は、先ほど生成した白いシャム猫の画像です。ちなみに、組み込み関数のopenは、"rb"を入れた方が確実です(DALL-Eのドキュメントにはありませんでしたが…)

imageとmaskは同じ画像を使ってください(maskは画像の一部を切り取る)
指定できる画像のサイズは256×256と512×512, 1024×1024の3つです。
画像はpng形式で4MB以下のものを使ってください。

import openai

openai.api_key =  "YOUR API KEY"

response = openai.Image.create_edit(
  image=open("./sample_image/original.png", "rb"),
  mask=open("./sample_image/mask.png", "rb"),
  prompt="A white tiger on the red carpet",
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']
print(image_url)
今回使った画像("./sample_image/mask.png")
こちらのサイトを使って、画像の切り取り(透明化)をしました。


生成された画像

類似画像の生成

指定した画像を少し変化させた画像を生成してくれます。

import openai

openai.api_key =  "YOUR API KEY"

response = openai.Image.create_variation(
  image=open("./sample_image/original.png", "rb"),
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']
print(image_url)


生成された画像(左側を向いている)

この記事が気に入ったらサポートをしてみませんか?