こんにちは、JS2IIUです。
Streamlitをベースに、OpenAIのDALL-E2で画像生成して表示させるプログラムについて解説していきます。今回もよろしくお願いします。
DALL-Eとは?
DALL-E2は、OpenAIが開発したAI画像生成モデルです。テキストで指示を出すと、その内容に沿った画像を自動的に生成します。DALL-Eは、現実的な画像だけでなく、架空のキャラクターやアートスタイルを再現することも可能です。
DALL·E 2 | OpenAI
https://openai.com/ja-JP/index/dall-e-2/
Just a moment...
StreamlitでDALL-E画像生成アプリを作成
以下のPythonコードを実装することで、ユーザーが入力したキーワードからDALL-Eを利用して画像を生成し、表示するアプリを作成できます。
コード
Python
import openai
import streamlit as st
# OpenAI APIキーを直接指定
OPENAI_API_KEY = "your-api-key-here"
openai.api_key = OPENAI_API_KEY
def generate_image(prompt):
"""DALL-Eで画像を生成する関数"""
try:
response = openai.Image.create(
prompt=prompt,
model="dall-e-2",
n=1, # 生成する画像の数
size="1024x1024" # 画像サイズ
)
return response["data"][0]["url"]
except Exception as e:
st.error(f"エラーが発生しました: {e}")
return None
# Streamlitアプリのレイアウト
st.title("DALL-E 画像生成アプリ")
# ユーザーの入力
prompt = st.text_input("画像の説明を入力してください:")
if st.button("画像を生成"):
if prompt:
with st.spinner("画像を生成中..."):
image_url = generate_image(prompt)
if image_url:
st.image(image_url, caption="生成された画像", use_column_width=True)
else:
st.warning("画像の説明を入力してください。")プログラムの詳細解説
1. openaiとstreamlitのインポート
まず、openai モジュールを使用してDALL-E APIを呼び出し、streamlit を利用してWebアプリのUIを構築します。
2. APIキーの設定
APIキーを直接プログラム内に指定することで、環境変数を設定せずに利用できます。ただし、セキュリティ上の理由から、環境変数に保存する方法が推奨されます。
3. generate_image関数
この関数では、DALL-E APIを呼び出し、ユーザーが入力した説明文 (prompt) に基づいて画像を生成します。
4. StreamlitのUI構築
st.text_input()を使用して、ユーザーからキーワードを入力してもらいます。st.button("画像を生成")がクリックされると、DALL-E APIを呼び出して画像を生成します。st.spinner()を使って画像生成中のステータスを表示します。- 生成された画像は
st.image()を使って表示します。
参考サイト
DALL-EとStreamlitを組み合わせることで、簡単にAI画像生成アプリを作成できます。ぜひ活用してみてください!
最後に、書籍のPRです。
最新のOpenAIのチャットAPIの使い方もしっかりと解説されている良書です。2024年11月初版発行、「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」西見、吉田、大嶋著。
最後まで読んでいただきありがとうございます。73


コメント