【最新版】AIで画像生成!OpenAI APIでできること徹底解説

2024年8月21日

OpenAI API
イラスト出展:OpenAI dall-e-3

初めに

こんにちは。イムでーす。今日はChat GPTのAPIで画像を生成する方法を紹介するねー。

Chat GPTの画像生成機能をプログラムから利用出来るOpen AIのAPIを試してみたので、利用方法や生成出来る画像の品質、料金体験などを詳しくご紹介致します。

Chat GPTとは

Chat GPT(Generative Pre-trained Transformer)は、OpenAIによって開発された高度な自然言語処理モデルです。Chat GPTは、人間の言葉を理解し生成する能力を持ち、画像生成など多様なタスクに対応できます。Chat GPTについてはこちらの記事を参照下さい。

ChatGPT

Open AIのAPIとは

OpenAIのAPIは、OpenAIが開発した様々なAIモデルにプログラムからアクセスできるようにするためのインターフェースです。Chat GPTはOpen AIが開発したGPT3.5, GPT4.0といったAIモデルで動作しています。このAIモデルにOpenAIのAPIはプログラムからアクセスすることが出来ます。これにより、開発者は自分のアプリケーションやサービスに高度な自然言語処理(NLP)機能を統合することができます。

Open AIのAIモデル

Open AIのAIモデルは有名なGPTシリーズ以外にも多数のAIモデルがあります。以下にOpen AIが開発したAIモデルを解説致します。

GPTシリーズ

GPTシリーズは、大規模な自然言語処理(NLP)モデルで、人と自然な対話を行うことが出来るAIモデルです。

  • GPT3.5 turbo
    GPT3.5 turboは、高度な自然言語理解と生成能力を持ち大規模な自然言語モデルです。数千億のパラメータを持ち、広範なインターネットデータを使ってトレーニングされています。これによりGPT3.5 turboは、流暢なテキストを生成する能力に優れ、質問の応答、長文の要約、重要ポイントの抽出、多言語の翻訳、感情分析など様々なタスクを行うことが出来ます。
    Chat GPTの無料版はこのGPT3.5が利用されています。

  • GPT4 turbo
    GPT-4 Turboと後進のAIモデルでGPT3.5 turboより大幅な改善が施されています。GPT3.5は2020年までの情報を元に学習していますが、GPT4.0は2023年までの情報を有しています。また、GPT3.0より大幅に性能が改善しており素早く質問に回答が出来ます。また、最新の情報をネットから検索し、リアルタイムな情報を用いて回答を行うことが出来ます。

  • GPT4-o
    GPT-4o("o"は"omni"の略)は、2024年6月現在、Open AIの自然言語AIモデルの最新のモデルです。テキストまたは画像入力を受け付け、テキストを出力します。GPT-4 Turboと同じ高い知能を持ちながら、さらに効率的で、テキスト生成速度はGPT-4 Turboの2倍速く、コストは50%安くなっています。さらに、GPT-4oは、視覚認識能力や非英語言語のパフォーマンスにおいて、Open AI
    AIのAIモデルの中で最高の性能を持っています。

    Open AI
    出展:OpenAI dall-e-3

DALL-Eシリーズ

DALL-EシリーズはOpen AIの画像生成AIモデルで、テキストから現実的な画像やアートを生成する能力を持っています。

  • DALL-E2
    高解像度な画像生成が可能。詳細な指示に基づいた画像生成が可能です。

  • DALL-E3
    DALL-E2より高精度でリアルな画像生成が可能なAIモデルです。

AI画像生成
出展:OpenAI dall-e-3

TTSシリーズ

TTSシリーズは、テキストを自然な音声に変換するAIモデルです。いわゆる音声合成AIモデルです。

  • tts-1
    リアルタイムのテキスト読み上げに最適化されたAIモデル

  • tts-1-hd
    最新のテキスト読み上げモデルで、音質に最適化されています。

AI音声合成
出展:OpenAI dall-e-3

Whisperシリーズ

Whisperシリーズは汎用の音声認識AIモデルです。多様な音声データセットでトレーニングされており、マルチタスクモデルでもあるため、多言語の音声認識、音声翻訳、言語識別を行うことができます。現在、Whisper v2-largeモデルはwhisper-1というモデル名でAPIを通じて利用可能です。

AI音声認識
出展:illastAC asakurac

その他のAIモデル

  • Embeddings(埋め込み)
    2つのテキスト間の関連性を測定するために使用できるAIモデル。Embeddingsは、検索、クラスタリング、推薦、異常検出、分類タスクに有用です。

  • モデレーション
    モデレーションAIモデルは、コンテンツがOpenAIの使用ポリシーに準拠しているかを確認するために設計されています。これらのモデルは、ヘイト、ヘイト/脅迫、自傷行為、性的、性的/未成年、暴力、および暴力/グラフィックなどのカテゴリーのコンテンツを分類する能力を提供します。

Open AIのAPIの利用方法

Open AI Platformのアカウント作成

Open AIのAPIを利用するためにはOpen AI Platformのアカウント登録が必要です。
Open AI Platformとは、OpenAIが提供するさまざまなAIモデルやツールを利用できるプラットフォームです。このプラットフォームを通じて、開発者や企業は高度なAI技術を自分たちのアプリケーションやサービスに統合することができます。

Open AI Platformのアカウント登録は簡単で、画面右上のSing Upボタンで簡単にアカウントを登録出来ます。
Open AI Platform

APIキーの発行

Open AIのAPIを利用するにはAPIキーを発行する必要があります。
Your profile ⇒ User API keys ⇒ Create new secret key を押すことでAPIキーを発行出来ます。
Open AI APIキー

