【Python】ChatGPTで画像を生成する方法|OpenAI APIを用いた画像処理

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • AI画像生成に興味がある
  • PythonコードとChatGPTを用いて画像を生成する方法が知りたい
目次

【OpenAI】ChatGPTとは?

ChatGPTとは、OpenAIが開発した対話型チャットボットのモデルです。ChatGPTの名前は、GPT-3という第3世代の生成言語モデルに由来しています。

ChatGPTのモデルには、人工知能(AI)が搭載されており、人間の発話に対して自然なやり取りを可能にしています。また、英語をはじめ、中国語、日本語、フランス語など複数言語を認識し、人間らしく応答できるのも特徴的です。

さらに、ChatGPTではチャットの他に、画像生成など近年多様な機能がリリースされてます。以下、ChatGPTで代表するGPTモデルおよびOpenAIが提供するAPI機能一覧を示します。

  • チャット機能
  • テキストから画像を生成
  • オーディオを文字起こし
  • Python、SQL、JavaScript等のコードを理解
  • 問題あるネガティブ発言検出
  • テキスト文章のベクトル変換

【参考】OpenAI社のAPI利用方法

本記事ではChatGPTを用いたPythonプログラミングについて解説します。その際、Open AIが提供するAPI情報が必要になります。「ChatGPTの概要」および「API情報の取得手順」については、こちらの記事で詳しく解説しています。

あわせて読みたい
【Python×ChatGPT】チャットボット作成入門|OpenAI APIの利用申請手順も解説 「ChatGPT APIの利用手順」と「PythonでChatGPT APIを呼び出し、チャットボットを作成する方法」についてそれぞれ解説します。

【参考】ChatGPTを詳しく学びたい方向けの学習講座

ChatGPTを詳しく学びたい方向けに安価で学べるオンライン講座も併せてご紹介します。

【事前準備】OpenAIのPythonライブラリをインストール

ChatGPT APIをPythonで利用する場合、openaiライブラリを活用します。

コマンドプロンプト(WIndows)またはターミナル(Mac)を開き、以下を実行し、ライブラリをインストールしましょう。

pip install openai

【実践】PythonでChatGPT APIを呼び出し画像生成

Pythonプログラムを記述し、ChatGPT APIを活用した画像生成方法について解説します。

PythonライブラリとAPI情報の読込

はじめに、Pythonプログラムの先頭にライブラリとAPI認証情報を記述します。

前述で取得したOrganization IDシークレットキーをそれぞれ入力しましょう。

import openai
import requests
import json

openai.organization = "<Organization IDをここに入力>"
openai.api_key      = "<APIシークレットキーをここに入力>"

画像生成関数の作成

続いて、ChatGPT APIを呼び出し画像を生成するための関数を記述します。次のコードを記述しましょう。

コード

# 画像生成
def create_image_from_text(text):

    # 応答設定
    response = openai.Image.create(
                  prompt = text,             # 画像生成に用いる説明文章
                  n = 1,                     # 何枚の画像を生成するか
                  size = '512x512',          # 画像サイズ
                  response_format = "url"    # API応答のフォーマット

                )

    # API応答から画像URLを指定
    image_url = response['data'][0]['url']
    
    # 画像をローカルに保存
    image_data = requests.get(image_url).content
    with open("chat-gpt-generated-image.jpg", "wb") as f:
        f.write(image_data)
        
    return image_url

引数情報

openai.Image.create()メソッドに説明文章を渡し、画像を生成します。その際、次の引数を指定します。

スクロールできます
引数名概要
prompt画像生成に用いる説明文章
n何枚の画像を生成するか
size生成生成サイズ。256x256, 512x512, 1024x1024が指定可能。
response_formatAPIの応答フォーマット。urlまたはb64_jsonが指定可能。

画像生成の実行

前述の画像生成関数に入力テキスト(text)を渡し、ChatGPT APIを起動&実行します。

コード

# 生成するイメージを文章で定義
text = "椅子の上の猫"

# 画像生成
img = create_image_from_text(text)

出力イメージ

上記のコードでは、「椅子の上の猫」の画像を生成するよう命令しています。コードを実行すると、上図のような出力結果が得られました。説明文章通りの画像が生成されていることが分かりますね。

【まとめ】OpenAI ChatGPT APIを利用したPythonコード全量

最後に、本日ご紹介したPythonコードを全量示します。

import openai
import requests
import json

openai.organization = "<Organization IDをここに入力>"
openai.api_key      = "<APIシークレットキーをここに入力>"

# ================================================
# 画像生成
# ================================================

def create_image_from_text(text):
    
    # 応答設定 
    response = openai.Image.create(
                  prompt = text,             # 画像生成に用いる説明文章
                  n = 1,                     # 何枚の画像を生成するか
                  size = '512x512',          # 画像サイズ
                  response_format = "url"    # API応答のフォーマット
                )

    # API応答から画像URLを指定
    image_url = response['data'][0]['url']
    
    # 画像をローカルに保存
    image_data = requests.get(image_url).content
    with open("chat-gpt-generated-image.jpg", "wb") as f:
        f.write(image_data)
        
    return image_url


# ================================================
# 関数実行
# ================================================

# 生成するイメージを文章で定義
text = "椅子の上の猫"

# 画像生成
img = create_image_from_text(text)

【参考】AI・機械学習における配信情報まとめ

当サイトではAI・機械学習における「基礎」から「最新のプログラミング手法」に至るまで幅広く解説しております。また「おすすめの勉強方法」をはじめ、副業・転職・フリーランスとして始める「AI・機械学習案件の探し方」についても詳しく言及しています。

【仕事探し】副業・転職・フリーランス

【教育】おすすめ勉強法

【参考】記事一覧

最後に

この記事が気に入ったら
フォローしてね!

目次