更新于

AI 图像生成 API 国内调用对比(GPT Image/DALL-E/Imagen/Flux)


文本生图 API 这两年百花齐放。本文按场景对比国内可调用的主流模型,给完整代码。

一、主流模型

模型厂商强项价格
GPT Image-1OpenAI通用 + 文字渲染中高
DALL-E 3OpenAI(老)风格多
Imagen 3Google真实照片
Flux Pro 1.1Black Forest摄影级
Flux DevBlack Forest开源自部署免费
Stable Diffusion XLStabilityAI开源自部署
Recraft V3Recraft设计图 / SVG
Ideogram 2Ideogram文字渲染

二、OpenAI Images(GPT Image-1)

from openai import OpenAI
import base64

client = OpenAI(api_key="sk-yo-...", base_url="https://yotradeapi.com/v1")

resp = client.images.generate(
    model="gpt-image-1",
    prompt="一只赛博朋克风格的橘猫,坐在霓虹城市夜景中",
    size="1024x1024",
    quality="high",
    n=1,
)

img_b64 = resp.data[0].b64_json
with open("cat.png", "wb") as f:
    f.write(base64.b64decode(img_b64))

参数:

参数选项
size1024x1024 / 1024x1536 / 1536x1024
qualitylow / medium / high
n1–10

GPT Image-1 特别强在文字渲染——画带文字的海报很准。

三、图像编辑(同 endpoint)

resp = client.images.edit(
    model="gpt-image-1",
    image=open("source.png", "rb"),
    mask=open("mask.png", "rb"),   # 可选
    prompt="把背景换成夕阳海滩",
)

mask 指定要改的区域(透明部分会被重画)。类似 Photoshop 局部修改

四、Google Imagen 3

import google.generativeai as genai

genai.configure(
    api_key="sk-yo-...",
    transport="rest",
    client_options={"api_endpoint": "https://yotradeapi.com"},
)

model = genai.ImageGenerationModel("imagen-3.0-generate-002")
result = model.generate_images(
    prompt="...",
    number_of_images=1,
    aspect_ratio="1:1",
)
result.images[0].save("out.png")

需要中转支持 Imagen 端点。风格更”真实照片”,适合产品图。

五、Black Forest Flux

# 通过 OpenAI 兼容路径(看中转支持)
resp = client.images.generate(
    model="flux-pro-1.1",
    prompt="...",
    size="1024x1024",
)

或走 BFL 原生 API(中转转发)。

模型适用
flux-pro-1.1摄影级,最贵
flux-pro性价比
flux-dev中等
flux-schnell快速

Flux 在写实人像上是当前最强

六、模型选择

场景推荐
通用 + 带文字gpt-image-1
真实人像 / 摄影Flux Pro 1.1
设计图 / icon / 图标Recraft V3
Logo / 海报(文字多)gpt-image-1 / Ideogram
大批量便宜Flux Schnell
自部署SDXL / Flux Dev

七、Prompt 最佳实践

1. 具体 > 模糊

❌ “一只猫”
✓ “一只橘色长毛猫,绿眼睛,坐在木地板上,自然光,浅景深,35mm 镜头”

2. 风格关键词

photography / 35mm film / cinematic
oil painting / watercolor / sketch
3d render / cyberpunk / minimalist

3. 反向 prompt(部分模型支持)

resp = client.images.generate(
    prompt="...",
    extra_body={"negative_prompt": "blurry, low quality, deformed hands"},
)

4. 用 LLM 优化 prompt

optimized = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{
        "role": "user",
        "content": f"把这个生图需求优化成专业的 prompt:\n{user_request}",
    }],
).choices[0].message.content

img = client.images.generate(prompt=optimized, ...)

八、自部署 Flux Dev

GPU 充足时:

docker run -p 7860:7860 --gpus all \
    ghcr.io/black-forest-labs/flux:latest

或用 ComfyUI / Diffusers。24GB+ VRAM 才舒服

九、并发与限流

图生比文生贵 + 慢:

模型单图耗时单图价格
GPT Image high30s$0.08
Imagen 310s$0.04
Flux Pro15s$0.05

并发处理:

async def batch_generate(prompts):
    sem = asyncio.Semaphore(5)
    async def one(p):
        async with sem:
            return await aclient.images.generate(model="gpt-image-1", prompt=p, ...)
    return await asyncio.gather(*[one(p) for p in prompts])

十、内容安全

所有图生模型都有 safety filter:

  • 暴力 / 仇恨 / 性内容直接拒
  • 名人脸(部分模型)
  • 商标 / IP

返回 400 + error message:

try:
    resp = client.images.generate(...)
except OpenAIError as e:
    if "safety" in str(e):
        return "请求被内容安全策略拒绝"

十一、典型应用场景

  • 博客 / 营销文案配图
  • 电商商品场景图
  • 游戏 / 应用 icon
  • 头像 / avatar
  • 概念设计 / 故事板
  • 数据可视化辅助

十二、避坑

  • ❌ 用人名要求”画 XXX 的样子”(IP 风险)
  • ❌ 高质量 + 大批量(成本爆炸)
  • ❌ 没设 max retries 撞 safety filter 无限重试
  • ❌ 期待 100% 复现(每次生成都略有不同)
  • ❌ 用图片对比”哪家最好”——同 prompt 不同模型出图风格差极大

十三、相关阅读

需要支持 GPT Image / Imagen / Flux 多家的中转?YoTradeApi 一把 Key 通调,按上面 SDK 代码接入。