今回の記事ではテキストから画像を生成できるDALL-E 3 のAPIの実装を紹介します。
Google Colabを使用して簡単に実装できますので、ぜひ最後までご覧ください。
今回の内容
・DALL-E 3とは
・DALL-E 3のAPIの実装
・Stable Diffusionとの比較
DALL-E 3とは
DALL-E 3の概要
DALL-E 3は、テキストから画像を生成するAIモデルで、OpenAIによって提供されています。従来のシステムよりもはるかに多くのニュアンスと詳細を理解し、アイデアを非常に正確な画像に簡単に変換できるようになっています。現代のテキストから画像を生成するシステムは、しばしば言葉や説明を無視しますが、DALL-E 3は提供されたテキストに正確に従う画像を生成する能力を大きく向上させています。DALL-E 2と比べても、同じプロンプトであっても、DALL-E 3は大幅な改善を実現しています3。
DALL-E 3はChatGPTに組み込まれており、ChatGPTをブレインストーミングパートナーとして利用し、プロンプトを洗練させることができます。また、ChatGPT PlusとEnterpriseユーザー向けには既に利用可能であり、画像は個人の所有物となり、再販売や商品化するための許可は不要です。
安全性に関しても注意が払われており、DALL-E 3は暴力的、成人向け、または憎悪に満ちたコンテンツの生成を制限するように設計されています。公共の人物の名前を使ってのリクエストや、公共の人物の生成や視覚的な過剰または不足表現に関連する有害なバイアスなどのリスク領域の安全性能を改善しています。AIによって作成された画像を識別するための方法も研究中であり、そのための新しい内部ツールである出所分類器についても実験を行っています。また、生きているアーティストのスタイルでの画像リクエストを拒否し、クリエイターは自分の画像を将来の画像生成モデルのトレーニングから除外することも可能です。
現在、APIを介してもアクセスできるようになっており、最新バージョンとして公開されています。
詳細は以下のリンクからご確認ください。
DALL-E 3の概要:https://openai.com/dall-e-3
Images APIの概要
Images APIは、画像生成と編集に関する機能を提供するAPIです。このAPIには特に3つの主要なメソッドがあります。
機能 | 説明 | DALL-E 3 | DALL-E 2 |
---|---|---|---|
テキストプロンプトからの 画像生成 | ユーザーが提供したテキストの説明に基づいて、新しいオリジナルの画像を生成 | ○ | ○ |
画像の編集 | 既存の画像の特定の部分を新しいテキストプロンプトに基づいて置き換える | × | ○ |
画像のバリエーション生成 | 既存の画像を基にして、似たような画像のバリエーションを生成 | × | ○ |
APIの使い方については、実際のコード例が含まれたガイドが提供されているため、開発者はこれを参考にしてAPIを容易に利用することができます。詳細は以下のリンクからご確認ください。
Images APIの価格
Images APIは実行するたびに費用が発生する従量課金のサービスとなります。
それぞれの価格は以下の通りとなります。
Model | Resolution | Price |
---|---|---|
DALL·E 3 | 1024×1024 | $0.040 / image |
1024×1792, 1792×1024 | $0.080 / image | |
DALL·E 3 HD | 1024×1024 | $0.080 / image |
1024×1792, 1792×1024 | $0.120 / image | |
DALL·E 2 | 1024×1024 | $0.020 / image |
512×512 | $0.018 / image | |
256×256 | $0.016 / image |
※記事執筆時点での価格となります。変更となっている場合がありますので、こちらから最新の情報を確認するようにしてください。
DALL-E 3 のAPIで画像生成
ここからはGoogle colabを使用して、DALL-E 3 のAPIを利用した画像生成を実装していきましょう。
まずは必要なライブラリをインストールします。
!pip install openai
次のOpenAIのサイトで取得できるAPIキーを設定します。
APIキーの取得はこちらから行うことができます。
import os
os.environ["OPENAI_API_KEY"] = "<OpenAI_APIキー>"
画像生成を実行します。
以下の例では、「a photo of an astronaut riding a horse on mars」というプロンプトから1枚の画像を生成します。
from openai import OpenAI
client = OpenAI()
import openai
# テキストからの画像生成の実行
response = client.images.generate(
model="dall-e-3",
prompt="a photo of an astronaut riding a horse on mars",
size="1024x1024",
quality="standard",
n=1,
)
print(response)
生成された画像のURLを表示することができます。
表示されたURLから画像を保存します。
print(response.data[0].url)
実行結果:
他の画像生成との比較
ChatGPT PlusのDALL-E 3で生成した画像
APIで画像生成した際と同じプロンプトを使用して、ChatGPT PlusのDALL-E 3から画像生成をしてみます。
「a photo of an astronaut riding a horse on mars」
Stable Diffusionの最新モデルのSDXLで生成した画像
APIで画像生成した際と同じプロンプトを使用して、Stable Diffusionの最新モデルのSDXLからも画像生成をしてみます。
※Stable Diffusionの実装方法はこちらの記事で紹介しております
「a photo of an astronaut riding a horse on mars」
まとめ
最後までご覧いただきありがとうございました。