今回はChatGPTのAPIを使用して、自然言語のプロンプトから画像を生成し、その画像にキャプションを埋め込む方法を紹介します。
目次
はじめに
今回はChatGPT(OpenAI)のAPIを使用して、自然言語のプロンプトから画像を生成し、その画像にキャプションを埋め込む方法を紹介します。具体的には、データ分析とAIの会社のオフィスの画像を生成し、画像内に「SiNCE株式会社 積極採用中」というキャプションを追加します。必要なライブラリのインポート
最初に、必要なライブラリをインポートします。import openai
import matplotlib.pyplot as plt
import requests
from PIL import Image
from io import BytesIO
import matplotlib.font_manager as fm
日本語フォントのインストールと設定
次に、日本語フォント(Takaoフォント)をインストールし、設定します。!apt-get -y install fonts-takao
font_path = '/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf'
font_prop = fm.FontProperties(fname=font_path)
画像生成のプロンプト設定
描画したいシーンを文章で記述し、プロンプトとして設定します。プロンプトは日本語でも問題ありませんが、英語の方がより精度の高い画像を生成できるため今回は英語で記述します。prompt = "data analysis and AI company's modern office, filled with cutting-edge technology."
GPTでの画像生成
OpenAIの画像生成モデルを使用してプロンプトから画像を生成します。openai.api_key ="your-api-key" response = openai.Image.create(prompt=prompt, n=1, size="512x512", response_format="url") image_url = response['data'][0]['url'] image_response = requests.get(image_url) image = Image.open(BytesIO(image_response.content))
キャプションの埋め込み
matplotlibを使用して、生成された画像内にキャプションを埋め込みます。fig, ax = plt.subplots()
ax.imshow(image)
ax.axis('off')
plt.text(30, 460, "SiNCE株式会社 積極採用中", fontsize=12, color='white', backgroundcolor='purple', fontproperties=font_prop)
plt.show()

