图片生成

根据文字描述生成图片。

与 OpenAI 图片生成接口兼容。可用的图片模型见 模型广场,例如 gpt-image-1。要修改已有图片,见 图片编辑。

POST https://tokenfunc.com/v1/images/generations

cURL

curl https://tokenfunc.com/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
  -d '{
    "model": "gpt-image-1",
    "prompt": "一只戴着围巾的橘猫坐在窗台上,水彩风格",
    "size": "1024x1024",
    "n": 1
  }'

Python

import base64
from openai import OpenAI

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

resp = client.images.generate(
    model="gpt-image-1",
    prompt="一只戴着围巾的橘猫坐在窗台上,水彩风格",
    size="1024x1024",
)
image = resp.data[0]
if image.b64_json:
    with open("cat.png", "wb") as f:
        f.write(base64.b64decode(image.b64_json))
else:
    print(image.url)

Node.js

import { writeFileSync } from 'node:fs'

import OpenAI from 'openai'

const client = new OpenAI({ baseURL: 'https://tokenfunc.com/v1', apiKey: 'sk-xxxxxxxxxxxxxxxx' })

const resp = await client.images.generate({
  model: 'gpt-image-1',
  prompt: '一只戴着围巾的橘猫坐在窗台上,水彩风格',
  size: '1024x1024',
})
const image = resp.data[0]
if (image.b64_json)
  writeFileSync('cat.png', Buffer.from(image.b64_json, 'base64'))
else console.log(image.url)

请求参数

200

{
  "created": 1760000000,
  "data": [{ "b64_json": "iVBORw0KGgo..." }],
  "background": "opaque",
  "output_format": "png",
  "size": "1024x1024",
  "quality": "medium",
  "usage": {
    "total_tokens": 1102,
    "input_tokens": 46,
    "output_tokens": 1056,
    "input_tokens_details": { "text_tokens": 46, "image_tokens": 0 }
  }
}

响应字段

流式输出

设置 stream: true 后以 SSE 返回。设置了 partial_images 会先收到几条 image_generation.partial_image 事件(中间预览图),最后一条 image_generation.completed 事件带最终图片和 usage:

event: image_generation.partial_image
data: {"type":"image_generation.partial_image","b64_json":"...","partial_image_index":0}

event: image_generation.completed
data: {"type":"image_generation.completed","b64_json":"...","usage":{"total_tokens":1102,"input_tokens":46,"output_tokens":1056,"input_tokens_details":{"text_tokens":46,"image_tokens":0}}}

计费

图片模型通常按张计费,不同尺寸、画质价格不同;部分模型按 Token 计费。价格以 模型广场 为准。