今回はOpenAIの画像AIであるDALL-Eを使った、テキストプロンプトに基づくイラスト生成の手法について詳しく解説します。
画像AIではStable Diffusionなどが有名ですが、DALL-EはAPIとしても提供されており、処理能力の低いマイコンなどのコンピュータでもPythonプログラムから画像生成が可能になります。
簡単なPythonコードで実装できますので、ぜひ活用してみてください。
DALL-Eとは
DALL-Eは、OpenAIが開発したテキストプロンプトから画像を生成することができる深層学習モデルです。
DALL-Eの名前は、アーティストであり発明家のサルバドール・ダリと、映画「ウォーリー」のロボットキャラクター「ウォーリー」からインスパイアされています。
DALL-Eは、GPT-3と同じトランスフォーマー・アーキテクチャをベースにしており、テキストと画像のデータセットで事前学習されています。
- 柔軟性: DALL-Eは、あらゆるテキストプロンプトに対して関連する画像を生成する能力があります。このため、抽象的な概念や具体的なシーンの描写も可能です。
- 創造性: DALL-Eは、現実には存在しないオブジェクトやシーンを描くこともできます。これにより、新しいデザインやアート作品の生成が可能になります。
- 複数の解釈: プロンプトに対して複数の解釈が可能な場合、DALL-Eはそれらの異なる解釈を反映した画像を生成することができます。
DALL-EのAPIを利用することで、アプリケーションやサービスに画像生成機能を組み込むことができます。これにより、デザイン、広告、ゲーム開発、教育、研究など、幅広い分野で活用されています。
OpenAI APIキーの取得
PythonのプログラムからDALL-Eを使用するためには、OpenAIのAPIキーを取得する必要があります。
取得の手順については以下の記事で解説しています。

ライブラリのインストール
ここからは実際にDALL-EのAPIを使って画像生成するプログラムに必要なライブラリをインストールする手順を解説します。
DALL-EのAPIにアクセスするためのOpenAIのライブラリをインストールします。
コマンドプロンプトで以下のコマンドを実行してください。
pip install openai
生成した画像を表示するらめのライブラリをインストールします。
コマンドプロンプトで以下のコマンドを実行してください。
pip install pillow
作成したPythonコード
DALL-EのAPIを使って画像を生成するPythonコードについて解説します。
Pythonコード解説
APIキーの設定
先ほど取得したOpenAIのAPIキーを設定してください。
# APIキーを設定
openai.api_key = "your_openai_api_key"
generate_image
DALL-E APIをコールして画像生成
DALL-Eを使ってイメージを生成する関数generate_image
を定義しています。
画像サイズは['256x256', '512x512', '1024x1024']
から選択が可能です。
# DALL-Eによる画像生成
def generate_image(prompt):
response = openai.Image.create(
model="image-alpha-001",
prompt=prompt,
n=1,
size="256x256",
response_format="url"
)
全体のソースコード
今回作成した全体のPythonコードは以下の通りです。
import openai
import requests
from PIL import Image
from io import BytesIO
# APIキーを設定
openai.api_key = "your_openai_api_key"
# DALL-Eによる画像生成
def generate_image(prompt):
response = openai.Image.create(
model="image-alpha-001",
prompt=prompt,
n=1,
size="256x256",
response_format="url"
)
return response['data'][0]['url']
# 赤いリンゴの画像を生成
image_url = generate_image("赤いリンゴ")
# 画像を表示
response = requests.get(image_url)
img = Image.open(BytesIO(response.content))
img.show()
実行結果
先ほどのプログラムを実行した結果です。
プロンプトを「red apple」と入力すると、以下のように赤いリンゴの画像が生成されました。

続いて、プロンプトを「yellow apple」と入力すると、以下のように黄色いリンゴの画像が生成されました。

DALL-Eの活用事例
文字列のプロンプトから画像を生成できるDALL-Eは様々なアプリケーションに応用できます。
自然言語モデルChatGPTとDALL-Eを組み合わせて、料理のレシピと完成イメージを生成するアプリケーションを構築した例を以下の記事で解説しています。

まとめ
今回は、OpenAIのDALL-Eを用いてテキストプロンプトからイラストを生成する方法について説明しました。DALL-EのAPIを使用することで様々なアプリケーションに画像生成機能を組み込むことが可能ですので、ぜひ試してみてください。。
今後、当ブログでもChatGPTなどと組み合わせた利用方法を公開していきます。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。

スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。

それでは、また次の記事でお会いしましょう。


コメント