Python 图片生成并保存结果
第 1 步:准备依赖和令牌
进入 apizt 控制台 → API 令牌 → 新建,选择支持目标模型及协议的分组,设置额度后复制令牌。已有令牌可继续使用;模型目录和权限不是同一回事。查看创建分组令牌的图文步骤。
python3 -m pip install requests
export tokenba_API_KEY="YOUR_tokenba_API_KEY"本次 macOS 26.3、requests 2.33.1,gpt-image-2 真实生成成功。尺寸、质量和费用按该模型分组支持核对,不自动重试创建请求。
第 2 步:生成图片并保存
下载完整 Python 示例 generate-image.py;这是可运行代码,令牌通过环境变量读取,不是含凭据的配置模板。
import base64
import os
from pathlib import Path
from urllib.parse import urlparse
import requests
def save_image(item, output_dir):
if item.get("b64_json"):
data = base64.b64decode(item["b64_json"], validate=True)
elif item.get("url"):
if urlparse(item["url"]).scheme != "https":
raise ValueError("Expected an HTTPS image URL")
response = requests.get(item["url"], timeout=(10, 120))
response.raise_for_status()
data = response.content
else:
raise ValueError("No b64_json or url in image result")
if data.startswith(b"\x89PNG\r\n\x1a\n"):
suffix = ".png"
elif data.startswith(b"\xff\xd8\xff"):
suffix = ".jpg"
elif data[:4] == b"RIFF" and data[8:12] == b"WEBP":
suffix = ".webp"
else:
raise ValueError("Unexpected image format; inspect the response")
output_dir = Path(output_dir)
output_dir.mkdir(parents=True, exist_ok=True)
target = output_dir / ("tokenba-result" + suffix)
target.write_bytes(data)
return target
def main():
response = requests.post(
"https://api.apizt.com/v1/images/generations",
headers={"Authorization": "Bearer " + os.environ["tokenba_API_KEY"]},
json={
"model": "gpt-image-2",
"prompt": "A small friendly blue whale on a clean white background, flat illustration, no text.",
"n": 1,
"size": "1024x1024",
"quality": "low",
},
timeout=(10, 150),
)
response.raise_for_status()
result = response.json()
if not result.get("data"):
raise ValueError("Empty image data")
print(save_image(result["data"][0], "output"))
print("usage:", result.get("usage"))
if __name__ == "__main__":
main()
第 3 步:查看真实结果与用量

POST /v1/images/generations
model: gpt-image-2
HTTP 200
saved image: 862097 bytes
usage: input_tokens=21, output_tokens=765, total_tokens=786图片以实际格式保存为 .png/.jpg/.webp。返回 URL 时立即下载,不把 URL 当永久存储;下载媒体时不转发 apizt Key。
失败时检查
| 现象 | 处理 |
|---|---|
| 401 / 模型不可用 | 检查 Key、权限和分组 |
| 400 / 规格不支持 | 按当前模型参数确认 size、quality 和数量 |
| 没有 choices | Images 返回 data[].b64_json 或 data[].url,不是聊天 choices |
| 超时 | 先查控制台是否已生成并产生用量,避免重复创建 |
接口与费用
Images 请求与返回参数 · 图片编辑 · 计价单位 · 真实调用记录。
开始实践:注册并创建 API Key · 已有账号,进入控制台 · 查看当前模型价格。