GPT-4o画像生成フォーマット
GPT-4o画像生成フォーマット
Section titled “GPT-4o画像生成フォーマット”本ページの概要
📝 AI画像生成モデルの紹介
Section titled “📝 AI画像生成モデルの紹介”- gpt-4o-image gpt-4o-image-vip の2つのモデルは、ChatGPTの新しいGPT-4o画像機能です。OpenAI APIのモデル gpt-image-1 は、強力な画像生成機能を提供し、自然言語による指示から画像を作成したり、対話形式で画像を編集・修正したりできます。
- size : (任意) 画像サイズ。
"1024x1024"(正方形)、"1536x1024"(縦向き)、"1024x1536"(横向き)に対応しています。ほかに"auto"オプション(デフォルト)があり、モデルがプロンプトに応じて最適なサイズを自動選択します。
💡 Pythonリクエスト例
Section titled “💡 Pythonリクエスト例”画像作成の例(一) ✅
Section titled “画像作成の例(一) ✅”- 生成した画像は自動でファイルとして保存されます
from openai import OpenAIimport openai # 导入 openai 以便捕获其特定异常import base64import datetime # <<--- ***确保这一行存在且未被注释***
# 请确保妥善保管您的 API 密钥,不要将其公开。OPENAI_API_KEY = ( "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # 输入您在4All API提供的API密钥)# 例如: OPENAI_API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
OPENAI_BASE_URL = "https://sg.4All API.com/v1" # 输入4All API的Base URL
# 2. 初始化 OpenAI 客户端# ==============================================# 确保 API 密钥已设置(如果还是占位符)if OPENAI_API_KEY == "sk-YOUR_API_KEY_HERE" or not OPENAI_API_KEY: # 检查是否还是模板值 print("错误:请在代码中正确设置您的 OPENAI_API_KEY。") exit()
client_params = {"api_key": OPENAI_API_KEY}
# 正确处理 base_url 的设置if OPENAI_BASE_URL: client_params["base_url"] = OPENAI_BASE_URL print(f"使用的 Base URL: {OPENAI_BASE_URL}")else: print("未使用自定义 Base URL,将使用 OpenAI 默认地址。")
try: client = OpenAI(**client_params) # client.models.list() # 可选: 测试API密钥和连接 print("OpenAI 客户端初始化成功。")except openai.AuthenticationError as e: error_msg = "OpenAI API 认证失败: " if hasattr(e, 'message') and e.message: error_msg += e.message elif hasattr(e, 'body') and isinstance(e.body, dict) and e.body.get('message'): error_msg += e.body.get('message') else: error_msg += "请检查您的 API 密钥。" print(error_msg) print("请确保您的 OPENAI_API_KEY 是正确的、有效的,并且您的账户有足够余额/权限。") exit()except Exception as e: print(f"初始化 OpenAI 客户端时发生意外错误: {e}") exit()# ==============================================
# 3. 定义 Prompt 和模型# ==============================================prompt = """椰树牌椰汁风格广告海报显眼漂亮性感的美女,主题是GPT最新AI绘画服务的广告促销, 强调‘惊爆价9.9/张’、‘适用各种场景、图像融合、局部重绘’、‘每张提交3次修改'、'AI直出效果,无需修改',底部醒目标注‘有意向点右 下“我想要”,右下角绘制一个手指点击按钮动作,左下角展示OpenAl标志"""
MODEL_TO_USE = "gpt-image-1" # 您希望使用的模型# MODEL_TO_USE = "dall-e-3"# ==============================================
# 4. 生成和保存图片# ==============================================try: print(f"正在使用模型 '{MODEL_TO_USE}' 和提示生成图片...") result = client.images.generate( model=MODEL_TO_USE, prompt=prompt, n=1, size="1024x1024", response_format="b64_json", )
if not result.data or not result.data[0].b64_json: print("错误:API 未返回 base64 编码的图像数据。") if result.data and result.data[0].revised_prompt: print(f"修订后的提示 (Revised Prompt): {result.data[0].revised_prompt}") exit()
image_base64 = result.data[0].b64_json image_bytes = base64.b64decode(image_base64)
# --- 自动命名文件名 --- now = datetime.datetime.now() # <<--- 这里会用到 datetime timestamp_str = now.strftime("%Y%m%d_%H%M%S") output_filename = f"image_{timestamp_str}.png" # --- 文件名修改结束 ---
with open(output_filename, "wb") as f: f.write(image_bytes) print(f"图片已成功生成并保存为 {output_filename}") if result.data[0].revised_prompt: print(f"用于生成图片的实际提示 (Revised Prompt): {result.data[0].revised_prompt}")
except openai.APIError as e: error_message = "API 未知错误" status_code_info = f"(状态码: {e.status_code})" if hasattr(e, 'status_code') else ""
if hasattr(e, 'message') and e.message: error_message = e.message elif hasattr(e, 'body') and isinstance(e.body, dict) and e.body.get('message'): error_message = e.body.get('message') elif hasattr(e, 'body') and isinstance(e.body, str): error_message = e.body
print(f"OpenAI API 返回错误 {status_code_info}: {error_message}")
if hasattr(e, 'body') and e.body: print(f"错误详情: {e.body}")
if isinstance(e, openai.AuthenticationError): print("这通常意味着 API 密钥不正确或账户问题。请再次检查。") elif isinstance(e, openai.RateLimitError): print("请求频率超限。请稍后再试。") elif isinstance(e, openai.BadRequestError): if hasattr(e, 'body') and isinstance(e.body, dict) and 'error' in e.body and isinstance(e.body['error'], dict): error_details = e.body['error'] if error_details.get("code") == "content_policy_violation": print(f"详细错误:内容策略违规。提示可能违反了 OpenAI 的使用政策。") elif error_details.get("param"): print(f"可能是参数 '{error_details.get('param')}' 有问题。") else: print("BadRequestError,但无法解析详细错误信息。")
except Exception as e: # 之前的 NameError 会在这里被捕获 print(f"处理图像生成或保存时发生了一个意料之外的错误: {e}")finally: print("脚本执行完毕。")画像作成の例(二) ✅
Section titled “画像作成の例(二) ✅”- 画像生成のリンクでエラーが出た場合は、リンクを開いてダウンロードしてください
import http.clientimport json
API_HOST = "sg.4All API.com"API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # 请替换为实际的API密钥MODEL = "gpt-image-1" # 可换模型`gpt-4o-image` `gpt-4o-image-vip``gpt-image-1``dall-e-3`
# 定义图片生成的参数PROMPT = "椰树牌椰汁风格广告海报显眼漂亮性感的美女,主题是GPT最新AI绘画服务的广告促销,强调‘惊爆价9.9/张’、‘适用各种场景、图像融合、局部重绘’、‘每张提交3次修改'、'AI直出效果,无需修改',底部醒目标注‘有意向点右下“我想要”,右下角绘制一个手指点击按钮动作,左下角展示OpenAI标志。"N = 1 # 生成数量SIZE = "1536x1024" # 图片大小
# 构建请求的payloadpayload = json.dumps({ "stream": True, "model": MODEL, "messages": [ { "content": PROMPT, "role": "user" } ], "num_images": N, # 生成的图片数量 "size": SIZE # 图片的大小})
# 设置请求头headers = { 'Content-Type': 'application/json', 'Authorization': f'Bearer {API_KEY}' # 如果需要 API 密钥}
# 发送HTTP请求conn = http.client.HTTPSConnection(API_HOST)conn.request("POST", "/v1/chat/completions", payload, headers)
# 获取并打印响应res = conn.getresponse()data = res.read()print(data.decode("utf-8"))