Skip to content

GPT-Image-2 图片生成

通过ApiLink,你可以使用 OpenAI 原生 Images API 调用 gpt-image-2 生成图片。

这个接口适合:

  • 需要直接文生图的项目
  • 已经兼容 OpenAI Images API 的应用
  • 需要更高分辨率与更稳定文字渲染的场景

接口地址

https://api.apilink.cc/v1

认证方式

在请求头中添加 API 密钥:

http
Authorization: Bearer YOUR_API_KEY

Generations API

接口说明

用于根据提示词直接生成图片。

请求地址

POST /v1/images/generations

请求示例

bash
curl https://api.apilink.cc/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "生成一个ApiLink中转站的Logo",
    "size": "1536x1024",
    "quality": "high",
    "n": 1
  }'

请求参数

参数类型必填说明
modelstring固定为 gpt-image-2
promptstring绘图提示词
sizestring图片尺寸,支持 1024x10241024x15361536x10242048x20483840x2160auto
qualitystring图片质量,支持 lowmediumhigh
ninteger生成张数,默认 1

价格说明

以下是当前单张图片参考价格:

质量单张价格
low¥0.015
medium¥0.05
high¥0.2

响应格式

接口返回 OpenAI Images API 风格响应:

  • b64_json:直接返回 base64 图片数据
json
{
  "created": 1713772800,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..."
    }
  ]
}

支持的尺寸

尺寸参数说明
1024x1024正方形
1024x1536竖图
1536x1024横图
2048x2048高分辨率正方形
3840x21604K 横图
auto自动选择合适尺寸

代码示例

Python(urllib)

python
import base64
import json
import os
import urllib.error
import urllib.request
from datetime import datetime

API_KEY = os.environ.get("FLASH_API_KEY", "YOUR_API_KEY")
API_URL = "https://api.apilink.cc/v1/images/generations"

PROMPT = "生成一个ApiLink AI中转站的 Logo 图片"
MODEL = "gpt-image-2"
SIZE = "auto"
QUALITY = "medium"
N = 1

def generate_image(prompt: str, size: str, quality: str, n: int) -> dict:
    payload = json.dumps({
        "model": MODEL,
        "prompt": prompt,
        "size": size,
        "quality": quality,
        "n": n,
    }).encode("utf-8")

    req = urllib.request.Request(
        API_URL,
        data=payload,
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json",
        },
        method="POST",
    )

    with urllib.request.urlopen(req, timeout=300) as resp:
        return json.loads(resp.read().decode("utf-8"))


def save_image(data_entry: dict, index: int) -> str | None:
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    filename = f"output_{timestamp}_{index}.png"

    if data_entry.get("b64_json"):
        img_bytes = base64.b64decode(data_entry["b64_json"])
        with open(filename, "wb") as f:
            f.write(img_bytes)
        print(f"[{index + 1}] 已保存到:{filename}")
        return filename

    if data_entry.get("url"):
        url = data_entry["url"]
        urllib.request.urlretrieve(url, filename)
        print(f"[{index + 1}] 已下载保存到:{filename}")
        return filename

    print(f"[{index + 1}] 未知返回格式:{data_entry}")
    return None


def main():
    try:
        result = generate_image(PROMPT, SIZE, QUALITY, N)
    except urllib.error.HTTPError as e:
        body = e.read().decode("utf-8")
        print(f"[HTTP 错误] {e.code} {e.reason}")
        print(body)
        return
    except urllib.error.URLError as e:
        print(f"[网络错误] {e.reason}")
        return

    data_list = result.get("data", [])
    for i, entry in enumerate(data_list):
        save_image(entry, i)


if __name__ == "__main__":
    main()

注意事项

  • 图片生成接口不是聊天接口,不要调用 /v1/chat/completions
  • 建议把请求超时设置为 300 秒,避免高分辨率生成时超时。
  • quality 越高,耗时和费用通常越高;测试时建议先用 lowmedium
  • 当你不确定画幅时,可以先使用 auto,再按需要切换到固定尺寸。

下一步

ApiLink - 让全球顶级AI模型触手可达