※ 画面にLegacyとある様に、今でも上記手順でAPIキーを発行することが出来ますが、現在はProjectを新規作成し、Project毎にAPIキーを発行することが推奨されています。ここでは簡単のため旧手順にてAPIキーを発行しました。

PythonでOpen AIのAPIで画像生成をするプログラム方法

Open AIのAPIで画像生成を行うには、openaiライブラリのclient.images.generateメソッドを利用します。

openaiライブラリのインストール

Open AI APIはRESTで呼び出すことも出来ますが、pythonでプログラムする場合はopenaiライブラリを利用した方が簡単です。openai Pythonライブラリは、Python3.7 以降のアプリケーションから OpenAI REST API に簡単にアクセスできるようにするライブラリです。

【openaiライブラリのインストール方法】
pipコマンドでopenaiライブラリをインストールします。

pip install openai

client.images.generateメソッドの使い方

client.images.generateメソッドを利用して画像生成を行います。
client.images.generateメソッドの使い方は以下の通りです。

【パラメータ】

パラメタ名 説明
model 使用するDALL-Eモデルの名前を指定します。例)dall-e-3
prompt 画像生成のためのテキストプロンプト。生成したい画像の説明文を指定します。
n 生成する画像の数。例)1
size 生成する画像の解像度。例)1024x1024
response_format レスポンスのフォーマット。"url"または"b64_json"が指定できます。
・"url": 画像のURLを返す。
・"b64_json": 画像をBase64エンコードしたJSONを返す。
quality 画像の品質。"standard"または"hd"が指定できます。
・"standard": 標準品質。
・"hd": 高品質。
style 画像のスタイル。"vivid"または"natural"が指定できます。
・"vivid": 鮮やかなスタイル。
・"natural": 自然なスタイル。

【レスポンスの形式】
レスポンスは、指定したresponse_formatに応じて異なります。
response_formatが "url" の場合
レスポンスには、生成された画像のURLが含まれます。

{"data": [{"url": "https://example.com/path/to/generated/image.jpg"}]}

response_formatが "b64_json" の場合
レスポンスには、生成された画像のBase64エンコードされたJSONデータが含まれます。

{"data": [{"b64_json": "iVBORw0KGgoAAAANSUhEUgAA..."}]}

サンプルソース

注)プログラムを実行する前に、環境変数OPENAI_API_KEYにAPIキーを設定しておく必要があります。

import os
import base64
from datetime import datetime
from openai import OpenAI

def create_image(prompt_text):
  now = datetime.now()
  file_name = f'/tmp/{now.strftime("%Y%m%d%H%M%S")}.png'

  client = OpenAI()
  response = client.images.generate(
      model="dall-e-3",  # モデル
      prompt=prompt_text,
      n=1,  # 生成数
      size="1024x1024",  # 解像度
      response_format="b64_json",  # レスポンスフォーマット url or b64_json
      quality="hd",  # 品質 standard or hd
      style="vivid"  # スタイル vivid or natural
    )

    for i, d in enumerate(response.data):
      with open(file_name, "wb") as f:
        f.write(base64.b64decode(d.b64_json))

create_image('かわいい女の子を描いて')

Open AI APIの画像生成結果

旧バージョン画像生成AIモデルのDALL-E2と、最新バージョンの画像生成AIモデルのDALL-E3が生成した画像は美しいの一言です。でそれぞれ画像生成してみました。DALL-E2は正直、実用には耐えない感じですが、DALL-E3が生成した画像は美しいの一言です。Open AIのAPIで生成した画像はブログに使用して良いライセンスなので、本サイトの画像の一部はDALL-E3で生成しています。

Open AI APIの画像生成にかかる費用

Open AI APIは重量課金制です。アカウント作成時は15ドル分を自由に使えますが、以降は課金が必要です。例えばDALL·E3モデルで高品質(HD)の画像を作る場合、$0.08=10円強がかかります。

AIモデル 品質 サイズ 値段
DALL·E3 Standard 1024×1024 $0.040 / image
Standard 1024×1792, 1792×1024 $0.080 / image
HD 1024×1024 $0.080 / image
HD 1024×1792, 1792×1024 $0.120 / image
DALL·E2 - 1024×1024 $0.020 / image
- 512×512 $0.018 / image
- 256×256 $0.016 / image

詳しい料金体系

詳しい料金体系は公式サイトを参照下さい。

課金にあたっての注意点

APIを利用する際は事前にチャージをしておく必要があるので、誤ってAPIを使いすぎて莫大なお金が請求されるという心配はありませんが、チャージしたお金を使いすぎない様に、APIを利用する場合はUsage limit制限を用いて月に利用するAPIの回数に上限を設けて置くことをお勧めします。
Usage limit

豆知識. 自分でプログラム出来るならChat GPTのPlus契約は不要

画像生成はChat GPTでも月20ドルのPlus契約をすれば利用が出来ます。ですが20ドルあれば、Open AIのAPIの画像生成が250回出来ます。もし月に250回も画像生成をしないのであれば、Chat GPTのPlus契約は不要です。逆に1ヶ月に250枚以上の画像を生成するのであればPlus契約をすることをお勧め致します。

Chat GPTの費用

おわりに

Chat GPTおよびOpen AIのAI言語モデルの活用方法は無限大です。人の仕事の手助けや、新しいアイディアの創出など、私たちの生活を豊かにする素晴らしい技術ですので、これからもChat GPTの活用アイディアを考え記事にしていきたいと思います。今後とも宜しくお願い致します。