搜索结果

×

搜索结果将在这里显示。

🎭 GPT-4o生图格式

📝 AI绘画模型简介

  • gpt-4o-image gpt-4o-image-vip这两个模型是ChatGPT新GPT-4o图像功能。OpenAI API模型gpt-image-1提供多种强大的图像生成模型,可以根据自然语言描述创建、可以对话编辑和修改图像。

  • size: (可选) 图像尺寸。支持 "1024x1024" (方形), "1536x1024" (竖向), "1024x1536" (横向)。另有 "auto" 选项(默认),模型会根据提示词自动选择最佳尺寸。

💡 Python请求示例

创建图片示例(一) ✅

  • 图片生成自动保存目录文件

from openai import OpenAI
import openai  # 导入 openai 以便捕获其特定异常
import base64
import datetime # <<--- ***确保这一行存在且未被注释***

# 请确保妥善保管您的 API 密钥,不要将其公开。
OPENAI_API_KEY = (
    "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"  # 输入您在uiuiAPI提供的API密钥
)
# 例如: OPENAI_API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

OPENAI_BASE_URL = "https://sg.uiuiapi.com/v1"  # 输入uiuiAPI的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("脚本执行完毕。")

创建图片示例(二) ✅

  • 图片生成链接报错需打开链接下载
import http.client
import json

API_HOST = "sg.uiuiapi.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"  # 图片大小

# 构建请求的payload
payload = 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"))