OpenAI platform : ガイド : 画像生成 (DALL·E) (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 07/25/2023
* 本ページは、以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Web: www.classcat.com ; ClassCatJP
OpenAI platform : ガイド : 画像生成 (DALL·E)
画像を DALL·E で生成して操作する方法を学習します。
イントロダクション
画像 API は画像と相互作用するための 3 つの方法を提供しています :
- テキストプロンプトに基づいて画像をゼロから作成する
- 新しいテキストプロンプトに基づいて既存の画像の編集を作成する
- 既存の画像のバリエーションを作成する
このガイドはこれらの 3 つの API エンドポイントを使用する基本を、有用なコードサンプルとともにカバーします。それらを実際に見るには、DALL·E プレビュー app を確認してください。
使用方法
生成
画像生成エンドポイントはテキストプロンプトが与えられたときオリジナルな画像を作成することを可能にします。生成画像は 256×256, 512×512 または 1024×1024 ピクセルのサイズを持つことができます。より小さいサイズは生成が高速になります。n パラメータを使用して一度に 1-10 画像をリクエストできます。
response = openai.Image.create(
prompt="a white siamese cat",
n=1,
size="1024x1024"
)
image_url = response['data'][0]['url']
説明が詳細になれば、貴方かエンドユーザーが望む結果をより得やすくなります。よりプロンプティングなインスピレーションのために DALL·E プレビュー app でサンプルを調べることができます。ここに簡単なサンプルがあります :
(プロンプト) a white siamese cat
(プロンプト) a close up, studio photographic portrait of a white siamese cat that looks curious, backlit ears
各画像は response_format パラメータを使用して URL か Base64 データとして返すことができます。URL は 1 時間後に期限切れになりっます。
編集
画像編集エンドポイントはマスクをアップロードすることで編集と拡張を可能にします。マスクの透過な領域は画像が編集されるべき場所を示しますが、プロンプトは 消去された領域だけでなく、新しい画像全体を説明する必要があります。このエンドポイントは DALL·E プレビュー app のエディターのような体験を有効にすることができます。
response = openai.Image.create_edit(
image=open("sunlit_lounge.png", "rb"),
mask=open("mask.png", "rb"),
prompt="A sunlit indoor lounge area with a pool containing a flamingo",
n=1,
size="1024x1024"
)
image_url = response['data'][0]['url']
(プロンプト): a sunlit indoor lounge area with a pool containing a flamingo
(画像)
(マスク)
(出力)
アップロードされる画像とマスクは両方とも 4MB 未満のサイズの正方形の PNG 画像である必要があり、また互いに同じ寸法でなければなりません。マスクの透明ではない領域は出力を生成するときに使用されませんので、それらは上のサンプルのように元の画像と必ずしも一致している必要はありません。
バリエーション
画像バリエーション・エンドポイントは与えられた画像のバリエーションを生成することを可能にします。
response = openai.Image.create_variation(
image=open("corgi_and_cat_paw.png", "rb"),
n=1,
size="1024x1024"
)
image_url = response['data'][0]['url']
(画像)
(出力)
編集エンドポイントと同様に、入力画像は 4MB 未満のサイズの正方形の PNG 画像でなければなりません。
コンテンツ・モデレーション
プロンプトと画像は コンテンツ・ポリシー に基づいてフィルタリングされ、プロンプトか画像がフラグ立てされる場合にはエラーを返します。If you have any feedback on false positives or related issues, please contact us through our help center.
言語固有のヒント
インメモリの画像データの使用
上記のガイドの Python サンプルは open 関数を使用して画像データをディスクから読み込んでいます。ある場合には、代わりに画像データをメモリ内に持っているかもしれません。ここに BytesIO オブジェクトにストアされている画像データを使用するサンプル API 呼び出しがあります :
from io import BytesIO
# This is the BytesIO object that contains your image data
byte_stream: BytesIO = [your image data]
byte_array = byte_stream.getvalue()
response = openai.Image.create_variation(
image=byte_array,
n=1,
size="1024x1024"
)
画像データの操作
画像を API に渡す前に操作を実行することは役立つ場合があります。ここに画像をリサイズするために PIL を使用したサンプルがあります :
from io import BytesIO
from PIL import Image
# Read the image file from disk and resize it
image = Image.open("image.png")
width, height = 256, 256
image = image.resize((width, height))
# Convert the image to a BytesIO object
byte_stream = BytesIO()
image.save(byte_stream, format='PNG')
byte_array = byte_stream.getvalue()
response = openai.Image.create_variation(
image=byte_array,
n=1,
size="1024x1024"
)
エラー処理
API リクエストは不正な入力、レート制限、またはその他の問題によりエラーを返す可能性が潜在的にあります。これらのエラーは try…except ステートメントで処理することができて、エラーの詳細は e.error で見つけられます :
try:
openai.Image.create_variation(
open("image.png", "rb"),
n=1,
size="1024x1024"
)
print(response['data'][0]['url'])
except openai.error.OpenAIError as e:
print(e.http_status)
print(e.error)
以上