# API 域名切换通知:默认接口改用 api2.laozhang.ai Source: https://docs.laozhang.ai/announcements/api-domain-migration-2026-07 由于 api.laozhang.ai 受到 DNS 攻击及污染影响,老张API默认域名已切换为 api2.laozhang.ai。API Key、接口路径、参数和调用方式无需修改。 * **发布日期**:2026年7月23日 * **最后核对**:2026年7月23日 * **当前状态**:`api2.laozhang.ai` 已启用并成为文档默认域名;`api-vip.laozhang.ai` 与 `api-cf.laozhang.ai` 可作为备用线路 由于旧域名 `api.laozhang.ai` 受到 DNS 攻击及污染影响,部分用户可能遇到域名无法解析、连接失败或请求超时。遇到这些问题时,请将请求域名替换为 `https://api2.laozhang.ai`;**API Key、接口路径、请求参数和调用方式均不需要修改**。 如果当前调用出现域名无法解析、连接失败或请求超时,建议立即切换到 `api2.laozhang.ai`。不要通过关闭 HTTPS 证书验证、固定未知 IP 或使用不可信 DNS 来绕过连接问题。 ## 应该使用哪个 API 域名? | 域名 | 当前状态 | 推荐场景 | 重要限制 | | --------------------- | ----------------- | --------------------- | ------------------------- | | `api2.laozhang.ai` | 已启用,文档默认 | 受影响网络及普通全球调用 | 新接入和现有项目迁移的首选域名 | | `api-cf.laozhang.ai` | 已启用,Cloudflare 代理 | 全球备用线路、普通同步请求 | 源站默认约 120 秒未返回响应时可能出现 524 | | `api-vip.laozhang.ai` | 已启用,海外直连 | 欧美用户、不经 CDN 的调用和长耗时请求 | 无加速 CDN,亚洲用户获取响应可能较慢 | | `api.laozhang.ai` | 旧域名,兼容保留 | 欧美服务器上当前仍可正常使用的调用 | 受 DNS 攻击及污染影响,可能无法解析或连接 | ## 如何完成切换? 只替换主机名,保留原来的协议、接口路径、请求体和 API Key。 ### OpenAI 兼容接口 切换前: ```text theme={null} https://api.laozhang.ai/v1/chat/completions ``` 切换后: ```text theme={null} https://api2.laozhang.ai/v1/chat/completions ``` 最小请求示例: ```bash theme={null} curl https://api2.laozhang.ai/v1/chat/completions \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3.6-flash", "messages": [{"role": "user", "content": "Hello"}] }' ``` ### Python SDK ```python theme={null} from openai import OpenAI client = OpenAI( api_key="YOUR_API_KEY", base_url="https://api2.laozhang.ai/v1", ) ``` ### 环境变量 ```bash theme={null} export OPENAI_BASE_URL="https://api2.laozhang.ai/v1" ``` 使用 Gemini 原生协议、图像、视频或余额查询接口时也只需替换域名。例如: ```text theme={null} https://api2.laozhang.ai/v1beta/models/{model}:generateContent https://api2.laozhang.ai/v1/images/generations https://api2.laozhang.ai/v1/videos https://api2.laozhang.ai/api/user/self ``` ## Cloudflare 线路的 120 秒限制 `api-cf.laozhang.ai` 经过 Cloudflare 代理。Cloudflare 官方文档说明,默认 `Proxy Read Timeout` 为 120 秒;如果 Cloudflare 已连接源站,但源站在该时间内没有返回响应,可能出现 `524 A timeout occurred`。这不是 API Key 错误,也不一定表示任务在上游已经失败。 对于可能运行较长时间的图像、视频或复杂 Agent 请求,优先使用异步任务、轮询或流式响应,不要依赖单个长时间无响应的同步连接。`api-vip.laozhang.ai` 直接连接欧美服务器,不经过加速 CDN,因此不受 Cloudflare 默认 120 秒代理读取超时限制;但客户端、源站或其他负载均衡仍可能有自己的超时设置。 ## 常见问题 ### 切换域名后需要重新创建 API Key 吗? 不需要。原 API Key、模型 ID、接口路径、请求参数和计费账户保持不变,只需要替换请求 URL 中的域名。 ### 欧美服务器必须马上切换吗? 不是。欧美服务器调用理论上不受影响,可以继续使用旧域名;但新项目和文档示例统一使用 `api2.laozhang.ai`。如果欧美服务器调用旧域名也出现异常,可以直接切换到 `api2.laozhang.ai` 或 `api-cf.laozhang.ai`。 ### `api2.laozhang.ai` 可以打开控制台吗? 可以。控制台、模型价格和账户页面也已使用 `api2.laozhang.ai`,现有账户和登录信息不变。 ### `api-cf.laozhang.ai` 的 120 秒是整个请求的固定时长吗? 准确说是 Cloudflare 到源站的默认读取超时:已连接源站后,如果约 120 秒没有收到响应,Cloudflare 可能返回 524。实际请求还会受到客户端、源站、负载均衡和具体接口超时配置影响。 ### 长耗时请求应该选择哪个域名? 优先采用异步任务、轮询或流式响应。欧美用户或确实需要避开 Cloudflare 120 秒代理读取超时的同步请求可以使用 `api-vip.laozhang.ai`;亚洲用户通常优先使用 `api2.laozhang.ai`,因为海外直连线路没有 CDN 加速,响应可能更慢。 ### 哪些用户适合使用 `api-vip.laozhang.ai`? 该域名适合欧美服务器、希望直连海外源站或需要避免 Cloudflare 代理读取超时的用户。它没有 CDN 加速,亚洲用户的网络往返时间和响应等待通常会更长;亚洲及普通调用仍建议优先使用 `api2.laozhang.ai`。 ## 相关资料 * [老张API快速开始](/getting-started) * [OpenAI SDK 接入指南](/api-capabilities/openai-sdk) * [模型信息与选型指南](/api-capabilities/model-info) * [Cloudflare:Error 524](https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-5xx-errors/error-524/) * [Cloudflare:Connection limits](https://developers.cloudflare.com/fundamentals/reference/connection-limits/) * [进入老张API控制台](https://api2.laozhang.ai/account/profile) # 2026 年网站公告归档 Source: https://docs.laozhang.ai/announcements/changelog-archive-2026 老张API 2026 年模型上线、价格调整、线路状态与服务更新的完整历史公告。 ## 📅 2026年9月 * **2026年9月16日** — GPT Image 2.5 两个 `-vip` 模型因上游资源不足暂不可用;官转、`gpt-image-2.5-web` 与 `gpt-image-2-vip` 正常。[查看替代模型与切换说明](/announcements/gpt-image-2-5-vip-unavailable-2026-09) * **2026年9月9日** — GPT Image 2.5 Flare / Sunburst 官转按 tokens 计费,新增两个 `-vip` 模型均为 \$0.03/次;Default 使用 `gpt-image-2-web`,对应网页版最新 2.5。[查看模型、分组与接入选择](/announcements/gpt-image-2-5-2026-09) ### ⚡ Gemini 3.8 Flash API 上线 **2026年9月3日** **`gemini-3.8-flash` 已接入老张API** * 按量计费(Chat) * 2026 年 9 月 3 日控制台价格:输入 \$0.75 / 1M tokens,输出 \$3.75 / 1M tokens * Google 官方状态为 GA;生产迁移前仍需使用目标令牌验收所需能力和实际扣费 * [查看模型 ID、调用示例、迁移边界与常见问题](/announcements/gemini-3-8-flash-2026-09) 当前可用分组、实时价格和实际扣费以[老张API控制台](https://api2.laozhang.ai/account/pricing)及调用日志为准。 ## 📅 2026年8月 ### 🎨 Grok Imagine 2 图像 API 上线 **2026年8月13日** **两款 Grok Imagine 图像模型现已接入老张API** * `grok-imagine-image`:当前 \$0.025/张 * `grok-imagine-image-quality`:当前 \$0.045/张 * 支持 5 种已文档化宽高比、1K/2K、单次最多 10 张输出;标准模型支持 1–4 张参考图,Quality 支持 1–2 张 * [查看完整价格、接口、参数边界与上线验收](/announcements/grok-imagine-2-2026-08) 实际可用分组、当前价格和扣费以[老张API控制台](https://api2.laozhang.ai/account/pricing)及调用日志为准。 ## 📅 2026年7月 ### 💸 GPT-5.6 Luna 与 Terra API 价格下调 **2026年7月30日** **GPT-5.6 系列最新价格已在老张API生效** * `gpt-5.6-luna` 输入、输出和缓存读取价格均下调 **80%** * `gpt-5.6-terra` 输入、输出和缓存读取价格均下调 **20%** * `gpt-5.6-sol` 价格保持不变 * 现有 API Key、接口地址、模型名称和请求参数无需变更 * [查看完整价格、超过 272K 输入 tokens 的计费规则与常见问题](/announcements/gpt-5-6-pricing-2026-07) 当前模型价格、令牌分组和实际扣费以[老张API控制台](https://api2.laozhang.ai/account/pricing)及调用日志为准。 ### 🎨 gpt-image-2-vip 尺寸与质量参数恢复支持 **2026年7月9日** **gpt-image-2-vip 参数能力恢复** * 经最新渠道验证,默认分组 `gpt-image-2-vip` 已恢复支持 `size` 与 `quality` 参数 * `size` 当前可用于 1K / 2K / 4K 常用尺寸;已验证 `1024x1024`、`2048x2048`、`3840x2160` 均可按请求尺寸返回 * `quality` 当前支持 `low`、`medium`、`high` 三档;质量越高,通常等待时间和输出 token 量越高 * 令牌类型请勿混用:默认分组 `gpt-image-2-vip` 使用**按次扣费令牌**;`Sora2Official` / `GPTImage2 Enterprise` 使用**按量扣费令牌**,请求体仍写 `model="gpt-image-2"` * 返回结构仍为 Images API 兼容格式,默认返回 `data[0].b64_json` * `gpt-image-2-vip` 模型名和 **\$0.03/次** 按次计费保持不变 * 2026 年 6 月 23 日“size 又失效”的公告已被本公告覆盖 * 📝 **接入文档**: * [GPT Image 2 API](/api-capabilities/gpt-image-2) 需要按次扣费并控制 1K / 2K / 4K 尺寸时,请创建默认分组按次扣费令牌,并使用 `model="gpt-image-2-vip"`。需要按官方输入 / 输出 tokens 按量扣费、官方密钥线路或更严格官方参数兼容时,创建 `Sora2Official` 或 `GPTImage2 Enterprise` 按量扣费令牌,并使用 `model="gpt-image-2"`。 ### 🍌 Nano Banana 2 Lite 上线,按次 \$0.025/次 **2026年7月1日** **Nano Banana 2 Lite 已接入老张API** * 🆕 **新增模型**:`gemini-3.1-flash-lite-image`(Nano Banana 2 Lite / Gemini 3.1 Flash Lite Image) * ⚡ **模型定位**:Google 6 月 30 日发布的轻量图像模型,约 4 秒出图,比 Nano Banana 2 更快,专注 1K 画布与高并发低成本场景 * 📐 **能力范围**:支持 1K 画布和 14 种常用宽高比,适合草稿、批量素材、快速预览与低成本迭代 * 💵 **计费说明**:老张API 当前仅开放**按次扣费**,价格为 **\$0.025/次**,实际扣费以控制台调用日志为准 * 📣 **价格状态**:刚上线售价暂定,后续如有调整会另行公告 * 📝 **接入参考**: * [Nano Banana Pro 图像生成](/api-capabilities/nano-banana-pro-image) * [Nano Banana Pro 图改图](/api-capabilities/nano-banana-pro-image-edit) `Nano Banana 2 Lite` 与 `Nano Banana 2` 是两个不同模型。Lite 使用 `gemini-3.1-flash-lite-image`,调用方式与 Nano Banana Pro 保持一致,接入时只需要把模型名替换为 `gemini-3.1-flash-lite-image`。Lite 定位为 1K 快速轻量出图;需要 2K / 4K、高分辨率成片或更复杂图像任务时,请继续使用 `gemini-3.1-flash-image`(Nano Banana 2)或 `gemini-3-pro-image`(Nano Banana Pro)。 ### 💻 Claude Sonnet 5 上线,价格与官网一致 **2026年7月1日** **Claude Sonnet 5 已接入老张API** * 🆕 **新增模型**:`claude-sonnet-5` * 🧠 **模型定位**:Anthropic 6 月 30 日发布的新一代 Sonnet,官方称其为“迄今最具 Agentic 能力的 Sonnet 模型”,适合编程 Agent、工具调用、长任务执行和复杂自动化 * 📊 **官方基准**:SWE-bench Verified **85.2%**,Terminal-Bench 2.1 **80.4%**,能力逼近旗舰 Opus 4.8 * 💵 **价格说明**:老张API 价格与 Anthropic 官网一致;介绍期为 **\$2 / \$10 每 1M 输入 / 输出 tokens**,**2026 年 8 月 31 日后**调整为 **\$3 / \$15 每 1M 输入 / 输出 tokens** * 🛡️ **线路说明**:当前走高缓存命中的 AWS Claude 纯官转资源,适合 Claude Code、Cursor、Cline、OpenClaw 等开发工具接入 * 📝 **接入参考**: * [Claude API 文档](/api-reference/claude) * [Claude Code 配置教程](/scenarios/programming/claude-code) 介绍期价格以 Anthropic 官方时间窗口为准:截至 2026 年 8 月 31 日为 \$2/\$10 每百万 tokens,之后切换到 \$3/\$15 每百万 tokens。实际扣费请以控制台模型价格和调用日志为准。 ## 📅 2026年6月 ### ⚠️ gpt-image-2-vip 的 size 又失效,暂时只能出 1K 图(历史公告) **2026年6月23日** **gpt-image-2-vip size 参数临时调整(历史状态)** 本公告为历史状态,已被 2026 年 7 月 9 日“尺寸与质量参数恢复支持”公告覆盖。`gpt-image-2-vip` 当前已恢复支持 `size` 与 `quality`。 * 今天上午经客户反馈、实测与代码层面排查确认:受官方规则再次调整影响,默认分组 `gpt-image-2-vip` 原本恢复的 `size` 又失效 * 当时 `gpt-image-2-vip` 只能稳定出 1K;传入的 `size` 尺寸会被静默忽略,2K / 4K 暂时无法按参数识别 * `gpt-image-2-vip` 模型名和 **\$0.03/次** 按次计费保持不变 * 当时需要 2K / 4K 或精准尺寸控制时,请改用官转 `gpt-image-2`,即 `Sora2Official` 或 `GPTImage2 Enterprise` 分组 * 官转 `gpt-image-2` 支持 4K / 2K 与精准 `size` 控制;按官方输入 / 输出 tokens 计费,不按默认分组按次计费 * 2026 年 6 月 18 日发布的“尺寸与质量参数恢复支持”公告已被本公告覆盖 * 📝 **接入文档**: * [GPT Image 2 API](/api-capabilities/gpt-image-2) 最新状态请以 2026 年 7 月 9 日公告和 [GPT Image 2 API](/api-capabilities/gpt-image-2) 文档为准。 ### 🎨 gpt-image-2-vip 尺寸与质量参数恢复支持(历史公告) **2026年6月18日** **gpt-image-2-vip 参数能力历史更新** 本公告为历史状态。`gpt-image-2-vip` 曾在 2026 年 6 月 23 日再次失效,后续已在 2026 年 7 月 9 日恢复支持 `size` 与 `quality`。 * 本条记录描述 2026 年 6 月 18 日的短暂恢复状态;最新恢复状态请以 2026 年 7 月 9 日公告为准 * 当时默认分组 `gpt-image-2-vip` 曾恢复支持 `size` 尺寸参数 * 当时支持常用 1K、2K、4K 明确像素尺寸,包括 `1024x1024`、`1536x1024`、`2048x2048`、`2048x1152`、`3840x2160`、`2160x3840` * `gpt-image-2-vip` 模型名和 **\$0.03/次** 按次计费保持不变 * 当前需要 2K / 4K 或精准 `size` 控制时,可使用默认分组 `gpt-image-2-vip`,或使用官转 `gpt-image-2` * 📝 **接入文档**: * [GPT Image 2 API](/api-capabilities/gpt-image-2) 默认分组 `gpt-image-2-vip` 当前已恢复支持 `size` / `quality`。需要官方密钥线路或更严格官方参数兼容时,请使用 `Sora2Official` / `GPTImage2 Enterprise` 分组的 `gpt-image-2`。 ### ⚠️ sora-2 和 sora-2-pro 官转模型将于 7 月 1 日下线 **2026年6月17日** **Sora 2 官转线路下线通知** * 受上游 OpenAI 算力调度影响,`sora-2` 和 `sora-2-pro` 官转线路近期超时严重,稳定性已无法满足生产体验 * 本站将于 **2026 年 7 月 1 日** 停止维护并下线 `sora-2` / `sora-2-pro` 官转模型 * 虽然官方计划下线时间可能在 2026 年 9 月,但当前线路已经频繁不稳定,不建议继续新增接入或用于生产任务 * 已接入用户请尽早迁移到其他视频模型;当前建议优先评估 `wan-2.7` 和 `SeeDance2` / Seedance 2.0 * 📝 **迁移参考**: * [Seedance 2.0 视频生成 API](/api-capabilities/seedance2-video-generation) 7 月 1 日之后,`sora-2` 和 `sora-2-pro` 官转线路将不再作为稳定可用入口维护。生产任务请提前切换,避免任务超时或失败影响业务。 ### ⚠️ gpt-image-2-vip 尺寸参数停止支持(历史公告) **2026年6月16日** **gpt-image-2-vip 参数支持调整** 本公告为历史状态。`gpt-image-2-vip` 后续曾在 2026 年 6 月 18 日短暂恢复 `size`,6 月 23 日再次失效,并已在 2026 年 7 月 9 日恢复支持 `size` 与 `quality`。 * 本条记录描述 2026 年 6 月 16 日的临时参数调整 * `gpt-image-2-vip` 模型名和 **\$0.03/次** 按次计费保持不变 * 当时状态:默认分组 `gpt-image-2-vip` 的 `size` 再次失效;传入 `size` 会被静默忽略,2K / 4K 无法识别 * 默认分组 `gpt-image-2` 仍不支持 `size` / `quality` * 需要官方 Images API 字段时,使用已完成当前参数验收的 `Sora2Official` 或 `GPTImage2 Enterprise` 分组,并按专题页的 verified/conditional 边界调用 * 📝 **接入文档**: * [GPT Image 2 API](/api-capabilities/gpt-image-2) 本段为历史说明。最新状态请以 2026 年 6 月 23 日公告和 [GPT Image 2 API](/api-capabilities/gpt-image-2) 文档为准。 ## 📅 2026年5月 ### 🎬 Veo 3.1 官方 API 转发上线,4K 统一低价 **2026年5月21日** **Veo 3.1 官转线路更新** * 🚀 **新增模型**: * `veo-3.1-fast-generate-preview` * `veo-3.1-generate-preview` * 💵 **Pay-per-request 计费**: * `veo-3.1-fast-generate-preview`:`$0.3/次` * `veo-3.1-generate-preview`:`$1.2/次` * 创建令牌时 Billing mode 选择 `Pay-per-request` * 支持组合统一价格,不按分辨率额外加价;生产接入推荐统一使用 `8` 秒,`1080p` 和 `4K` 必须使用 `8` 秒 * 📉 **4K 价格优势**: * 按 Google 官方 8 秒 4K 价格测算,Fast 从官方约 `$2.40` 降至 `$0.3/次` * Standard 从官方约 `$4.80` 降至 `$1.2/次` * 4K 请求按统一价计费,最终分辨率请以下载后的 MP4 媒体信息为准 * 📝 **接入文档**: * [Veo 3.1 官方 API 转发方案](/api-capabilities/veo/official-forward) 新线路使用 Sora2 官转同款 OpenAI Videos API 风格:`POST /v1/videos` 创建任务,`GET /v1/videos/{id}` 查询状态,`GET /v1/videos/{id}/content` 下载 MP4 字节流。旧 `veo-3.1`、`veo-3.1-fast`、`veo-3.1-fl` 线路故障通知仍然适用于旧模型名,新接入请使用上方官转模型名。 ### ⚠️ Veo-3.1 旧接入方案暂时无法使用 **2026年5月14日** **Veo-3.1 线路故障通知** * `veo-3.1` 系列旧接入方案自 2026 年 5 月 14 日起出现故障 * 当前该旧接入方案暂时无法使用,请暂停新增调用和生产任务接入 * 已接入用户请关注后续公告,恢复时间以网站公告和控制台通知为准 故障期间,请不要将 `veo-3.1`、`veo-3.1-fast`、`veo-3.1-fl` 等 Veo-3.1 旧接入线路用于生产任务。 ### 🛡️ GPTImage2 Enterprise 官方密钥 分组上线 **2026年5月13日** **GPT Image 2 官方兼容分组更新** * 新增 `GPTImage2 Enterprise` 分组:官方密钥 线路,高并发账户能力 * 计费为官方价 +20%,包含上游费用与运营成本,非利润加价 * `Sora2Official` 分组继续可用:定位为 AZ + 官方密钥 混合官方 API 转发分组 * 两个官方兼容分组都使用 `model="gpt-image-2"`,按 Images Generations 和 Images Edits 接入 如果只是快速测试或使用默认分组线路,可继续使用默认分组的 `gpt-image-2` / `gpt-image-2-vip`。如果需要官方参数兼容和更高稳定性,优先选择 `GPTImage2 Enterprise`。 ### 🎨 gpt-image-2-vip 尺寸参数历史公告 **2026年5月1日** **gpt-image-2-vip 尺寸能力更新** 本公告保留 2026 年 5 月 1 日的历史状态。`gpt-image-2-vip` 曾在 2026 年 6 月 16 日停止支持 `size`,6 月 18 日短暂恢复,6 月 23 日再次失效,并已在 2026 年 7 月 9 日恢复支持 `size` 与 `quality`。 * ✅ **参数更新**: * ~~`gpt-image-2-vip` 现已支持 1K、2K、4K 三档 `size` 参数~~ * ~~共支持 30 个明确像素尺寸,覆盖方图、竖版、横版、宽屏和超宽屏比例~~ * ~~请求时请传明确像素值,例如 `2048x2048`、`3840x2160`、`2160x3840`~~ * 最新状态:`gpt-image-2-vip` 已恢复支持 `size` 与 `quality` * 🧩 **接入说明**: * ~~`gpt-image-2-vip` 支持 `size`~~ * `gpt-image-2-vip` 当前已恢复支持 1K / 2K / 4K 常用尺寸 * 需要官方密钥线路或更严格官方参数兼容时,可使用 `Sora2Official` 分组的 AZ + 官方密钥 混合官方 API 转发 `gpt-image-2`,或使用 `GPTImage2 Enterprise` 官方密钥 分组 * 📝 **开发文档**: * [GPT Image 2 API](/api-capabilities/gpt-image-2) 这条历史公告记录的是 `gpt-image-2-vip` 当时的尺寸参数能力更新,不改变 4 月 22 日 GPT-Image-2 默认分组线路上线公告本身。 ## 📅 2026年4月 ### 🎨 GPT-Image-2 默认分组线路更新,sora\_image 官方线路下线 **2026年4月22日** **图像生成接口迁移公告** * 🚀 **新增方案**: * `gpt-image-2` 默认标准线路已上线,支持文生图和图改图 * `gpt-image-2-vip` 已上线;截至 2026 年 7 月 9 日已恢复支持 `size` 与 `quality` * ⚠️ **线路调整**: * `sora_image` 官方线路已下线 * 新增图像生成需求建议优先迁移到 `gpt-image-2` 或 `gpt-image-2-vip` * 现有 `sora_image` 调用请尽快切换模型和接口配置 * 💵 **价格说明**: * `gpt-image-2` 按次计费,价格为 `$0.03/次` * `gpt-image-2-vip` 按次计费,价格同样为 `$0.03/次` * 可先在 [yingtu.ai](https://yingtu.ai) 在线测试效果,再接入 API * 📝 **接入文档**: * 开发文档:[GPT Image 2 API](/api-capabilities/gpt-image-2) * 飞书说明文档:[GPT-Image-2 默认分组线路说明](https://peixikeji.feishu.cn/wiki/ADXEwt76cisR32kAiqscd79lnKp) 默认分组线路按 Images Generations 和 Images Edits 接入。普通文生图可使用 `gpt-image-2` 或 `gpt-image-2-vip`;需要 2K / 4K、精准 `size` 或完整官方参数兼容时,请使用 `Sora2Official` 分组的 AZ + 官方密钥混合官方 API 转发 `gpt-image-2`,需要官方密钥线路时优先使用 `GPTImage2 Enterprise` 分组。 ### 🧠 Claude Opus 4.7 / Thinking 发布上线 **2026年4月17日** **Claude Opus 4.7 现已接入老张API** * 🚀 **新增模型**:`claude-opus-4-7` / `claude-opus-4-7-thinking` * 🌟 **上线说明**: * 平台已开放标准版与 Thinking 推理版调用 * 支持通过 OpenAI 兼容接口直接切换模型名称使用 * 适合复杂推理、编程 Agent 与长上下文任务 * 📝 **文档同步**: * 网站公告已更新 * 相关推荐页面会陆续同步到最新模型版本 如需优先体验 Claude 最新高端模型,可直接在控制台或现有代码中将 `model` 切换为上述名称进行调用。 ### 💰 Nano Banana 系列价格调整公告 **2026年4月13日** **Nano Banana Pro / Nano Banana2 新价格生效** * 🎯 **涉及模型**: * `gemini-3-pro-image-preview`(Nano Banana Pro) * `gemini-3.1-flash-image-preview`(Nano Banana2) * 💵 **价格调整**: * Nano Banana Pro:`$0.05/次 → $0.09/次` * Nano Banana2:`$0.045/次 → $0.055/次` * 📝 **同步内容**: * 官网文档和价格说明已同步更新 * 对比页、FAQ 与推荐说明已按新价格调整 * 实际扣费以控制台调用日志为准 本次调整即日起生效。如需批量采购或稳定大规模调用,可联系 Telegram [@laozhang\_cn](https://t.me/laozhang_cn) 咨询。 ## 📅 2026年1月 ### 📚 文档全面更新迎接2026年 **2026年1月7日** **文档优化 - 2026年新年更新** * 📅 **年份更新**:所有模型推荐页面更新至2026年 * 🔄 **模型引用更新**:代码示例中的默认模型更新为最新推荐 * ⚠️ **退役提醒**:Claude 3 Opus 已于2026年1月5日正式退役 * 📝 **配置更新**:Claude Code 配置方式更新为 settings.json 新年新气象,老张API持续为您提供最优质的AI服务! *** [返回网站公告](/changelog) # Gemini 3.8 Flash API 上线:价格、模型 ID 与接入方法 Source: https://docs.laozhang.ai/announcements/gemini-3-8-flash-2026-09 老张API已上线 Gemini 3.8 Flash。本页说明 gemini-3.8-flash 的当前输入与输出价格、适用场景、OpenAI 兼容调用方法和迁移注意事项。 * **发布日期**:2026 年 9 月 3 日 * **最后核对**:2026 年 9 月 3 日 * **当前状态**:有效;`gemini-3.8-flash` 已在老张API控制台上线,具体可用分组和实时价格以控制台为准 老张API现已上线 `gemini-3.8-flash`,通过 Chat 按量计费。2026 年 9 月 3 日控制台显示的价格为:**输入 \$0.75 / 1M tokens,输出(补全)\$3.75 / 1M tokens**。准备迁移的用户应先确认目标令牌分组可见该模型,再用真实提示词完成小流量验收。 ## 关键事实 | 项目 | 当前结论 | | ------------------ | ----------------------------------------- | | 老张API模型 ID | `gemini-3.8-flash` | | 计费类型 | 按量计费(Chat) | | 输入价格 | \$0.75 / 1M tokens(2026 年 9 月 3 日控制台价格) | | 输出价格 | \$3.75 / 1M tokens(2026 年 9 月 3 日控制台补全价格) | | 老张API接口 | OpenAI 兼容 `POST /v1/chat/completions` | | Google 官方状态 | GA,稳定模型 ID 为 `gemini-3.8-flash` | | Google 官方 token 上限 | 最多 1,048,576 输入 tokens、65,536 输出 tokens | | Google 官方 Thinking | `low`、`medium`、`high`;不支持 `minimal` | Google 官方规格说明的是上游 Gemini API 能力,不自动证明老张API当前线路已逐项兼容所有原生参数、内置工具、输入模态或响应字段。工具调用、结构化输出、多模态、流式响应和 Thinking 参数请使用目标令牌分别验收。 ## 谁需要关注 * 正在为长时间软件工程、代码重构或复杂 Agent 工作流选择 Flash 模型的开发者; * 当前使用 `gemini-3.6-flash`、`gemini-3.7-flash` 或更早 Flash 型号,并准备做同任务对照测试的团队; * 需要在输入、输出质量、延迟和 token 成本之间重新评估模型选择的生产应用。 不使用 Gemini 文本模型的图像生成、语音或视频生成工作流不受本次上线影响。已有稳定生产调用也不需要立即迁移;本公告新增模型,不代表旧模型同步下线。 ## 如何调用 Gemini 3.8 Flash 先在[控制台模型与价格页面](https://api2.laozhang.ai/account/pricing)确认目标令牌分组可见 `gemini-3.8-flash`,再发送最小文本请求: ```bash theme={null} curl https://api2.laozhang.ai/v1/chat/completions \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3.8-flash", "messages": [ {"role": "user", "content": "审查这段代码的并发风险,并给出最小修改方案。"} ] }' ``` 成功验收至少应确认:响应包含可用文本、响应中的模型与请求一致、调用日志记录输入与输出 tokens、实际扣费符合当前控制台价格。需要工具调用、结构化输出、多模态或流式响应时,再为每项能力增加独立测试,不要只凭一次 HTTP 200 全量切换生产流量。 ## 迁移注意事项 Google 官方迁移说明指出,Gemini 3.8 Flash 默认 Thinking 等级为 `medium`,支持 `low`、`medium`、`high`,但 `minimal` 会返回错误。Google 原生 API 还要求迁移时检查已弃用的采样参数、`thinking_budget`、`candidate_count` 和对话轮次格式。 这些原生规则不应直接等同于老张API的 OpenAI 兼容协议。迁移时建议: 1. 只替换测试环境中的模型 ID,保留已验证的回退模型; 2. 使用代表性请求比较答案质量、首 token 延迟、总耗时与 token 用量; 3. 单独测试工具调用、JSON 输出、图片或文件输入以及流式返回; 4. 核对调用日志中的实际扣费后,再分阶段增加流量。 ## 常见问题 ### Gemini 3.8 Flash 的正确模型 ID 是什么? 使用 `gemini-3.8-flash`。不要自行添加 `-preview`、`-thinking` 或 `-nothinking` 后缀;只有控制台明确列出的兼容别名才可使用。 ### 当前价格是多少? 2026 年 9 月 3 日老张API控制台显示:输入 \$0.75 / 1M tokens,输出(补全)\$3.75 / 1M tokens。价格可能随线路或活动变化,批量调用前请复核控制台,并以调用日志中的实际扣费为准。 ### Gemini 3.8 Flash 是正式版吗? 是。Google 将 `gemini-3.8-flash` 标记为 GA 和稳定模型。老张API是否对某个令牌分组开放,仍需在控制台单独确认。 ### 可以只改模型 ID 就迁移吗? 可以把替换模型 ID 作为第一步,但不能因此认定完整兼容。生产迁移前还需检查提示词效果、Thinking、工具调用、结构化输出、流式响应、token 用量和延迟。 ### 旧版 Gemini Flash 需要立即停用吗? 不需要。本次是新增模型上线公告,不是旧模型下线通知。若旧模型的质量、延迟和成本仍满足要求,可以继续使用并安排对照测试。 ## 证据来源与相关文档 * [Google:Gemini 3.8 Flash 官方模型页](https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash) — 上游状态、模型 ID、输入输出上限与能力范围 * [Google:Gemini 3.8 Flash 更新与迁移说明](https://ai.google.dev/gemini-api/docs/generate-content/latest-model) — 上游默认 Thinking、价格窗口与迁移事项 * [Google:Gemini API 价格](https://ai.google.dev/gemini-api/docs/pricing) — 上游官方价格;不等同于老张API未来价格承诺 * [老张API OpenAI SDK 接入指南](/api-capabilities/openai-sdk) — OpenAI 兼容客户端配置 * [Gemini 3.6 Flash 与 3.5 Flash-Lite 上线公告](/announcements/gemini-flash-models-2026-07) — 旧款 Flash 模型与选型边界 * [老张API控制台](https://api2.laozhang.ai/account/pricing) — 当前可用分组、实时价格与实际扣费入口 # Gemini 3.6 Flash 与 Gemini 3.5 Flash-Lite API 上线:区别、模型 ID 与接入 Source: https://docs.laozhang.ai/announcements/gemini-flash-models-2026-07 老张API已接入 Gemini 3.6 Flash 与 Gemini 3.5 Flash-Lite。本页说明两款 GA 模型的区别、模型 ID、适用场景、OpenAI 兼容调用方法和常见问题。 * **发布日期**:2026年7月22日 * **最后核对**:2026年7月23日 * **当前状态**:已上线;具体令牌分组和价格以控制台为准 `gemini-3.6-flash` 与 `gemini-3.5-flash-lite` 已接入老张API。通用多模态、代码和多步 Agent 任务优先测试 Gemini 3.6 Flash;分类、抽取、文档解析和成本或延迟敏感的高并发任务优先测试 Gemini 3.5 Flash-Lite。 ## 两款新模型有什么区别? | 模型 | 官方状态 | 默认 Thinking | 核心定位 | 推荐任务 | | --------------------- | -------- | ----------- | ---------------------- | -------------------------- | | Gemini 3.6 Flash | GA,可用于生产 | `medium` | 速度、智能与 token 效率之间的主力平衡 | 代码、多模态理解、复杂 Agent、知识工作 | | Gemini 3.5 Flash-Lite | GA,可用于生产 | `minimal` | 更低延迟和成本的高吞吐轻量模型 | 子 Agent、分类、信息抽取、文档解析、批量自动化 | Google 官方资料显示,两款模型均提供约 100 万输入 token 上下文和最多 64K 输出 token。老张API实际可用能力、并发和计费仍受令牌分组及当前线路配置影响。 ## 正确的模型 ID * Gemini 3.6 Flash:`gemini-3.6-flash` * Gemini 3.5 Flash-Lite:`gemini-3.5-flash-lite` 调用时使用完整模型 ID。不要自行添加 `-preview`、`-thinking` 或 `-nothinking` 后缀;只有控制台明确列出的兼容别名才可使用。 ## 如何通过老张API调用? 老张API提供 OpenAI 兼容接口。下面的最小请求使用 Gemini 3.6 Flash;切换到轻量模型时只需替换 `model`。 ```bash theme={null} curl https://api2.laozhang.ai/v1/chat/completions \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3.6-flash", "messages": [ {"role": "user", "content": "比较这两份产品需求并输出风险清单"} ] }' ``` 生产接入前建议: 1. 在[控制台模型与价格页面](https://api2.laozhang.ai/account/pricing)确认目标令牌分组已开放该模型; 2. 用目标生产请求做小流量测试,记录响应格式、延迟、token 用量与错误码; 3. 分阶段提高并发,并监控 429、5xx、平均延迟和调用日志中的实际扣费; 4. 从旧模型迁移时保留可回退的模型 ID,不要一次性切换全部生产流量。 ## 谁需要关注这次上线? * 正在为代码、复杂多模态或多步 Agent 工作流选择主力 Flash 模型的团队; * 需要批量分类、结构化抽取、文档解析或子 Agent 的高吞吐应用; * 当前使用 Gemini 3.5 Flash、Gemini 3.1 Flash-Lite 或更早 Flash 系列并准备评估迁移的项目。 已有稳定工作流不需要立即迁移。应先用自己的提示词、工具调用和数据格式做对照测试,再决定是否替换生产模型。 ## 常见问题 ### Gemini 3.6 Flash 和 Gemini 3.5 Flash-Lite 都是正式版吗? 是。Google 将 `gemini-3.6-flash` 和 `gemini-3.5-flash-lite` 标记为 GA,并说明可用于生产。老张API是否对你的令牌分组开放,仍需在控制台单独确认。 ### Gemini 3.6 Flash 和 Gemini 3.5 Flash-Lite 应该选哪个? 复杂 Agent、代码和多模态任务先测试 Gemini 3.6 Flash;高并发抽取、分类、文档解析和成本敏感任务先测试 Gemini 3.5 Flash-Lite。最终选择应依据真实请求的质量、延迟和总成本,而不是只看模型名称。 ### 新模型的 API 地址是什么? 使用老张API OpenAI 兼容接口时,基础地址为 `https://api2.laozhang.ai/v1`,文本对话通常调用 `POST /v1/chat/completions`。完整 SDK 配置见[OpenAI 官方库使用指南](/api-capabilities/openai-sdk)。 ### 旧版 Gemini 调用代码可以直接迁移吗? 不要直接全量替换。先更换模型 ID 做小流量兼容测试,重点检查工具调用、结构化输出、Thinking 行为、token 用量和延迟。若使用 Google 原生 API,还应阅读 Google 的最新模型迁移说明;原生参数规则不应直接等同于老张API的 OpenAI 兼容协议。 ### 如何开启或关闭 Thinking? Gemini 3 系列通过请求参数控制 Thinking。部分网关兼容别名并非 Google 官方模型 ID;请以控制台当前显示的参数或别名为准,不要自行拼接模型后缀。 ### 新模型价格在哪里看? Google 官方价格与老张API网关价格属于不同计费合同。老张API当前价格、令牌分组和实际扣费以[控制台模型与价格页面](https://api2.laozhang.ai/account/pricing)及调用日志为准。 ## 资料与相关入口 * [Google:Gemini 3.6 Flash 官方模型页](https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash) * [Google:Gemini 3.5 Flash-Lite 官方模型页](https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash-lite) * [Google:最新 Gemini 模型与迁移说明](https://ai.google.dev/gemini-api/docs/latest-model) * [老张API模型信息与选型指南](/api-capabilities/model-info) * [老张API OpenAI SDK 接入指南](/api-capabilities/openai-sdk) * [进入老张API控制台](https://api2.laozhang.ai/account/profile) # GPT-5.6 Luna 与 Terra API 降价:最新价格与长上下文计费 Source: https://docs.laozhang.ai/announcements/gpt-5-6-pricing-2026-07 OpenAI 已下调 GPT-5.6 Luna 与 Terra API 价格,老张API同步生效。本页列出输入、输出、缓存读取和超过 272K 输入 tokens 时的最新价格。 * **发布日期**:2026年7月30日 * **最后核对**:2026年8月1日 * **当前状态**:有效;`gpt-5.6-luna` 与 `gpt-5.6-terra` 已执行新价格,`gpt-5.6-sol` 价格不变 OpenAI 自 2026 年 7 月 30 日起将 GPT-5.6 Luna API 价格下调 80%,将 GPT-5.6 Terra API 价格下调 20%。老张API已同步执行新价格;现有用户无需更换 API Key、接口地址、模型名称或请求参数,新价格会自动应用于后续调用。 ## 最新价格 以下均为每 100 万 tokens 的美元价格,适用于输入 prompt tokens 不超过 272K 的标准请求。 | 模型 | 输入价格 | 输出价格 | 缓存读取 | 降幅 | | --------------- | ------------------: | --------------------: | ------------------: | ------: | | `gpt-5.6-luna` | \$1.00 → **\$0.20** | \$6.00 → **\$1.20** | \$0.10 → **\$0.02** | **80%** | | `gpt-5.6-terra` | \$2.50 → **\$2.00** | \$15.00 → **\$12.00** | \$0.25 → **\$0.20** | **20%** | | `gpt-5.6-sol` | **\$5.00** | **\$30.00** | **\$0.50** | 保持不变 | 本表说明 GPT-5.6 系列标准 token 价格。特殊令牌分组、服务档位或其他计费方式仍以[控制台模型与价格页面](https://api2.laozhang.ai/account/pricing)和调用日志为准。 ## 超过 272K 输入 tokens 时如何计费? 当单次请求的输入 prompt 超过 272K tokens 时,OpenAI 对整次请求采用 2 倍输入价格和 1.5 倍输出价格。按最新基础价格计算: | 模型 | 长上下文输入价格 | 长上下文输出价格 | 变化 | | --------------- | ------------------: | --------------------: | -----: | | `gpt-5.6-luna` | \$2.00 → **\$0.40** | \$9.00 → **\$1.80** | 下调 80% | | `gpt-5.6-terra` | \$5.00 → **\$4.00** | \$22.50 → **\$18.00** | 下调 20% | | `gpt-5.6-sol` | **\$10.00** | **\$45.00** | 保持不变 | 长上下文倍率作用于整次请求,不是只对超过 272K 的部分加价。正式估算成本时,应使用完整输入 token 数,并在调用后通过控制台日志核对实际扣费。 ## 为什么能够降价? OpenAI 表示,价格下调来自模型、推理系统和 Agent 执行框架的整体效率提升,包括更高效的生产软件、硬件调度与上下文管理。在人工主导的研发流程中,GPT-5.6 Sol 还参与重写和优化生产内核、运行 token 生成实验;OpenAI 披露这些内核优化使端到端服务成本降低约 20%,相关实验使 token 生成效率提升超过 15%。 ## 谁会受到影响? * 正在调用 `gpt-5.6-luna` 的用户会自动按新价格计费,适合重新评估批量分类、抽取和高吞吐 Agent 工作负载的成本; * 正在调用 `gpt-5.6-terra` 的用户会自动获得 20% 的价格下调; * `gpt-5.6-sol` 的标准价格和长上下文价格均保持不变; * API Key、`https://api2.laozhang.ai/v1` 基础地址、模型 ID、Chat Completions 与 Responses API 调用方式均无需调整。 ## 用户需要做什么? 1. **无需修改代码**:继续使用现有 API Key、接口和模型名称即可。 2. **更新成本预算**:使用上方新价格重新计算 Luna 与 Terra 的批量任务和 Agent 工作流成本。 3. **检查长上下文请求**:输入 prompt 可能超过 272K tokens 时,按整次请求的长上下文档位估算。 4. **核对实际扣费**:在[控制台模型与价格页面](https://api2.laozhang.ai/account/pricing)确认令牌分组,并通过调用日志核对 token 用量与账单。 ## 常见问题 ### 需要更换 API Key、接口地址或模型名称吗? 不需要。本次调整只改变价格,不改变老张API现有 API Key、基础地址、模型 ID 或请求格式。 ### 超过 272K 后只对超出的 tokens 加价吗? 不是。只要输入 prompt 超过 272K tokens,2 倍输入和 1.5 倍输出的长上下文倍率就作用于整次请求。 ### `gpt-5.6-sol` 也降价了吗? 没有。`gpt-5.6-sol` 仍为每 100 万 tokens 输入 \$5.00、缓存读取 \$0.50、输出 \$30.00;超过 272K 输入 tokens 时,输入和输出分别为 \$10.00 与 \$45.00。 ### 以前的调用会按新价格重新计算吗? 本公告说明自 2026 年 7 月 30 日起生效的当前价格。此前调用的历史扣费不会仅因本公告而改变,具体账单以控制台已有记录为准。 ### 如何确认我的令牌已经使用新价格? 打开[控制台模型与价格页面](https://api2.laozhang.ai/account/pricing)确认模型和令牌分组,再用一条小流量请求检查调用日志中的输入 tokens、输出 tokens 与实际扣费。 ## 资料与相关入口 * [OpenAI:GPT-5.6 价格性能更新与降价说明](https://openai.com/index/advancing-the-price-performance-frontier-with-gpt-5-6/) * [OpenAI API 更新日志:2026 年 7 月 30 日价格变更](https://developers.openai.com/api/docs/changelog) * [OpenAI:GPT-5.6 Luna 模型与价格](https://developers.openai.com/api/docs/models/gpt-5.6-luna) * [OpenAI:GPT-5.6 Terra 模型与价格](https://developers.openai.com/api/docs/models/gpt-5.6-terra) * [OpenAI:GPT-5.6 Sol 模型与价格](https://developers.openai.com/api/docs/models/gpt-5.6-sol) * [老张API模型价格与选型](/pricing) * [老张API模型信息](/api-capabilities/model-info) * [进入老张API控制台](https://api2.laozhang.ai/account/pricing) # GPT Image 2.5 上线:官转、按次计费与网页版接入选择 Source: https://docs.laozhang.ai/announcements/gpt-image-2-5-2026-09 GPT Image 2.5 于 2026 年 9 月 9 日上线的历史记录。两个 -vip 模型于 9 月 16 日暂不可用,请查看最新公告选择官转或网页版替代。 **2026 年 9 月 16 日状态更新:** 两个 GPT Image 2.5 `-vip` 模型因上游资源不足暂不可用,官转与 `gpt-image-2.5-web` 正常。请先查看[最新停用公告与替代线路](/announcements/gpt-image-2-5-vip-unavailable-2026-09)。下文保留 9 月 9–10 日上线记录,原可用性和网页版模型名不作为当前接入建议。 GPT Image 2.5 Flare 与 Sunburst 已在老张API**官转分组**上线,沿用 GPT Image 2 官转接入方式,按相同 token 单价计费。Default 分组继续使用 `gpt-image-2-web`,已对应 GPT 网页版最新的 2.5。 按次计费可选择 `gpt-image-2.5-flare-vip` 和 `gpt-image-2.5-sunburst-vip`,均为 **\$0.03/次**,接入方式同 `gpt-image-2-vip`。 * **发布日期**:2026 年 9 月 9 日 * **最后核对日期**:2026 年 9 月 10 日 * **状态**:历史记录;当前线路状态已由 9 月 16 日公告替代 **9 月 10 日更新:** `gpt-image-2.5-flare-vip` 和 `gpt-image-2.5-sunburst-vip` 已支持 `xhigh`、`max` 质量档位,现有模型名、分组及按次计费方式不变。 ## 选择模型与线路 | 需求 | 模型 ID | 当前版本 | 分组与计费 | | ---------------- | ---------------------------- | ----------------------------------- | ----------------------------- | | 优先生成速度 | `gpt-image-2.5-flare` | `gpt-image-2.5-flare-2026-09-08` | 官转分组,按 tokens | | 优先精细编辑 | `gpt-image-2.5-sunburst` | `gpt-image-2.5-sunburst-2026-09-08` | 官转分组,按 tokens | | 按次生成与编辑 | `gpt-image-2.5-flare-vip` | 按次计费模型 ID | Default 分组,\$0.03/次 | | 按次生成与编辑 | `gpt-image-2.5-sunburst-vip` | 按次计费模型 ID | Default 分组,\$0.03/次 | | 使用 GPT 网页版最新 2.5 | `gpt-image-2-web` | 网页版 2.5,不等同于某个官转快照 | Default 分组,当前 \$0.03/次,以控制台为准 | Flare 和 Sunburst 都可以生成与编辑图像;速度优先选 Flare,编辑精度优先选 Sunburst,也可在应用中提供两个选项。官转使用 `Sora2Official` 或 `GPTImage2 Sora2 Enterprise` 分组;按次调用使用 Default 分组及带 `-vip` 后缀的模型 ID。 ## 用户需要做什么 * **现有 GPT Image 2 官转用户**:确认[令牌](https://api2.laozhang.ai/token)具有目标模型的官转权限,保留 Images API 接口和鉴权,替换 `model` 即可开始调用。文生图用 `POST /v1/images/generations`,编辑用 `POST /v1/images/edits`。 * **现有按次调用用户**:沿用 `gpt-image-2-vip` 的按次令牌、接口和参数结构,将 `model` 改为 `gpt-image-2.5-flare-vip` 或 `gpt-image-2.5-sunburst-vip`。 * **Default 网页版用户**:继续传 `model="gpt-image-2-web"`,无需改为 Flare / Sunburst。 * **使用其他旧线路的用户**:本公告不要求统一迁移。若要使用 2.5 官转,应重新确认模型、分组和按量计费设置。 生成、编辑、图片保存示例及尺寸参数见 [GPT Image 2.5 接入指南](/api-capabilities/gpt-image-2-5)。完成请求后,可在[调用日志](https://api2.laozhang.ai/log)查看使用的模型、用量与扣费。 ## 常见问题 ### “与 GPT Image 2 同价”是否代表每张图价格相同? 不是。指官转 token 单价相同;模型、质量、尺寸和参考图会改变 token 消耗,单张总价可能不同。查看[官转计费说明](/api-capabilities/gpt-image-2-5)和[当前控制台价格](https://api2.laozhang.ai/account/pricing),企业报价联系支持团队。 ### Default 能直接调用 Flare 或 Sunburst 吗? 不带 `-vip` 后缀的 Flare / Sunburst 需要官转分组的按量令牌。Default 可使用新增的 `gpt-image-2.5-flare-vip`、`gpt-image-2.5-sunburst-vip`,两者均为 \$0.03/次;网页版入口仍是 `gpt-image-2-web`。 ### GPT Image 2.5 只支持表格中的 6 种尺寸吗? 不是。**两款按次计费模型的常规尺寸均支持,覆盖 1K、2K、4K 及常见方图、横图、竖图画幅**,也支持合法范围内的自定义宽高。文档表格只列出 6 个常用示例。`size` 使用 `宽x高` 格式,常用规格覆盖 1K、2K、4K;`quality` 可选 `low`、`medium`、`high`、`xhigh` 或 `max`。入门可使用 `size="2048x2048"`、`quality="medium"`;不需要指定时省略相应字段。尺寸取值范围、限制及示例见 [尺寸与质量参数](/api-capabilities/gpt-image-2-5)。 ### 按次模型能生成透明图片或去背景吗? 可以。`gpt-image-2.5-flare-vip` 和 `gpt-image-2.5-sunburst-vip` 都支持透明背景 PNG 生成和图片去背景。设置 `background="transparent"`、`output_format="png"`;生成使用 `/v1/images/generations`,上传图片去背景使用 `/v1/images/edits`。完整示例见 [透明背景 PNG 接入说明](/api-capabilities/gpt-image-2-5)。 ### 能否固定模型版本? 官转可将 `model` 写成表中的完整日期快照 ID。按次模型使用带 `-vip` 后缀的 ID;网页版使用 `gpt-image-2-web`。这两类入口不使用官转日期快照 ID。 ## 参考资料与相关文档 * OpenAI 官方:[图像生成指南](https://developers.openai.com/api/docs/guides/image-generation)、[Flare 模型与快照](https://developers.openai.com/api/docs/models/gpt-image-2.5-flare)、[Sunburst 模型与快照](https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst)。 * 老张API:[模型与价格](https://api2.laozhang.ai/account/pricing)、[令牌管理](https://api2.laozhang.ai/token)、[调用日志](https://api2.laozhang.ai/log)。 * [GPT Image 2.5 接入指南](/api-capabilities/gpt-image-2-5)、[Images API 参考](/api-reference/images)、[模型与价格总表](/models)、[服务与计费条款](https://www.laozhang.ai/terms)。 # GPT Image 2.5 -vip 暂不可用:官转与 -web 正常 Source: https://docs.laozhang.ai/announcements/gpt-image-2-5-vip-unavailable-2026-09 GPT Image 2.5 Flare / Sunburst -vip 因上游资源不足暂不可用,可切换官转或 gpt-image-2.5-web;了解替代模型、计费方式与尺寸限制。 `gpt-image-2.5-flare-vip` / `gpt-image-2.5-sunburst-vip` 当前因上游资源不足,**暂不可用**。需要 GPT Image 2.5 时,建议优先切换官转 `gpt-image-2.5-flare` / `gpt-image-2.5-sunburst`,或使用 `gpt-image-2.5-web`。 * **发布日期**:2026 年 9 月 16 日 * **最后核对日期**:2026 年 9 月 16 日(老张API运营通知) * **当前状态**:有效;GPT Image 2.5 两个 `-vip` 模型暂不可用,官转与 `-web` 正常 ## 受影响模型与可用替代 | 模型 ID | 当前状态 | 计费与选择边界 | | -------------------------------------------------------- | ----------- | -------------------------------------------------- | | `gpt-image-2.5-flare-vip` / `gpt-image-2.5-sunburst-vip` | 暂不可用,上游资源不足 | 暂停使用,等待恢复通知 | | `gpt-image-2.5-flare` / `gpt-image-2.5-sunburst` | 官转正常 | 按量计费,支持 `size` / 2K / 4K,可指定 Flare 或 Sunburst | | `gpt-image-2.5-web` | 网页版线路正常 | ChatGPT 网页版逆向,按次计费,支持 `size`,不能指定 Flare / Sunburst | | `gpt-image-2-vip` | 正常稳定 | 按次计费;这是 GPT Image 2,不能作为 2.5 的同版本替代 | 本次影响仅涉及表中的两个 GPT Image 2.5 `-vip` 模型。官转、`gpt-image-2.5-web` 与 `gpt-image-2-vip` 用户无需因本次通知切换线路。 ## 用户需要做什么 1. **暂停向两个 2.5 `-vip` 模型提交新任务**,将需要继续运行的任务切换到可用线路。 2. **需要指定 Flare / Sunburst 或使用 2K / 4K**:选择不带后缀的官转模型,并在[令牌管理](https://api2.laozhang.ai/token)确认官转权限与按量计费设置。接入方式见 [GPT Image 2.5 指南](/api-capabilities/gpt-image-2-5)。 3. **需要 2.5 且希望按次计费**:使用 `gpt-image-2.5-web`,可传 `size`,但不能指定 Flare / Sunburst。不要直接沿用两个 `-vip` 模型的全部参数;使用当前账户复核所需参数与输出。 4. **不要求 2.5**:可使用 `gpt-image-2-vip`,参见 [GPT Image 2 接入说明](/api-capabilities/gpt-image-2)。 切换后先完成一次小流量请求,确认实际图片可打开、尺寸符合需求,并在[调用日志](https://api2.laozhang.ai/log)核对模型、用量和扣费,再恢复批量任务。切换官转会改为按量计费,具体价格见[控制台模型与价格](https://api2.laozhang.ai/account/pricing)。 ## 常见问题 ### 是所有 GPT Image 2.5 都不可用了吗? 不是。本次仅影响 `gpt-image-2.5-flare-vip` 和 `gpt-image-2.5-sunburst-vip`;不带后缀的官转模型与 `gpt-image-2.5-web` 正常。 ### 网页版可以指定 Flare / Sunburst 吗? 不能。`gpt-image-2.5-web` 支持 `size`,但不能手动选择 Flare / Sunburst。必须固定使用其中一款时,请选择对应官转模型。 ### 切换后还是按次计费吗? `gpt-image-2.5-web` 和 `gpt-image-2-vip` 按次计费;`gpt-image-2.5-flare` / `gpt-image-2.5-sunburst` 官转按量计费。请同时检查令牌配置与目标模型价格。 ### 两个 2.5 -vip 模型何时恢复? 目前没有确定的恢复时间。上游资源恢复后会及时更新本公告及[最新公告列表](/changelog),请以恢复通知为准。 ## 信息来源与相关链接 * **老张API线路状态**:本公告依据 2026 年 9 月 16 日运营通知,记录当日可用性、计费类型和参数范围;不代表对所有账户、参数组合的逐项调用验收。当前账户权限、实际输出与扣费请通过[控制台](https://api2.laozhang.ai/account/pricing)及[调用日志](https://api2.laozhang.ai/log)复核。 * **上游接口资料**:[OpenAI 图像生成指南](https://developers.openai.com/api/docs/guides/image-generation)用于官转接口背景说明;老张API的 `-vip` / `-web` 线路状态以本公告为准。 * **相关文档**:[GPT Image 2.5 接入指南](/api-capabilities/gpt-image-2-5)、[原上线公告(历史记录)](/announcements/gpt-image-2-5-2026-09)、[服务与计费条款](https://www.laozhang.ai/terms)。 # Grok Imagine Image 2.0 API 上线:$0.055 生图与三图编辑 Source: https://docs.laozhang.ai/announcements/grok-imagine-image-2-0-2026-09 2026 年 9 月 3 日老张API开放 grok-imagine-image-2.0:每张 0.055 美元,支持 1K/2K、Low/Medium、最多 10 张输出和三参考图 multipart 编辑。 * **发布日期**:2026 年 9 月 3 日 * **最后核对**:2026 年 9 月 3 日 * **当前状态**:有效;已完成公开域名的文生图与三参考图编辑验证 老张API现已开放 `grok-imagine-image-2.0`。当前价格为 **\$0.055/成功输出图片**,文生图支持 1K/2K、Low/Medium、15 种固定宽高比和单次最多 10 张输出;图片编辑通过 OpenAI 兼容的 multipart 接口上传 1–3 张参考图。 新模型 ID 必须完整写成 `grok-imagine-image-2.0`,包括末尾的 `.0`。旧模型 `grok-imagine-image` 与 `grok-imagine-image-quality` 继续可用,本次更新不要求现有调用立即迁移。 ## 关键事实 | 项目 | 当前结论 | | ------- | ---------------------------------- | | 模型 ID | `grok-imagine-image-2.0` | | 文生图 | JSON `POST /v1/images/generations` | | 图片编辑 | multipart `POST /v1/images/edits` | | 参考图数量 | 1–3 张 | | 分辨率 | `1k`、`2k` | | 质量 | 建议显式使用 `low` 或 `medium` | | 宽高比 | 15 个固定值 | | 单次输出 | `n=1–10` | | 返回形式 | `url` 或 `b64_json` | | 老张API价格 | **\$0.055/成功输出图片** | 当前编辑必须使用 multipart 文件上传。xAI 官方 JSON 图片对象、四张参考图和五张参考图不在本次开放范围内;不要把这些明确边界当成临时故障反复重试。 ## 谁需要关注 * 需要比 xAI 当前官方最高文生图档位更低单价的开发者; * 需要 1K/2K、Low/Medium 和多种横竖画幅的内容、广告或电商应用; * 需要用两张或三张参考图组合主体、场景与风格的工作流; * 已使用 OpenAI Python SDK,希望只替换 Base URL、API Key 与模型 ID 的团队。 依赖 xAI JSON 编辑、四图或五图输入、4K、mask 局部重绘、固定 `seed` 或自定义像素尺寸的应用不应直接迁移。 ## 你需要做什么 在[模型价格页面](https://api2.laozhang.ai/account/pricing)确认令牌可以看到 `grok-imagine-image-2.0`,并核对当前单价仍为 \$0.055。 使用 `n=1`、1K、Low 完成首次调用,下载图片并检查真实像素、内容和调用记录。 再测试生产所需的 2K、Medium、目标宽高比、批量数量或参考图编辑,不要直接从最大批量开始。 最小文生图请求: ```bash theme={null} curl "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "grok-imagine-image-2.0", "prompt": "A cobalt-blue ceramic mug on pale stone, clean product photo, no text", "n": 1, "aspect_ratio": "1:1", "resolution": "1k", "quality": "low", "response_format": "url" }' ``` 完整参数、Python SDK、15 种画幅和错误处理见 [Grok Imagine Image API 接入指南](/api-capabilities/grok-imagine-image)。 ## 三参考图编辑 多图编辑需要重复提交 `image[]`: ```bash theme={null} curl "https://api2.laozhang.ai/v1/images/edits" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -F "model=grok-imagine-image-2.0" \ -F "prompt=Place the product from image 1 in the scene from image 2, and apply the style from image 3. Preserve the product colors." \ -F "image[]=@product.png" \ -F "image[]=@scene.jpg" \ -F "image[]=@style.jpg" \ -F "aspect_ratio=3:2" \ -F "response_format=url" ``` 上传顺序对应提示词中的 image 1、image 2、image 3。上线前验证在 `api2.laozhang.ai` 返回了可解码的 1248×832 JPEG,并确认三种参考内容都影响了结果。 当前最多三张参考图。第四张起应在客户端直接拒绝;已知超限请求可能返回 HTTP 500,不应自动重试。 ## 价格与计费 计费单位是成功输出图片,不是 HTTP 请求次数: | 请求 | 当前费用 | | ------------- | ------: | | `n=1` | \$0.055 | | `n=4` | \$0.220 | | `n=10` | \$0.550 | | 三参考图编辑并返回一张图片 | \$0.055 | 当前 1K/2K 与 Low/Medium 使用同一公开单价。价格可能随服务成本调整;批量调用前请复核[控制台](https://api2.laozhang.ai/account/pricing),并以调用记录为最终账单依据。服务与计费的一般规则以[服务条款](https://www.laozhang.ai/terms)为准。 ## 已知边界 * `quality="high"` 不在允许范围内,客户端应提前拒绝; * `resolution="4k"` 不支持; * 四张或五张参考图不支持; * xAI JSON 图片编辑格式当前不支持; * URL 返回是临时地址,应及时下载; * Medium 与 2K 的延迟可能明显高于 1K Low,生产硬超时建议 180 秒。 ## 常见问题 ### \$0.055 是每次请求还是每张图片? 按成功返回的图片张数计算。`n=10` 成功返回十张时是 \$0.550;请求失败且没有生成结果时,应到调用记录确认实际扣费。 ### 编辑最多支持几张参考图? 当前支持一至三张,并使用 multipart 文件上传。四张和五张暂不支持。 ### 1K、2K、Low 与 Medium 是否同价? 当前老张API公开价格相同,均为 \$0.055/成功输出图片。不同档位的延迟和服务成本不同,价格可能调整。 ### 为什么不能直接使用 xAI 的 JSON 编辑示例? 因为老张API当前验证的是 OpenAI 兼容 multipart 上传。JSON 图片对象会返回 HTTP 400;请使用完整指南中的文件上传示例。 ### 旧模型需要立即迁移吗? 不需要。`grok-imagine-image` 与 `grok-imagine-image-quality` 继续可用。只有当 2.0 的质量、画幅或三图编辑更适合任务时,再通过相同提示词小样决定是否迁移。 ## 来源与相关文档 * [xAI Grok Imagine Image 2.0 模型](https://docs.x.ai/developers/models/grok-imagine-image-2.0) — 官方模型 ID、分辨率与质量价格 * [xAI 图像生成文档](https://docs.x.ai/developers/model-capabilities/images/generation) — 官方画幅、质量、分辨率与批量参数 * [xAI 图像编辑文档](https://docs.x.ai/developers/model-capabilities/images/editing) — xAI 官方 JSON 编辑格式;与当前老张API multipart 方式不同 * [Grok Imagine Image API 接入指南](/api-capabilities/grok-imagine-image) — 老张API文生图、三图编辑、SDK、价格与错误处理 * [老张API模型与价格](https://api2.laozhang.ai/account/pricing) — 当前模型、分组与公开价格 # GPT-Image-2-VIP 4K 与 Nano Banana 图像 API:状态、价格及接入说明 Source: https://docs.laozhang.ai/announcements/image-api-stability-2026-07 GPT-Image-2-VIP 已恢复 4K 与 quality 参数,Nano Banana Pro、Nano Banana 2 和 Lite 稳定支持高并发。本页汇总模型 ID、按次价格、接口、限制和常见问题。 * **发布日期**:2026年7月22日 * **状态核对**:2026年7月22日(公告发布时) * **公告状态**:发布时已恢复并可用于生产;当前可用性和计费以控制台及调用日志为准 本公告记录:`gpt-image-2-vip` 于发布时已恢复 4K 尺寸与 `quality` 参数。Nano Banana Pro、Nano Banana 2 和 Nano Banana 2 Lite 线路当时也已稳定,可按业务需求用于专业成片、通用高吞吐生成或低成本批量素材。 ## 本次更新包含什么? | 产品 | 老张API模型 ID | 当前能力 | 公告价格 | 推荐场景 | | ------------------ | ----------------------------- | ----------------------------------------------- | --------- | -------------- | | GPT-Image-2-VIP | `gpt-image-2-vip` | 生成与编辑,常用 1K / 2K / 4K,`low` / `medium` / `high` | \$0.03/次 | 低价 4K 生成与编辑 | | Nano Banana Pro | `gemini-3-pro-image` | 专业生成与复杂编辑,1K / 2K / 4K | \$0.09/次 | 海报、设计稿、复杂成片 | | Nano Banana 2 | `gemini-3.1-flash-image` | 0.5K–4K 生成与编辑 | \$0.055/次 | 通用生产和高吞吐任务 | | Nano Banana 2 Lite | `gemini-3.1-flash-lite-image` | 1K 生成,低延迟高并发 | \$0.025/次 | 草稿、批量素材和成本敏感任务 | 表中价格记录本次公告发布时的老张API按次价格。当前价格、令牌分组和实际扣费以[控制台模型与价格页面](https://api2.laozhang.ai/account/pricing)及调用日志为准。 ## GPT-Image-2-VIP 如何接入? * **图像生成接口**:`POST /v1/images/generations` * **图像编辑接口**:`POST /v1/images/edits` * **模型 ID**:`gpt-image-2-vip` * **尺寸**:常用 1K / 2K / 4K;具体参数写法见接入文档 * **质量参数**:`low`、`medium`、`high` * **令牌要求**:默认分组 + 按次扣费令牌 如果请求仍未返回预期的尺寸或质量,先在调用日志中核对实际模型、令牌分组、请求体和错误信息,再根据 [GPT Image 2 API 文档](/api-capabilities/gpt-image-2)检查参数。 ## Nano Banana 三个模型怎么选? * 需要专业设计、文字排版、复杂编辑或 4K 成片,优先测试 `gemini-3-pro-image`。 * 需要质量、速度与价格平衡的通用生产,优先测试 `gemini-3.1-flash-image`。 * 需要 1K 草稿、批量素材或低延迟高并发,优先测试 `gemini-3.1-flash-lite-image`。 控制台若仍显示预览别名,Nano Banana Pro 和 Nano Banana 2 可能兼容 `gemini-3-pro-image-preview` 与 `gemini-3.1-flash-image-preview`。这些别名不是长期稳定 ID,新项目优先使用控制台当前列出的稳定模型 ID。 ## 高并发上线前检查 1. 用目标令牌分别测试生成和编辑接口; 2. 覆盖实际使用的尺寸、宽高比、质量和输入图片大小; 3. 分阶段提高并发,持续记录 429、5xx、平均延迟和成功出图率; 4. 为上游容量波动和内容安全拒绝设置重试、降级与人工复核策略; 5. 通过调用日志核对每种模型和参数组合的实际扣费。 “稳定支持高并发”表示当前线路可承载生产流量,不代表无限并发或零错误。实际吞吐仍受令牌分组、上游容量、输入大小和内容安全策略影响。 ## 常见问题 ### GPT-Image-2-VIP 现在支持 4K 和 quality 吗? 支持。本次公告确认 `gpt-image-2-vip` 已恢复常用 4K 尺寸和 `quality` 参数。正式任务前仍应使用自己的令牌与请求参数进行一次小流量验证。 ### GPT-Image-2-VIP 生成和编辑分别调用哪个接口? 生成调用 `POST /v1/images/generations`,编辑调用 `POST /v1/images/edits`。两种接口均使用模型 ID `gpt-image-2-vip`。 ### Nano Banana Pro、Nano Banana 2 和 Lite 有什么区别? Pro 面向复杂设计和高质量成片;Nano Banana 2 面向通用高吞吐生产;Lite 面向 1K、低延迟和成本敏感的批量任务。应使用自己的提示词和素材比较质量、延迟与实际扣费。 ### 公告价格是否会一直有效? 不保证。公告价格记录发布时状态,当前价格和扣费合同以控制台为准。Google 上游官方定价与老张API按次价格不是同一个计费合同。 ### 预览模型 ID 还能使用吗? 部分控制台分组可能暂时保留兼容别名,但新项目优先使用 `gemini-3-pro-image`、`gemini-3.1-flash-image` 和 `gemini-3.1-flash-lite-image`。上线前以控制台实际列出的模型为准。 ### 高并发调用还会出现 429 或 5xx 吗? 仍有可能。线路恢复和稳定并不消除令牌限流、上游容量、内容安全或瞬时网络错误;应采用阶梯压测、有限重试、降级和可观测性,而不是直接全量放量。 ## 资料与接入文档 * [GPT Image 2 API](/api-capabilities/gpt-image-2) * [Nano Banana Pro API](/api-capabilities/nano-banana-pro-image) * [Nano Banana 2 API](/api-capabilities/nano-banana2-image) * [Nano Banana 2 Lite API](/api-capabilities/nano-banana-2-lite-api) * [Google:Gemini API 模型列表](https://ai.google.dev/gemini-api/docs/models) * [进入老张API控制台](https://api2.laozhang.ai/) # 音频转录与语音生成 API 指南 Source: https://docs.laozhang.ai/api-capabilities/audio-transcription 确认老张API音频模型、端点和分组,并分别验收文件转录、语音生成、MIME、时长、错误和计费。 ## 直接答案 音频转录和语音生成是不同任务,模型和端点也可能不同。先在[模型目录](/models)确认当前账户可见的 transcription、speech、audio 或 realtime 模型,再按模型专题或控制台指定的端点测试。本页不再把 `whisper-1`、TTS 或某个端点统一写成已验证生产可用。 本页最后核对日期为 **2026 年 9 月 2 日**。 ## 常见任务入口 | 任务 | 常见 OpenAI 兼容入口 | 必须验证 | | ---- | --------------------------------- | ---------------------------- | | 文件转录 | `POST /v1/audio/transcriptions` | multipart 字段、模型、语言、文件大小和输出格式 | | 语音生成 | `POST /v1/audio/speech` | voice、format、流式和音频 MIME | | 音频对话 | Chat Completions 或 Realtime,取决于模型 | 音频内容块、事件、延迟和工具 | | 实时转录 | Realtime 专用端点 | 会话创建、音频编码、断线和最终文本 | ## 转录最小请求 只有在控制台明确模型使用 transcription 端点时: ```bash theme={null} curl "https://api2.laozhang.ai/v1/audio/transcriptions" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -F "model=AUDIO_TRANSCRIPTION_MODEL_ID" \ -F "file=@sample.wav" ``` ## 验收项目 * 实际支持的音频格式、采样率、声道、大小和时长; * 语言识别、时间戳、分段和输出格式; * 音频 MIME 与文件内容一致; * 超长、损坏、静音和不支持格式的错误; * 同一文件重试是否重复计费; * usage、计费单位和调用日志。 模型出现在目录中不代表所有音频端点都可用;官方上游支持也不代表网关当前分组已经接入。生产前必须用目标 API Key 和真实音频样本验收。 ## 相关文档 * [模型与价格总表](/models) * [控制台实时模型与价格](https://api2.laozhang.ai/account/pricing) * [模型可用性与权限](/faq/model-availability) * [调用日志](/faq/call-logs) * [数据与日志边界](/faq/data-security) # 余额查询 API Source: https://docs.laozhang.ai/api-capabilities/balance-query 通过系统令牌 AccessToken 查询老张API账户的 quota、used_quota、request_count 与用户分组,用于开发者监控、余额告警和账务排查。 ## 接口概述 余额查询 API 用于读取当前账户的剩余额度、已使用额度、请求次数和用户分组。它适合接入后台监控、余额告警、账务排查脚本和内部运营面板。 此接口使用系统令牌 AccessToken 认证,不是普通模型调用用的 API Key。AccessToken 权限更高,生产环境请放在服务端密钥管理系统或环境变量中,不要下发到浏览器或客户端 App。 ## 获取 Authorization 登录 [老张API 控制台](https://api2.laozhang.ai/account/profile),打开账户设置页面。 在账户设置中选择「系统令牌」,按页面提示进行密码验证。 令牌生成后请立即复制到安全位置。生成新令牌后,旧令牌可能立即失效。 不要在代码仓库、前端页面、日志、截图或工单里暴露完整 AccessToken。向技术支持排查时,只保留 Header 名称、请求时间、HTTP 状态码和已打码的令牌片段即可。 ## 接口信息 | 项目 | 说明 | | ------ | ---------------------------------------- | | 接口 URL | `https://api2.laozhang.ai/api/user/self` | | 请求方法 | `GET` | | 认证方式 | `Authorization` Header | | 请求参数 | 无 | | 响应格式 | JSON;使用 cURL 时建议加 `--compressed` | ## 请求说明 ### 请求 Headers | Header 名称 | 必填 | 说明 | | --------------- | -- | -------------------------- | | `Authorization` | 是 | 系统令牌 AccessToken,直接填写令牌字符串 | | `Accept` | 否 | 建议设置为 `application/json` | | `Content-Type` | 否 | 建议设置为 `application/json` | ### 请求参数 此接口不需要 Query 参数,也不需要请求体。生产代码中不要把余额阈值、告警渠道或业务标签拼到接口 URL 上;这些应保存在你的监控系统配置里。 ## 响应说明 ### 成功响应示例 ```json theme={null} { "success": true, "message": null, "data": { "id": 19489, "username": "demo_user", "display_name": "demo_user", "role": 1, "status": 1, "email": "", "quota": 24997909, "used_quota": 10027091, "request_count": 339, "group": "svip", "ModelFixedPrice": [] } } ``` ### 核心响应字段 | 字段名 | 类型 | 说明 | | ---------------------- | ------------- | ------------------- | | `success` | Boolean | 请求是否成功 | | `message` | String / null | 错误信息;成功时通常为 `null` | | `data.username` | String | 用户名 | | `data.display_name` | String | 显示名称 | | `data.quota` | Integer | 当前剩余额度,适合做告警阈值 | | `data.used_quota` | Integer | 已使用额度 | | `data.request_count` | Integer | 累计请求次数 | | `data.group` | String | 当前账户分组 | | `data.ModelFixedPrice` | Array | 模型价格列表;只查余额时可以忽略 | | `data.access_token` | String | 敏感字段;如果返回,请不要写入普通日志 | 接口可能随账户状态返回更多字段。开发时请只依赖业务需要的核心字段,并允许响应中出现未知字段,避免因为新增字段导致解析失败。 ## 额度与金额计算 接口返回的 `quota` 单位是「额度」,不是直接的美元金额。当前余额展示按以下规则换算: | 计算项 | 公式 | 示例 | | ------- | ----------------------------- | --------------------------------------------- | | 剩余美元余额 | `quota ÷ 50 万` | `24997909 ÷ 50 万 = 49.995818`,约等于 `50.00 USD` | | 已使用美元额度 | `used_quota ÷ 50 万` | `10027091 ÷ 50 万 = 20.054182`,约等于 `20.05 USD` | | 历史总额度 | `(quota + used_quota) ÷ 50 万` | 示例约等于 `70.05 USD` | 也就是说,`50 万`额度约等于 `1 USD`。如果接口返回 `quota: 24997909`,用户当前可用余额约为 `50.00 USD`。 余额展示可以按上述公式计算;模型实际扣费仍要以当前模型价格、账户分组、调用日志和控制台展示为准。生产告警建议同时保存原始 `quota` 和换算后的美元金额,避免后续排查时丢失精度。 ## 代码示例 ```bash theme={null} export LAOZHANG_ACCESS_TOKEN='YOUR_ACCESS_TOKEN' curl --compressed -s 'https://api2.laozhang.ai/api/user/self' \ -H 'Accept: application/json' \ -H "Authorization: ${LAOZHANG_ACCESS_TOKEN}" \ -H 'Content-Type: application/json' ``` `--compressed` 会让 cURL 自动处理 gzip 响应。如果少了这个选项,终端可能显示乱码,`jq` 也可能报 `Invalid numeric literal`。 ```bash theme={null} export LAOZHANG_ACCESS_TOKEN='YOUR_ACCESS_TOKEN' curl --compressed -s 'https://api2.laozhang.ai/api/user/self' \ -H 'Accept: application/json' \ -H "Authorization: ${LAOZHANG_ACCESS_TOKEN}" \ -H 'Content-Type: application/json' | \ jq '.data | { quota, remaining_usd: (.quota / (50 * 10000)), used_quota, used_usd: (.used_quota / (50 * 10000)), request_count, group }' ``` ```python theme={null} import os import requests token = os.environ["LAOZHANG_ACCESS_TOKEN"] response = requests.get( "https://api2.laozhang.ai/api/user/self", headers={ "Accept": "application/json", "Authorization": token, "Content-Type": "application/json", }, timeout=10, ) response.raise_for_status() payload = response.json() account = payload["data"] quota_unit_per_usd = 50 * 10000 print("quota:", account["quota"]) print("remaining_usd:", round(account["quota"] / quota_unit_per_usd, 2)) print("used_quota:", account["used_quota"]) print("used_usd:", round(account["used_quota"] / quota_unit_per_usd, 2)) print("request_count:", account["request_count"]) print("group:", account.get("group")) ``` Python `requests` 会自动处理 gzip 解压。 ```javascript theme={null} const token = process.env.LAOZHANG_ACCESS_TOKEN; const response = await fetch("https://api2.laozhang.ai/api/user/self", { method: "GET", headers: { Accept: "application/json", Authorization: token, "Content-Type": "application/json", }, }); if (!response.ok) { throw new Error(`Balance query failed: HTTP ${response.status}`); } const payload = await response.json(); const account = payload.data; const quotaUnitPerUsd = 50 * 10000; console.log({ quota: account.quota, remaining_usd: Number((account.quota / quotaUnitPerUsd).toFixed(2)), used_quota: account.used_quota, used_usd: Number((account.used_quota / quotaUnitPerUsd).toFixed(2)), request_count: account.request_count, group: account.group, }); ``` ## 错误响应 ### HTTP 401 - 认证失败 ```json theme={null} { "success": false, "message": "Unauthorized" } ``` 常见原因是 `Authorization` 为空、令牌复制不完整、令牌已失效,或误用了普通 API Key。 ### HTTP 403 - 权限不足 ```json theme={null} { "success": false, "message": "Forbidden" } ``` 常见原因是当前令牌无权访问账户信息接口,或账户状态需要人工确认。 ### 响应乱码或 jq 报错 如果 cURL 返回乱码,或 `jq` 报 `Invalid numeric literal`,通常是 gzip 响应没有被解压。请确认命令包含 `--compressed`。 ## 监控接入建议 * 用环境变量或密钥管理服务保存 `LAOZHANG_ACCESS_TOKEN` * 设置合理超时时间,例如 10 秒 * 避免高频轮询;一般余额监控不需要秒级请求 * 告警里记录 `quota`、换算后的 `remaining_usd`、`used_quota`、`request_count`、请求时间和 HTTP 状态码 * 不要在日志中记录完整 `Authorization`、`access_token` 或账户敏感字段 ## 相关文档 * 如果只想看常见问题版说明,请查看[如何通过 API 查询账户余额](/faq/balance-query-api) * 如果余额仍然充足但请求失败,请查看[为什么还有余额跑不通?](/faq/balance-insufficient) * 如果需要核对单次请求的模型、Token 和计费,请查看[如何查看我的调用记录?](/faq/call-logs) # Flux 图片编辑 Source: https://docs.laozhang.ai/api-capabilities/flux-image-edit 使用 Flux 2 编辑图片,支持单图改图、多图融合、input_image 参数和 width/height 尺寸控制 ## 模型简介 Flux 图片编辑和文生图共用 `/v1/images/generations`。不传 `input_image` 时是文生图;传入 `input_image` 时进入图片编辑;继续传 `input_image_2` 到 `input_image_8` 时进入多图融合编辑。 **关键结构** Flux 2 改图请求是 `application/json`,参考图字段是字符串:`input_image`、`input_image_2`、`input_image_3` ... `input_image_8`。字段值可以是公网图片 URL,也可以是 `data:image/png;base64,...` 形式的 data URL。 ## 模型和价格 | 模型 | 模型 ID | 计费类型 | 当前价格 | 说明 | | ---------------- | ------------------ | ----------- | ---------- | ---------------- | | Flux 2 Pro | `flux-2-pro` | 按次付费 - Chat | \$0.0300/次 | 推荐默认模型,适合单图和多图编辑 | | Flux 2 Flex | `flux-2-flex` | 按次付费 - Chat | \$0.0600/次 | 更细控制场景 | | Flux 2 Max | `flux-2-max` | 按次付费 - Chat | \$0.0700/次 | 最高质量编辑 | | Flux Kontext Pro | `flux-kontext-pro` | 按次付费 - Chat | \$0.0350/次 | 旧版 Kontext 兼容 | | Flux Kontext Max | `flux-kontext-max` | 按次付费 - Chat | \$0.0700/次 | 旧版 Kontext 高质量模型 | 实际可用模型和价格以控制台为准。多图融合不会因为参考图数量改变接口写法,仍按一次生成请求返回一张结果图。 ## 快速开始 ### 单图改图 cURL ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-2-pro", "prompt": "保留主体,换成干净的浅蓝色摄影棚背景,保持原始光照和主体细节", "input_image": "https://example.com/source.png", "width": 1792, "height": 1024, "output_format": "png" }' ``` ### 多图改图 cURL ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-2-pro", "prompt": "结合三张参考图创作一张新图:使用 image 1 的红色机器人,image 2 的温室背景,image 3 的黄色滑板,合成一个机器人在温室前骑滑板的完整场景。保留白色围巾、橙色门、紫色轮子和黑色星星贴纸。", "input_image": "https://example.com/source_1_red_robot.png", "input_image_2": "https://example.com/source_2_glass_greenhouse.png", "input_image_3": "https://example.com/source_3_yellow_skateboard.png", "width": 1792, "height": 1024, "output_format": "png" }' ``` ### 本地图片多图改图 cURL 本地图片不能用 `-F "image=@..."` 直接上传。先把本地图片转成 data URL,再放进 JSON 的 `input_image`、`input_image_2`、`input_image_3` 字段。 ```bash theme={null} cd ~/Downloads export LAOZHANG_API_KEY="YOUR_API_KEY" IMG1=$(base64 < source_1_red_robot.png | tr -d '\n') IMG2=$(base64 < source_2_glass_greenhouse.png | tr -d '\n') IMG3=$(base64 < source_3_yellow_skateboard.png | tr -d '\n') curl -X POST "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ --data-binary @- \ -o flux_local_multi_response.json < 不要用 `/v1/images/edits` 或 multipart `-F "image=@..."` 来调用 Flux 2 多图编辑。Flux 2 多图编辑使用 `/v1/images/generations` + JSON `input_image` 字段。 ## Python 示例 ### URL 方式 ```python theme={null} import requests API_KEY = "YOUR_API_KEY" BASE_URL = "https://api2.laozhang.ai/v1" def flux_edit(prompt, image_urls, width=1024, height=1024, model="flux-2-pro"): if not image_urls: raise ValueError("image_urls 至少需要 1 张图") if len(image_urls) > 8: raise ValueError("Flux 2 最多支持 8 张参考图") payload = { "model": model, "prompt": prompt, "input_image": image_urls[0], "width": width, "height": height, "output_format": "png", } for index, image_url in enumerate(image_urls[1:], start=2): payload[f"input_image_{index}"] = image_url response = requests.post( f"{BASE_URL}/images/generations", headers={ "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json", }, json=payload, timeout=240, ) response.raise_for_status() return response.json()["data"][0]["url"] result_url = flux_edit( prompt="Use image 1 as the subject, image 2 as the background, and image 3 as the prop. Fuse them into one coherent scene.", image_urls=[ "https://example.com/image1.png", "https://example.com/image2.png", "https://example.com/image3.png", ], width=1792, height=1024, ) print(result_url) ``` ### 本地文件方式 本地图片需要先转成 data URL,再放到 `input_image` 字段里。 ```python theme={null} import base64 import mimetypes from pathlib import Path def file_to_data_url(path): path = Path(path) mime_type = mimetypes.guess_type(path.name)[0] or "image/png" encoded = base64.b64encode(path.read_bytes()).decode("utf-8") return f"data:{mime_type};base64,{encoded}" result_url = flux_edit( prompt="结合三张图创作一张新图:使用 image 1 的红色机器人、image 2 的温室背景、image 3 的黄色滑板。", image_urls=[ file_to_data_url("source_1_red_robot.png"), file_to_data_url("source_2_glass_greenhouse.png"), file_to_data_url("source_3_yellow_skateboard.png"), ], width=1792, height=1024, ) print(result_url) ``` ## 参数说明 | 参数 | 类型 | 必填 | 说明 | | ---------------------------------- | ------- | -- | ----------------------------------------------------- | | `model` | string | 是 | 推荐 `flux-2-pro`;也可使用 `flux-2-max` / `flux-2-flex` | | `prompt` | string | 是 | 编辑或融合指令;多图场景建议写明 image 1、image 2、image 3 的用途 | | `input_image` | string | 是 | 第 1 张参考图,公网 URL 或 data URL | | `input_image_2` \~ `input_image_8` | string | 否 | 第 2 到第 8 张参考图 | | `width` | integer | 否 | 输出宽度,建议 16 的倍数 | | `height` | integer | 否 | 输出高度,建议 16 的倍数 | | `size` | string | 否 | OpenAI 风格尺寸字符串,如 `1792x1024`;与 `width` / `height` 二选一 | | `output_format` | string | 否 | `jpeg` / `png` | | `seed` | integer | 否 | 固定随机种子,便于复现 | | `safety_tolerance` | integer | 否 | 内容安全级别,默认 2 | ## 多图提示词建议 * 明确编号:用 `image 1`、`image 2`、`image 3` 指代不同参考图 * 明确保留元素:写出颜色、物体、背景、贴纸、文字等关键细节 * 明确合成目标:说明要生成“一张新图”,不是简单拼接 * 明确不要什么:例如不要边框、不要多栏排版、不要文字标签 ```text theme={null} Use image 1 as the character, image 2 as the background, and image 3 as the product. Create one coherent commercial poster. Preserve the character's clothing, the background lighting, and the product logo. Do not create a collage or split-screen layout. ``` ## 注意事项 1. **端点固定**:Flux 文生图、单图改图、多图改图都使用 `/v1/images/generations` 2. **请求格式**:使用 JSON,不使用 multipart 表单 3. **多图上限**:Flux 2 Pro / Max / Flex 最多 8 张参考图 4. **图片来源**:推荐公网 URL;本地文件请转为 data URL 5. **结果下载**:返回的 `data[0].url` 只有约 10 分钟有效,请立即下载 ## 相关资源 * [Flux 图像生成 API](/api-capabilities/flux-image-generation) - 文生图参数和模型说明 * [价格对比计算器](https://api2.laozhang.ai/account/pricing) - 实时价格查询 * [在线体验 Demo](https://yingtu.ai) - 测试 Flux 效果 # Flux 图像生成 API Source: https://docs.laozhang.ai/api-capabilities/flux-image-generation FLUX AI 绘图 API:支持 flux-2-pro、flux-2-max、flux-2-flex 与 Flux Kontext 系列。提供文生图、多图编辑和尺寸参数示例。 ## 前置要求 登录 [laozhang.ai 控制台](https://api2.laozhang.ai) 获取 API 密钥 编辑令牌设置,选择以下任一计费模式(两者价格相同): * **按量优先**(推荐):优先使用余额计费,余额不足时自动切换。适合大多数用户 * **按次计费**:每次调用直接扣费。适合预算控制严格的场景 两种模式**价格完全相同**。当前 Flux 模型包含 `flux-2-pro`、`flux-2-max`、`flux-2-flex`、`flux-kontext-pro` 和 `flux-kontext-max`,实际价格以控制台为准。 令牌设置 如果未设置计费模式,API调用会失败。必须先完成此配置! ## Flux 图像生成 API Flux 是业界领先的图像生成和编辑模型。通过 老张API 的 `/v1/images/generations` 接口,您可以调用 Flux 2 系列模型生成图片;如果传入 `input_image`,同一个接口会进入图片编辑模式;继续传 `input_image_2` 到 `input_image_8` 则可进行多图融合编辑。实际模型价格和扣费记录以控制台显示为准。 **🎯 高质量生成**\ Flux 2 系列适合高质量文生图、多图融合、产品图和设计素材生成;旧版 Flux Kontext 系列仍可用于兼容既有接入。 ## 🌟 核心特性 * **📐 明确尺寸**:Flux 2 支持 `size`,也支持 `width` / `height` * **🎨 高质量输出**:支持 1024×1024、1792×1024、1024×1792 等常用尺寸 * **🧩 多图编辑**:Flux 2 官方原生结构通过 `input_image` 到 `input_image_8` 传入多张参考图 * **💰 价格说明**:定价以控制台为准,便于成本核算 * **🔧 JSON 调用**:文生图、单图改图、多图改图共用 `/v1/images/generations` * **⏱️ URL 有效期**:生成结果 URL 有效期 10 分钟,需及时下载 * **🔄 可重现性**:支持 seed 参数,确保结果一致性 ## 📋 模型对比 | 模型 | 模型 ID | 计费类型 | 当前价格 | 特点 | | -------------------- | ------------------ | ----------- | ---------- | ----------------- | | **Flux 2 Pro** | `flux-2-pro` | 按次付费 - Chat | \$0.0300/次 | 推荐默认模型,适合文生图和多图编辑 | | **Flux 2 Flex** | `flux-2-flex` | 按次付费 - Chat | \$0.0600/次 | 更细控制场景,适合高要求设计 | | **Flux 2 Max** | `flux-2-max` | 按次付费 - Chat | \$0.0700/次 | 最高质量,适合最终商业素材 | | **Flux Kontext Pro** | `flux-kontext-pro` | 按次付费 - Chat | \$0.0350/次 | 旧版 Kontext 兼容模型 | | **Flux Kontext Max** | `flux-kontext-max` | 按次付费 - Chat | \$0.0700/次 | 旧版 Kontext 高质量模型 | 💡 **价格说明**:通过 老张API 平台调用 Flux 模型,按模型实际价格扣费;请在控制台查看实时价格和调用日志。 ## 📐 尺寸参数结构 Flux 2 和 Flux Kontext 的参数结构不同。当前推荐按下面方式传参: | 场景 | 接口 | 尺寸参数 | 说明 | | --------------- | ------------------------ | ------------------------------------------- | -------------------------------- | | Flux 2 文生图 | `/v1/images/generations` | `size` 或 `width` + `height` | 不传 `input_image` | | Flux 2 单图编辑 | `/v1/images/generations` | `input_image` + `size` 或 `width` + `height` | `input_image` 为公网 URL 或 data URL | | Flux 2 多图编辑 | `/v1/images/generations` | `input_image` 到 `input_image_8` + 尺寸参数 | 多张参考图按字段编号 | | Flux Kontext 旧版 | `/v1/images/generations` | `extra_body.aspect_ratio` | 旧版 Kontext 使用宽高比参数 | Flux 2 改图不要使用 multipart `-F "image=@..."`。请使用 JSON 请求,并把参考图放到 `input_image`、`input_image_2`、`input_image_3` 等字段。 ### Flux 2 常用尺寸 | 参数 | 输出尺寸 | 适用场景 | | --------------------- | --------- | ------------- | | `"size": "1024x1024"` | 1024×1024 | 通用方图、头像、产品图 | | `"size": "1792x1024"` | 1792×1024 | 横版海报、网站横幅、封面图 | | `"size": "1024x1792"` | 1024×1792 | 竖版海报、手机封面、故事图 | ### Flux Kontext 旧版宽高比 旧版 `flux-kontext-pro` / `flux-kontext-max` 支持从 **3:7 到 7:3** 的连续宽高比范围,总像素保持约 1 兆像素。以下是一些常用比例示例: | 比例标识 | 类型 | 近似尺寸 | 适用场景 | | ------ | ---- | ---------- | ----------- | | `1:1` | 正方形 | 1024×1024 | 通用场景、社交媒体头像 | | `2:3` | 竖版 | \~832×1248 | 手机壁纸、肖像照片 | | `3:2` | 横版 | \~1248×832 | 电脑壁纸、风景照片 | | `4:3` | 标准横版 | \~1182×886 | 传统显示器、演示文稿 | | `16:9` | 宽屏 | \~1408×792 | 现代显示器、视频缩略图 | | `9:16` | 竖屏 | \~792×1408 | 手机视频、竖版海报 | | `21:9` | 超宽屏 | \~1680×720 | 电影海报、超宽显示器 | | `3:7` | 最窄竖版 | \~662×1544 | 书签、竖版长图 | | `7:3` | 最宽横版 | \~1544×662 | 网站横幅、全景图 | **📏 自定义比例**:除了上述示例,您可以使用任何在 3:7 到 7:3 范围内的比例,如 `5:4`、`4:5`、`16:10` 等。系统会自动调整尺寸以保持约 1 兆像素的总面积。 ## 🚀 快速开始 ### Flux 2 文生图 cURL ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-2-pro", "prompt": "A ruby red retro robot riding a yellow skateboard in front of a turquoise glass greenhouse, clean product illustration style", "n": 1, "size": "1792x1024" }' ``` ### Flux 2 Python 示例 ```python theme={null} import requests API_KEY = "YOUR_API_KEY" def generate_flux_image(prompt, size="1024x1024", model="flux-2-pro"): response = requests.post( "https://api2.laozhang.ai/v1/images/generations", headers={ "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json", }, json={ "model": model, "prompt": prompt, "n": 1, "size": size, }, timeout=240, ) response.raise_for_status() return response.json()["data"][0]["url"] image_url = generate_flux_image( "A cinematic product photo of a transparent smart speaker on a marble table", size="1024x1024", ) print(image_url) ``` ## 📝 参数详解 ### Flux 2 文生图参数 | 参数 | 类型 | 范围/选项 | 说明 | 默认值 | | --------------- | ------- | ------------------------------------------- | -------------------------------------- | ----------- | | `model` | string | `flux-2-pro` / `flux-2-flex` / `flux-2-max` | 模型 ID | - | | `prompt` | string | - | 图像描述 | - | | `n` | integer | 1 | 生成数量 | 1 | | `size` | string | 如 `1024x1024` / `1792x1024` | OpenAI 风格输出尺寸;与 `width` / `height` 二选一 | `1024x1024` | | `width` | integer | 64-2048,建议 16 的倍数 | BFL 风格输出宽度;与 `size` 二选一 | 1024 | | `height` | integer | 64-2048,建议 16 的倍数 | BFL 风格输出高度;与 `size` 二选一 | 1024 | | `output_format` | string | `jpeg` / `png` | 输出图片格式 | `jpeg` | | `seed` | integer | - | 固定随机种子,便于复现 | 随机 | **编辑接口**:单图改图和多图改图也使用 `/v1/images/generations`,通过 `input_image` 字段触发。详见 [Flux 图片编辑](/api-capabilities/flux-image-edit)。 ### Flux 2 批量生成示例 ```python theme={null} def batch_generate_flux(prompts_with_sizes, model="flux-2-pro"): """批量生成不同尺寸的 Flux 2 图像""" results = [] for prompt, size in prompts_with_sizes: try: print(f"正在生成 {size} 尺寸的图像...") image_url = generate_flux_image(prompt, size=size, model=model) results.append({ "prompt": prompt, "size": size, "url": image_url, "success": True }) except Exception as e: results.append({ "prompt": prompt, "size": size, "error": str(e), "success": False }) return results # 批量生成示例 prompts_and_sizes = [ ("A beautiful sunset over mountains", "1792x1024"), ("Portrait of a wise old wizard", "1024x1792"), ("Cyberpunk street scene", "1792x1024"), ("Minimalist app icon design", "1024x1024"), ] results = batch_generate_flux(prompts_and_sizes, "flux-2-pro") # 打印结果 for result in results: if result["success"]: print(f"✅ {result['prompt']} ({result['size']}) -> {result['url']}") else: print(f"❌ {result['prompt']} ({result['size']}) -> {result['error']}") ``` ## 🎯 使用场景 ### 1. Web 设计素材 ```python theme={null} # 网站横幅 banner = generate_flux_image( "Modern website banner with clean design and tech elements", size="1792x1024", model="flux-2-pro" ) # 产品展示图 product = generate_flux_image( "Elegant product photography of a smartphone on white background", size="1024x1024", model="flux-2-pro" ) ``` ### 2. 社交媒体内容 ```python theme={null} # Instagram 帖子 instagram_post = generate_flux_image( "Inspirational quote design with aesthetic background", size="1024x1024", model="flux-2-pro" ) # 手机壁纸 mobile_wallpaper = generate_flux_image( "Abstract cosmic art with stars and nebula", size="1024x1792", model="flux-2-pro" ) ``` ### 3. 专业设计 ```python theme={null} # 海报设计 poster = generate_flux_image( "Concert poster design with bold typography and music elements", size="1024x1792", model="flux-2-max" ) # 网站背景 background = generate_flux_image( "Subtle geometric pattern for website background", size="1792x1024", model="flux-2-pro" ) ``` ## 💡 最佳实践 ### 1. URL 管理和下载策略 由于 Flux 生成的图片 URL **仅有 10 分钟有效期**,正确的下载策略至关重要: ```python theme={null} import time from concurrent.futures import ThreadPoolExecutor import requests class FluxImageManager: """Flux 图像生成和下载管理器""" def __init__(self, api_key): self.api_key = api_key def generate_and_save(self, prompt, **kwargs): """生成图像并立即保存""" start_time = time.time() # 生成图像 image_url = generate_flux_image(prompt, **kwargs) if not image_url: return None # 立即下载(避免超时) elapsed = time.time() - start_time if elapsed > 540: # 超过 9 分钟 print("⚠️ 警告:接近 URL 失效时间!") # 下载并保存 filename = f"flux_{int(time.time())}.png" try: response = requests.get(image_url, timeout=30) response.raise_for_status() with open(filename, 'wb') as f: f.write(response.content) print(f"✅ 已保存: {filename} (耗时: {elapsed:.1f}s)") return filename except Exception as e: print(f"❌ 下载失败: {e}") return None ``` ### 2. 模型选择建议 **Flux 2 Pro**: * ✅ 默认推荐模型 * ✅ 文生图和多图编辑 * ✅ 成本敏感项目 * ✅ 产品图、海报和常规设计素材 **Flux 2 Flex**: * ✅ 需要更细控制的编辑场景 * ✅ 复杂设计和测试迭代 * ✅ 需要在质量与成本之间折中 **Flux 2 Max**: * ✅ 最高质量要求 * ✅ 最终商业素材 * ✅ 复杂构图和高一致性需求 **Flux Kontext Pro / Max**: * ✅ 旧项目兼容 * ✅ 日常设计需求 * ✅ 批量内容生成 ### 3. 提示词优化 基于官方文档的建议,详细且描述性的提示词能获得更好的效果: ```python theme={null} # ❌ 过于简单 prompt = "cat" # ✅ 详细描述 prompt = """ A majestic orange tabby cat sitting by a window, golden hour lighting, soft focus background, professional pet photography style, warm and cozy atmosphere """ # ✅ 利用 prompt_upsampling 增强简单提示词 enhanced_result = generate_flux_image( prompt="cat by window", prompt_upsampling=True # AI 会自动扩展和优化提示词 ) # ✅ 艺术风格提示词 artistic_prompt = """ A surreal landscape painting in the style of Salvador Dali, melting clocks draped over twisted trees, vibrant sunset colors bleeding into a starry night sky, hyper-detailed, dreamlike atmosphere """ ``` ### 4. 尺寸选择策略 ```python theme={null} def choose_size(use_case): """根据用途选择常用输出尺寸""" sizes = { "social_media_post": "1024x1024", "mobile_wallpaper": "1024x1792", "desktop_wallpaper": "1792x1024", "portrait_photo": "1024x1792", "landscape_photo": "1792x1024", "website_banner": "1792x1024", } return sizes.get(use_case, "1024x1024") # 使用示例 size = choose_size("mobile_wallpaper") wallpaper = generate_flux_image("Peaceful forest scene", size=size) ``` ### 5. 批量处理优化 考虑到 10 分钟 URL 失效限制,批量处理需要特别注意: ```python theme={null} import asyncio import aiohttp async def generate_async(session, prompt, size, model): """异步生成图像""" payload = { "model": model, "prompt": prompt, "n": 1, "size": size } headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } async with session.post( "https://api2.laozhang.ai/v1/images/generations", json=payload, headers=headers ) as response: result = await response.json() return result["data"][0]["url"] async def batch_generate_async(tasks): """异步批量生成""" async with aiohttp.ClientSession() as session: results = await asyncio.gather(*[ generate_async(session, prompt, size, model) for prompt, size, model in tasks ]) return results ``` ## 📊 成本预估示例 ```python theme={null} def calculate_flux_costs(num_images, model_type="pro"): """按控制台参考价预估 Flux 生成成本""" prices = { "pro": 0.03, "flex": 0.06, "max": 0.07, "kontext_pro": 0.035, "kontext_max": 0.07, } estimated_cost = num_images * prices[model_type] print(f"Flux {model_type.upper()} 成本预估:") print(f"生成数量: {num_images} 张") print(f"预估费用: ${estimated_cost:.2f}") print("实际扣费以控制台账单记录为准") # 成本计算示例 calculate_flux_costs(100, "pro") # 100张 Pro 版本 calculate_flux_costs(100, "flex") # 100张 Flex 版本 calculate_flux_costs(50, "max") # 50张 Max 版本 ``` ## ⚠️ 重要注意事项 1. **URL 有效期**: * 生成的图片 URL **仅 10 分钟有效** * 必须在失效前完成下载 * 建议生成后立即下载保存 2. **参数传递**: * Flux 2 文生图:在 JSON 顶层传 `size` 或 `width` / `height` * Flux 2 图片编辑:在 JSON 顶层传 `input_image` 和尺寸参数 * Flux Kontext 旧版:使用 `extra_body.aspect_ratio` 3. **尺寸范围**: * Flux 2 常用尺寸:`1024x1024`、`1792x1024`、`1024x1792` * Flux 2 改图可以使用 `size`,也可以使用 `width` + `height` * Flux Kontext 旧版支持 3:7 到 7:3 的连续宽高比 4. **内容安全**: * `safety_tolerance` 参数控制审核严格度 (0-6) * 0 = 最严格,6 = 最宽松 * 默认值 2 适合大多数场景 5. **输出格式**: * 默认 JPEG 格式,文件较小 * PNG 格式质量更高但文件更大 * 根据用途选择合适格式 6. **提示词处理**: * `prompt_upsampling` 会自动优化提示词 * 可能会改变原始意图,建议先测试 * 对简单提示词效果明显 ## 🔍 常见问题 ### Q: 为什么图片 URL 会失效? A: 这是 Flux 官方的安全设计,所有生成的图片 URL 在 10 分钟后自动失效。请确保及时下载保存。 ### Q: Flux 与其他模型有什么区别? A: Flux 模型专注于高质量图像生成和图像编辑。Flux 2 支持文生图、多图编辑和明确尺寸控制;Flux Kontext 旧版更适合已有 `aspect_ratio` 接入的兼容场景。 ### Q: 如何选择 Pro、Flex 和 Max 版本? A: * **flux-2-pro**:\$0.0300/次,默认推荐,适合大多数生成和编辑 * **flux-2-flex**:\$0.0600/次,适合更细控制和复杂编辑 * **flux-2-max**:\$0.0700/次,适合最高质量和最终商业素材 * **flux-kontext-pro/max**:旧版 Kontext 兼容模型 ### Q: 可以使用任意宽高比吗? A: Flux 2 推荐直接使用明确尺寸,例如 `1024x1024`、`1792x1024`、`1024x1792`。旧版 Flux Kontext 可以使用 3:7 到 7:3 范围内的任意比例。 ### Q: safety\_tolerance 如何设置? A: * 0-1:企业/商业环境,最严格 * 2-3:一般创作,平衡模式(推荐) * 4-6:艺术创作,较宽松 ### Q: prompt\_upsampling 有什么作用? A: 启用后 AI 会自动扩展和优化您的提示词,特别适合简短提示词。但可能会改变原意,建议先测试效果。 ### Q: 如何确保结果可重现? A: 使用相同的 `seed` 值和完全相同的其他参数,可以生成一致的结果。这对迭代设计很有帮助。 ### Q: 批量生成如何避免 URL 失效? A: 1. 生成后立即下载 2. 使用并发控制,避免处理时间过长 3. 考虑使用异步处理提高效率 ## 🎯 多图处理解决方案 Flux 2 支持多图编辑。使用 `/v1/images/generations` 时,在 JSON 中传 `input_image`、`input_image_2`、`input_image_3`,最多到 `input_image_8`;不要把重复 multipart `image` 字段当成多图结构。 ### 应用场景 * **图案转移**:将设计图案转移到服装模特上 * **风格融合**:结合多张图的特色元素 * **产品合成**:将商品、背景和装饰元素融合到同一画面 ### 技术原理 1. **多图字段**:使用 `input_image`、`input_image_2`、`input_image_3` 2. **提示词引用**:在 prompt 中使用 image 1、image 2、image 3 指定来源 3. **尺寸控制**:使用 `width` 和 `height` 控制输出 4. **结果处理**:返回 URL 后立即下载,避免 10 分钟链接失效 * 支持多对图片的自动化处理 * 统一的提示词控制处理效果 * 自动结果下载和文件管理 * 完整的错误处理和日志记录 ### 快速开始 ```bash cURL多图编辑 theme={null} curl -X POST "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-2-pro", "prompt": "Use image 1 as the red robot, image 2 as the greenhouse background, and image 3 as the skateboard. Create one fused scene: the robot rides the yellow skateboard in front of the turquoise greenhouse.", "input_image": "https://example.com/source_1_red_robot.png", "input_image_2": "https://example.com/source_2_glass_greenhouse.png", "input_image_3": "https://example.com/source_3_yellow_skateboard.png", "width": 1792, "height": 1024, "output_format": "png" }' ``` ```bash 本地图片cURL多图编辑 theme={null} cd ~/Downloads export LAOZHANG_API_KEY="YOUR_API_KEY" IMG1=$(base64 < source_1_red_robot.png | tr -d '\n') IMG2=$(base64 < source_2_glass_greenhouse.png | tr -d '\n') IMG3=$(base64 < source_3_yellow_skateboard.png | tr -d '\n') curl -X POST "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ --data-binary @- \ -o flux_local_multi_response.json < ## 🔗 相关资源 * [完整示例代码](https://github.com/laozhang-api/ai-api-code-samples/tree/main/flux-Image-API) * [Flux 图像编辑 API](/api-capabilities/flux-image-edit) - 编辑现有图片 * [价格对比计算器](https://api2.laozhang.ai/account/pricing) - 实时价格查询 * [在线体验 Demo](https://yingtu.ai) - 测试 Flux 效果 🎨 **专业提示**:结合不同宽高比和模型版本,可以满足从社交媒体到专业设计的各种需求! # GPT Image 2 API Source: https://docs.laozhang.ai/api-capabilities/gpt-image-2 维护已有 GPT Image 2 与 gpt-image-2-vip 接入,查看令牌分组、计费、Images 生成与编辑示例,以及参数适用边界。 本页用于维护 `gpt-image-2` 与 `gpt-image-2-vip` 既有接入。Flare、Sunburst、两个 VIP 按次模型及网页版最新线路的接入,请使用独立的 [GPT Image 2.5 API 文档](/api-capabilities/gpt-image-2-5)。 以下参数记录来自此前 GPT Image 2 文档,本轮未重新实测;当前权限与扣费请在控制台复核。 ## 先确认令牌类型和分组 GPT Image 2 的线路由**创建令牌时选择的扣费类型和分组**决定,不是只看请求体里的 `model`。同一个 `gpt-image-2` 模型名,在默认分组、`Sora2Official` 分组和 `GPTImage2 Enterprise` 分组下不是同一条线路。 旧按次线路创建默认分组令牌时使用按次扣费。`gpt-image-2` 和 `gpt-image-2-vip` 都是 **\$0.03/次**;需要尺寸和质量参数时使用 `gpt-image-2-vip`。 创建 `Sora2Official` 分组令牌时使用按量扣费。请求体模型名仍然是 `gpt-image-2`,按官方输入 / 输出 tokens 计费。 创建 `GPTImage2 Enterprise` 分组令牌时使用按量扣费。走官方密钥线路,按 tokens 计费,实际单价以控制台为准。 先看令牌类型,再看模型名。旧 `gpt-image-2` / `gpt-image-2-vip` 的默认分组按次线路使用按次扣费令牌;`Sora2Official` 和 `GPTImage2 Enterprise` 是按量扣费令牌。请求体里把 `model` 写成 `gpt-image-2` 并不会把按次令牌变成按量令牌。 2026 年 7 月 9 日更新:默认分组 `gpt-image-2-vip` 已恢复支持 `size` 和 `quality` 参数。该次记录中,`1024x1024`、`2048x2048`、`3840x2160` 均可按请求尺寸返回;`quality` 支持 `low`、`medium`、`high` 三档。 不要把 `Sora2Official` 或 `GPTImage2 Enterprise` 写进请求体的 `model` 字段。它们是创建令牌时选择的分组;请求体里仍然写 `model="gpt-image-2"`。 可以先在 [yingtu.ai](https://yingtu.ai) 在线测试效果,再迁移到 API。 ## 线路对照 | 令牌分组 | 令牌类型 | 模型名 | 线路 | 计费 | `size` | `quality` | 可用接口 | | ---------------------- | ------ | ----------------- | --------------------- | -------------------- | -------------------- | ---------------------------- | ------------------- | | 默认分组 | 按次扣费令牌 | `gpt-image-2` | 默认标准线路 | **\$0.03/次** | 不支持 | 不支持 | Images 生成、Images 编辑 | | 默认分组 | 按次扣费令牌 | `gpt-image-2-vip` | VIP 线路 | **\$0.03/次** | 支持 1K / 2K / 4K 常用尺寸 | 支持 `low` / `medium` / `high` | Images 生成、Images 编辑 | | `Sora2Official` | 按量扣费令牌 | `gpt-image-2` | AZ + 官方密钥 混合官方 API 转发 | 按官方输入 / 输出 tokens 计费 | 支持 | 支持 | Images 生成、Images 编辑 | | `GPTImage2 Enterprise` | 按量扣费令牌 | `gpt-image-2` | 官方密钥 API | 按 tokens 计费,以控制台为准 | 支持 | 支持 | Images 生成、Images 编辑 | ## 怎么选 | 你的需求 | 选择 | | ----------------------------------- | ------------------------------------------------------------------------------ | | 想按 **\$0.03/次** 扣费 | 创建默认分组的按次扣费令牌;需要尺寸/质量时用 `model="gpt-image-2-vip"` | | 想按官方输入 / 输出 tokens 按量扣费 | 创建 `Sora2Official` 或 `GPTImage2 Enterprise` 的按量扣费令牌;请求体写 `model="gpt-image-2"` | | 已接入默认分组 `gpt-image-2-vip` | 这是按次扣费令牌,可以继续传 `size` / `quality` | | 已有官方 OpenAI GPT Image 2 代码,希望参数完全一致 | 创建 `Sora2Official` 或 `GPTImage2 Enterprise` 按量扣费令牌,然后保留 `model="gpt-image-2"` | | 不确定为什么扣费方式不对 | 先检查控制台里这个 Key 的令牌分组;不要只看请求体里的 `model` | ## 基础配置 所有线路都使用同一个 OpenAI 兼容网关地址: ```bash theme={null} export LAOZHANG_API_KEY="sk-你的令牌" export BASE_URL="https://api2.laozhang.ai/v1" ``` 不要把 base URL 写成模型路径,也不要用请求体里的 `model` 改变扣费方式。实际线路由创建令牌时选择的分组和请求里的 `model` 字段共同决定。 ## 参数支持 ### 默认分组 gpt-image-2 默认分组的 `gpt-image-2` 是默认标准线路,适合不需要尺寸控制的快速接入。 * 不支持 `size` * 不支持 `quality` * 价格:**\$0.03/次** ### 默认分组 gpt-image-2-vip 默认分组的 `gpt-image-2-vip` 已恢复支持尺寸和质量参数,适合需要按次扣费、同时需要 1K / 2K / 4K 尺寸控制的图像生成请求。 * 支持 `size`,常用值包括 `1024x1024`、`2048x2048`、`3840x2160` * 支持 `quality`,常用值包括 `low`、`medium`、`high` * 默认返回 `data[0].b64_json` * 如需完整官方密钥线路和更严格的官方参数兼容,请使用官转分组 * 价格:**\$0.03/次** `quality` 会显著影响生成耗时和输出 token 量。低成本或批量预览可先用 `low` / `medium`,最终图再使用 `high`。 ### Sora2Official 分组 gpt-image-2 `Sora2Official` 分组的 `gpt-image-2` 是 AZ + 官方密钥 混合官方 API 转发 线路,按官方输入 / 输出 tokens 计费,价格与官方 OpenAI GPT Image 2 API 一致。 ### GPTImage2 Enterprise 分组 gpt-image-2 `GPTImage2 Enterprise` 分组的 `gpt-image-2` 是官方密钥 API 线路,适合对稳定性和官方线路一致性要求更高的生产调用。按 tokens 计费,企业报价与实际单价以控制台及支持团队确认为准。 ### 官方兼容分组共同参数 使用方式: 1. 在控制台创建**按量扣费令牌**。 2. 普通官方 API 转发选择 `Sora2Official`;优先稳定性和官方密钥 线路时选择 `GPTImage2 Enterprise`。 3. 请求体继续使用 `model="gpt-image-2"`。 4. 保留官方请求体,只替换 base URL 和 API Key。 按官方参数编写请求,`size`、`quality` 及其他字段需在当前目标线路验收。 常用 `size`: * `1024x1024` * `1536x1024` * `1024x1536` * `2048x2048` * `2048x1152` * `3840x2160` * `2160x3840` * `auto` `quality` 可用值: * `low` * `medium` * `high` * `auto` ## 接口支持 本页只文档化 Images API 接入方式:文生图使用 `/v1/images/generations`,图改图使用 `/v1/images/edits`。SDK 对应 `images.generate` 和 `images.edit`。 | 需求 | 接口 | 说明 | | --- | ------------------------ | ------------------------------------------ | | 文生图 | `/v1/images/generations` | 默认返回 `data[0].b64_json`,也可返回 `data[0].url` | | 图改图 | `/v1/images/edits` | multipart 上传本地图片 | `Sora2Official` 和 `GPTImage2 Enterprise` 官方兼容方案必须使用官方一致的 Images API: | 需求 | 接口 | 说明 | | --- | ------------------------ | ----------------- | | 文生图 | `/v1/images/generations` | 和官方 Images 生成接口一致 | | 图改图 | `/v1/images/edits` | 和官方 Images 编辑接口一致 | 无论使用默认分组线路、`gpt-image-2-vip`,还是 `Sora2Official` / `GPTImage2 Enterprise` 官方兼容线路,文档接入方式都只保留 Images 生成和 Images 编辑两类接口。 ## 文生图示例 ### 默认分组 gpt-image-2(按次扣费令牌) 不要传 `size` 或 `quality`。 ```bash theme={null} curl "$BASE_URL/images/generations" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -d '{ "model": "gpt-image-2", "prompt": "生成一张白色陶瓷马克杯放在灰色桌面上的产品图,柔和自然光,简洁背景" }' ``` ### 默认分组 gpt-image-2-vip(按次扣费令牌) `gpt-image-2-vip` 已恢复支持 `size` 和 `quality`。需要按次扣费并控制尺寸时,可以直接在请求体中传入这些参数。 ```bash theme={null} curl "$BASE_URL/images/generations" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -d '{ "model": "gpt-image-2-vip", "prompt": "生成一张白色陶瓷马克杯放在灰色桌面上的产品图,柔和自然光,简洁背景", "size": "2048x2048", "quality": "high" }' ``` ### Sora2Official / GPTImage2 Enterprise 分组 gpt-image-2(按量扣费令牌) 使用官方一致的 Images 生成接口,可以传 `size` 和 `quality`。 ```bash theme={null} curl "$BASE_URL/images/generations" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -d '{ "model": "gpt-image-2", "prompt": "生成一张白色陶瓷马克杯放在灰色桌面上的产品图,柔和自然光,简洁背景", "size": "1536x1024", "quality": "high" }' ``` ## 图改图示例 ### 默认分组 Images Edits ```bash theme={null} curl "$BASE_URL/images/edits" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -F "model=gpt-image-2" \ -F "prompt=使用提供的图片作为源图。保留主体、构图和文字,只把杯身贴纸改成红色,并给杯口加一条很细的金色边。" \ -F "image=@source.png" ``` ### 默认分组 gpt-image-2-vip Images Edits ```bash theme={null} curl "$BASE_URL/images/edits" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -F "model=gpt-image-2-vip" \ -F "prompt=使用提供的图片作为源图。保留主体、构图和文字,只把贴纸改成蓝色。" \ -F "image=@source.png" ``` ### Sora2Official / GPTImage2 Enterprise 分组 Images Edits 官方兼容分组的图改图必须使用 `/v1/images/edits`,参数按官方 API 写法。 ```bash theme={null} curl "$BASE_URL/images/edits" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -F "model=gpt-image-2" \ -F "prompt=使用提供的图片作为源图。保留主体、构图和文字,只把贴纸改成绿色。" \ -F "image=@source.png" \ -F "size=1024x1024" \ -F "quality=high" ``` ## 返回结果解析 ### 保存 Images API 的 b64\_json ```python theme={null} import base64 value = response["data"][0]["b64_json"] if value.startswith("data:"): value = value.split(",", 1)[1] value += "=" * ((4 - len(value) % 4) % 4) with open("output.png", "wb") as f: f.write(base64.b64decode(value)) ``` ### 读取 Images API 的 URL ```python theme={null} image_url = response["data"][0]["url"] ``` ## 常见问题 因为线路由令牌分组决定。默认分组的 `gpt-image-2` 是按次扣费标准线路;`Sora2Official` 分组的 `gpt-image-2` 是按量扣费的 AZ + 官方密钥混合官方 API 转发;`GPTImage2 Enterprise` 分组的 `gpt-image-2` 是按量扣费的官方密钥 API。 看控制台创建令牌时选择的分组。旧 `gpt-image-2` / `gpt-image-2-vip` 的默认分组按次线路使用按次扣费令牌,`gpt-image-2` / `gpt-image-2-vip` 按 **\$0.03/次** 扣费;`Sora2Official` 和 `GPTImage2 Enterprise` 是按量扣费令牌,模型名仍写 `gpt-image-2`,但按官方输入 / 输出 tokens 计费。 默认分组 `gpt-image-2` 不作为尺寸控制线路承诺。需要默认分组按次扣费并控制尺寸时,请使用已恢复参数支持的 `gpt-image-2-vip`;需要完整官方密钥线路时,请使用 `Sora2Official` 或 `GPTImage2 Enterprise` 分组的 `gpt-image-2`。 可以。`gpt-image-2-vip` 当前支持 `low`、`medium`、`high` 三档 `quality`。质量越高,通常等待时间和输出 token 量越高。 可以。当前可使用 `3840x2160` 等 4K 横屏尺寸;如需竖屏 4K,可按业务场景测试 `2160x3840`。 这页只保留 Images API 接入方式:文生图使用 `/v1/images/generations`,图改图使用 `/v1/images/edits`。 先创建 `Sora2Official` 或 `GPTImage2 Enterprise` 分组的按量扣费令牌。迁移时保留官方请求体和 `model="gpt-image-2"`,把 base URL 改为 `https://api2.laozhang.ai/v1`,把 API Key 改成 LaoZhang API 令牌。需要官方密钥线路时,优先选择 `GPTImage2 Enterprise`。 常见原因是返回值带了 `data:image/png;base64,` 前缀,或者末尾缺少 padding。先去掉前缀,再补齐 `=` 后再做 base64 解码。 ## 相关文档 * [Images API 兼容边界](/api-reference/images) * [图像生成 API 选择指南](/api-capabilities/image-generation-guide) * [模型与价格总表](/models) * [调用日志](/faq/call-logs) ## 来源与状态核对 * [OpenAI GPT Image 2](https://developers.openai.com/api/docs/models/gpt-image-2) * [OpenAI 图像生成指南](https://developers.openai.com/api/docs/guides/image-generation) * [老张API当前模型与价格](https://api2.laozhang.ai/account/pricing) * [GPT Image 2.5 官转与 VIP 接入](/api-capabilities/gpt-image-2-5) # GPT Image 2.5 API:官转与按次计费接入 Source: https://docs.laozhang.ai/api-capabilities/gpt-image-2-5 GPT Image 2.5 两个 -vip 模型暂不可用;查看可用官转与 gpt-image-2.5-web 的模型 ID、计费和接入说明,以及暂停线路的历史参数参考。 `gpt-image-2.5-flare` 与 `gpt-image-2.5-sunburst` 官转已上线,接入方式沿用 `gpt-image-2` 官转的 Images API。优先速度选 **Flare**,优先精细图像编辑选 **Sunburst**;也可以在产品中提供两个选项,让用户自行选择。两者按 tokens 计费,token 单价与 `gpt-image-2` 官转相同。 **2026 年 9 月 16 日:** `gpt-image-2.5-flare-vip` 和 `gpt-image-2.5-sunburst-vip` 因上游资源不足暂不可用。请使用官转或按次计费的 `gpt-image-2.5-web`;网页版支持 `size`,不能指定 Flare / Sunburst。查看[完整状态公告与切换说明](/announcements/gpt-image-2-5-vip-unavailable-2026-09)。 **线路状态更新:2026 年 9 月 16 日(运营通知);历史参数资料更新:2026 年 9 月 10 日。** ## 先选择接入线路 | 线路 | 模型 ID | 令牌分组 | 计费 | | -------- | ---------------------------- | ----------------------- | ------------------------------ | | 官转 | `gpt-image-2.5-flare` | `Sora2Official` 或企业官转分组 | 与 GPT Image 2 官转同 token 单价 | | 官转 | `gpt-image-2.5-sunburst` | `Sora2Official` 或企业官转分组 | 与 GPT Image 2 官转同 token 单价 | | 暂不可用(按次) | `gpt-image-2.5-flare-vip` | Default | \$0.03/次,接入同 `gpt-image-2-vip` | | 暂不可用(按次) | `gpt-image-2.5-sunburst-vip` | Default | \$0.03/次,接入同 `gpt-image-2-vip` | | 网页版 2.5 | `gpt-image-2.5-web` | 以当前令牌权限为准 | 按次计费,价格以控制台为准 | 先确定线路和扣费类型,再复制对应示例。已有 GPT Image 2 集成可继续参考 [GPT Image 2 文档](/api-capabilities/gpt-image-2)。 ## GPT Image 2.5 官转模型与分组 | 请求中的模型 ID | 当前指向 | 选择建议 | | ------------------------ | ----------------------------------- | -------------- | | `gpt-image-2.5-flare` | `gpt-image-2.5-flare-2026-09-08` | 更快的日常高质量生成 | | `gpt-image-2.5-sunburst` | `gpt-image-2.5-sunburst-2026-09-08` | 更注重编辑精度的生成与图改图 | 一般接入使用不带日期的别名;需要固定版本时可使用表中的完整快照 ID。别名当前映射不代表未来永远固定。 1. 在[令牌管理](https://api2.laozhang.ai/token)选择按量计费,确认令牌允许调用目标模型。 2. 两个 2.5 模型使用**官转分组**。普通官转选择 `Sora2Official`;优先稳定性的生产调用选择企业官转分组 `GPTImage2 Sora2 Enterprise`。**按次使用网页版 2.5 可选择 `gpt-image-2.5-web`,请确认当前令牌权限。** 3. 保留原有官转 Images API 的鉴权、请求结构和结果处理,将 `model` 改为上述别名或快照 ID。分组名不填入 `model`。 官转分组在控制台中对应 `Sora2Official` 和 `GPTImage2 Sora2 Enterprise`;接口配置中的分组键分别为 `sora_official` 和 `GPT_Image_2_Enterprise`。分组用于配置令牌,不填入请求的 `model`。两个 2.5 `-vip` 模型目前暂停使用;按次替代线路见本页状态提示。 ## GPT Image 2.5 官转最小接入 以下示例沿用官转的文生图 `/v1/images/generations` 和图像编辑 `/v1/images/edits`。SDK 对应 `images.generate` 与 `images.edit`。 ```bash theme={null} export LAOZHANG_API_KEY="sk-你的按量令牌" export BASE_URL="https://api2.laozhang.ai/v1" ``` ### Flare 文生图 ```bash theme={null} curl --fail-with-body "$BASE_URL/images/generations" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-image-2.5-flare", "prompt": "白色陶瓷杯的产品照片,灰色桌面,柔和自然光", "size": "1024x1024", "quality": "medium" }' -o generation.json ``` ### Sunburst 图像编辑 先准备本地 `source.png`,再运行: ```bash theme={null} curl --fail-with-body "$BASE_URL/images/edits" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -F "model=gpt-image-2.5-sunburst" \ -F "image=@source.png" \ -F "prompt=保留杯子的形状、构图和光照,只将杯身改为深蓝色。" \ -F "size=1024x1024" \ -F "quality=medium" \ -o edit.json ``` 两种模型均接受文本与图像输入;示例按各自侧重点选型,不表示 Flare 不能编辑或 Sunburst 不能生成。 官转接口参数参考 [OpenAI 图像生成指南](https://developers.openai.com/api/docs/guides/image-generation)。本页示例使用 Images API:生成调用 `/v1/images/generations`,编辑调用 `/v1/images/edits`。按次计费模型的质量选项见下文“尺寸与质量”,不要混用两种线路的参数范围。 ### 保存图片与查看结果 成功的 Images API 响应应包含图像结果。对于 `data[0].b64_json`,以下脚本将文生图结果保存为图片;编辑请求改读 `edit.json`: ```python theme={null} import base64 import json from pathlib import Path response = json.loads(Path("generation.json").read_text()) value = response["data"][0]["b64_json"] if value.startswith("data:"): value = value.split(",", 1)[1] Path("output.png").write_bytes(base64.b64decode(value, validate=True)) ``` 打开 `output.png`,检查图片能否正常显示、实际尺寸是否符合请求;编辑时再检查要求保留的内容和指定改动。若线路返回 `data[0].url`,下载并打开该 URL 对应图片。随后在[调用日志](https://api2.laozhang.ai/log)核对模型、分组、usage 和实际扣费。 认证或模型权限错误先检查 Key、分组和模型 ID;参数错误按返回信息调整请求。若返回对象没有图片,保留脱敏错误和日志时间,按[Images API 参考](/api-reference/images)检查,联系支持时不要发送完整 Key。 ## GPT Image 2.5 官转计费 两种 2.5 模型与 `gpt-image-2` 官转的 **token 单价相同**,按文本输入、图片输入和图片输出的实际用量计费。它们不采用旧按次线路的固定每次价格。 | 官方计费项 | 每 100 万 tokens 单价(美元) | | ------ | --------------------- | | 文本输入 | \$5 | | 缓存文本输入 | \$1.25 | | 图片输入 | \$8 | | 缓存图片输入 | \$2 | | 图片输出 | \$30 | 上表为 [OpenAI 官方 token 单价](https://developers.openai.com/api/docs/guides/image-generation#cost-and-latency)。老张API实际结算需结合[当前模型价格与令牌分组](https://api2.laozhang.ai/account/pricing);企业报价联系支持团队确认。同价不等于单张图片总价相同,模型、尺寸、质量和参考图会影响 token 用量,应以代表性请求的 usage 估算。 ## GPT Image 2.5 按次计费接入 本节保留两个 `-vip` 模型暂停前的参数和示例,仅作历史参考。当前不要使用这些模型发起请求,也不要将本节参数范围直接套用到 `gpt-image-2.5-web`;恢复后需重新确认能力。 暂停前,`gpt-image-2.5-flare-vip` 与 `gpt-image-2.5-sunburst-vip` 均为 **\$0.03/次**,接入方式和计费方式与 `gpt-image-2-vip` 一致,使用 **Default 分组的按次令牌**。以下为当时的接入记录。 | 模型 ID | 计费 | 接入方式 | | ---------------------------- | -------- | -------------------- | | `gpt-image-2.5-flare-vip` | \$0.03/次 | 沿用 `gpt-image-2-vip` | | `gpt-image-2.5-sunburst-vip` | \$0.03/次 | 沿用 `gpt-image-2-vip` | ### 尺寸与质量 两个按次计费模型的文生图请求均可使用 `size` 和 `quality`。`quality` 可选 **`low`、`medium`、`high`、`xhigh`、`max`**。不需要指定尺寸或质量时,省略相应字段即可。 | 参数 | 写法 | 使用说明 | | --------- | ------------------------------------------- | ---------------------------- | | `size` | `宽x高`,例如 `2048x2048` | 常规尺寸均支持,也可填写符合下述限制的自定义宽高 | | `quality` | `low` / `medium` / `high` / `xhigh` / `max` | 两款模型均支持这五档;可按任务选择,或提供五档选项给用户 | **2026 年 9 月 10 日更新:** 两款按次计费模型已新增 `xhigh` 和 `max`。需要使用新档位时,将请求中的 `quality` 改为对应值即可,模型 ID、分组和按次计费方式不变。 **两款模型的常规尺寸均支持,覆盖 1K、2K、4K 及常见方图、横图、竖图画幅。** `gpt-image-2.5-flare-vip` 和 `gpt-image-2.5-sunburst-vip` 也支持合法范围内的自定义宽高,不限于下表列出的 6 个示例。`size` 使用 `宽x高` 字符串,例如 `1440x960`、`1536x864` 或 `2048x1152`,不需要从固定列表中选择。 自定义尺寸需满足以下条件: * 宽、高均为 **16 的整数倍**; * 任一边不超过 **3840 像素**; * 长边与短边之比不超过 **3:1**,即横竖比例在 **1:3 到 3:1** 之间; * 总像素数(宽 × 高)在 **655,360 到 8,294,400** 之间。 尺寸格式与边界参考 [OpenAI 图像生成指南](https://developers.openai.com/api/docs/guides/image-generation)。工作台下拉框可以仅展示常用预设,直接调用 API 时可填写符合上述条件的自定义 `size`。 **下表仅为常用尺寸示例,不是完整列表:** | 常用示例 | `size` | 画幅 | | ----- | ----------- | ---- | | 1K 方图 | `1024x1024` | 1:1 | | 横图 | `1536x1024` | 3:2 | | 竖图 | `1024x1536` | 2:3 | | 2K 方图 | `2048x2048` | 1:1 | | 4K 横图 | `3840x2160` | 16:9 | | 4K 竖图 | `2160x3840` | 9:16 | 入门请求可以使用 `size="2048x2048"`、`quality="medium"`。`quality` 用于选择生成质量,两个模型仍按次计费;实际单价与扣费以[控制台](https://api2.laozhang.ai/account/pricing)为准。 **尺寸设置:** 非标准尺寸可能被自动调整,例如 `1023x1024` 可能返回 `1024x1024`。需要精确像素时,请使用符合上述条件的尺寸,并检查返回图片的实际宽高;不要依赖自动调整规则。 ### 文生图示例 已有 `gpt-image-2-vip` 集成时,保留 base URL、鉴权、接口和结果处理,将 `model` 替换为上表的完整 ID。以下示例生成一张 2K 方图,质量设为 `medium`: ```bash theme={null} export LAOZHANG_API_KEY="sk-你的按次令牌" curl --fail-with-body "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-image-2.5-flare-vip", "prompt": "白色陶瓷杯的产品照片,灰色桌面,柔和自然光", "size": "2048x2048", "quality": "medium" }' -o generation.json ``` ### 图像编辑示例 图像编辑使用 `/v1/images/edits`,沿用 `gpt-image-2-vip` 的 multipart 请求格式。先准备本地 `source.png`,再上传图片并描述需要修改的内容: ```bash theme={null} curl --fail-with-body "https://api2.laozhang.ai/v1/images/edits" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -F "model=gpt-image-2.5-sunburst-vip" \ -F "image=@source.png" \ -F "prompt=保留杯子的形状、构图和光照,只将杯身改为深蓝色。" \ -o edit.json ``` ### 透明背景 PNG `gpt-image-2.5-flare-vip` 和 `gpt-image-2.5-sunburst-vip` 都支持**生成透明背景 PNG**,也支持上传图片后**去除背景、保留主体**。使用 Default 分组的按次令牌,设置: ```json theme={null} { "background": "transparent", "output_format": "png" } ``` 生成请求使用 JSON;编辑请求使用 multipart,并把这两个参数作为表单字段传入。下面的示例使用 `1024x1024` 和 `medium`。 #### 生成透明背景图片 ```bash theme={null} curl --fail-with-body "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-image-2.5-flare-vip", "prompt": "一只带银色瓶盖的蓝色玻璃香水瓶,居中摆放,轮廓清晰,主体四周留空,不要文字、水印或棋盘格。", "size": "1024x1024", "quality": "medium", "background": "transparent", "output_format": "png" }' -o generation.json ``` #### 上传图片并去除背景 先准备本地 `source.png`,再上传原图并描述需要保留的主体: ```bash theme={null} curl --fail-with-body "https://api2.laozhang.ai/v1/images/edits" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -F "model=gpt-image-2.5-sunburst-vip" \ -F "image=@source.png" \ -F "prompt=移除整个背景,只保留杯子及其标签,保留杯子的形状、颜色和文字,不要桌面、墙壁或主体之外的阴影。" \ -F "size=1024x1024" \ -F "quality=medium" \ -F "background=transparent" \ -F "output_format=png" \ -o edit.json ``` 两个示例中的模型 ID 可以互换。按上面的图片保存方法解码 `data[0].b64_json`,以 PNG 格式保存;编辑结果改读 `edit.json`。PNG 的 alpha 通道保留透明区域,可以直接叠放到其他底色上。不要转存为 JPEG,以免丢失透明效果。 透明背景与 `mask` 局部编辑是不同功能。当前这两个按次模型不支持通过 `mask` 限定修改区域;如需去背景,使用上面的 `background="transparent"` 参数与主体保留提示词即可。 两个按次计费模型使用同一种接入方式,可按需替换或让用户自选。图片保存方式同上;实际价格和扣费以[控制台](https://api2.laozhang.ai/account/pricing)及调用日志为准。 按次调用时必须保留模型名中的 `-vip` 后缀,例如 `gpt-image-2.5-flare-vip`。不带该后缀的 Flare / Sunburst 使用官转 token 计费。按次模型的 `quality` 可使用 `low`、`medium`、`high`、`xhigh` 或 `max`。 ## GPT Image 2.5 网页版按次线路 根据 2026 年 9 月 16 日运营通知,`gpt-image-2.5-web` 正常可用,为 ChatGPT 网页版逆向线路,按次计费,支持 `size`,但不能指定 Flare / Sunburst。需要指定模型或使用官转 2K / 4K 时,请选择上方不带后缀的官转模型。 本次替代方案使用 `gpt-image-2.5-web`;历史文档中的 `gpt-image-2-web` 不作为本次切换目标。两者是否共享路由或参数不能从模型名推断。当前令牌权限、价格和实际输出以[控制台](https://api2.laozhang.ai/account/pricing)及调用结果为准,完整影响范围见[状态公告](/announcements/gpt-image-2-5-vip-unavailable-2026-09)。 ## 相关文档 * [GPT Image 2:已有集成](/api-capabilities/gpt-image-2) * [Images API 参考](/api-reference/images) * [图像生成 API 选择指南](/api-capabilities/image-generation-guide) * [调用日志](/faq/call-logs) * [模型与价格总表](/models) ## 参考资料 * [OpenAI Image generation](https://developers.openai.com/api/docs/guides/image-generation) * [OpenAI GPT Image 2.5 Flare](https://developers.openai.com/api/docs/models/gpt-image-2.5-flare) * [OpenAI GPT Image 2.5 Sunburst](https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst) * [老张API当前模型与价格](https://api2.laozhang.ai/account/pricing) * [GPT Image 2.5 上线公告](/announcements/gpt-image-2-5-2026-09) # Grok Imagine Image API:2.0 生图、三图编辑与价格 Source: https://docs.laozhang.ai/api-capabilities/grok-imagine-image 使用老张API调用 grok-imagine-image-2.0:查看每张 0.055 美元价格、1K/2K 与质量参数、15 种宽高比、批量生图,以及最多三张参考图的 multipart 编辑方法。 截至 2026 年 9 月 3 日,老张API已在可用令牌分组中开放 `grok-imagine-image-2.0`。文生图使用 `/v1/images/generations`;参考图编辑使用 OpenAI 兼容的 `multipart/form-data` `/v1/images/edits`,支持 1–3 张参考图。当前价格为 **\$0.055/成功输出图片**,批量请求按实际返回张数计费。 本页是 Grok Imagine 图像模型的站内完整接入指南。`grok-imagine-image-2.0` 是真实模型 ID;旧模型 `grok-imagine-image` 与 `grok-imagine-image-quality` 仍可使用,不要混淆三个 ID。 创建令牌并确认余额、可见模型与可用分组 批量调用前核对实时价格与调用记录 ## 当前接入范围 | 项目 | `grok-imagine-image-2.0` 当前范围 | | ----- | --------------------------------------------- | | 文生图 | `POST /v1/images/generations`,JSON | | 参考图编辑 | `POST /v1/images/edits`,`multipart/form-data` | | 参考图数量 | 1–3 张;第四张起不要发送 | | 分辨率 | `1k`、`2k` | | 质量 | 建议显式使用 `low` 或 `medium` | | 宽高比 | 15 个固定值;也可省略并由模型选择 | | 单次输出 | `n=1–10` | | 返回形式 | `url` 或 `b64_json` | | 当前价格 | **\$0.055/成功输出图片** | 老张API当前编辑接口采用 OpenAI 兼容的文件上传格式,不接受 xAI 文档中的 JSON 图片对象。四张或五张参考图当前会失败;请在客户端把数量限制为最多三张,不要对相同超限请求自动重试。 ## 三个模型怎样选择 | 模型 ID | 当前价格 | 已文档化特点 | 适合任务 | | ---------------------------- | ------------: | -------------------------------- | ---------------------- | | `grok-imagine-image-2.0` | **\$0.055/张** | 1K/2K、Low/Medium、15 种固定比例、最多三图编辑 | 当前 Grok 生图、精细生成与多参考图编辑 | | `grok-imagine-image` | **\$0.025/张** | 低成本生成;当前旧指南范围内支持多参考图 | 草稿、批量候选与成本优先任务 | | `grok-imagine-image-quality` | **\$0.045/张** | 旧高质量模型;参考图数量较少 | 已有兼容工作流与小规模成片任务 | 新接入优先测试 `grok-imagine-image-2.0`。现有旧模型调用无需立即迁移;先用相同提示词、比例和分辨率各生成一张,再按结果与成本选择。 ## 调用前准备 在[令牌管理](https://api2.laozhang.ai/token)创建 API Key。令牌只保存在服务端环境变量中,不要写入浏览器代码、公开仓库或日志。 在[模型价格页面](https://api2.laozhang.ai/account/pricing)确认当前令牌可以看到 `grok-imagine-image-2.0`,并核对单价仍为 \$0.055。 使用 `n=1` 完成一次真实请求,下载图片并检查像素、内容和调用记录,再增加分辨率、输出数量或并发。 ## 文生图快速开始 下面的请求生成一张 2K、16:9、Medium 图片: ```bash theme={null} curl "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "grok-imagine-image-2.0", "prompt": "A cinematic lighthouse at sunrise, detailed ocean reflections, no text", "n": 1, "aspect_ratio": "16:9", "resolution": "2k", "quality": "medium", "response_format": "url" }' ``` 成功响应为 HTTP 200,`data` 中应有一张可读取的图片: ```json theme={null} { "data": [ { "url": "https://..." } ] } ``` URL 是临时地址,应在请求成功后尽快下载到自己的对象存储。需要直接保存响应内容时,把 `response_format` 改为 `b64_json`。 ### Python SDK ```python theme={null} import os from openai import OpenAI client = OpenAI( api_key=os.environ["LAOZHANG_API_KEY"], base_url="https://api2.laozhang.ai/v1", timeout=180, ) response = client.images.generate( model="grok-imagine-image-2.0", prompt="A premium mechanical watch on dark slate, macro product photography", n=1, response_format="b64_json", extra_body={ "aspect_ratio": "1:1", "resolution": "2k", "quality": "medium", }, ) print(response.data[0].b64_json[:40]) ``` OpenAI Python SDK 没有把全部 Grok 图像字段做成顶层参数。将 `aspect_ratio`、`resolution` 与 `quality` 放入 `extra_body`。 ## 宽高比、分辨率与质量 `grok-imagine-image-2.0` 已实测以下固定宽高比: | 方向 | 支持值 | | -- | ----------------------------------------------------- | | 方形 | `1:1` | | 横向 | `16:9`、`4:3`、`3:2`、`2:1`、`19.5:9`、`20:9`、`21:9`、`5:2` | | 纵向 | `9:16`、`3:4`、`2:3`、`1:2`、`9:19.5`、`9:20` | 省略 `aspect_ratio` 时由模型自动选择。需要稳定布局时应显式传值。 * `resolution="1k"`:更快,适合草稿、缩略图和批量候选; * `resolution="2k"`:文件更大、延迟更高,适合成片与裁切; * `quality="low"`:速度优先; * `quality="medium"`:细节优先; * 不要发送 `quality="high"`,也不要发送 `resolution="4k"`。 当前成功响应不会明确返回最终采用的质量档。生产请求建议显式使用 `low` 或 `medium`,不要依赖 `auto` 推断成本、延迟或画质。 ## 单张参考图编辑 编辑必须使用文件上传,不要把参考图 JSON 放进请求体: ```bash theme={null} curl "https://api2.laozhang.ai/v1/images/edits" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -F "model=grok-imagine-image-2.0" \ -F "prompt=Change the mug to matte black. Preserve the composition, lighting, and background." \ -F "image=@product-photo.png" \ -F "response_format=url" ``` HTTP 200 之后仍要下载图片并人工检查主体、颜色、文字和构图。参考图编辑会重新生成画面,不是像素级 mask 局部重绘。 ## 两张或三张参考图编辑 多图编辑时重复提交 `image[]`。下面的三图请求分别提供主体、场景和风格: ```bash theme={null} curl "https://api2.laozhang.ai/v1/images/edits" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -F "model=grok-imagine-image-2.0" \ -F "prompt=Place the product from image 1 in the scene from image 2, and apply the visual style from image 3. Preserve the product colors." \ -F "image[]=@product.png" \ -F "image[]=@scene.jpg" \ -F "image[]=@style.jpg" \ -F "aspect_ratio=3:2" \ -F "response_format=url" ``` 上传顺序对应提示词中的 image 1、image 2、image 3。老张API已在 `api2.laozhang.ai` 实测三张参考图返回 1248×832 JPEG;测试日期为 2026 年 9 月 3 日。 当前上限是三张。四图与五图请求会返回上游服务错误;请在发出请求前本地计数并拒绝,避免把明确的输入边界误当成临时故障重试。 ### Python SDK 编辑 ```python theme={null} import os from openai import OpenAI client = OpenAI( api_key=os.environ["LAOZHANG_API_KEY"], base_url="https://api2.laozhang.ai/v1", timeout=180, ) with open("product.png", "rb") as image: response = client.images.edit( model="grok-imagine-image-2.0", image=image, prompt="Keep the product and change the background to a rainy neon street.", response_format="url", ) print(response.data[0].url) ``` OpenAI SDK 单图编辑可以直接使用。多图上传建议先使用上面的 curl 形式确认文件数组和服务端框架的 multipart 行为。 ## 参数表 | 参数 | 类型 | 必填 | 当前行为 | | ----------------- | ------- | ------ | ---------------------------------- | | `model` | string | 是 | 新模型使用 `grok-imagine-image-2.0` | | `prompt` | string | 是 | 描述内容、构图、风格和必须保留的特征 | | `n` | integer | 否 | 文生图为 1–10;按实际输出张数计费 | | `aspect_ratio` | string | 否 | 使用上表列出的 15 个固定值;省略时自动选择 | | `resolution` | string | 否 | 文生图使用小写 `1k` 或 `2k` | | `quality` | string | 否 | 文生图建议 `low` 或 `medium`;不要使用 `high` | | `response_format` | string | 否 | `url` 或 `b64_json` | | `image` | file | 单图编辑时是 | 单张本地图片 | | `image[]` | file\[] | 多图编辑时是 | 重复字段,最多三张 | ## 价格与计费 `grok-imagine-image-2.0` 当前价格为 **\$0.055/成功输出图片**: | 请求 | 计费示例 | | -------------- | ------: | | `n=1` | \$0.055 | | `n=4` | \$0.220 | | `n=10` | \$0.550 | | 三张参考图编辑并返回一张结果 | \$0.055 | 1K/2K、Low/Medium 当前使用同一老张API公开单价。老张API售价与 [xAI 官方价格](https://docs.x.ai/developers/pricing)是不同的计费合同;大批量任务开始前请到[控制台](https://api2.laozhang.ai/account/pricing)复核,并以调用记录为最终账单依据。 ## 错误处理 | 情况 | 当前可能结果 | 客户端处理 | | ----------------- | -------- | ---------------------- | | API Key 无效 | 401 | 更换正确令牌,不重试同一个密钥 | | 缺少 `prompt` | 400 | 补全请求 | | `n` 超过 10 | 可能返回 429 | 客户端提前限制为 1–10 | | 未支持的宽高比 | 可能返回 429 | 只使用本页白名单 | | `resolution="4k"` | 可能返回 503 | 改为 `1k` 或 `2k`,不要按故障重试 | | `quality="high"` | 可能仍返回图片 | 客户端必须提前拒绝,避免静默降级与计费 | | 四张或五张参考图 | 500 | 减为最多三张,不重试原请求 | 对正常请求遇到的 429、网络错误和临时 5xx 使用带抖动的指数退避。客户端超时后先检查调用记录,再决定是否重新提交,避免重复生成与重复计费。 ## 生产验收清单 1. 用实际令牌生成一张 1K Low 图片; 2. 下载 URL 或解码 Base64,检查真实 MIME 和像素; 3. 再测试生产所需的 2K、Medium、画幅和 `n`; 4. 编辑使用互不重复的非敏感参考图,逐个检查主体确实进入输出; 5. 为编辑输入设置三张上限; 6. 1K Low 请求超时至少 60 秒,Medium 与 2K 建议 120–180 秒; 7. 在扩大并发前核对成功率、延迟、图片张数和调用记录。 ## 常见问题 ### 新模型的正确 ID 是什么? 使用 `grok-imagine-image-2.0`,包括末尾的 `.0`。旧模型 `grok-imagine-image` 与 `grok-imagine-image-quality` 仍是独立 ID。 ### 价格按一次请求还是按图片张数? 按成功输出图片张数。`n=10` 成功返回十张时计费 $0.550,不是只收一次 $0.055。 ### 编辑最多能上传几张参考图? `grok-imagine-image-2.0` 当前最多三张,并且必须使用 multipart 文件上传。四张或五张暂不支持。 ### 可以使用 xAI 官方 JSON 图片编辑格式吗? 当前不可以。老张API已验证的是 OpenAI 兼容 multipart 上传;JSON 图片对象会返回 400。需要官方 JSON 合同时请等待后续兼容更新。 ### 1K、2K、Low 与 Medium 是否同价? 当前老张API公开价格均为 \$0.055/成功输出图片。不同档位的延迟和上游成本不同,价格可能调整;批量调用前请复核控制台。 ### 生成结果应该怎样保存? URL 返回应尽快下载到自己的存储;需要响应内携带图片时使用 `b64_json`。不要假设临时 URL 永久有效。 ## 来源与相关文档 * [Grok Imagine Image 2.0 上线公告](/announcements/grok-imagine-image-2-0-2026-09) — 当前价格、开放范围与三图编辑说明 * [xAI Grok Imagine Image 2.0 模型](https://docs.x.ai/developers/models/grok-imagine-image-2.0) — 官方模型 ID、分辨率与质量价格 * [xAI 图像生成文档](https://docs.x.ai/developers/model-capabilities/images/generation) — 官方画幅、分辨率、质量、批量与返回形式 * [xAI 图像编辑文档](https://docs.x.ai/developers/model-capabilities/images/editing) — 官方 JSON 编辑合同;与当前老张API multipart 方式不同 * [xAI 多图编辑文档](https://docs.x.ai/developers/model-capabilities/images/multi-image-editing) — 上游最多五图能力;不等同于老张API当前三图上限 * [老张API Images 接口参考](/api-reference/images) — 通用 Images API 请求与响应结构 * [老张API图像生成选型指南](/api-capabilities/image-generation-guide) — 对比其他图像模型 * [老张API模型与价格](https://api2.laozhang.ai/account/pricing) — 当前模型、分组、售价与调用记录入口 # 图像生成API选择指南 Source: https://docs.laozhang.ai/api-capabilities/image-generation-guide 对比所有图像生成服务,帮助您选择最适合的API 2026 年 9 月 9 日更新:Flare / Sunburst 使用官转分组,按与 GPT Image 2 官转相同的 token 单价计费;Default 分组使用 `gpt-image-2-web`,对应 GPT 网页版最新的 2.5。模型选择与生成、编辑示例见 [GPT Image 2.5 接入指南](/api-capabilities/gpt-image-2-5),实际价格以[控制台](https://api2.laozhang.ai/account/pricing)为准。 **按次接入 2.5:** `gpt-image-2.5-flare-vip` 与 `gpt-image-2.5-sunburst-vip` 均为 \$0.03/次,Default 分组,接入方式同 `gpt-image-2-vip`。请保留 `-vip` 后缀,区别于官转 token 计费。 ## 🎯 30秒快速选择 **Sora Image** - \$0.01/张 * 价格最低,质量中上 * 适合批量生成 * 中文友好 [查看文档 →](/api-capabilities/sora-image-generation) **GPT Image 2.5 官转** - 按 tokens 计费 * Flare 优先速度,Sunburst 优先精细编辑 * 沿用 GPT Image 2 官转 Images API * 使用官转分组;Default 用 `gpt-image-2-web`(网页版 2.5) [查看文档 →](/api-capabilities/gpt-image-2-5) **Flux Kontext Max** - \$0.07/张 * 最高质量 * 灵活宽高比(3:7到7:3) * 专业设计首选 [查看文档 →](/api-capabilities/flux-image-generation) **Nano Banana 2 Lite** - \$0.025/次 * 稳定模型 ID * 1K 与 14 种宽高比 * 面向低延迟、高调用量场景 [查看 Nano Banana 2 Lite →](/api-capabilities/nano-banana-2-lite-api) **GPT Image 2.5 Sunburst / Gemini Flash 编辑** * Sunburst 侧重精细图像编辑,使用官转分组 * Gemini Flash 适合多图合成 * 根据返回格式选择 URL 或 Base64 [查看 GPT Image 2.5 →](/api-capabilities/gpt-image-2-5) ## 📊 完整对比表 | 服务 | 价格 | 速度 | 质量 | 特点 | 适用场景 | | ------------------------ | -------------------------- | --------- | -------------- | ---------------------------------------------------------------------------------------------------- | -------------------------------- | | **Sora Image** | \$0.01/张 | \~10-15秒 | ⭐⭐⭐⭐ | 中文友好、按次计费 | 批量内容生成、快速原型 | | **GPT Image 2.5 官转** | 与 GPT Image 2 官转同 token 单价 | Flare 偏速度 | Sunburst 偏编辑精度 | Images API;官转分组 | 生成与精细编辑 | | **GPT Image 2.5 按次计费** | \$0.03/次 | 随任务而定 | 五档质量可选 | `gpt-image-2.5-flare-vip` / `gpt-image-2.5-sunburst-vip`;Default;`low / medium / high / xhigh / max` | 按次生成;共同入门参数 `2048x2048`、`medium` | | **gpt-image-2-web** | \$0.03/次,以控制台为准 | 按实际请求 | GPT 网页版最新 2.5 | Default 分组 | 网页版线路接入 | | **Flux Pro** | \$0.035/张 | 快速 | ⭐⭐⭐⭐ | 灵活比例(3:7-7:3) | 专业设计、社交媒体 | | **Flux Max** | \$0.07/张 | 快速 | ⭐⭐⭐⭐⭐ | 最高质量 | 商业作品、高端设计 | | **Nano Banana 2 Lite** | \$0.025/次 | 官方目标低延迟 | ⭐⭐⭐⭐ | 1K、14种比例、低成本 | 高频草稿、快速编辑、批量 | | **Nano Banana Standard** | \$0.025/次 | \~10秒 | ⭐⭐⭐⭐ | 1K、Base64、旧项目兼容 | 现有 Web 应用 | | **Nano Banana 2** | \$0.055/次 | \~10秒 | ⭐⭐⭐⭐⭐ | 0.5K–4K、高吞吐 | 通用生产、4K、文字渲染 | | **Nano Banana Pro** | \$0.09/次 | \~10秒 | ⭐⭐⭐⭐⭐ | 4K、复杂构图、思考模式 | 专业设计、复杂指令 | | **GPT-Image-1** | 按Token | 中等 | ⭐⭐⭐⭐⭐ | OpenAI标准 | 企业集成 | | **Seedream** | \$0.035/张 | 中等 | ⭐⭐⭐⭐ | 图改图、多图 | 创意编辑、风格迁移 | **成本对比**:生成100张图片 * Sora: \$1.00 * Nano Banana 2 Lite / Standard: \$2.50 * `gpt-image-2-web`:按当前 \$0.03/次估算为 \$3.00;2.5 官转按 tokens 另算 * Nano Banana 2: \$5.50 * Seedream 4.0: \$3.50 * Nano Banana Pro: \$9.00 * Flux Pro: \$3.50 * Flux Max: \$7.00 **成本可控选择**: Sora Image(成本可控) ## 🎨 按场景选择 ### 社交媒体内容 **推荐**:Sora Image、Nano Banana (Standard) * **预算有限**: Sora (\$0.01/张) * **质量优先**: Gemini Flash (\$0.025/张) * **Web嵌入**: Nano Banana (Base64格式) **推荐**:Gemini Flash、Flux Pro * **标准竖屏**: Gemini Flash 9:16 (\$0.025/张) * **超宽竖屏**: Flux (3:7比例, \$0.035/张) **推荐**:Flux Pro * **超宽横幅**: Flux 7:3比例 (\$0.035/张) * **标准横屏**: Gemini Flash 16:9 (\$0.025/张) ### 专业设计 **推荐**: Flux Max (\$0.07/张) * 细节最丰富 * 支持复杂提示词 * 适合商业作品 **推荐**: Gemini Flash (\$0.025/张) * 10种纵横比 * 快速迭代 * 成本较低 **推荐**: Flux Pro (\$0.035/张) * 3:7 到 7:3 自由选择 * 专业排版需求 **推荐**: Sora Image (\$0.01/张) * 成本最低 * 质量稳定 * 适合大批量 ### 图像编辑 | 需求 | 推荐服务 | 价格 | 特点 | | ------------ | ---------------------- | -------------- | ------------------------------- | | 多图合成 | Gemini Flash 编辑 | \$0.025/次 | 最多4张图片融合 | | OpenAI 兼容图改图 | GPT Image 2.5 Sunburst | 按 tokens | 官转 Images Edits,multipart 上传参考图 | | 精确控制 | Flux 编辑 | \$0.035/次 | 蒙版控制,局部编辑 | | 风格转换 | Sora 编辑、Seedream | \$0.01-0.035/次 | 艺术风格迁移 | | 图改图 | Seedream | \$0.035/次 | 保持结构,改变细节 | ## 💰 成本优化策略 ### 混合使用方案 花\$0.01测试10个不同的提示词 ```python theme={null} test_prompts = [ "sunset over mountains", "sunset over snowy mountains", "dramatic sunset over mountain peaks", # ... 7 more variations ] for prompt in test_prompts: # 使用Sora测试 ($0.01/张) url = generate_with_sora(prompt) evaluate(url) # 测试成本: $0.10 (10次测试) ``` 选择最佳提示词,用Flux Max生成高质量版本 ```python theme={null} best_prompt = "dramatic sunset over mountain peaks" # 使用Flux Max生成最终版 ($0.07/张) final_image = generate_with_flux_max(best_prompt) # 最终成本: $0.07 (1次) # 总成本: $0.17 ``` **混合方案**: 10次测试 + 1次最终 = \$0.17 **vs 直接用Flux Max测试**: 10次 × \$0.07 = \$0.70 **节省**: \$0.53(76%) ## 🔄 决策流程图 ``` 需要生成图片 │ ├─ 预算充足(>$0.09/张)? │ ├─ 是 → 需要特殊比例? │ │ ├─ 是 → Flux Pro/Max │ │ └─ 否 → Gemini Flash(10种比例) │ └─ 否 → Sora Image($0.01/张) │ ├─ 需要编辑功能? │ └─ 是 → 多图合成? │ ├─ 是 → Gemini Flash 编辑 │ └─ 否 → Flux 编辑(蒙版控制) │ ├─ 追求极致质量? │ └─ 是 → Flux Max($0.07/张) │ ├─ 需要Base64格式? │ └─ 是 → Nano Banana或Gemini Flash │ └─ 批量生成(>100张)? └─ 是 → Sora Image(成本最低) ``` ## 📱 按行业推荐 ### 电商产品图 * **推荐**: Flux Pro(\$0.035/张) * **原因**: 质量稳定,支持多种商品展示角度 * **备选**: Gemini Flash(更成本较低,适合大批量) ### 社交媒体配图 * **推荐**: Sora Image(\$0.01/张) * **原因**: 成本较低,适合每日更新 * **备选**: Gemini Flash(10种比例适配不同平台) ### 专业设计/品牌 * **推荐**: Flux Max(\$0.07/张) * **原因**: 细节丰富,符合商业标准 * **备选**: Flux Pro(质量接近,价格减半) ### 移动应用开发 * **推荐**: Gemini Flash(\$0.025/张) * **原因**: 支持各种移动端比例,速度快 * **备选**: Nano Banana (Standard) ## 🚀 开始使用 选好了?点击下方卡片查看详细文档: \$0.01/张 - 成本可控选择 Flare / Sunburst 官转按 tokens;Default 网页版使用 `gpt-image-2-web` \$0.035-0.07/张 - 专业首选 \$0.025/次起 - Standard 入口与 Lite、2、Pro 对比 完整图像API列表 ## ❓ 还不确定? **Q: 我的预算是每张\$0.02以内** A: 选择 **Sora Image** (\$0.01/张) **Q: 我需要生成竖屏海报(9:16)** A: 选择 **Gemini Flash** (支持9:16比例) **Q: 我需要最高质量,预算充足** A: 选择 **Flux Max** (\$0.07/张) **Q: 我需要特殊比例(如7:3超宽横幅)** A: 选择 **Flux Pro** (3:7到7:3自由选择) **Q: 我需要编辑图片或多图合成** A: 选择 **Gemini Flash 编辑** 或 **Flux 编辑** **Q: 我想用 OpenAI 兼容接口同时做文生图和图改图** A: 选择 **GPT Image 2.5 官转** **Q: 我需要Web应用直接嵌入(Base64)** A: 选择 **GPT Image 2.5 Images API**、**Nano Banana (Standard)** 或 **Gemini Flash** 不确定效果?访问 [yingtu.ai](https://yingtu.ai) 在线测试各个图像模型的实际生成效果。 # 当前模型选择与验收指南 Source: https://docs.laozhang.ai/api-capabilities/model-info 基于老张API当前模型目录,按文本、编程、图像、视频和 Embedding 任务选择候选模型,并用真实样本验证质量、协议、分组和成本。 ## 直接答案 不要从静态“最新模型榜单”直接选生产模型。先在[模型与价格总表](/models)筛选当前模型、分组、端点和计费方式,再用代表性样本比较任务成功率、延迟、稳定性和实际扣费。 本页基于 **2026 年 9 月 2 日**重新生成的模型快照:当前价格源返回 **249 个模型、13 个厂商**。目录变化后,本页列出的候选也需要重新核对。 ## 当前候选入口 以下只表示当前模型目录中存在对应 ID,不代表所有账户、参数或工具都已验证。 | 任务 | 当前候选示例 | 下一步 | | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | | 通用文本、推理与编程 | `gpt-5.6-sol`、`gpt-5.6-terra`、`gpt-5.6-luna`、`claude-sonnet-5`、`gemini-3.6-flash`、`gemini-3.5-flash` | 用同一任务集比较成功率、工具和成本 | | 高吞吐文本任务 | `gpt-5.6-luna`、`gemini-3.5-flash-lite` | 验证批量、延迟、限流和错误率 | | 图像生成与编辑 | `gpt-image-2.5-flare`、`gpt-image-2.5-sunburst`(官转)、`gpt-image-2-web`(Default,网页版 2.5)、`gemini-3.1-flash-image`、`gemini-3.1-flash-lite-image`、`gemini-3-pro-image`、Seedream 当前模型 | 按专题页验证 endpoint、size、quality、MIME 和计费 | | 视频生成 | Wan 2.7、Seedance 2.0、Sora 2 当前目录模型 | 验证异步任务、输入素材、轮询、下载和失败退款 | | Embedding | `text-embedding-v4`、`text-embedding-3-small`、`text-embedding-3-large`、`qwen3-vl-embedding` | 验证维度、批量顺序和召回效果 | VIP 按次线路可使用 `gpt-image-2.5-flare-vip` 或 `gpt-image-2.5-sunburst-vip`,均为 \$0.03/次,接入方式同 `gpt-image-2-vip`;详见 [GPT Image 2.5](/api-capabilities/gpt-image-2-5)。 ## 候选不等于推荐 同一模型可能: * 仅对特定 API Key 分组开放; * 在不同端点使用不同兼容层; * 按 Token、请求、图片、视频或其他单位计费; * 暂时受上游容量、地区、安全和并发限制; * 支持基础文本但不支持工具、流式或多模态字段。 ## 统一评测表 对每个候选记录: | 维度 | 记录内容 | | -- | --------------------------- | | 任务 | 真实输入、成功标准和人工评分规则 | | 协议 | endpoint、SDK、版本和 API Key 分组 | | 质量 | 成功率、事实错误、格式错误和人工返工 | | 工具 | 调用正确率、参数和完整来回 | | 性能 | 首 Token、总延迟、超时和重试率 | | 成本 | usage、调用日志和代表性任务实际成本 | | 边界 | 条件性支持、错误分支和未测范围 | ## 模型生命周期 * 厂商发布不等于老张API已接入; * 目录出现不等于当前账户可调用; * preview、stable、alias 和 pinned ID 的含义由厂商决定; * 旧模型可以为迁移保留,但不应继续标成“当前首选”; * 生产迁移应先并行评测,再逐步切换并保留回滚。 ## 相关文档 * [模型与价格总表](/models) * [控制台实时模型与价格](https://api2.laozhang.ai/account/pricing) * [模型可用性与权限](/faq/model-availability) * [OpenAI 模型接入](/api-reference/openai) * [Claude 模型接入](/api-reference/claude) * [Gemini 模型接入](/api-reference/gemini) * [调用日志](/faq/call-logs) # Moderation API 接入与安全边界 Source: https://docs.laozhang.ai/api-capabilities/moderation 确认老张API文本审核模型和端点,发送最小请求,解释分类结果,并建立人工复核、错误处理和计费验收。 ## 直接答案 审核模型和端点是否可用,必须先在[模型目录](/models)和控制台确认。不要把审核 API 写成“免费”“100%准确”或“适用于所有模型”。审核结果是风险信号,不能替代业务规则、人工复核和法律判断。 本页最后核对日期为 **2026 年 9 月 2 日**。OpenAI 官方审核模型以其当前模型目录为准;老张API实际模型、分组和计费以控制台与调用日志为准。 ## 最小请求 当控制台明确模型使用 OpenAI Moderations 兼容端点时: ```bash theme={null} curl "https://api2.laozhang.ai/v1/moderations" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "omni-moderation-latest", "input": "用于验证审核接口的普通文本" }' ``` 示例模型出现在当前目录中,但可用权限、字段和价格仍需实际确认。 ## 结果处理 不同审核模型可能返回总标记、分类、分类分数或模型特定字段。应用应: 1. 保存审核模型和版本; 2. 映射本业务真正使用的类别; 3. 设置人工复核区间,不只依赖布尔值; 4. 记录误报、漏报和地区语言差异; 5. 对模型升级重新评估阈值。 ## 生产边界 * 审核模型可能误报或漏报; * 不同上游的类别定义和分数不可直接比较; * 不能将审核结果直接作为法律或合规结论; * 审核失败时应采用安全默认值和人工升级; * 计费、速率限制和数据处理边界以控制台、调用日志和[数据政策](https://www.laozhang.ai/zh-cn/data-policy)为准。 ## 相关文档 * [内容安全、禁止用途与用户责任](/faq/content-safety) * [模型可用性与权限](/faq/model-availability) * [调用日志](/faq/call-logs) * [数据与日志边界](/faq/data-security) # Nano Banana 2 Lite API Source: https://docs.laozhang.ai/api-capabilities/nano-banana-2-lite-api Nano Banana 2 Lite API 中文文档:稳定模型 gemini-3.1-flash-lite-image,老张API 0.025 美元/次,支持 1K 生成、编辑、14 种宽高比和双协议代码。 **Nano Banana 2 Lite:低成本、高频图像生成路线** * **稳定模型 ID**:`gemini-3.1-flash-lite-image` * **老张API价格**:当前 **\$0.025/次**,实际价格与扣费以控制台为准 * **模型定位**:1K 文生图、图改图、批量草稿、实时交互和高并发工作流 * **接入方式**:OpenAI 兼容 `/v1/chat/completions` 或 Gemini 原生 `generateContent` 创建按次令牌并查看每次调用记录 对比 Standard、Lite、Nano Banana 2 和 Pro ## 为什么 Lite 适合低成本高并发? Nano Banana 2 Lite 是 Google Gemini 3.1 Flash Lite Image 的市场名称。[Google 官方图像生成文档](https://ai.google.dev/gemini-api/docs/image-generation)将其定位为图像系列中的效率模型,稳定模型 ID 为 `gemini-3.1-flash-lite-image`,面向低延迟、高调用量的交互式应用。 | 项目 | Nano Banana 2 Lite | | ----------------------- | ----------------------------- | | 模型 ID | `gemini-3.1-flash-lite-image` | | 版本 | 稳定版(GA),不是 preview | | 老张API价格 | **\$0.025/次** | | Google Standard 参考价 | \$0.0336/张(1K) | | 分辨率 | 仅 1K(1024px) | | 宽高比 | 支持 14 种离散比例 | | 输入 | 文本、图片 | | 输出 | 图片、文本 | | 图像编辑 | 支持 | | Batch API | Google 模型支持;老张API当前页面路线为按次调用 | | Google Search grounding | 不支持 | 需要 2K/4K、视频转图或 Google Image Search grounding 时,请改用 [Nano Banana 2 API](/api-capabilities/nano-banana2-image)。需要最复杂的专业成片和精细品牌控制时,请使用 [Nano Banana Pro API](/api-capabilities/nano-banana-pro-image)。 ## 价格为什么更适合批量任务? 老张API当前对 Nano Banana 2 Lite 提供按次调用路线,页面价格为 \$0.025/次;[Google 2026-07 Standard 参考价](https://ai.google.dev/gemini-api/docs/pricing)为 \$0.0336/张(1K)。以 10,000 次调用做静态单价估算: | 路线 | 单价 | 10,000 次静态估算 | | -------------------- | ------------: | -----------: | | 老张API Lite | **\$0.025/次** | **\$250** | | Google Standard Lite | \$0.0336/张 | \$336 | 这只是单价乘法,不包含失败重试、输入 token、汇率、活动、税费或业务侧存储成本。实际扣费以控制台调用日志为准,不应把“最便宜”理解为对所有时间、地区、供应商和合同的永久保证。 ## OpenAI 兼容调用 ### Curl ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/chat/completions" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3.1-flash-lite-image", "stream": false, "messages": [ { "role": "user", "content": "生成一张 1:1 的极简咖啡产品图,米白背景,柔和阴影" } ] }' ``` ### Python SDK ```python theme={null} from openai import OpenAI client = OpenAI( api_key="sk-YOUR_API_KEY", base_url="https://api2.laozhang.ai/v1", ) response = client.chat.completions.create( model="gemini-3.1-flash-lite-image", messages=[ { "role": "user", "content": "生成一张适合移动端首页的清爽蓝色 SaaS 插画", } ], ) print(response.choices[0].message.content) ``` ## Gemini 原生调用 Gemini 原生协议使用以下路径: ```text theme={null} POST https://api2.laozhang.ai/v1beta/models/gemini-3.1-flash-lite-image:generateContent ``` ```bash theme={null} curl -X POST \ "https://api2.laozhang.ai/v1beta/models/gemini-3.1-flash-lite-image:generateContent" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "contents": [{ "parts": [{"text": "生成一张 16:9 的现代物流仪表盘概念图,深色背景,青色高光"}] }], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": "16:9", "imageSize": "1K" } } }' ``` Lite 只支持 1K。传入 2K 或 4K 不会把 Lite 变成高分辨率模型;需要高分辨率请直接选择 `gemini-3.1-flash-image` 或 `gemini-3-pro-image`。 ## 图改图调用 在 OpenAI 兼容格式中,把编辑指令和参考图 URL 放在同一条消息里: ```python theme={null} response = client.chat.completions.create( model="gemini-3.1-flash-lite-image", messages=[{ "role": "user", "content": [ {"type": "text", "text": "保持产品不变,把背景替换成浅灰色摄影棚"}, { "type": "image_url", "image_url": {"url": "https://example.com/product.jpg"}, }, ], }], ) ``` ## 高并发接入建议 Lite 的模型定位适合高频交互,但生产吞吐仍需要工程控制: 1. 复用 HTTP 连接,不要为每张图重新创建客户端。 2. 对 429、5xx 和网络超时使用带抖动的指数退避。 3. 为请求设置业务超时和幂等标识,避免不确定重试造成重复扣费。 4. 记录请求 ID、模型、状态码、延迟和控制台订单状态。 5. 持续高并发上线前,向支持提供峰值并发、日调用量、提示词长度和输入图片大小做容量确认。 老张API网关侧不设置固定的低并发套餐档位,不代表 Google 上游没有 RPM/IPM、项目配额、实时容量或安全策略。公开文档不承诺无条件“永久不限速”。 ## 全球网络与 CDN 说明 应用统一请求 `https://api2.laozhang.ai`,文档和静态资源通过 CDN 分发。CDN 可以改善 DNS、TLS 建连和静态内容传输,但图像生成耗时仍包含 API 网关处理、上游排队、模型推理和响应返回。请从你的真实部署地区做延迟和可用性测试。 ## 常见问题 老张API当前为 \$0.025/次,价格以控制台为准。Google 2026-07 Standard 参考价为 \$0.0336/张(1K)。 是。当前稳定模型 ID 为 `gemini-3.1-flash-lite-image`,不是 preview 名称。 不支持。Lite 只支持 1K。2K/4K 请用 `gemini-3.1-flash-image` 或 `gemini-3-pro-image`。 支持文本加图片输入,可用于局部修改、背景调整、颜色替换、贴纸生成和快速迭代。 不支持。需要 Web/Image Search grounding 时请选择 Nano Banana 2;需要专业级复杂生成可选择 Pro。 Lite 本身面向高调用量场景,老张API网关不设置固定低并发套餐档位;实际容量仍受上游和账号状态影响,大规模上线前应确认容量。 计费以控制台订单状态为准。429、5xx、网络超时和参数校验错误应结合日志判断;提示词触发安全策略或返回成功但无图片的情况要单独核对。 查看现有 Nano Banana API 入口与跨模型对比 0.5K–4K、高吞吐与 Search grounding 复杂构图、专业成片与 4K 先验证提示词和效果,再接入代码 # Nano Banana API 文生图(Standard) Source: https://docs.laozhang.ai/api-capabilities/nano-banana-image Nano Banana Standard API 中文文档:稳定模型 gemini-2.5-flash-image,0.025 美元/次,支持 1K 文生图、Base64 与 OpenAI 兼容调用。 **Nano Banana Standard:旧项目兼容的稳定 1K 路线** * **稳定模型 ID**:`gemini-2.5-flash-image` * **老张API价格**:当前 \$0.025/次,实际价格与扣费以控制台为准 * **适用场景**:现有 1K 工作流、简单文生图和低成本兼容接入 * **新项目建议**:优先比较更快的新一代 [Nano Banana 2 Lite](/api-capabilities/nano-banana-2-lite-api) 创建 API Key,查看余额和调用日志 影图 AI 即刻体验,无需写代码 本页继续承接 Nano Banana API 与 Standard 接入意图,并提供 Lite、Nano Banana 2、Pro 的价格和能力对比。新项目的低成本高频路线请看 [Nano Banana 2 Lite](/api-capabilities/nano-banana-2-lite-api);老张API网关不设置固定低并发套餐档位,实际容量仍受上游与账号状态影响。 ## 前置要求 登录 [laozhang.ai 控制台](https://api2.laozhang.ai) 获取 API 密钥 编辑令牌设置,选择以下任一计费模式(两者价格相同): * **按量优先**(推荐):优先使用余额计费,余额不足时自动切换。适合大多数用户 * **按次计费**:每次调用直接扣费。适合预算控制严格的场景 两种模式**价格完全相同**,都是 \$0.025/张,仅扣费方式不同。 令牌设置 如果未设置计费模式,API调用会失败。必须先完成此配置! ## 模型简介 **Nano Banana** (Standard) 是老张API对 Google **Gemini 2.5 Flash Image** (`gemini-2.5-flash-image`) 模型的定制版称呼。 **🚀 极速生成 (Standard 版)** 平均仅需 10 秒即可生成高质量图片。 * **分辨率**: 固定 1024x1024 (1K) * **价格**: \$0.025/张 ## 🌟 核心特性 * **⚡ 极速响应**:平均 10 秒生成,显著快于 OpenAI 系列 * **💰 价格以控制台为准**:\$0.025/张,实际扣费以控制台记录为准 * **🔄 兼容入口**:已文档化字段可使用 OpenAI 兼容请求;其他参数、错误值和响应行为需单独验证 * **📦 Base64 输出**:直接返回 base64 编码图片数据,无需二次下载 * **🎨 Google 技术**:基于 Google 最新图像生成技术,质量出众 ## 📋 模型对比 | 模型 | 模型 ID | 计费方式 | 老张API价格 | 外部参考价 | 备注 | 速度 | | ---------------------- | ----------------------------- | ------ | ------------------- | ---------------------------------- | --------- | ------- | | **Nano Banana 2 Lite** | `gemini-3.1-flash-lite-image` | 按次计费 | **\$0.025/张** | \$0.0336/张(Google Standard) | 1K 高调用量路线 | 官方目标低延迟 | | **Nano Banana** | `gemini-2.5-flash-image` | 按次计费 | \$0.025/张 | \$0.039/张 | 35.9% | \~10秒 | | **Nano Banana 2** | `gemini-3.1-flash-image` | 按次计费 | \$0.055/张 | \$0.045–\$0.151/张(Google Standard) | 0.5K–4K | \~10秒 | | **Nano Banana Pro** | `gemini-3-pro-image` | 按次计费 | \$0.09/张 | \$0.134–\$0.24/张(Google Standard) | 1K–4K | \~12秒 | | **GPT-Image-1** | `gpt-image-1` | 按Token | \$10输入/\$40输出 per M | - | - | 中等 | | **Flux Kontext Pro** | `flux-kontext-pro` | 按次计费 | \$0.035/张 | \$0.04/张 | 12.5% | 快速 | | **Sora Image** | `sora_image` | 按次计费 | \$0.01/张 | - | - | 较慢 | 💡 **价格说明** * 价格以控制台为准 * 价格透明可预测,无需担心 Token 消耗 ## ⚠️ 重要提示 **调用端点注意** * ✅ 正确:`/v1/chat/completions`(对话补全端点) * ❌ 错误:`/v1/images/generations`(传统图像生成端点) 本模型使用对话补全接口,与 `gpt-4o-image` 和 `sora_image` 调用方式一致! **返回格式差异** * `gemini-2.5-flash-image`:返回 **base64 编码** * `sora_image`:返回图片 URL * 调用方式完全相同,只是返回格式不同 ## 🚀 快速开始 ### 准备工作 1. **创建令牌**:登录 [老张API](https://api2.laozhang.ai/token) 创建**按次计费**类型的令牌 令牌创建界面 访问 [https://api2.laozhang.ai/token](https://api2.laozhang.ai/token) 并登录你的账户 点击"创建新令牌"按钮,**务必选择"按次计费"类型** 复制生成的令牌并妥善保存,令牌格式为 `sk-xxxxxx` 💰 **价格说明** * **老张API价格**:\$0.025/张(价格以控制台为准) * **Google Standard 参考价**:\$0.039/张 * **扣费说明**:按次计费,实际扣费可在调用日志中查看 2. **选择域名**:推荐使用 `https://api2.laozhang.ai`(全球加速)。海外服务器可直连 `https://api-vip.laozhang.ai`,但如遇不稳定请切换回主域名 ### 基础示例 - Curl ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/chat/completions" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-2.5-flash-image", "stream": false, "messages": [ { "role": "user", "content": "a beautiful sunset over mountains" } ] }' ``` ### 完整示例 - Python ```python theme={null} #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Nano Banana (Gemini) 图片生成 - Python版本 支持非流式输出和自动保存base64图片到本地 """ import requests import json import base64 import re import os import datetime from typing import Optional, Tuple class GeminiImageGenerator: def __init__(self, api_key: str, api_url: str = "https://api2.laozhang.ai/v1/chat/completions"): """ 初始化Gemini图片生成器 Args: api_key: API密钥(按次计费类型) api_url: API地址 """ self.api_key = api_key self.api_url = api_url self.headers = { "Content-Type": "application/json", "Authorization": f"Bearer {api_key}" } def generate_image(self, prompt: str, model: str = "gemini-2.5-flash-image", output_dir: str = ".") -> Tuple[bool, str]: """ 生成图片并保存到本地 Args: prompt: 图片描述提示词 model: 使用的模型 output_dir: 输出目录 Returns: Tuple[是否成功, 结果消息] """ print("🚀 开始生成图片...") print(f"提示词: {prompt}") print(f"模型: {model}") # 生成文件名 timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") output_file = os.path.join(output_dir, f"gemini_generated_{timestamp}.png") try: # 准备请求数据 payload = { "model": model, "stream": False, "messages": [ { "role": "user", "content": prompt } ] } print("📡 发送API请求...") # 发送非流式请求 response = requests.post( self.api_url, headers=self.headers, json=payload, timeout=300 ) if response.status_code != 200: error_msg = f"API请求失败,状态码: {response.status_code}" try: error_detail = response.json() error_msg += f", 错误详情: {error_detail}" except: error_msg += f", 响应内容: {response.text[:500]}" return False, error_msg print("✅ API请求成功,正在解析响应...") # 解析JSON响应 try: result = response.json() print("✅ 成功解析JSON响应") except json.JSONDecodeError as e: return False, f"JSON解析失败: {str(e)}" # 提取消息内容 full_content = "" if "choices" in result and len(result["choices"]) > 0: choice = result["choices"][0] if "message" in choice and "content" in choice["message"]: full_content = choice["message"]["content"] if not full_content: return False, "未找到消息内容" print(f"📝 获取到消息内容,长度: {len(full_content)} 字符") print("🔍 正在解析图片数据...") # 提取并保存图片 success, message = self._extract_and_save_images(full_content, output_file) if success: return True, message else: return False, f"图片保存失败: {message}" except requests.exceptions.Timeout: return False, "请求超时(300秒)" except requests.exceptions.ConnectionError as e: return False, f"连接错误: {str(e)}" except Exception as e: return False, f"未知错误: {str(e)}" def _extract_and_save_images(self, content: str, base_output_file: str) -> Tuple[bool, str]: """ 高效提取并保存base64图片数据 Args: content: 包含图片数据的内容 base_output_file: 基础输出文件路径 Returns: Tuple[是否成功, 结果消息] """ try: print(f"📄 内容预览(前200字符): {content[:200]}") # 使用精确的正则表达式提取base64图片数据 base64_pattern = r'data:image/([^;]+);base64,([A-Za-z0-9+/=]+)' match = re.search(base64_pattern, content) if not match: print('⚠️ 未找到base64图片数据') return False, "响应中未包含base64图片数据" image_format = match.group(1) # png, jpg, etc. b64_data = match.group(2) print(f'🎨 图像格式: {image_format}') print(f'📏 Base64数据长度: {len(b64_data)} 字符') # 解码并保存图片 image_data = base64.b64decode(b64_data) if len(image_data) < 100: return False, "解码后的图片数据太小,可能无效" # 根据检测到的格式设置文件扩展名 output_file = base_output_file.replace('.png', f'.{image_format}') os.makedirs(os.path.dirname(output_file) if os.path.dirname(output_file) else ".", exist_ok=True) with open(output_file, 'wb') as f: f.write(image_data) print(f'🖼️ 图片保存成功: {output_file}') print(f'📊 文件大小: {len(image_data)} 字节') return True, f"图片保存成功: {output_file}" except Exception as e: return False, f"处理图片时发生错误: {str(e)}" def main(): """ 主函数示例 """ # 配置参数 API_KEY = "sk-YOUR_API_KEY" # 请替换为你的实际API密钥(按次计费类型) PROMPT = "一只可爱的猫咪在花园里玩耍,阳光明媚,花朵盛开" print("="*60) print("Nano Banana (Gemini) 图片生成器") print("="*60) print(f"开始时间: {datetime.datetime.now()}") # 创建生成器实例 generator = GeminiImageGenerator(API_KEY) # 生成图片 success, message = generator.generate_image(PROMPT) print("\n" + "="*60) if success: print("🎉 执行成功!") print(f"✅ {message}") else: print("❌ 执行失败!") print(f"💥 {message}") print(f"结束时间: {datetime.datetime.now()}") print("="*60) if __name__ == "__main__": main() ``` ### Bash 脚本 - 自动保存 ```bash theme={null} #!/bin/bash # Nano Banana (Gemini) 图片生成 - Bash版本 # 支持非流式输出和自动保存base64图片到本地 API_KEY="sk-YOUR_API_KEY" # 请替换为你的实际API密钥【按次计费】类型 API_URL="https://api2.laozhang.ai/v1/chat/completions" PROMPT="a handsome dog under the tree" OUTPUT_DIR="." # 生成时间戳文件名 TIMESTAMP=$(date +"%Y%m%d_%H%M%S") OUTPUT_FILE="gemini_generated_${TIMESTAMP}.png" TEMP_FILE="temp_response_${TIMESTAMP}.json" echo "🚀 开始生成图片..." echo "提示词: ${PROMPT}" echo "输出文件: ${OUTPUT_FILE}" # 发送API请求并保存响应 curl -s https://api2.laozhang.ai/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${API_KEY}" \ -d "{ \"model\": \"gemini-2.5-flash-image\", \"stream\": false, \"messages\": [ { \"role\": \"user\", \"content\": \"${PROMPT}\" } ] }" > "${TEMP_FILE}" # 检查请求是否成功 if [ $? -eq 0 ]; then echo "✅ API请求成功" echo "📄 响应已保存到: ${TEMP_FILE}" else echo "❌ API请求失败" exit 1 fi # 高效提取并保存base64图片 echo "🔍 正在解析响应数据..." # 使用Python脚本提取并保存图片 python3 -c " import json import base64 import re import sys # 读取API响应文件 try: with open('${TEMP_FILE}', 'r') as f: data = json.load(f) print('✅ 成功解析JSON响应') except Exception as e: print(f'❌ JSON解析失败: {e}') sys.exit(1) # 提取消息内容 content = '' if 'choices' in data and len(data['choices']) > 0: choice = data['choices'][0] if 'message' in choice and 'content' in choice['message']: content = choice['message']['content'] if not content: print('❌ 未找到消息内容') sys.exit(1) print(f'📝 获取到消息内容,长度: {len(content)} 字符') # 高效提取base64图片数据 - 支持多种格式 base64_pattern = r'data:image/([^;]+);base64,([A-Za-z0-9+/=]+)' match = re.search(base64_pattern, content) if match: image_format = match.group(1) # png, jpg, etc. b64_data = match.group(2) print(f'🎨 图像格式: {image_format}') print(f'📏 Base64数据长度: {len(b64_data)} 字符') try: # 解码并保存图片 image_data = base64.b64decode(b64_data) # 根据检测到的格式设置文件扩展名 output_file = '${OUTPUT_FILE}'.replace('.png', f'.{image_format}') with open(output_file, 'wb') as f: f.write(image_data) print(f'🖼️ 图片保存成功: {output_file}') print(f'📊 文件大小: {len(image_data)} 字节') # 输出成功标志 print('SUCCESS:' + output_file) except Exception as e: print(f'❌ 图片处理错误: {e}') sys.exit(1) else: print('⚠️ 未找到base64图片数据') print(f'📄 内容预览: {content[:300]}...') sys.exit(1) " # 获取Python脚本的执行结果 PYTHON_EXIT_CODE=$? if [ $PYTHON_EXIT_CODE -eq 0 ]; then echo "✅ 图片提取和保存完成" else echo "❌ 图片处理失败" echo "🔍 保留临时文件用于调试: ${TEMP_FILE}" exit 1 fi # 检查生成的图片文件 GENERATED_FILES=$(find . -name "gemini_generated_${TIMESTAMP}.*" -type f) if [ ! -z "$GENERATED_FILES" ]; then echo "🎉 图片生成完成!" for file in $GENERATED_FILES; do echo "📁 保存位置: $(pwd)/${file}" echo "📊 文件信息:" ls -lh "${file}" done # 清理临时文件 rm -f "${TEMP_FILE}" echo "🧹 临时文件已清理" else echo "❌ 图片文件未生成" echo "🔍 保留临时文件用于调试: ${TEMP_FILE}" fi echo "✨ 脚本执行完成" ``` ## 🎯 使用场景 ### 1. 快速原型设计 ```python theme={null} # 生成产品概念图 concept = generator.generate_image( "现代简约风格的智能手表设计,白色背景,专业产品摄影" ) # 生成UI界面 ui_design = generator.generate_image( "移动应用的登录界面设计,深色主题,现代扁平化风格" ) ``` ### 2. 内容创作 ```python theme={null} # 生成插图 illustration = generator.generate_image( "儿童绘本风格的森林场景,有可爱的动物在玩耍" ) # 生成社交媒体配图 social_media = generator.generate_image( "励志名言配图,温暖的日出背景,极简主义设计" ) ``` ## 💡 最佳实践 ### 1. 提示词优化 ```python theme={null} # ❌ 过于简单 prompt = "cat" # ✅ 详细描述 prompt = """ 一只橘色虎斑猫坐在窗边, 金色的夕阳洒在它身上, 背景是温馨的家居环境, 专业宠物摄影风格, 温暖柔和的氛围 """ ``` ### 2. Base64 处理 ```python theme={null} def save_base64_image(base64_str, output_path): """安全保存base64图片""" try: # 移除数据URL前缀(如果存在) if "base64," in base64_str: base64_str = base64_str.split("base64,")[1] # 解码并保存 image_data = base64.b64decode(base64_str) with open(output_path, 'wb') as f: f.write(image_data) return True except Exception as e: print(f"保存失败: {e}") return False ``` ## 📊 性能对比 | 指标 | Nano Banana | GPT-4o Image | Sora Image | | ---- | ----------- | ------------ | ---------- | | 生成速度 | \~10秒 | \~20-30秒 | \~10-15秒 | | 价格 | \$0.025/张 | Token计费 | \$0.01/张 | | 返回格式 | Base64 | Base64 | URL | | 质量 | 高 | 高 | 中高 | | 兼容性 | 已文档化字段可用 | - | 已文档化字段可用 | ## ⚠️ 注意事项 1. **令牌类型**:必须使用**按次计费**类型的令牌 2. **调用端点**:使用 `/v1/chat/completions`,不是 `/v1/images/generations` 3. **返回格式**:返回 base64 编码,需要自行解码保存 4. **模型名称**:`gemini-2.5-flash-image`(区分大小写) 5. **请求格式**:使用对话格式,将提示词放在 user 消息的 content 中 ## 🔍 常见问题 base64 直接返回图片数据,无需二次下载,避免了 URL 失效的问题,特别适合需要立即处理图片的场景。 价格将模型名从 `sora_image` 改为 `gemini-2.5-flash-image`,并修改结果处理逻辑(从 URL 改为 base64)。 没有并发限制,但建议控制并发数以获得最佳性能。 ## 🔗 相关资源 编辑现有图片、多图合成 4K 高清、复杂指令理解 创建和管理令牌 查看详细价格表 🎨 **专业提示**:Nano Banana 模型特别擅长理解复杂的场景描述和艺术风格,充分利用详细的提示词可以获得更好的效果! # Nano Banana 图片编辑 API(Standard) Source: https://docs.laozhang.ai/api-capabilities/nano-banana-image-edit Nano Banana Standard 图片编辑 API 文档:gemini-2.5-flash-image,0.025 美元/次,支持 1K 图改图、多图合成、元素增删与风格转换。 **Nano Banana Standard 编辑:低成本 1K 图改图路线** * **稳定模型 ID**:`gemini-2.5-flash-image` * **老张API价格**:当前 \$0.025/次,实际价格与扣费以控制台为准 * **适用场景**:背景替换、元素增删、风格转换和简单多图合成 * **高分辨率任务**:2K/4K 请使用 [Nano Banana Pro 图改图](/api-capabilities/nano-banana-pro-image-edit) 创建 API Key,查看余额和调用日志 影图 AI 即刻体验,无需写代码 不确定该用 Lite、Nano Banana 2、Pro 还是 Standard?先看 [图像生成 API 选型指南](/api-capabilities/image-generation-guide)。老张API使用统一全球 HTTPS 入口,适合高频生产接入;网关不设置固定低并发套餐档位,但最终容量仍受上游与账号状态影响。 ## 模型简介 Nano Banana (Standard) 图像编辑功能基于 Google `gemini-2.5-flash-image` 模型,通过对话补全接口实现对现有图片的智能编辑和改造。支持单张或多张图片的输入,可以实现图像合成、元素添加、风格转换等高级编辑功能。 **🎨 智能图像编辑** 上传图片 + 文字描述 = 精准编辑!支持多图合成、元素修改、风格转换等高级功能。 ## 🌟 核心特性 * **🔄 灵活编辑**:支持元素添加/删除、风格转换、图像合成等 * **🎭 多图处理**:可同时处理多张图片,实现融合、拼接等效果 * **💰 价格以控制台为准**:\$0.025/次,按次计费,价格透明 * **🚀 快速处理**:平均 10 秒完成编辑 * **📦 Base64 输出**:直接返回编辑后的 base64 图片数据 ## 📋 功能对比 | 功能 | Nano Banana 编辑 | Nano Banana Pro 编辑 | GPT-4o 编辑 | DALL·E 2 编辑 | Flux 编辑 | | ---- | -------------- | ------------------ | --------- | ----------- | --------- | | 价格 | \$0.025/次 | **\$0.09/次** | Token计费 | \$0.018/张 | \$0.035/次 | | 模型 | Gemini 2.5 | **Gemini 3 Pro** | GPT-4o | DALL·E 2 | Flux | | 多图输入 | ✅ 支持 | ✅ **强** | ✅ 支持 | ❌ 不支持 | ❌ 原生不支持 | | 响应速度 | \~10秒 | \~20秒 | 较慢 | 中等 | | | 返回格式 | Base64 | Base64 | URL | URL | | | 中文支持 | ✅ 完美 | ✅ 完美 | ❌ 需翻译 | ❌ 需翻译 | | ## 🚀 快速开始 ### 准备工作 登录 [老张API令牌管理](https://api2.laozhang.ai/token) 创建**按次计费**类型的令牌 令牌创建界面 **重要**:必须选择"按次计费"类型,不要选择"按量计费" 复制生成的令牌,格式为 `sk-xxxxxx`,在代码中替换 `YOUR_API_KEY` 💰 **价格说明** * **老张API**:\$0.025/次(价格以控制台为准) * **Google Standard 参考价**:\$0.039/次 * **扣费说明**:按次计费,实际扣费可在调用日志中查看 ### 基础示例 - 单图编辑 ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/chat/completions" \ -H "Authorization: Bearer sk-YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-2.5-flash-image", "stream": false, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "add a dog to this image" }, { "type": "image_url", "image_url": { "url": "https://github.com/dianping/cat/raw/master/cat-home/src/main/webapp/images/logo/cat_logo03.png" } } ] } ] }' ``` ### Python 示例 - 多图合成 ```python theme={null} #!/usr/bin/env python3 import requests import json import base64 import re from datetime import datetime import sys # 配置 API_KEY = "sk-YOUR_API_KEY" # 请替换为你的实际密钥(按次计费类型) API_URL = "https://api2.laozhang.ai/v1/chat/completions" def edit_images_with_gemini(): """多图合成编辑示例""" # 设置请求头 headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } # 请求数据 - 支持多张图片输入 data = { "model": "gemini-2.5-flash-image", "stream": False, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Combine these 2 images creatively and add a Corgi dog" }, { "type": "image_url", "image_url": { "url": "https://github.com/dianping/cat/raw/master/cat-home/src/main/webapp/images/logo/cat_logo03.png" } }, { "type": "image_url", "image_url": { "url": "https://raw.githubusercontent.com/leonindy/camel/master/camel-admin/src/main/webapp/assets/images/camel_logo_blue.png" } } ] } ] } print("正在请求API...") try: # 发送请求 response = requests.post(API_URL, headers=headers, json=data) response.raise_for_status() print("API请求成功,正在处理响应...") # 解析响应 result = response.json() # 提取内容 content = result['choices'][0]['message']['content'] print(f"收到内容: {content[:200]}...") # 显示前200个字符 # 查找Base64图片数据 # 方法1: 查找标准格式 data:image/type;base64,data base64_match = re.search(r'data:image/[^;]+;base64,([A-Za-z0-9+/=]+)', content) if base64_match: base64_data = base64_match.group(1) print("找到标准格式的Base64数据") else: # 方法2: 查找纯Base64数据(长字符串) base64_match = re.search(r'([A-Za-z0-9+/=]{100,})', content) if base64_match: base64_data = base64_match.group(1) print("找到纯Base64数据") else: print("错误: 无法找到Base64图片数据") print("完整响应内容:") print(json.dumps(result, indent=2, ensure_ascii=False)) return False # 生成文件名 timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") filename = f"edited_image_{timestamp}.png" print("正在保存图片...") # 解码并保存图片 try: image_data = base64.b64decode(base64_data) with open(filename, 'wb') as f: f.write(image_data) print(f"图片已成功保存为: {filename}") print(f"文件大小: {len(image_data)} 字节") return True except Exception as e: print(f"错误: 保存图片时出现问题: {e}") return False except requests.exceptions.RequestException as e: print(f"错误: API请求失败: {e}") return False except KeyError as e: print(f"错误: 响应格式不正确,缺少字段: {e}") print("完整响应内容:") print(json.dumps(response.json(), indent=2, ensure_ascii=False)) return False except Exception as e: print(f"错误: 未知错误: {e}") return False if __name__ == "__main__": success = edit_images_with_gemini() sys.exit(0 if success else 1) ``` ### Bash 脚本 - 批量编辑 ```bash theme={null} #!/bin/bash # Nano Banana 图像编辑 - Bash版本 # 支持单图/多图编辑,自动保存base64结果 # 设置API密钥(请替换为你的实际【按次计费】的密钥) API_KEY="sk-YOUR_API_KEY" # 设置输出文件名 OUTPUT_FILE="edited_image_$(date +%Y%m%d_%H%M%S).png" echo "正在请求API进行图像编辑..." # 发送curl请求并保存响应到临时文件 RESPONSE=$(curl -s -X POST "https://api2.laozhang.ai/v1/chat/completions" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-2.5-flash-image", "stream": false, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Combine 2 images and add a Corgi dog image" }, { "type": "image_url", "image_url": { "url": "https://github.com/dianping/cat/raw/master/cat-home/src/main/webapp/images/logo/cat_logo03.png" } }, { "type": "image_url", "image_url": { "url": "https://raw.githubusercontent.com/leonindy/camel/master/camel-admin/src/main/webapp/assets/images/camel_logo_blue.png" } } ] } ] }') # 检查请求是否成功 if [ $? -ne 0 ]; then echo "错误: API请求失败" exit 1 fi echo "API请求成功,正在处理响应..." # 从响应中提取Base64图片数据 BASE64_DATA=$(echo "$RESPONSE" | python3 -c " import json import sys import re try: data = json.load(sys.stdin) content = data['choices'][0]['message']['content'] # 查找Base64图片数据 base64_match = re.search(r'data:image/[^;]+;base64,([A-Za-z0-9+/=]+)', content) if base64_match: print(base64_match.group(1)) else: # 尝试查找纯Base64数据 base64_match = re.search(r'([A-Za-z0-9+/=]{100,})', content) if base64_match: print(base64_match.group(1)) else: print('ERROR: No Base64 data found') sys.exit(1) except Exception as e: print(f'ERROR: {e}') sys.exit(1) ") # 检查是否成功提取Base64数据 if [[ "$BASE64_DATA" == ERROR* ]]; then echo "$BASE64_DATA" echo "完整响应内容:" echo "$RESPONSE" exit 1 fi if [ -z "$BASE64_DATA" ]; then echo "错误: 无法从响应中提取Base64图片数据" echo "完整响应内容:" echo "$RESPONSE" exit 1 fi echo "成功提取Base64数据,正在保存图片..." # 将Base64数据解码并保存为图片文件 echo "$BASE64_DATA" | base64 -d > "$OUTPUT_FILE" # 检查文件是否成功创建 if [ -f "$OUTPUT_FILE" ] && [ -s "$OUTPUT_FILE" ]; then echo "图片已成功保存为: $OUTPUT_FILE" echo "文件大小: $(ls -lh "$OUTPUT_FILE" | awk '{print $5}')" else echo "错误: 图片保存失败" exit 1 fi echo "✨ 编辑完成!" ``` ## 🎯 编辑场景示例 ### 1. 单图编辑 - 添加元素 ```python theme={null} def add_element_to_image(image_url, element_description): """向图片添加新元素""" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } data = { "model": "gemini-2.5-flash-image", "stream": False, "messages": [{ "role": "user", "content": [ {"type": "text", "text": f"Add {element_description} to this image"}, {"type": "image_url", "image_url": {"url": image_url}} ] }] } response = requests.post(API_URL, headers=headers, json=data) return extract_base64_from_response(response.json()) # 使用示例 result = add_element_to_image( "https://example.com/landscape.jpg", "a rainbow in the sky" ) ``` ### 2. 多图合成 - 创意融合 ```python theme={null} def creative_merge(image_urls, merge_instruction): """创意合并多张图片""" content = [{"type": "text", "text": merge_instruction}] # 添加所有图片 for url in image_urls: content.append({ "type": "image_url", "image_url": {"url": url} }) headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } data = { "model": "gemini-2.5-flash-image", "stream": False, "messages": [{ "role": "user", "content": content }] } response = requests.post(API_URL, headers=headers, json=data) return extract_base64_from_response(response.json()) # 使用示例 images = [ "https://example.com/cat.jpg", "https://example.com/background.jpg" ] result = creative_merge(images, "将猫咪自然地融入到背景中") ``` ### 3. 风格转换 ```python theme={null} def style_transfer(image_url, style_description): """图片风格转换""" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } data = { "model": "gemini-2.5-flash-image", "stream": False, "messages": [{ "role": "user", "content": [ {"type": "text", "text": f"Transform this image into {style_description} style"}, {"type": "image_url", "image_url": {"url": image_url}} ] }] } response = requests.post(API_URL, headers=headers, json=data) return extract_base64_from_response(response.json()) # 使用示例 result = style_transfer( "https://example.com/photo.jpg", "Van Gogh painting" ) ``` ### 4. 批量编辑处理 ```python theme={null} class BatchImageEditor: """批量图像编辑器""" def __init__(self, api_key): self.api_key = api_key self.api_url = "https://api2.laozhang.ai/v1/chat/completions" def process_batch(self, tasks): """ 批量处理编辑任务 tasks: [(image_urls, instruction), ...] """ results = [] for i, (image_urls, instruction) in enumerate(tasks, 1): print(f"处理任务 {i}/{len(tasks)}: {instruction[:50]}...") try: result = self.edit_images(image_urls, instruction) results.append({ "task_id": i, "instruction": instruction, "success": True, "output": result }) print(f"✅ 任务 {i} 完成") except Exception as e: results.append({ "task_id": i, "instruction": instruction, "success": False, "error": str(e) }) print(f"❌ 任务 {i} 失败: {e}") return results def edit_images(self, image_urls, instruction): """编辑图片""" if isinstance(image_urls, str): image_urls = [image_urls] content = [{"type": "text", "text": instruction}] for url in image_urls: content.append({ "type": "image_url", "image_url": {"url": url} }) headers = { "Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json" } data = { "model": "gemini-2.5-flash-image", "stream": False, "messages": [{"role": "user", "content": content}] } response = requests.post(self.api_url, headers=headers, json=data) response.raise_for_status() return self.extract_and_save_base64(response.json()) def extract_and_save_base64(self, response_data): """提取并保存base64图片""" content = response_data['choices'][0]['message']['content'] # 提取base64数据 base64_match = re.search(r'data:image/[^;]+;base64,([A-Za-z0-9+/=]+)', content) if not base64_match: base64_match = re.search(r'([A-Za-z0-9+/=]{100,})', content) if base64_match: base64_data = base64_match.group(1) # 保存图片 timestamp = datetime.now().strftime("%Y%m%d_%H%M%S_%f") filename = f"edited_{timestamp}.png" image_data = base64.b64decode(base64_data) with open(filename, 'wb') as f: f.write(image_data) return filename else: raise ValueError("未找到base64图片数据") # 使用示例 editor = BatchImageEditor(API_KEY) tasks = [ (["https://example.com/cat.jpg"], "给猫咪戴上帽子"), (["https://example.com/room.jpg"], "将房间改为夜晚氛围"), (["https://example.com/img1.jpg", "https://example.com/img2.jpg"], "创意融合两张图片") ] results = editor.process_batch(tasks) ``` ## 💡 最佳实践 ### 1. 编辑指令优化 ```python theme={null} # ❌ 模糊指令 instruction = "edit the image" # ✅ 清晰具体的指令 instruction = """ 1. 在图片右上角添加一轮明月 2. 调整整体色调为暖色系 3. 增加一些萤火虫的光点效果 4. 保持原图的主体不变 """ ``` ### 2. 多图处理策略 ```python theme={null} def smart_multi_image_edit(images, instruction): """智能多图编辑,自动处理不同数量的图片""" if len(images) == 1: # 单图编辑 prompt = f"Edit this image: {instruction}" elif len(images) == 2: # 双图合成 prompt = f"Combine these two images creatively: {instruction}" else: # 多图处理 prompt = f"Process these {len(images)} images together: {instruction}" # 构建content content = [{"type": "text", "text": prompt}] for img in images: content.append({ "type": "image_url", "image_url": {"url": img} }) # 发送请求... return send_edit_request(content) ``` ### 3. Base64 数据处理工具 ```python theme={null} import base64 import io import re from datetime import datetime from PIL import Image class Base64ImageHandler: """Base64图片处理工具类""" @staticmethod def extract_from_response(response_content): """从API响应中提取base64数据""" patterns = [ r'data:image/([^;]+);base64,([A-Za-z0-9+/=]+)', r'([A-Za-z0-9+/=]{100,})' ] for pattern in patterns: match = re.search(pattern, response_content) if match: if len(match.groups()) == 2: return match.group(2), match.group(1) # data, format else: return match.group(1), 'png' # default to png return None, None @staticmethod def save_to_file(base64_data, filename=None): """保存base64数据为文件""" if not filename: filename = f"image_{datetime.now().strftime('%Y%m%d_%H%M%S')}.png" image_data = base64.b64decode(base64_data) with open(filename, 'wb') as f: f.write(image_data) return filename @staticmethod def to_pil_image(base64_data): """转换为PIL Image对象""" image_data = base64.b64decode(base64_data) return Image.open(io.BytesIO(image_data)) @staticmethod def from_pil_image(pil_image, format='PNG'): """从PIL Image转换为base64""" buffer = io.BytesIO() pil_image.save(buffer, format=format) img_str = base64.b64encode(buffer.getvalue()).decode() return f"data:image/{format.lower()};base64,{img_str}" ``` ## ⚠️ 注意事项 1. **令牌类型**:必须使用**按次计费**类型的令牌 2. **调用端点**:使用 `/v1/chat/completions`,不是 `/v1/images/edits` 3. **返回格式**:返回 base64 编码的编辑结果 ## 🔍 常见问题 理论上没有硬性限制,但建议单次请求不超过 5 张图片以获得最佳性能。 系统会智能保持或优化分辨率,通常输出高质量图片,具体取决于输入图片和编辑需求。 主要优势包括:更低的价格、更快的处理速度、原生支持多图输入、优秀的中文理解能力。 ## 🔗 相关资源 从文字描述生成图片 4K 高清、复杂多图编辑 创建和管理令牌 查看详细价格表 🎨 **专业提示**:Nano Banana 编辑功能特别擅长理解复杂的编辑指令和创意要求,充分利用详细的描述可以获得更精准的编辑效果! # Nano Banana Pro API 文生图 Source: https://docs.laozhang.ai/api-capabilities/nano-banana-pro-image Nano Banana Pro API 中文文档:稳定模型 gemini-3-pro-image,0.09 美元/次,支持 1K–4K、复杂指令、搜索接地、多图参考和双协议代码。 **Nano Banana Pro:复杂专业成片与 4K 路线** * **稳定模型 ID**:`gemini-3-pro-image` * **老张API价格**:当前 **\$0.09/次**,实际价格与扣费以控制台为准 * **专业能力**:1K/2K/4K、复杂构图、文字渲染、思考模式和 Search grounding * **多图工作流**:适合品牌素材、商品图、海报、信息图和精细编辑 创建 API Key,查看余额和调用日志 影图 AI 即刻体验,无需写代码 老张API提供统一全球 HTTPS 入口、按次价格和调用日志,网关不设置固定低并发套餐档位;实际吞吐仍受 Google 上游容量、账号状态与安全策略影响。需要低成本高频 1K 请看 [Nano Banana 2 Lite](/api-capabilities/nano-banana-2-lite-api),跨模型选择请看 [图像生成 API 选型指南](/api-capabilities/image-generation-guide)。 ## 前置要求 登录 [laozhang.ai 控制台](https://api2.laozhang.ai) 获取 API 密钥 编辑令牌设置,选择以下任一计费模式(两者价格相同): * **按量优先**(推荐):优先使用余额计费,余额不足时自动切换。适合大多数用户 * **按次计费**:每次调用直接扣费。适合预算控制严格的场景 两种模式**价格完全相同**,都是 \$0.09/张,仅扣费方式不同。 **按次扣费说明**:Nano Banana Pro 以 Google 官方返回的成功调用为计费依据。若 Prompt 没有明确要求“生成图片/返回图片数据”,或文本、参考图触发 Google 官方版权 IP、敏感人物、敏感内容风控,可能出现“调用成功但没有图片返回”的情况,此时通常仍按一次成功调用扣费。429、5xx、网络超时、参数校验失败等官方异常请以控制台订单状态为准。 令牌设置 如果未设置计费模式,API调用会失败。必须先完成此配置! ## 模型简介 **Nano Banana Pro** 是 Google **Gemini 3 Pro Image** (`gemini-3-pro-image`) 的市场名称。当前模型 ID 为稳定版,专为高画质、复杂语义理解和专业资产生产设计。 ### 核心优势 1. **🌟 4K 原生分辨率**: 支持生成最大 4096×4096 的超高清图像。 2. **🧠 Gemini 3 智能**: 内置逻辑推理,能理解 "一只没吃早饭的猫看着空盘子的失落感" 这种抽象描述。 3. **💪 复杂构图**: 能够精准控制画面中的物体位置、数量和文字渲染。 4. **💰 极致价格**: \$0.09/张,适合高质量专业图像生成场景。 ## 🌟 核心特性 * **⚡ 极速响应**:平均 10 秒生成,显著快于 OpenAI 系列 * **💰 价格以控制台为准**:\$0.09/张,实际扣费以控制台记录为准 * **🔄 双重兼容**:支持 OpenAI SDK 和 Google 原生格式 * **📐 灵活尺寸**:Google 原生格式支持 14 种纵横比 * **🖼️ 高分辨率**:支持 1K、2K、4K 三种分辨率 * **🧠 思考模式**:内置推理过程,生成前优化构图(默认启用) * **🌐 搜索接地**:支持使用 Google Search 验证事实并生成图片 * **🎨 多图参考**:支持最多 14 张参考图片(6 张物体 + 5 张人物等) * **📦 Base64 输出**:直接返回 base64 编码图片数据,无需二次下载 ## 🔀 两种调用方式 Nano Banana Pro 支持两种调用端点,各有优势: | 特性 | OpenAI 兼容模式 | Google 原生格式 | | -------- | ---------------------- | --------------------------------------------------- | | **端点** | `/v1/chat/completions` | `/v1beta/models/gemini-3-pro-image:generateContent` | | **模型名** | `gemini-3-pro-image` | URL 中指定 | | **图片尺寸** | 固定 1:1 | 支持 14 种纵横比 | | **分辨率** | 固定 1K | 支持 1K/2K/4K | | **兼容性** | 已文档化 OpenAI 兼容字段可用 | 需要原生调用 | | **返回格式** | Base64 | Base64 | | **使用场景** | 快速迁移、简单需求 | 需要自定义尺寸或高分辨率 | 💡 **如何选择?** * 如果价格要正方形(1:1)图片,使用 **OpenAI 兼容模式**更简单 * 如果需要宽屏(16:9)、竖屏(9:16)等特定比例或高分辨率(2K/4K),使用 **Google 原生格式** ## 📋 模型对比 ### 与其他图像模型对比 | 模型 | 模型 ID | 计费方式 | 老张API价格 | 外部参考价 | 备注 | 分辨率 | 速度 | | ---------------------- | ----------------------------- | ------ | ------------------- | -------------------------- | -------------- | ------------- | ------- | | **Nano Banana Pro** | `gemini-3-pro-image` | 按次计费 | \$0.09/张 | \$0.134(1K/2K)/ \$0.24(4K) | 低约 32.8%–62.5% | 1K/2K/4K | \~10秒 | | **Nano Banana 2** | `gemini-3.1-flash-image` | 按次计费 | \$0.055/张 | \$0.045–\$0.151 | 价格随分辨率比较 | 0.5K/1K/2K/4K | \~10秒 | | **Nano Banana 2 Lite** | `gemini-3.1-flash-lite-image` | 按次计费 | \$0.025/张 | \$0.0336(1K) | 低约 25.6% | 1K | 官方目标低延迟 | | **Nano Banana** | `gemini-2.5-flash-image` | 按次计费 | \$0.025/张 | \$0.039/张 | 低约 35.9% | 1K(固定) | \~10秒 | | **GPT-Image-1** | `gpt-image-1` | 按Token | \$10输入/\$40输出 per M | - | - | - | 中等 | | **Flux Kontext Pro** | `flux-kontext-pro` | 按次计费 | \$0.035/张 | \$0.04/张 | 12.5% | - | 快速 | | **Sora Image** | `sora_image` | 按次计费 | \$0.01/张 | - | - | - | 较慢 | 💰 **价格说明** * **Nano Banana Pro**:老张API当前 \$0.09/张;Google Standard 当前为 \$0.134(1K/2K)或 \$0.24(4K) * **价格透明**:按次计费,实际扣费可在调用日志中查看 ## 🚀 快速开始 ### 准备工作 登录 [老张API令牌管理](https://api2.laozhang.ai/token) 创建**按次计费**类型的令牌 令牌创建界面 **重要**:必须选择"按次计费"类型,不要选择"按量计费" 复制生成的令牌,格式为 `sk-xxxxxx` ## 方式一:OpenAI 兼容模式(1:1 图片) 适合快速接入,默认生成 1024x1024 (1K) 图片。 ### 基础示例 - Curl ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/chat/completions" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3-pro-image", "stream": false, "messages": [ { "role": "user", "content": "a beautiful sunset over mountains" } ] }' ``` ### Python SDK 示例 ```python theme={null} from openai import OpenAI import base64 import re client = OpenAI( api_key="sk-YOUR_API_KEY", base_url="https://api2.laozhang.ai/v1" ) response = client.chat.completions.create( model="gemini-3-pro-image", messages=[ { "role": "user", "content": "a beautiful sunset over mountains" } ] ) # 提取 base64 图片数据 content = response.choices[0].message.content match = re.search(r'!\[.*?\]\((data:image/png;base64,.*?)\)', content) if match: base64_data = match.group(1).split(',')[1] image_data = base64.b64decode(base64_data) with open('output.png', 'wb') as f: f.write(image_data) print("✅ 图片已保存: output.png") ``` ## 方式二:Google 原生格式(支持自定义纵横比 + 4K) 适合需要 **4K 分辨率** 或 **特殊纵横比** 的场景。 ### 支持的纵横比 | 类型 | 纵横比选项 | | ------- | ----------------------------- | | **横向** | 21:9(超宽屏), 16:9(宽屏), 4:3, 3:2 | | **正方形** | 1:1 | | **纵向** | 9:16(竖屏), 3:4, 2:3 | | **其他** | 5:4, 4:5 | ### 支持的分辨率 | 纵横比 | 1K 分辨率 | 2K 分辨率 | 4K 分辨率 | | -------- | --------- | --------- | --------- | | **1:1** | 1024×1024 | 2048×2048 | 4096×4096 | | **16:9** | 1376×768 | 2752×1536 | 5504×3072 | | **9:16** | 768×1376 | 1536×2752 | 3072×5504 | | **4:3** | 1200×896 | 2400×1792 | 4800×3584 | | **3:4** | 896×1200 | 1792×2400 | 3584×4800 | | **21:9** | 1584×672 | 3168×1344 | 6336×2688 | | **3:2** | 1248×832 | 2496×1664 | 4992×3328 | | **2:3** | 832×1248 | 1664×2496 | 3328×4992 | | **5:4** | 1152×896 | 2304×1792 | 4608×3584 | | **4:5** | 896×1152 | 1792×2304 | 3584×4608 | 💡 **分辨率选择建议** * **1K**:适合网页展示、社交媒体、快速预览 * **2K**:适合高质量打印、专业展示 * **4K**:适合大型打印、专业设计、极致细节 ### 完整 Curl 示例(文生图 4K) ```bash theme={null} #!/bin/bash # 1. 设置 API 密钥 export API_KEY="sk-YOUR_API_KEY" # 2. 发送请求(使用 Nano Banana Pro 生成 4K 图片) curl -s -X POST "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "contents": [{ "parts": [ {"text": "A futuristic city skyline at sunset, high detailed, 4k"} ] }], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": "16:9", "imageSize": "4K" } } }' \ | jq -r '.candidates[0].content.parts[0].inlineData.data' \ | base64 --decode > output_4k.png echo "✅ 图片已保存: output_4k.png" ``` ### Python 代码示例 💡 **三个示例递进关系** 示例1生成图 → 示例2用它变换风格 → 示例3融合前两张图。这样逻辑更清晰! ```python theme={null} import requests import base64 # ========== 配置 ========== API_KEY = "sk-YOUR_API_KEY" API_URL = "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" PROMPT = "一只可爱的橘猫" ASPECT_RATIO = "1:1" IMAGE_SIZE = "2K" # Nano Banana Pro 支持: 1K, 2K, 4K # ============================ headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"} payload = { "contents": [{"parts": [{"text": PROMPT}]}], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": ASPECT_RATIO, "imageSize": IMAGE_SIZE } } } response = requests.post(API_URL, headers=headers, json=payload, timeout=180) result = response.json() # 保存图片 image_data = result["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] with open("output.png", "wb") as f: f.write(base64.b64decode(image_data)) print("✅ 图片已保存: output.png") ``` ```python theme={null} import requests import base64 # ========== 配置 ========== API_KEY = "sk-YOUR_API_KEY" API_URL = "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" INPUT_IMAGE = "output.png" # 使用示例1生成的图片 PROMPT = "把这张图变成梵高星空风格的油画" ASPECT_RATIO = "1:1" IMAGE_SIZE = "2K" # ============================ # 读取并编码图片 with open(INPUT_IMAGE, "rb") as f: image_b64 = base64.b64encode(f.read()).decode("utf-8") headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"} payload = { "contents": [{ "parts": [ {"text": PROMPT}, {"inline_data": {"mime_type": "image/jpeg", "data": image_b64}} ] }], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": ASPECT_RATIO, "imageSize": IMAGE_SIZE } } } response = requests.post(API_URL, headers=headers, json=payload, timeout=180) result = response.json() # 保存图片 output_data = result["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] with open("output_styled.png", "wb") as f: f.write(base64.b64decode(output_data)) print("✅ 图片已保存: output_styled.png") ``` ```python theme={null} import requests import base64 # ========== 配置 ========== API_KEY = "sk-YOUR_API_KEY" API_URL = "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" # 使用前面生成的两张图(示例1和示例2的输出) IMAGES = ["output.png", "output_styled.png"] PROMPT = "将这两张图融合成一个艺术作品" ASPECT_RATIO = "16:9" IMAGE_SIZE = "2K" # ============================ # 构建 parts: 文本 + 多张图片 parts = [{"text": PROMPT}] for img_path in IMAGES: with open(img_path, "rb") as f: img_b64 = base64.b64encode(f.read()).decode("utf-8") parts.append({"inline_data": {"mime_type": "image/png", "data": img_b64}}) headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"} payload = { "contents": [{"parts": parts}], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": ASPECT_RATIO, "imageSize": IMAGE_SIZE } } } response = requests.post(API_URL, headers=headers, json=payload, timeout=180) result = response.json() # 保存图片 output_data = result["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] with open("output_mixed.png", "wb") as f: f.write(base64.b64decode(output_data)) print("✅ 图片已保存: output_mixed.png") ``` ```python theme={null} #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Nano Banana Pro 图片生成 - 完整演示脚本 包含三个场景:文生图、单图生图、多图混合 """ import requests import base64 import os from datetime import datetime # ========== 配置区 ========== API_KEY = "sk-YOUR_API_KEY" API_URL = "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" # ============================ def generate_text_to_image(prompt, aspect_ratio="16:9", image_size="2K"): """场景1: 文生图""" print(f"\n📸 文生图: {prompt}") payload = { "contents": [{"parts": [{"text": prompt}]}], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": aspect_ratio, "imageSize": image_size } } } return call_api(payload, f"text_{image_size}") def generate_image_to_image(input_image, prompt, aspect_ratio="1:1", image_size="2K"): """场景2: 单图生图""" print(f"\n🎨 单图生图: {input_image}") with open(input_image, "rb") as f: img_b64 = base64.b64encode(f.read()).decode("utf-8") payload = { "contents": [{ "parts": [ {"text": prompt}, {"inline_data": {"mime_type": "image/jpeg", "data": img_b64}} ] }], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": aspect_ratio, "imageSize": image_size } } } return call_api(payload, f"styled_{image_size}") def generate_multi_image_mix(images, prompt, aspect_ratio="16:9", image_size="2K"): """场景3: 多图混合""" print(f"\n🖼️ 多图混合: {len(images)} 张图片") parts = [{"text": prompt}] for img in images: with open(img, "rb") as f: parts.append({"inline_data": {"mime_type": "image/jpeg", "data": base64.b64encode(f.read()).decode()}}) payload = { "contents": [{"parts": parts}], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": aspect_ratio, "imageSize": image_size } } } return call_api(payload, f"mixed_{image_size}") def call_api(payload, prefix): """调用 API""" headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"} try: response = requests.post(API_URL, headers=headers, json=payload, timeout=180) result = response.json() image_data = result["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] filename = f"{prefix}_{datetime.now().strftime('%Y%m%d_%H%M%S')}.png" with open(filename, "wb") as f: f.write(base64.b64decode(image_data)) print(f"✅ 已保存: {filename}") return filename except Exception as e: print(f"❌ 错误: {e}") return None # ========== 主程序 ========== def main(): print("🎨 Nano Banana Pro 图片生成 - 完整演示") # 场景 1: 文生图 img1 = generate_text_to_image( "A futuristic cyberpunk city at night, 4k", aspect_ratio="16:9", image_size="4K" ) # 场景 2: 单图生图 (需要 test_cat.jpg) if os.path.exists("test_cat.jpg"): img2 = generate_image_to_image( "test_cat.jpg", "Van Gogh Starry Night style", aspect_ratio="1:1", image_size="2K" ) # 场景 3: 多图混合 (需要 test_cat.jpg, test_apple.jpg) if os.path.exists("test_cat.jpg") and os.path.exists("test_apple.jpg"): generate_multi_image_mix( ["test_cat.jpg", "test_apple.jpg"], "A cat eating an apple", aspect_ratio="16:9", image_size="2K" ) print("\n✅ 演示完成!") if __name__ == "__main__": main() ``` ### Bash 脚本示例 ```bash theme={null} #!/bin/bash # ============================================================ # Nano Banana Pro 图片生成工具 - Bash/Curl 版本 # 支持 4K 分辨率和多种纵横比 # ============================================================ # ========== 配置区 ========== API_KEY="sk-YOUR_API_KEY" API_URL="https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" PROMPT="A futuristic cyberpunk city at night, neon lights, flying cars, highly detailed, 4k" ASPECT_RATIO="16:9" IMAGE_SIZE="4K" # 1K, 2K, 4K OUTPUT_FILE="gemini_${IMAGE_SIZE}_$(date +%Y%m%d_%H%M%S).png" # ============================ # 检查依赖 if ! command -v jq &> /dev/null; then echo "❌ 错误: 需要安装 jq 工具" echo "" echo "安装方法:" echo " macOS: brew install jq" echo " Ubuntu: sudo apt-get install jq" echo " CentOS: sudo yum install jq" exit 1 fi echo "============================================================" echo "Nano Banana Pro 图片生成工具" echo "============================================================" echo "⏰ 开始时间: $(date '+%Y-%m-%d %H:%M:%S')" echo "🚀 开始生成图片..." echo "📝 提示词: ${PROMPT}" echo "📐 纵横比: ${ASPECT_RATIO}" echo "🖼️ 分辨率: ${IMAGE_SIZE}" # 构建 JSON 请求 REQUEST_JSON=$(jq -n \ --arg prompt "$PROMPT" \ --arg ratio "$ASPECT_RATIO" \ --arg size "$IMAGE_SIZE" \ '{ contents: [{ parts: [{text: $prompt}] }], generationConfig: { responseModalities: ["IMAGE"], imageConfig: { aspectRatio: $ratio, imageSize: $size } } }') # 发送请求 RESPONSE=$(curl -s -X POST "${API_URL}" \ -H "Authorization: Bearer ${API_KEY}" \ -H "Content-Type: application/json" \ -d "${REQUEST_JSON}") # 检查错误 if echo "${RESPONSE}" | jq -e '.error' &> /dev/null; then echo "❌ 生成失败" echo "💥 错误信息:" echo "${RESPONSE}" | jq -r '.error.message // .error' exit 1 fi # 提取图片数据 echo "💾 正在保存图片..." IMAGE_DATA=$(echo "${RESPONSE}" | jq -r '.candidates[0].content.parts[0].inlineData.data' 2>/dev/null) if [ -z "$IMAGE_DATA" ] || [ "$IMAGE_DATA" = "null" ]; then echo "❌ 未找到图片数据" exit 1 fi # 解码并保存图片 echo "${IMAGE_DATA}" | base64 --decode > "${OUTPUT_FILE}" # 检查结果 if [ -f "${OUTPUT_FILE}" ]; then FILE_SIZE=$(du -h "${OUTPUT_FILE}" | cut -f1) echo "✅ 图片已保存: ${OUTPUT_FILE}" echo "📊 文件大小: ${FILE_SIZE}" echo "============================================================" echo "🎉 生成成功!" echo "⏰ 结束时间: $(date '+%Y-%m-%d %H:%M:%S')" else echo "❌ 图片保存失败" exit 1 fi ``` ## 🚀 Gemini 3 Pro 高级特性(Nano Banana Pro 独有) ### 🧠 思考模式 (Thinking Mode) Nano Banana Pro 内置了**推理能力**,在生成图片前会自动优化构图和逻辑,以确保更高质量的输出。此功能默认启用,无需额外配置。 💡 **思考模式的优势** * 自动优化构图和布局 * 理解复杂的多步骤指令 * 生成过程中会创建临时"思维图像"(在后端,不收费) * 最终输出质量更高、更符合预期 ### 🌐 Google 搜索接地 (Grounding) 模型可以使用 Google 搜索作为工具,利用实时数据(如天气、股价、新闻)生成图片。 ```bash theme={null} curl -s -X POST "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "contents": [{"parts": [{"text": "Visualize the current weather forecast for the next 5 days in San Francisco as a clean, modern weather chart."}]}], "tools": [{"google_search": {}}], "generationConfig": { "responseModalities": ["TEXT", "IMAGE"], "imageConfig": {"aspectRatio": "16:9"} } }' ``` **注意**:使用搜索接地时,`responseModalities` 必须包含 `"TEXT"`(即 `["TEXT", "IMAGE"]`),纯图片模式下无法返回搜索结果。 ### 🎨 多图参考 (Reference Images) Nano Banana Pro 支持混合使用最多 **14 张参考图片**: * **最多 6 张** 高保真对象图片(用于包含在最终图片中) * **最多 5 张** 人物图片(用于保持角色一致性) ```python theme={null} # 多图参考示例(Python) import requests import base64 API_KEY = "sk-YOUR_API_KEY" API_URL = "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" # 准备多张参考图片 image_paths = ["cat.jpg", "apple.jpg"] parts = [{"text": "Combine these images: a cat eating an apple on a table"}] for path in image_paths: with open(path, "rb") as f: image_data = base64.b64encode(f.read()).decode("utf-8") parts.append({ "inline_data": { "mime_type": "image/jpeg", "data": image_data } }) # 发送请求 response = requests.post( API_URL, headers={ "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" }, json={ "contents": [{"parts": parts}], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": "16:9", "imageSize": "2K" } } } ) ``` 💡 **多图参考最佳实践** * 物体图片:用于产品合成、场景构建 * 人物图片:保持角色外观一致性(如制作系列图片) * 组合使用:创建复杂的视觉叙事 ## 💡 最佳实践 ### 提示词优化 使用具体、详细的描述,包括主体、风格、颜色、光线等 可以指定艺术风格:"油画风格"、"水彩画"、"赛博朋克风格"等 避免使用过于抽象或模糊的词汇 英文提示词通常效果更好,中文也支持 ### 纵横比选择建议 | 用途 | 推荐纵横比 | | ------------- | --------- | | 社交媒体横图 | 16:9 | | 手机壁纸/竖屏 | 9:16 | | Instagram 正方形 | 1:1 | | 打印照片 | 4:3 或 3:2 | | 电影海报 | 2:3 | | 横幅广告 | 21:9 | ## ❓ 常见问题 1. 访问 [api2.laozhang.ai](https://api2.laozhang.ai) 注册账号 2. 创建令牌,选择"按次计费" 3. 调用 `gemini-3-pro-image` 模型 4. 在控制台调用日志中查看实际扣费 \$0.5 可直接抵扣多次 Nano Banana Pro 调用费用。 | 渠道 | 价格 | 说明 | | --------------- | ------------------------------ | -------- | | **老张 API** | **\$0.09/张** | 价格以控制台为准 | | Google Standard | \$0.134/张(1K/2K)或 \$0.24/张(4K) | 随分辨率变化 | 实际扣费以控制台调用日志为准。 **方法一**:[API Playground](https://api2.laozhang.ai/playground) 可视化测试 **方法二**:Curl 命令 ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/chat/completions" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{"model": "gemini-3-pro-image", "messages": [{"role": "user", "content": "a cute cat"}]}' ``` | 特性 | Nano Banana Pro | Nano Banana | | ---- | -------------------- | ------------------------ | | 模型 | `gemini-3-pro-image` | `gemini-2.5-flash-image` | | 技术 | Gemini 3 | Gemini 2.5 | | 分辨率 | 1K/2K/4K | 1K(固定) | | 价格 | \$0.09/张 | \$0.025/张 | | 思考模式 | ✅ 有 | ❌ 无 | | 搜索接地 | ✅ 有 | ❌ 无 | | 多图参考 | 最多 14 张 | 最多 3 张 | * 如果价格要 1:1 正方形图片,使用 **OpenAI 兼容模式**更简单 * 如果需要特定纵横比(如 16:9 宽屏)或高分辨率(2K/4K),使用 **Google 原生格式** Nano Banana Pro 和 Nano Banana 2 都支持 4K。本页使用 Pro 的 Google 原生格式并添加 `imageSize` 参数: ```json theme={null} { "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": "16:9", "imageSize": "4K" } } } ``` **重要**:必须使用大写 "K"(1K、2K、4K)。 **完美支持!** Gemini 3 Pro 拥有顶级的多语言理解能力,您可以直接使用中文描述画面,无需翻译。 1. **详细描述**:提供具体的细节(颜色、风格、场景等) 2. **英文提示词**:英文通常效果更好 3. **参考风格**:指定艺术风格(如"油画风格"、"水彩画") 4. **多次尝试**:可以用不同的提示词尝试,价格低廉 Base64 数据可以直接在网页中显示: ```html theme={null} ``` 或者解码保存为文件(参考上面的代码示例) ## 🔗 相关资源 学习如何使用 Nano Banana Pro 编辑和改造现有图片 \$0.055/张,成本更可控的 Banana 2 版本 可选的 Nano Banana Standard 版本 创建和管理你的 API 令牌 查看详细的价格表和计费说明 *** ## 📝 更新日志 **🚀 Nano Banana Pro 专属页面** * 从混合文档拆分为独立的 Pro 版本文档 * 完整的 4K 分辨率使用指南 * 详细的高级特性说明(思考模式、搜索接地、多图参考) * 完整的代码示例和最佳实践 * 与 Nano Banana Standard 的对比说明 # Nano Banana Pro 图片编辑 API Source: https://docs.laozhang.ai/api-capabilities/nano-banana-pro-image-edit Nano Banana Pro 图片编辑 API 文档:稳定模型 gemini-3-pro-image,0.09 美元/次,支持 4K、局部修改、多图融合、风格转换和双协议代码。 **Nano Banana Pro Edit:专业 4K 图片编辑路线** * **稳定模型 ID**:`gemini-3-pro-image` * **老张API价格**:当前 \$0.09/次,实际价格与扣费以控制台为准 * **编辑能力**:局部修改、风格迁移、多图融合、文字重绘和复杂构图 * **生产接入**:OpenAI 兼容格式与 Gemini 原生格式 创建 API Key,查看余额和调用日志 影图 AI 即刻体验,无需写代码 查看 [图像生成 API 选型指南](/api-capabilities/image-generation-guide) 比较全部型号。老张API提供统一全球 HTTPS 入口和调用日志,网关不设置固定低并发套餐档位;实际吞吐仍受 Google 上游容量、账号状态与安全策略影响。 ## 前置要求 登录 [laozhang.ai 控制台](https://api2.laozhang.ai) 获取 API 密钥 编辑令牌设置,选择以下任一计费模式(两者价格相同): * **按量优先**(推荐):优先使用余额计费,余额不足时自动切换 * **按次计费**:每次调用直接扣费。适合预算控制严格的场景 两种模式**价格完全相同**,都是 \$0.09/次,仅扣费方式不同。 令牌设置 如果未设置计费模式,API调用会失败。必须先完成此配置! ## 模型简介 **Nano Banana Pro 编辑** (`gemini-3-pro-image`) 专为需要精准控制和高质量输出的场景设计。不同于简单的滤镜或修补,它能理解复杂的自然语言指令,对画面进行逻辑性的修改。 ### 核心能力 * **精准局部修改**: "把那只猫换成一只戴眼镜的狗,但保持姿势不变" * **风格完美迁移**: "把这张照片变成赛博朋克风格的油画,光线要更加强烈" * **多图创意融合**: "结合这两张图,生成一张全新的海报" * **4K 高清输出**: 支持输出 2K/4K 分辨率的编辑结果 ## 🌟 核心特性 * **⚡ 极速响应**:平均 10 秒完成编辑 * **💰 价格以控制台为准**:\$0.09/次,实际扣费以控制台记录为准 * **🔄 双重兼容**:支持 OpenAI SDK 和 Google 原生格式 * **📐 灵活尺寸**:Google 原生格式支持 14 种纵横比 * **🖼️ 高分辨率**:支持 1K、2K、4K 三种分辨率输出 * **🧠 思考模式**:内置推理能力,理解复杂编辑指令 * **🌐 搜索接地**:支持结合实时搜索数据进行编辑 * **🎨 多图参考**:支持最多 14 张参考图片进行复杂合成 * **📦 Base64 输出**:直接返回 base64 编码图片数据 * **🔗 URL 直传**:Google 原生格式支持直接传入图片 URL(需海外可访问),无需 Base64 编码 ## 🔀 两种调用方式 | 特性 | OpenAI 兼容模式 | Google 原生格式 | | -------- | ---------------------- | --------------------------------------------------- | | **端点** | `/v1/chat/completions` | `/v1beta/models/gemini-3-pro-image:generateContent` | | **输出尺寸** | 默认比例 | 支持 14 种纵横比 | | **分辨率** | 固定 1K | 支持 1K/2K/4K | | **多图支持** | ✅ 支持 | ✅ 支持(最多 14 张) | | **兼容性** | 已文档化 OpenAI 兼容字段可用 | 需要原生调用 | | **返回格式** | Base64 | Base64 | | **图片输入** | URL 或 Base64 | URL(fileData)或 Base64(inline\_data) | 💡 **如何选择?** * 如果价格要默认比例的图片,使用 **OpenAI 兼容模式**,简单快捷 * 如果需要自定义纵横比(如 16:9、9:16)或高分辨率(2K/4K),使用 **Google 原生格式** ## 📋 模型对比 ### 与其他编辑模型对比 | 模型 | 模型 ID | 计费方式 | 老张价格 | 外部参考价 | 节省 | 分辨率 | 速度 | | ---------------------- | ----------------------------- | ----- | --------- | -------------------------- | -------------- | ------------- | ------- | | **Nano Banana Pro** | `gemini-3-pro-image` | 按次 | \$0.09/次 | \$0.134(1K/2K)/ \$0.24(4K) | 低约 32.8%–62.5% | 1K/2K/4K | \~10秒 | | **Nano Banana 2** | `gemini-3.1-flash-image` | 按次 | \$0.055/次 | \$0.045–\$0.151 | 随分辨率比较 | 0.5K/1K/2K/4K | \~10秒 | | **Nano Banana 2 Lite** | `gemini-3.1-flash-lite-image` | 按次 | \$0.025/次 | \$0.0336(1K) | 低约 25.6% | 1K | 官方目标低延迟 | | **Nano Banana** | `gemini-2.5-flash-image` | 按次 | \$0.025/次 | \$0.039/次 | 低约 35.9% | 1K(固定) | \~10秒 | | **GPT-4o 编辑** | `gpt-4o` | Token | - | - | - | - | \~20秒 | | **DALL·E 2 编辑** | `dall-e-2` | 按次 | - | \$0.018/张 | - | 固定 | 较慢 | ### Pro / Banana 2 / Standard 详细对比 | 特性 | Nano Banana Pro | Nano Banana 2 | Nano Banana | | -------- | -------------------- | ------------------------ | ------------------------ | | **模型** | `gemini-3-pro-image` | `gemini-3.1-flash-image` | `gemini-2.5-flash-image` | | **技术基础** | Gemini 3 | Gemini 3.1 Flash | Gemini 2.5 | | **分辨率** | 1K/2K/4K | 1K/2K/4K | 1K(固定) | | **价格** | \$0.09/次 | \$0.055/次 | \$0.025/次 | | **思考模式** | ✅ 有 | ✅ 有 | ❌ 无 | | **搜索接地** | ✅ 有 | ✅ 有 | ❌ 无 | | **多图支持** | 最多 14 张 | 最多 14 张 | 最多 3 张 | | **速度** | \~10秒 | \~10秒 | \~10秒 | | **推荐场景** | 专业设计、复杂合成 | 日常高级用途、日常高级用途 | 快速修改、简单编辑 | 💰 **价格说明** * **Nano Banana Pro**:老张API当前 \$0.09/次;Google Standard 当前为 \$0.134(1K/2K)或 \$0.24(4K) * **价格透明**:按次计费,实际扣费可在调用日志中查看 ## 🚀 快速开始 ### 准备工作 登录 [老张API令牌管理](https://api2.laozhang.ai/token) 创建**按次计费**类型的令牌 令牌创建界面 **重要**:必须选择"按次计费"类型 复制生成的令牌,格式为 `sk-xxxxxx` ## 方式一:OpenAI 兼容模式 ### 单图编辑 - Curl ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/chat/completions" \ -H "x-goog-api-key: sk-YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3-pro-image", "stream": false, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Add a futuristic neon halo above the person head" }, { "type": "image_url", "image_url": { "url": "https://example.com/your-image.jpg" } } ] } ] }' ``` ### 单图编辑 - Python SDK ```python theme={null} from openai import OpenAI import base64 import re client = OpenAI( api_key="sk-YOUR_API_KEY", base_url="https://api2.laozhang.ai/v1" ) response = client.chat.completions.create( model="gemini-3-pro-image", messages=[ { "role": "user", "content": [ { "type": "text", "text": "Add a cute wizard hat on this cat's head" }, { "type": "image_url", "image_url": { "url": "https://example.com/your-image.jpg" } } ] } ] ) # 提取并保存图片 content = response.choices[0].message.content match = re.search(r'!\[.*?\]\((data:image/png;base64,.*?)\)', content) if match: base64_data = match.group(1).split(',')[1] image_data = base64.b64decode(base64_data) with open('edited.png', 'wb') as f: f.write(image_data) print("✅ 编辑后的图片已保存: edited.png") ``` ### 多图合成 - Python SDK ```python theme={null} from openai import OpenAI import base64 import re client = OpenAI( api_key="sk-YOUR_API_KEY", base_url="https://api2.laozhang.ai/v1" ) response = client.chat.completions.create( model="gemini-3-pro-image", messages=[ { "role": "user", "content": [ { "type": "text", "text": "Combine the style of image A with the content of image B" }, { "type": "image_url", "image_url": {"url": "https://example.com/style.jpg"} }, { "type": "image_url", "image_url": {"url": "https://example.com/content.jpg"} } ] } ] ) # 提取并保存图片 content = response.choices[0].message.content match = re.search(r'!\[.*?\]\((data:image/png;base64,.*?)\)', content) if match: base64_data = match.group(1).split(',')[1] image_data = base64.b64decode(base64_data) with open('merged.png', 'wb') as f: f.write(image_data) print("✅ 合成图片已保存: merged.png") ``` ## 方式二:Google 原生格式(支持自定义纵横比 + 4K) ### 认证方式 Google 原生格式支持三种认证方式: ```bash theme={null} # 方式1:URL 参数(推荐,最简洁) https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent?key=sk-YOUR_API_KEY # 方式2:Authorization Bearer Header -H "Authorization: Bearer sk-YOUR_API_KEY" # 方式3:x-goog-api-key Header -H "x-goog-api-key: sk-YOUR_API_KEY" ``` 💡 三种方式效果相同,选择你喜欢的即可。 ### 支持的分辨率 | 纵横比 | 1K 分辨率 | 2K 分辨率 | 4K 分辨率 | | -------- | --------- | --------- | --------- | | **1:1** | 1024×1024 | 2048×2048 | 4096×4096 | | **16:9** | 1376×768 | 2752×1536 | 5504×3072 | | **9:16** | 768×1376 | 1536×2752 | 3072×5504 | | **4:3** | 1200×896 | 2400×1792 | 4800×3584 | | **3:4** | 896×1200 | 1792×2400 | 3584×4800 | 💡 **分辨率设置方法** 在 `generationConfig.imageConfig.imageSize` 中传入 `"2K"` 或 `"4K"`。不传则默认为 `"1K"`。 ### 图片输入方式 Google 原生格式支持两种图片输入方式: 💡 **两种方式对比** * **`inline_data`**:传入 Base64 编码数据,适合本地图片 * **`fileData`**:直接传入图片 URL,更简洁(推荐在线图片使用) ⚠️ **URL 方式限制** 使用 `fileData.fileUri` 传入图片 URL 时,需要满足以下条件: * 图片 URL 必须是**海外公网可直接访问**的地址 * 图片服务器**不能有反爬机制**(如 Cloudflare 验证、验证码、User-Agent 检测等) * 访问受限的图片,请使用 `inline_data` 方式(先下载再转 Base64) ### 4K 高清编辑 - Curl(Base64 方式) ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" \ -H "x-goog-api-key: sk-YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "contents": [{ "parts": [ {"text": "Transform this image into a cyberpunk style with neon lights"}, {"inline_data": {"mime_type": "image/jpeg", "data": "BASE64_IMAGE_DATA_HERE"}} ] }], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": "16:9", "imageSize": "4K" } } }' ``` ### 4K 高清编辑 - Curl(URL 方式) 使用 `fileData.fileUri` 直接传入在线图片 URL,无需转换为 Base64: ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" \ -H "x-goog-api-key: sk-YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "contents": [{ "parts": [ { "fileData": { "fileUri": "https://example.com/your-image.png", "mimeType": "image/png" } }, {"text": "Add five cute dogs to this image"} ], "role": "user" }], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": "16:9", "imageSize": "4K" } } }' ``` 💡 **URL 方式要点** * 使用 `fileData.fileUri` 替代 `inline_data.data` * 需要指定 `mimeType`(如 `image/png`、`image/jpeg`) * 可选添加 `role: "user"` 明确角色 * 图片 URL 必须是海外公网可直接访问的地址 ### Python 代码示例 💡 **三个示例递进关系** 示例1编辑图片 → 示例2用它变换风格 → 示例3融合前两张图。逻辑清晰! ```python theme={null} import requests import base64 # ========== 配置 ========== API_KEY = "sk-YOUR_API_KEY" API_URL = "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" INPUT_IMAGE = "cat.jpg" PROMPT = "Add a cute wizard hat on this cat's head" ASPECT_RATIO = "1:1" IMAGE_SIZE = "2K" # 1K, 2K, 4K # ============================ # 读取并编码图片 with open(INPUT_IMAGE, "rb") as f: image_b64 = base64.b64encode(f.read()).decode("utf-8") headers = {"x-goog-api-key": API_KEY, "Content-Type": "application/json"} payload = { "contents": [{ "parts": [ {"text": PROMPT}, {"inline_data": {"mime_type": "image/jpeg", "data": image_b64}} ] }], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": ASPECT_RATIO, "imageSize": IMAGE_SIZE } } } response = requests.post(API_URL, headers=headers, json=payload, timeout=180) result = response.json() # 保存图片 output_data = result["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] with open("output.png", "wb") as f: f.write(base64.b64decode(output_data)) print("✅ 图片已保存: output.png") ``` ```python theme={null} import requests import base64 # ========== 配置 ========== API_KEY = "sk-YOUR_API_KEY" API_URL = "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" INPUT_IMAGE = "output.png" # 使用示例1生成的图片 PROMPT = "Transform this cat into Van Gogh Starry Night style oil painting" ASPECT_RATIO = "1:1" IMAGE_SIZE = "2K" # ============================ # 读取并编码图片 with open(INPUT_IMAGE, "rb") as f: image_b64 = base64.b64encode(f.read()).decode("utf-8") headers = {"x-goog-api-key": API_KEY, "Content-Type": "application/json"} payload = { "contents": [{ "parts": [ {"text": PROMPT}, {"inline_data": {"mime_type": "image/png", "data": image_b64}} ] }], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": ASPECT_RATIO, "imageSize": IMAGE_SIZE } } } response = requests.post(API_URL, headers=headers, json=payload, timeout=180) result = response.json() # 保存图片 output_data = result["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] with open("output_styled.png", "wb") as f: f.write(base64.b64decode(output_data)) print("✅ 图片已保存: output_styled.png") ``` ```python theme={null} import requests import base64 # ========== 配置 ========== API_KEY = "sk-YOUR_API_KEY" API_URL = "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" # 使用前面生成的两张图(示例1和示例2的输出) IMAGES = ["output.png", "output_styled.png"] PROMPT = "Combine these two cat images into a single artistic composition" ASPECT_RATIO = "16:9" IMAGE_SIZE = "2K" # ============================ # 构建 parts: 文本 + 多张图片 parts = [{"text": PROMPT}] for img_path in IMAGES: with open(img_path, "rb") as f: img_b64 = base64.b64encode(f.read()).decode("utf-8") parts.append({"inline_data": {"mime_type": "image/png", "data": img_b64}}) headers = {"x-goog-api-key": API_KEY, "Content-Type": "application/json"} payload = { "contents": [{"parts": parts}], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": ASPECT_RATIO, "imageSize": IMAGE_SIZE } } } response = requests.post(API_URL, headers=headers, json=payload, timeout=180) result = response.json() # 保存图片 output_data = result["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] with open("output_mixed.png", "wb") as f: f.write(base64.b64decode(output_data)) print("✅ 图片已保存: output_mixed.png") ``` ```python theme={null} import requests import base64 # ========== 配置 ========== API_KEY = "sk-YOUR_API_KEY" API_URL = "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" # 使用在线图片 URL(必须是海外可访问的地址) IMAGE_URL = "https://example.com/your-image.png" PROMPT = "Add a beautiful sunset in the background" ASPECT_RATIO = "16:9" IMAGE_SIZE = "4K" # ============================ headers = {"x-goog-api-key": API_KEY, "Content-Type": "application/json"} # 使用 fileData.fileUri 方式 - 无需下载和编码图片 payload = { "contents": [{ "parts": [ { "fileData": { "fileUri": IMAGE_URL, "mimeType": "image/png" } }, {"text": PROMPT} ], "role": "user" }], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": ASPECT_RATIO, "imageSize": IMAGE_SIZE } } } response = requests.post(API_URL, headers=headers, json=payload, timeout=180) result = response.json() # 保存图片 output_data = result["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] with open("output_url.png", "wb") as f: f.write(base64.b64decode(output_data)) print("✅ 图片已保存: output_url.png") ``` ```python theme={null} #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Nano Banana Pro 图片编辑工具 - Python版本 上传本地图片 + 文字描述,生成新图片,支持自定义纵横比和分辨率 """ import requests import base64 import os import datetime import mimetypes from typing import Optional, Tuple, List class NanaBananaProEditor: """Nano Banana Pro 图片编辑器""" SUPPORTED_ASPECT_RATIOS = [ "21:9", "16:9", "4:3", "3:2", "1:1", "9:16", "3:4", "2:3", "5:4", "4:5" ] SUPPORTED_SIZES = ["1K", "2K", "4K"] def __init__(self, api_key: str): self.api_key = api_key self.api_url = "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" self.headers = { "Content-Type": "application/json", "x-goog-api-key": api_key } def edit_image(self, image_path: str, prompt: str, aspect_ratio: str = "1:1", image_size: str = "2K", output_dir: str = ".") -> Tuple[bool, str]: """ 编辑单张图片 参数: image_path: 输入图片路径 prompt: 编辑描述 aspect_ratio: 纵横比 image_size: 分辨率 (1K, 2K, 4K) output_dir: 保存目录 返回: (是否成功, 结果消息) """ print(f"🚀 开始编辑图片...") print(f"📁 输入图片: {image_path}") print(f"📝 编辑描述: {prompt}") print(f"📐 纵横比: {aspect_ratio}") print(f"🖼️ 分辨率: {image_size}") if not os.path.exists(image_path): return False, f"图片文件不存在: {image_path}" if aspect_ratio not in self.SUPPORTED_ASPECT_RATIOS: return False, f"不支持的纵横比 {aspect_ratio}" if image_size not in self.SUPPORTED_SIZES: return False, f"不支持的分辨率 {image_size}" # 读取并编码图片 try: with open(image_path, 'rb') as f: image_data = f.read() image_base64 = base64.b64encode(image_data).decode('utf-8') mime_type, _ = mimetypes.guess_type(image_path) if not mime_type or not mime_type.startswith('image/'): mime_type = 'image/jpeg' except Exception as e: return False, f"读取图片失败: {str(e)}" # 生成输出文件名 timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") output_file = os.path.join(output_dir, f"edited_{timestamp}.png") try: payload = { "contents": [{ "parts": [ {"text": prompt}, {"inline_data": {"mime_type": mime_type, "data": image_base64}} ] }], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": aspect_ratio, "imageSize": image_size } } } print("📡 发送请求到 API...") response = requests.post(self.api_url, headers=self.headers, json=payload, timeout=180) if response.status_code != 200: return False, f"API 请求失败,状态码: {response.status_code}" result = response.json() output_image_data = result["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] print("💾 正在保存图片...") decoded_data = base64.b64decode(output_image_data) with open(output_file, 'wb') as f: f.write(decoded_data) file_size = len(decoded_data) / 1024 print(f"✅ 图片已保存: {output_file}") print(f"📊 文件大小: {file_size:.2f} KB") return True, f"成功保存图片: {output_file}" except Exception as e: return False, f"错误: {str(e)}" def merge_images(self, image_paths: List[str], prompt: str, aspect_ratio: str = "16:9", image_size: str = "2K", output_dir: str = ".") -> Tuple[bool, str]: """ 合并多张图片 参数: image_paths: 输入图片路径列表 prompt: 合并描述 aspect_ratio: 纵横比 image_size: 分辨率 output_dir: 保存目录 返回: (是否成功, 结果消息) """ print(f"🚀 开始合并 {len(image_paths)} 张图片...") parts = [{"text": prompt}] for img_path in image_paths: if not os.path.exists(img_path): return False, f"图片文件不存在: {img_path}" with open(img_path, 'rb') as f: img_data = f.read() img_b64 = base64.b64encode(img_data).decode('utf-8') mime_type, _ = mimetypes.guess_type(img_path) if not mime_type: mime_type = 'image/jpeg' parts.append({"inline_data": {"mime_type": mime_type, "data": img_b64}}) timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") output_file = os.path.join(output_dir, f"merged_{timestamp}.png") try: payload = { "contents": [{"parts": parts}], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": aspect_ratio, "imageSize": image_size } } } print("📡 发送请求到 API...") response = requests.post(self.api_url, headers=self.headers, json=payload, timeout=180) if response.status_code != 200: return False, f"API 请求失败,状态码: {response.status_code}" result = response.json() output_image_data = result["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] print("💾 正在保存图片...") decoded_data = base64.b64decode(output_image_data) with open(output_file, 'wb') as f: f.write(decoded_data) print(f"✅ 图片已保存: {output_file}") return True, f"成功保存图片: {output_file}" except Exception as e: return False, f"错误: {str(e)}" def main(): """主函数 - 使用示例""" API_KEY = "sk-YOUR_API_KEY" editor = NanaBananaProEditor(API_KEY) # 示例1: 单图编辑 success, message = editor.edit_image( image_path="./input.jpg", prompt="Add a rainbow in the sky", aspect_ratio="16:9", image_size="2K" ) print(message) # 示例2: 多图合并 success, message = editor.merge_images( image_paths=["./cat.jpg", "./dog.jpg"], prompt="Combine these two pets into one happy family portrait", aspect_ratio="1:1", image_size="2K" ) print(message) if __name__ == "__main__": main() ``` ## 🎯 编辑场景示例 ### 1. 单图编辑 - 添加元素 ```python theme={null} def add_element_to_image(image_url, element_description): """向图片添加新元素""" headers = { "x-goog-api-key": API_KEY, "Content-Type": "application/json" } data = { "model": "gemini-3-pro-image", "stream": False, "messages": [{ "role": "user", "content": [ {"type": "text", "text": f"Add {element_description} to this image"}, {"type": "image_url", "image_url": {"url": image_url}} ] }] } response = requests.post(API_URL, headers=headers, json=data) return extract_base64_from_response(response.json()) # 使用示例 result = add_element_to_image( "https://example.com/landscape.jpg", "a rainbow in the sky" ) ``` ### 2. 风格转换 ```python theme={null} def style_transfer(image_url, style_description): """图片风格转换""" headers = { "x-goog-api-key": API_KEY, "Content-Type": "application/json" } data = { "model": "gemini-3-pro-image", "stream": False, "messages": [{ "role": "user", "content": [ {"type": "text", "text": f"Transform this image into {style_description} style"}, {"type": "image_url", "image_url": {"url": image_url}} ] }] } response = requests.post(API_URL, headers=headers, json=data) return extract_base64_from_response(response.json()) # 使用示例 result = style_transfer( "https://example.com/photo.jpg", "Van Gogh oil painting" ) ``` ### 3. 多图合成 ```python theme={null} def creative_merge(image_urls, merge_instruction): """创意合并多张图片""" content = [{"type": "text", "text": merge_instruction}] for url in image_urls: content.append({ "type": "image_url", "image_url": {"url": url} }) headers = { "x-goog-api-key": API_KEY, "Content-Type": "application/json" } data = { "model": "gemini-3-pro-image", "stream": False, "messages": [{"role": "user", "content": content}] } response = requests.post(API_URL, headers=headers, json=data) return extract_base64_from_response(response.json()) # 使用示例 images = ["https://example.com/cat.jpg", "https://example.com/background.jpg"] result = creative_merge(images, "将猫咪自然地融入到背景中") ``` ## 💡 最佳实践 ### 编辑指令优化 ```python theme={null} # ❌ 模糊指令 instruction = "edit the image" # ✅ 清晰具体的指令 instruction = """ 1. 在图片右上角添加一轮明月 2. 调整整体色调为暖色系 3. 增加一些萤火虫的光点效果 4. 保持原图的主体不变 """ ``` ### 多图处理策略 ```python theme={null} def smart_multi_image_edit(images, instruction): """智能多图编辑""" if len(images) == 1: prompt = f"Edit this image: {instruction}" elif len(images) == 2: prompt = f"Combine these two images creatively: {instruction}" else: prompt = f"Process these {len(images)} images together: {instruction}" # 构建 content... return send_edit_request(content) ``` ## ❓ 常见问题 | 特性 | Nano Banana Pro | Nano Banana | | -------- | --------------- | ----------- | | **分辨率** | 1K/2K/4K | 1K(固定) | | **思考模式** | ✅ 有 | ❌ 无 | | **搜索接地** | ✅ 有 | ❌ 无 | | **多图支持** | 最多 14 张 | 最多 3 张 | | **价格** | \$0.09/次 | \$0.025/次 | | **推荐场景** | 专业设计、复杂合成 | 快速修改、简单编辑 | Nano Banana Pro 和 Nano Banana 2 都支持 4K。本页使用 Pro 的 Google 原生格式并添加 `imageSize` 参数: ```json theme={null} { "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": { "aspectRatio": "16:9", "imageSize": "4K" } } } ``` **重要**:必须使用大写 "K"(1K、2K、4K)。 支持常见的图片格式: * JPG/JPEG * PNG * WebP * GIF(静态) 建议使用 JPG 或 PNG 格式以获得最佳效果。 * **推荐大小**:单张图片 ≤ 5MB * **最大大小**:≤ 10MB * 过大的图片会增加处理时间,建议压缩后上传 * **Nano Banana Pro**:支持最多 14 张图片 * **Nano Banana**:支持最多 3 张图片 * 图片过多会影响生成质量和处理时间,建议 ≤ 4 张 | 模型 | 老张 API | Google Standard | 说明 | | ------------------- | --------- | -------------------------- | --------- | | **Nano Banana Pro** | \$0.09/次 | \$0.134(1K/2K)或 \$0.24(4K) | 官方价随分辨率变化 | | **Nano Banana** | \$0.025/次 | \$0.039(1K) | 旧版 1K 路线 | 实际价格和扣费以老张API控制台为准。 **完美支持!** Gemini 3 Pro 拥有顶级的多语言理解能力,您可以直接使用中文描述编辑需求。 1. **详细描述**:提供具体的编辑细节 2. **分步骤**:复杂编辑分多个步骤描述 3. **参考风格**:指定艺术风格 4. **保持主体**:明确说明需要保留的内容 Google 原生格式支持两种图片输入方式: **1. URL 方式(`fileData.fileUri`)** - 更简洁 ```json theme={null} { "fileData": { "fileUri": "https://example.com/image.png", "mimeType": "image/png" } } ``` **2. Base64 方式(`inline_data`)** - 更通用 ```json theme={null} { "inline_data": { "mime_type": "image/png", "data": "BASE64_ENCODED_DATA" } } ``` **⚠️ URL 方式限制:** * 图片 URL 必须是**海外公网可直接访问**的地址 * 图片服务器**不能有反爬机制**(Cloudflare 验证、验证码等) * 访问受限的图片,请使用 Base64 方式 **推荐场景:** * 图片托管在 AWS S3、Google Cloud Storage、Cloudinary 等 → 用 URL * 图片位于受限网络或有访问限制 → 用 Base64 ## 🎯 常见用例 1. **电商换模特**: 上传衣服图和模特图,生成穿搭效果 2. **装修设计**: 上传毛坯房照片,通过 Prompt 生成装修后效果 3. **游戏素材**: 快速修改游戏图标或角色外观 4. **社交媒体**: 将人像照片转换为各种艺术风格 5. **产品展示**: 将产品放入不同场景背景中 6. **创意海报**: 融合多张素材生成海报设计 ## 🔗 相关资源 学习如何使用 Nano Banana Pro 从文字生成图片 可选的 Nano Banana Standard 编辑版本 创建和管理你的 API 令牌 查看详细的价格表和计费说明 *** ## 📝 更新日志 **🔗 新增 fileData.fileUri 方式** * 支持直接传入在线图片 URL,无需下载和 Base64 编码 * 新增 Curl 和 Python 代码示例 * 注意:图片 URL 需海外公网可访问且无反爬机制 * 新增相关 FAQ 说明 **🚀 Nano Banana Pro 编辑专属页面** * 从混合文档拆分为独立的 Pro 版本文档 * 完整的 4K 分辨率编辑指南 * 详细的多图合成说明 * 完整的代码示例和最佳实践 * 与 Nano Banana Standard 的对比说明 # Nano Banana 2 API 图像生成与编辑 Source: https://docs.laozhang.ai/api-capabilities/nano-banana2-image Nano Banana 2 API 中文文档:稳定模型 gemini-3.1-flash-image,0.055 美元/次,支持 0.5K–4K 生成、编辑和双协议代码。 **Nano Banana 2:4K、高吞吐与价格平衡路线** * **稳定模型 ID**:`gemini-3.1-flash-image` * **老张API价格**:当前 **\$0.055/次**,实际价格与扣费以控制台为准 * **分辨率**:0.5K、1K、2K、4K * **完整能力**:文生图、图改图、文字渲染、OpenAI SDK 和 Gemini 原生格式 创建 API Key,查看余额和调用日志 影图 AI 即刻体验,无需写代码 老张API通过统一全球 HTTPS 入口提供按次调用,网关不设置固定低并发套餐档位,适合高频生产接入;实际吞吐仍受 Google 上游容量、账号状态和安全策略影响。低至 \$0.025/次的 1K 批量路线请看 [Nano Banana 2 Lite](/api-capabilities/nano-banana-2-lite-api),跨模型选择请看 [图像生成 API 选型指南](/api-capabilities/image-generation-guide)。 ## 前置要求 登录 [laozhang.ai 控制台](https://api2.laozhang.ai) 获取 API 密钥 编辑令牌设置,选择以下任一计费模式(两者价格相同): * **按量优先**(推荐):优先使用余额计费,余额不足时自动切换 * **按次计费**:每次调用直接扣费,适合预算控制严格的场景 两种模式**价格完全相同**,都是 \$0.055/张,仅扣费方式不同。 **按次扣费说明**:Nano Banana 2 以 Google 官方返回的成功调用为计费依据。若 Prompt 没有明确要求“生成图片/返回图片数据”,或文本、参考图触发 Google 官方版权 IP、敏感人物、敏感内容风控,可能出现“调用成功但没有图片返回”的情况,此时通常仍按一次成功调用扣费。429、5xx、网络超时、参数校验失败等官方异常请以控制台订单状态为准。 令牌设置 如果未设置计费模式,API调用会失败。必须先完成此配置! ## 模型简介 **Nano Banana 2** 是 Google **Gemini 3.1 Flash Image** (`gemini-3.1-flash-image`) 的市场名称。当前模型 ID 为稳定版,面向速度、高吞吐、4K 与通用生产图像任务。 **Nano Banana 2 的用法与 [Nano Banana Pro](/api-capabilities/nano-banana-pro-image) 基本一致**,只需把模型名替换为 `gemini-3.1-flash-image`,并按本页支持的分辨率与功能边界配置参数。 ## 📋 四款 Nano Banana 模型对比 | 模型 | 模型 ID | 计费方式 | 老张API价格 | 分辨率 | 速度 | 特色 | | ---------------------- | ----------------------------- | ---- | --------- | ------------- | ------- | ----------- | | **Nano Banana Pro** | `gemini-3-pro-image` | 按次计费 | \$0.09/张 | 1K/2K/4K | \~10秒 | 复杂指令与专业成片 | | **Nano Banana 2** | `gemini-3.1-flash-image` | 按次计费 | \$0.055/张 | 0.5K/1K/2K/4K | \~10秒 | 高吞吐、4K、通用生产 | | **Nano Banana 2 Lite** | `gemini-3.1-flash-lite-image` | 按次计费 | \$0.025/张 | 1K | 官方目标低延迟 | 低成本高频任务 | | **Nano Banana** | `gemini-2.5-flash-image` | 按次计费 | \$0.025/张 | 1K(固定) | \~10秒 | 旧项目兼容 | 💡 **如何选择?** * **追求极致质量和复杂指令**: 选 Nano Banana Pro(\$0.09/张) * **4K 与高吞吐通用任务**: 选 **Nano Banana 2**(\$0.055/张) * **1K 低成本高频任务**: 选 Nano Banana 2 Lite(\$0.025/张) * **旧项目兼容**: 保留 Nano Banana Standard(\$0.025/张) ## 🚀 快速开始:OpenAI 兼容模式 ### Curl 示例 ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/chat/completions" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3.1-flash-image", "stream": false, "messages": [ { "role": "user", "content": "a beautiful sunset over mountains" } ] }' ``` ### Python SDK 示例 ```python theme={null} from openai import OpenAI import base64 import re client = OpenAI( api_key="sk-YOUR_API_KEY", base_url="https://api2.laozhang.ai/v1" ) response = client.chat.completions.create( model="gemini-3.1-flash-image", messages=[ { "role": "user", "content": "a beautiful sunset over mountains" } ] ) # 提取 base64 图片数据 content = response.choices[0].message.content match = re.search(r'!\[.*?\]\((data:image/png;base64,.*?)\)', content) if match: base64_data = match.group(1).split(',')[1] image_data = base64.b64decode(base64_data) with open('output.png', 'wb') as f: f.write(image_data) print("✅ 图片已保存: output.png") ``` ## 🎨 图改图 Nano Banana 2 同样支持图改图功能,用法与 Pro 完全一致。价格在请求中传入参考图片和编辑指令,并将模型名设为 `gemini-3.1-flash-image`。 ```python theme={null} # 图改图示例(OpenAI 兼容模式) response = client.chat.completions.create( model="gemini-3.1-flash-image", messages=[{ "role": "user", "content": [ {"type": "text", "text": "把这张图变成梵高星空风格的油画"}, {"type": "image_url", "image_url": {"url": "https://example.com/your-image.jpg"}} ] }] ) ``` 更多图改图用法(多图融合、4K 输出、Google 原生格式等),请参考 [Nano Banana Pro 图改图文档](/api-capabilities/nano-banana-pro-image-edit),将模型名替换为 `gemini-3.1-flash-image` 即可。 ## 📖 完整用法指南 **Nano Banana 2 的调用方式与 Nano Banana Pro 完全相同**,包括 OpenAI 兼容模式和 Google 原生格式。价格将模型名从 `gemini-3-pro-image` 替换为 `gemini-3.1-flash-image`,其他代码无需修改。 4K 分辨率、Google 原生格式、多种纵横比、完整代码示例 风格转换、多图融合、4K 高清编辑、URL 输入方式 创建和管理你的 API 令牌 查看详细的价格表和计费说明 ## ❓ 常见问题 | 特性 | Nano Banana Pro | Nano Banana 2 | | ---- | -------------------- | ------------------------ | | 模型 | `gemini-3-pro-image` | `gemini-3.1-flash-image` | | 技术 | Gemini 3 Pro | Gemini 3.1 Flash | | 分辨率 | 1K/2K/4K | 0.5K/1K/2K/4K | | 价格 | \$0.09/张 | \$0.055/张 | | 调用方式 | 完全相同 | 完全相同 | 两者使用相同的核心请求结构。Nano Banana 2 更偏速度与高吞吐,Pro 更偏复杂专业资产。 先将模型名从 `gemini-3-pro-image` 改为 `gemini-3.1-flash-image`,再检查分辨率、Search grounding、参考图和响应解析是否符合本页能力边界。 **完全支持!** 使用以下端点: ``` https://api2.laozhang.ai/v1beta/models/gemini-3.1-flash-image:generateContent ``` 支持 14 种离散纵横比和 0.5K/1K/2K/4K 分辨率。主要请求结构与 Pro 一致,但能力边界以本页为准。 **支持!** 文生图和图改图功能完整,参考 [Pro 图改图文档](/api-capabilities/nano-banana-pro-image-edit) 即可。 老张API当前为 \$0.055/次,实际价格与扣费以控制台为准。Google Standard 当前随分辨率从 \$0.045(0.5K)到 \$0.151(4K)变化,比较时必须使用相同分辨率。 Nano Banana 2 本身面向高吞吐场景,老张API网关不设置固定低并发套餐档位;Google 上游仍可能受 RPM/IPM、项目配额、实时容量和安全策略影响。持续大流量上线前请做容量确认。 在 [令牌管理](https://api2.laozhang.ai/token) 创建 API Key,通过 `Authorization: Bearer YOUR_API_KEY` 鉴权。不要把 Key 写进前端代码或公开仓库。 *** ## 📝 更新日志 **Nano Banana 2 当前使用稳定模型 ID** * 使用 `gemini-3.1-flash-image`,不再使用已下线的 preview ID * 价格已同步为当前页面标价,成本表现以控制台价格为准 * 支持文生图、图改图和 0.5K/1K/2K/4K 分辨率 # OpenAI Responses API 接入与兼容边界 Source: https://docs.laozhang.ai/api-capabilities/openai-responses 通过老张API调用 /v1/responses:最小请求、输入输出、状态、流式与工具的条件性支持,以及完整的生产验收方法。 ## 直接答案 老张API提供 `POST https://api2.laozhang.ai/v1/responses` 兼容入口。使用前必须确认当前模型和 API Key 分组已开放 Responses API。OpenAI 官方支持文本、图片、文件、工具和对话状态,不代表老张API所有线路已完整透传这些能力。 本页最后核对日期为 **2026 年 9 月 2 日**。上游协议以 [OpenAI Responses API](https://developers.openai.com/api/reference/cli/resources/responses/methods/create) 为准;老张API模型、分组和价格以[控制台](https://api2.laozhang.ai/account/pricing)为准。 ## 最小请求 ```bash theme={null} curl "https://api2.laozhang.ai/v1/responses" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5.6", "input": "Reply only with: connected" }' ``` Python: ```python theme={null} import os from openai import OpenAI client = OpenAI( api_key=os.environ["LAOZHANG_API_KEY"], base_url="https://api2.laozhang.ai/v1", ) response = client.responses.create( model="gpt-5.6", input="Reply only with: connected", ) print(response.output_text) ``` 示例模型不代表每个账户分组都可用;从[模型目录](/models)复制当前模型 ID。 ## 核心字段 | 字段 | 说明 | 兼容边界 | | ----------------------- | ------------------------- | ------------------------------------------------ | | `model` | 目标模型 ID | 必须在当前 API Key 分组可用 | | `input` | 文本或结构化输入项 | 图片、文件和多模态需逐模型验证 | | `instructions` | 本次响应的 system/developer 指令 | 与 `previous_response_id` 组合时不会自动继承旧 instructions | | `previous_response_id` | 延续此前响应 | 存储、检索和多轮行为需实测 | | `max_output_tokens` | 输出上限 | 包含可见输出和推理 Token;模型上限不同 | | `tools` / `tool_choice` | 内置、MCP 或函数工具 | 老张API不保证所有 OpenAI 工具已透传 | | `stream` | 流式响应 | SSE 事件、断线重试和 usage 需验收 | | `store` | OpenAI 上游的响应存储控制 | 网关和上游数据边界需分别核对 | ## 不要假设 `output[0]` 是最终文本 Responses `output[]` 可以包含 message、工具调用和其他 item。OpenAI SDK支持时优先使用 `response.output_text` 读取聚合文本;需要处理工具时,应按 item `type` 分支解析。 ## 工具与高级能力 OpenAI 官方 Responses API可描述 web search、file search、computer、MCP 和 function calling 等工具。对老张API,每项只能标记为: * **verified**:有测试日期、模型、分组、请求和响应证据; * **conditional**:入口存在,但有明确限制; * **not tested**:不得写成支持。 当前页面不对未提供证据的内置工具作统一承诺。 ## 生产验收 至少测试: 1. 简单文本输入与 `output_text`; 2. `instructions` 和结构化输入; 3. `stream: true` 的事件和结束条件; 4. function calling 的完整来回; 5. 无效工具、无效字段和不支持模型; 6. 400、401、403、429、5xx 和超时; 7. usage、调用日志、重试和实际扣费; 8. 数据政策、上游存储和敏感内容边界。 ## 相关文档 * [OpenAI 官方 Responses API](https://developers.openai.com/api/reference/cli/resources/responses/methods/create) * [OpenAI SDK 接入](/api-capabilities/openai-sdk) * [OpenAI 模型接入指南](/api-reference/openai) * [Codex CLI 配置](/scenarios/programming/codex-cli) * [数据与日志边界](/faq/data-security) # 使用 OpenAI 官方 SDK 接入老张API Source: https://docs.laozhang.ai/api-capabilities/openai-sdk 用当前 OpenAI Python 和 JavaScript SDK 配置老张API Base URL,调用 Responses 或 Chat Completions,并验证 SDK 版本、模型和兼容边界。 ## 直接答案 OpenAI 官方 SDK 通常允许自定义 API Key 和 Base URL,因此可以用于老张API的 OpenAI 兼容端点。但这不等于“零代码修改”或所有 SDK、模型和方法完全兼容。先确认目标模型支持 Responses、Chat Completions 或 Images 中的哪个端点,再用固定 SDK 版本做验收。 本页最后核对日期为 **2026 年 9 月 2 日**。OpenAI 官方协议与 SDK 示例以 [OpenAI API 文档](https://developers.openai.com/api/docs/models)为准;老张API模型和分组以[控制台](https://api2.laozhang.ai/account/pricing)为准。 ## Python 安装或升级: ```bash theme={null} python -m pip install --upgrade openai ``` Responses API: ```python theme={null} import os from openai import OpenAI client = OpenAI( api_key=os.environ["LAOZHANG_API_KEY"], base_url="https://api2.laozhang.ai/v1", ) response = client.responses.create( model="gpt-5.6", input="Reply only with: connected", ) print(response.output_text) ``` Chat Completions: ```python theme={null} response = client.chat.completions.create( model="gpt-5.6", messages=[{"role": "user", "content": "Reply only with: connected"}], ) print(response.choices[0].message.content) ``` ## JavaScript / TypeScript ```bash theme={null} npm install openai ``` ```javascript theme={null} import OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.LAOZHANG_API_KEY, baseURL: "https://api2.laozhang.ai/v1", }); const response = await client.responses.create({ model: "gpt-5.6", input: "Reply only with: connected", }); console.log(response.output_text); ``` ## 其他 SDK OpenAI会更新官方语言库、方法名和类型定义。使用 .NET、Java、Go、Ruby 或其他客户端前,应先确认: * 该库是否由 OpenAI 官方维护; * 当前版本是否支持自定义 Base URL; * 是否实现目标端点和流式事件; * 是否会严格校验 OpenAI 官方模型枚举; * 返回对象是否保留网关新增字段。 本页不再把第三方库列为“OpenAI 官方 SDK”。 ## 兼容性验收 1. 固定 SDK 和版本; 2. 从控制台复制准确模型 ID; 3. 分别验证 Responses、Chat Completions 或 Images; 4. 验证流式、工具、多模态和错误分支; 5. 对比 usage 与调用日志; 6. 检查 SDK 升级是否改变字段名或解析行为。 如果只调用 `/v1/models` 成功,仍不能证明 SDK 工作流可用。对 Codex CLI 等工具,还必须验证 Responses API、SSE 流式和工具调用合同。 ## 密钥安全 使用服务器端环境变量或密钥管理服务。不要在代码、截图、日志或 `echo` 输出中暴露完整密钥。参见[API Key 管理](/faq/token-management)。 ## 相关文档 * [OpenAI Responses API](/api-capabilities/openai-responses) * [Chat Completions API](/api-reference/chat-completions) * [OpenAI 模型接入指南](/api-reference/openai) * [OpenAI 官方 Responses API](https://developers.openai.com/api/reference/cli/resources/responses/methods/create) # Seedance 真人与虚拟人素材 API Source: https://docs.laozhang.ai/api-capabilities/seedance2-human-virtual-workflow 使用 LaoZhang API Key 调用 yingtu.ai 的 Seedance 真人与虚拟人素材 API,完成真人认证、人物素材创建、状态查询与视频任务引用。 Seedance 真人素材与虚拟人素材 API 托管在 `https://yingtu.ai`。所有端点使用 LaoZhang API Key 进行 Bearer 认证,不要求 YingTu 或 Google 登录态,也不需要单独创建 YingTu API Key。 **Base URL:** `https://yingtu.ai` **接口参考:** * [真人素材 API(中文)](https://yingtu.ai/zh/docs/seedance-assets/real-person) * [虚拟人素材 API(中文)](https://yingtu.ai/zh/docs/seedance-assets/virtual-human) 请求字段、响应对象、错误码和限流规则以以上 YingTu 接口参考为准。 ## 能力状态 | 能力 | 状态 | 接入方式 | | ------------- | -- | ----------------------------------------------- | | 虚拟人素材 | 可用 | 从一张公网 HTTPS 图片创建可复用的 Asset ID | | 真人素材 | 可用 | 真人本人完成官方 H5 授权与活体认证后创建 Asset ID | | 素材状态查询 | 可用 | 使用创建响应返回的公开 `id` 查询,直到 `Active` 或 `Failed` | | Seedance 视频生成 | 可用 | 将 `asset://...` URI 作为 `reference_image` 加入视频任务 | 真人素材必须由本人完成官方 H5 身份、授权与活体认证。基于真实人物制作的虚拟形象也必须取得相应的肖像、声音、姓名、商标和使用授权。 ## 认证 所有素材接口都使用 LaoZhang API Key: ```http theme={null} Authorization: Bearer Content-Type: application/json ``` 调用方不需要 YingTu 登录态、Google 登录态或 Cookie。API Key 用于验证 LaoZhang API 账户与可用额度;认证记录和素材记录会绑定到创建它们的同一个 API Key。后续查询或创建真人素材时必须继续使用该 Key。 API Key 应从服务端环境变量读取,例如 `LAOZHANG_API_KEY`。完整 API Key 不得写入浏览器代码、URL、日志或技术支持消息。 ## 接口一览 ### 虚拟人素材 | Method | Path | 用途 | | ------ | ------------------------------------------ | ------------------- | | `POST` | `/api/seedance-assets/virtual-humans` | 从公网 HTTPS 图片创建虚拟人素材 | | `GET` | `/api/seedance-assets/virtual-humans/{id}` | 查询素材处理状态 | ### 真人素材 | Method | Path | 用途 | | ------ | ------------------------------------------------------------------- | -------------- | | `POST` | `/api/seedance-assets/real-persons/verifications` | 创建官方 H5 真人认证会话 | | `GET` | `/api/seedance-assets/real-persons/verifications/{verification_id}` | 查询认证状态 | | `POST` | `/api/seedance-assets/real-persons` | 认证成功后创建真人素材 | | `GET` | `/api/seedance-assets/real-persons/{id}` | 查询素材处理状态 | ## 虚拟人素材接入 虚拟人素材适用于数字人、品牌角色、虚拟主播和企业形象等场景。创建时提交一张无需认证即可读取的公网 HTTPS 图片;私网、环回地址和需要 Cookie 或签名登录的图片地址会被拒绝。 ```bash theme={null} curl --request POST \ --url https://yingtu.ai/api/seedance-assets/virtual-humans \ --header "Authorization: Bearer $LAOZHANG_API_KEY" \ --header "Content-Type: application/json" \ --data '{ "image_url": "https://cdn.example.com/avatar.webp", "name": "brand-avatar" }' ``` 创建成功会返回公开查询 `id`、素材 `uri` 和初始状态: ```json theme={null} { "request_id": "req_01JZEXAMPLE", "id": "ast_eyJvcGFxdWUiOiJleGFtcGxlIn0", "object": "seedance.asset", "kind": "virtual_human", "name": "brand-avatar", "status": "Processing", "uri": "asset://asset-20260729-example" } ``` `id` 用于 YingTu 素材状态查询;`uri` 用于 Seedance 视频任务。两个字段都应原样保存,不应根据示例拼接或解析内部标识。 ## 真人素材接入 真人素材比虚拟人素材多一个授权与活体认证步骤。API 调用者可以在自己的产品中发起流程,但 `verification_url` 必须交给被展示的真人本人完成。 调用 `POST /api/seedance-assets/real-persons/verifications`,提交认证完成后的 HTTPS `callback_url`。可选 `language` 为 `zh`、`en` 或 `zh-Hant`,默认 `zh`。 将响应中的一次性 `verification_url` 安全地交付给本人。认证链接有效期为 30 分钟,不应写入日志或长期保存。 从回调地址的 `verification_id` 查询认证状态。`pending` 查询仍返回 HTTP 200;只有状态变为 `verified` 后才能创建真人素材。 提交同一人物的清晰正面公网 HTTPS 图片。创建后使用返回的公开 `id` 查询素材,直到状态变为 `Active`。 创建认证会话: ```bash theme={null} curl --request POST \ --url https://yingtu.ai/api/seedance-assets/real-persons/verifications \ --header "Authorization: Bearer $LAOZHANG_API_KEY" \ --header "Content-Type: application/json" \ --data '{ "callback_url": "https://customer.example.com/seedance/verified", "language": "zh" }' ``` 认证成功后创建真人素材: ```bash theme={null} curl --request POST \ --url https://yingtu.ai/api/seedance-assets/real-persons \ --header "Authorization: Bearer $LAOZHANG_API_KEY" \ --header "Content-Type: application/json" \ --data '{ "verification_id": "ver_eyJvcGFxdWUiOiJleGFtcGxlIn0", "image_url": "https://cdn.example.com/presenter.webp", "name": "presenter-a" }' ``` 真人人脸图片不能作为普通 `image_url` 输入来替代真人素材流程。需要保持真人身份或人物一致性时,必须先完成专用认证并获得 `Active` 的真人素材 URI。 ## 查询素材状态 虚拟人和真人素材都使用创建响应中的公开 `id` 查询。例如: ```bash theme={null} curl --request GET \ --url https://yingtu.ai/api/seedance-assets/virtual-humans/ast_eyJvcGFxdWUiOiJleGFtcGxlIn0 \ --header "Authorization: Bearer $LAOZHANG_API_KEY" ``` | 状态 | 含义 | 下一步 | | ------------ | -------- | ----------------------------------- | | `Processing` | 上游正在处理素材 | 稍后继续查询;此状态不可提交视频任务 | | `Active` | 素材可用 | 将响应中的 `asset://...` URI 用于 Seedance | | `Failed` | 素材处理失败 | 读取 `failure` 对象,修正图片或授权问题后重新创建 | 素材处理失败时,查询接口可能仍返回 HTTP 200,并通过 `status=Failed` 和 `failure` 对象表达业务失败。因此不能只用 HTTP 状态码判断素材是否可用。 ## 在 Seedance 视频任务中引用素材 拿到 `Active` 的真人或虚拟人素材后,把响应中的完整 `asset://...` URI 作为 `reference_image` 加入 `content`。视频生成仍调用 LaoZhang API 的 [Seedance 2.0 视频生成 API](/api-capabilities/seedance2-video-generation): ```json theme={null} { "model": "doubao-seedance-2-0-260128", "content": [ { "type": "text", "text": "真人讲解新品,虚拟主持人在一旁互动,镜头缓慢推进。" }, { "type": "image_url", "image_url": { "url": "asset://asset-real-person-example" }, "role": "reference_image" }, { "type": "image_url", "image_url": { "url": "asset://asset-virtual-human-example" }, "role": "reference_image" } ], "ratio": "16:9", "duration": 4, "resolution": "720p", "watermark": false, "generate_audio": true } ``` 素材创建与状态查询使用 `https://yingtu.ai/api/seedance-assets/...`;视频任务创建与结果查询继续使用 `https://api2.laozhang.ai/seedance/api/v3/...`。两个域名承担不同步骤,但都使用 LaoZhang API Key。 ## 限制、错误与验收 * 每个 API Key 每小时最多 12 次创建类 `POST` 请求;素材状态 `GET` 查询不计入。若返回 `429`,按 `Retry-After` 等待。 * 真人认证链接有效期为 30 分钟。过期后返回 `410 verification_expired`,需要创建新会话。 * 认证仍为 `pending` 时提前创建真人素材会返回 `409 verification_pending`。 * `403 capability_unavailable` 表示服务端账户未开通私域人物素材权益,更换图片无法解决该错误。 * 所有成功和错误响应都包含 `request_id`。排障信息应包含该值,但不得包含完整 API Key。 * 接入验收以素材查询结果为 `Active`,并且其 `asset://...` URI 能在 Seedance 任务中正常引用。 ## 相关文档 * [真人素材 API 完整参考](https://yingtu.ai/zh/docs/seedance-assets/real-person) * [虚拟人素材 API 完整参考](https://yingtu.ai/zh/docs/seedance-assets/virtual-human) * [Seedance 2.0 视频生成 API](/api-capabilities/seedance2-video-generation) # Seedance 2.0 视频生成 API Source: https://docs.laozhang.ai/api-capabilities/seedance2-video-generation 通过 LaoZhang API 调用 Seedance 2.0 与 Seedance 2.0 fast,支持多模态视频生成,并说明预扣费、多退少补的两条日志与 SeeDance2 0.18x 计费系数。 **Base URL:** `https://api2.laozhang.ai/seedance/api/v3` **接口:** 1. `POST /contents/generations/tasks`:创建视频生成任务 2. `GET /contents/generations/tasks/{id}`:查询任务状态与结果 3. `GET https://api2.laozhang.ai/v1/videos/{id}/content`:兼容下载已成功任务的视频文件 视频生成是异步任务。创建接口通常只返回任务 `id`,需要轮询查询接口;成功后可以从 `content.video_url` 读取签名下载地址,或使用 `/v1/videos/{id}/content` 直接下载视频文件。 **计费日志请先看这里** * 一次 Seedance 视频任务会出现两条消费日志,但**不是重复扣费**。第一条是提交任务时的预扣记录,第二条是任务完成后的实际结算记录;两条记录共同组成这一次任务的最终费用。 * `SeeDance2` 显示的 `0.18x` **不是折扣**,而是把上游人民币计价口径换算为站内美元余额的计费系数。LaoZhang API 实际价格通常比官方公开参考价高约 `10% - 20%`,具体以实际 tokens 和日志结算为准。 **真人面部与人物素材说明** 真人素材和虚拟人素材 API 托管在 `yingtu.ai`,并使用 LaoZhang API Key 鉴权。包含真人身份或需要人物一致性的任务,不能用普通真人人脸图片替代专用素材流程。按 [真人与虚拟人素材 API](/api-capabilities/seedance2-human-virtual-workflow) 完成真人认证或虚拟人素材创建;素材变为 `Active` 后,将返回的 `asset://...` URI 作为 `reference_image` 提交。 ## 创建令牌 在 [令牌管理](https://api2.laozhang.ai/token) 创建用于 Seedance 2.0 的令牌时,按下面配置: | 配置项 | 选择 | | ---- | ------------------------------------- | | 计费模式 | `按量优先` | | 选择分组 | `SeeDance2` | | 计费系数 | `0.18x`,用于人民币计价与美元余额之间的换算,不是折扣 | | 建议 | 为 Seedance 2.0 单独创建令牌,便于后续查看调用日志和扣费记录 | Seedance 2.0 请求必须使用选择了 `SeeDance2` 分组的令牌。默认分组或其他视频分组的令牌可能出现无可用渠道、模型不匹配或计费分组不正确的问题。 不要把官方路径 `/api/v3/contents/generations/tasks` 直接拼到 `https://api2.laozhang.ai` 后面。请使用带 `/seedance/api/v3` 前缀的 Base URL。 当前中转路径下,`GET /contents/generations/tasks` 不带任务 ID 的列表查询会返回站点 HTML,不应作为业务接口使用。业务侧请使用创建任务和按任务 ID 查询两个接口完成闭环。 ## 计费与价格 以下为上游官方公开的人民币价格口径,用于接入前成本预估。LaoZhang API 余额和日志以美元显示,`SeeDance2` 分组通过 `0.18x` 系数完成计价口径换算。实际扣费以控制台模型价格、任务返回的 `usage.completion_tokens` 和两条消费日志的合计金额为准。接入前可按比官方公开参考价高约 `10% - 20%` 进行成本预估。 官方参考:[火山方舟模型价格](https://www.volcengine.com/docs/82379/1544106?lang=zh)。 Seedance 2.0 官方采用 token 计费。费用与输出分辨率、宽高比、输出时长、是否包含输入视频以及任务实际 `usage.completion_tokens` 相关,不是固定的单次价格。官方估算公式: ```text theme={null} 费用 = token 单价 × token 用量 token 用量 ≈ (输入视频时长 + 输出视频时长) × 输出视频宽 × 输出视频高 × 帧率 / 1024 ``` ### 官方价格示例 以下示例来自官方价格页,规格固定为 `16:9`、输出 `5` 秒视频。 | 模型 | 输入条件 | 480p 官方示例 | 720p 官方示例 | 1080p 官方示例 | | --------------------------------- | --------------- | ----------------- | ------------------ | ------------------- | | `doubao-seedance-2-0-260128` | 不含输入视频 | `2.31 元/个` | `4.97 元/个` | `12.39 元/个` | | `doubao-seedance-2-0-fast-260128` | 不含输入视频 | `1.86 元/个` | `4.00 元/个` | 不支持 | | `doubao-seedance-2-0-260128` | 包含 `2-15` 秒输入视频 | `2.53 - 5.62 元/个` | `5.44 - 12.10 元/个` | `13.56 - 30.13 元/个` | | `doubao-seedance-2-0-fast-260128` | 包含 `2-15` 秒输入视频 | `1.99 - 4.42 元/个` | `4.28 - 9.50 元/个` | 不支持 | 包含 `video_url` 输入时,官方会把输入视频处理量和输出视频生成量一起纳入计费。最终费用应以任务查询响应中的 `usage.completion_tokens`、控制台账单和 LaoZhang API 调用日志为准。 ### 为什么一次任务会出现两条消费日志? Seedance 2.0 是异步生成任务。创建任务时,系统还不知道最终视频会消耗多少 tokens,因此无法一次完成准确结算。系统会先按预计用量预扣,任务结束后再按实际 `usage.completion_tokens` 补扣或退回差额。 因此,一次任务会显示两条日志,但它们不是两次独立调用,也不是对同一个视频重复收取两次完整费用: | 日志记录 | 出现时间 | 含义 | 日志中可见的信息 | | ------- | ----- | ---------------------------------------- | ----------------------------------------------- | | 预扣费 | 创建任务时 | 按预计用量先扣除一部分费用 | 标记为“非流式”,显示调用令牌、`SeeDance2` 分组、`0.18x` 倍率和来源 IP | | 实际补扣或退回 | 任务完成时 | 根据最终 `usage.completion_tokens` 重新结算,多退少补 | 标记为“流式”,显示补全 tokens;通常不重复显示令牌、分组和 IP | 第二条“流式”日志只是系统生成的结算记录,不代表客户端调用了流式视频接口,也不代表另一个 API Key 发起了新请求。该记录不显示令牌、分组或 IP 属于正常现象;请求来源应查看第一条预扣日志。 **最终费用 = 预扣日志金额 + 完成结算日志金额。** 例如,第一条预扣约 `$0.90`,第二条补扣约 `$3.58`,这一次任务的最终费用约为 `$4.48`,不是 `$0.90` 和 `$3.58` 两次独立视频消费。如果实际用量低于预估,第二条记录也可能是退回差额。 对账时建议: 1. 在 [调用日志](https://api2.laozhang.ai/log) 搜索 `doubao-seedance-2-0`。 2. 用预扣费记录确认调用令牌、分组和来源 IP。 3. 用完成结算记录查看实际补全 tokens。 4. 在异步任务页按任务 ID、提交时间和完成时间核对视频结果;不要把两条日志当成两个视频。 ### `SeeDance2` 的 `0.18x` 计费系数是什么? `0.18x` **不是折扣**,也不是在最终账单上再乘一次 `0.18`。它是 Seedance 2.0 专属的币种计费换算系数:上游模型按人民币价格口径计价,而 LaoZhang API 的余额与消费日志以美元显示。 可以按下面的方式理解: ```text theme={null} 站内美元计费数值 ≈ 上游人民币计价数值 × 0.18 换算回人民币后:0.18 × 7 = 1.26 ``` `0.18 × 7 = 1.26` 是币种计费系数的名义换算结果,不表示每个任务固定上浮 `26%`。Seedance 任务仍按模型单价和实际 tokens 精确结算;接入前可按 LaoZhang API 实际价格通常比官方公开参考价高约 `10% - 20%` 进行预估。最终费用以两条消费日志的合计金额为准。 任务详情可能把该系数显示为 `topup_convert_ratio: 0.18`,同时显示 `group_ratio: 1`。这两个字段用途不同,`group_ratio: 1` 不表示遗漏了 `0.18x`。预扣费日志已经显示 `SeeDance2` 和 `0.18x`,而完成补扣日志不重复显示分组,也不代表按全价结算。 ## 接口流程 调用 `POST /contents/generations/tasks`,在 `model` 中传入纯模型 ID,并通过 `content` 数组传入提示词和可选素材。 调用 `GET /contents/generations/tasks/{id}`,检查 `status` 是否进入终态。 当任务成功后,从 `content.video_url` 下载视频,或调用兼容下载接口 `/v1/videos/{id}/content` 下载视频文件;如果创建时设置了 `return_last_frame=true`,还可以读取 `content.last_frame_url`。 状态值: | 状态 | 说明 | | ----------- | ------------------------------------- | | `queued` | 任务排队中 | | `running` | 任务生成中 | | `succeeded` | 任务成功,结果在 `content` 中 | | `completed` | LaoZhang 兼容任务对象中的成功终态,等价于 `succeeded` | | `failed` | 任务失败,查看 `error` | | `expired` | 任务过期 | `GET /contents/generations/tasks/{id}` 的方舟透传结构以 `status=succeeded` 和 `content.video_url` 为准。LaoZhang 兼容任务对象可能同时出现 `status=completed`、顶层 `result_url`,以及嵌套的 `data.content.video_url`。客户端建议兼容这些成功结果。下载阶段建议保留 `/v1/videos/{id}/content` 作为稳定入口。 ## 模型 `model` 只填纯模型 ID。不要填写控制台接入点 ID,也不要在模型名后附加中文备注。 | 模型 ID | 说明 | 推荐用途 | | --------------------------------- | ----------------- | ---------------------------------------- | | `doubao-seedance-2-0-fast-260128` | Seedance 2.0 fast | 快速生成、文生视频、图片参考、视频参考、音频参考、多模态参考、视频延长、轨道补齐 | | `doubao-seedance-2-0-260128` | Seedance 2.0 标准版 | 标准质量、首尾帧、视频编辑、对稳定性要求更高的任务 | 不要在客户端请求中传入 `ep-...` 接入点 ID。LaoZhang 中转按纯模型 ID 匹配通道。 ## 创建任务 创建 Seedance 2.0 视频生成任务。 ### 请求头 | Header | 必填 | 说明 | | ----------------- | ---- | ------------------------------------------------------- | | `Authorization` | 是 | `Bearer $API_KEY`,使用选择了 `SeeDance2` 分组的 LaoZhang API 令牌 | | `Content-Type` | 是 | `application/json` | | `Accept` | 建议 | `application/json` | | `Accept-Encoding` | 调试建议 | `identity`,可避免部分客户端调试时的压缩解码干扰 | ### 请求参数 | 参数 | 类型 | 必填 | 说明 | | ------------------- | ------- | -- | ------------------------------------------------- | | `model` | string | 是 | 纯模型 ID,如 `doubao-seedance-2-0-fast-260128` | | `content` | array | 是 | 多模态内容数组,文本提示词也放在这里 | | `ratio` | string | 否 | `16:9`、`4:3`、`1:1`、`3:4`、`9:16`、`21:9`、`adaptive` | | `duration` | integer | 否 | Seedance 2.0 支持 `4` 到 `15` 秒,也支持 `-1` 自适应 | | `frames` | integer | 否 | 按帧数控制输出,优先级高于 `duration` | | `resolution` | string | 否 | 常用 `720p`。Seedance 2.0 fast 不支持 `1080p` | | `watermark` | boolean | 否 | 是否添加水印 | | `generate_audio` | boolean | 否 | 是否生成或使用音频 | | `return_last_frame` | boolean | 否 | 成功后是否返回最后一帧图片 URL | ### `content` 内容项 | 字段 | 类型 | 必填 | 说明 | | --------------- | ------ | -------------------- | ------------------------------------------ | | `type` | string | 是 | `text`、`image_url`、`video_url`、`audio_url` | | `text` | string | `type=text` 时必填 | 生成提示词 | | `image_url.url` | string | `type=image_url` 时必填 | 图片 URL | | `video_url.url` | string | `type=video_url` 时必填 | 视频 URL | | `audio_url.url` | string | `type=audio_url` 时必填 | 音频 URL | | `role` | string | 素材项建议填写 | 素材用途 | 常用 `role`: | role | 用途 | | ----------------- | ------- | | `first_frame` | 首帧图片 | | `last_frame` | 尾帧图片 | | `reference_image` | 多模态参考图片 | | `reference_video` | 多模态参考视频 | | `reference_audio` | 多模态参考音频 | 音频不能作为唯一参考素材单独传入。使用 `audio_url` 时,需要同时提供至少一个图片或视频素材。 ## 文生视频 ```bash theme={null} curl -X POST "https://api2.laozhang.ai/seedance/api/v3/contents/generations/tasks" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "Authorization: Bearer $API_KEY" \ --data-raw '{ "model": "doubao-seedance-2-0-fast-260128", "content": [ { "type": "text", "text": "第一人称视角果茶广告,4秒,快节奏剪辑,展示苹果果茶制作与成品,清爽明亮风格" } ], "ratio": "16:9", "duration": 4, "resolution": "720p", "watermark": false, "generate_audio": false, "return_last_frame": true }' ``` 创建成功时通常只返回任务 ID: ```json theme={null} { "id": "cgt-example-task-id" } ``` ## 首尾帧 ```bash theme={null} curl -X POST "https://api2.laozhang.ai/seedance/api/v3/contents/generations/tasks" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $API_KEY" \ --data-raw '{ "model": "doubao-seedance-2-0-260128", "content": [ { "type": "text", "text": "首帧为图片1,尾帧为图片2。生成从红苹果产品特写到苹果果茶成品杯的顺滑商业转场,保持产品外观一致,不出现人物。" }, { "type": "image_url", "image_url": { "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg" }, "role": "first_frame" }, { "type": "image_url", "image_url": { "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic2.jpg" }, "role": "last_frame" } ], "ratio": "adaptive", "duration": 4, "resolution": "720p", "watermark": false, "generate_audio": false, "return_last_frame": true }' ``` ## 图片、视频、音频参考 ```bash theme={null} curl -X POST "https://api2.laozhang.ai/seedance/api/v3/contents/generations/tasks" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $API_KEY" \ --data-raw '{ "model": "doubao-seedance-2-0-fast-260128", "content": [ { "type": "text", "text": "使用图片1作为苹果产品细节参考,使用视频1作为第一视角运镜参考,使用音频1作为背景音乐。生成简洁的苹果果茶广告,包含食材快切和成品杯特写。" }, { "type": "image_url", "image_url": { "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg" }, "role": "reference_image" }, { "type": "video_url", "video_url": { "url": "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_tea_video1.mp4" }, "role": "reference_video" }, { "type": "audio_url", "audio_url": { "url": "https://ark-project.tos-cn-beijing.volces.com/doc_audio/r2v_tea_audio1.mp3" }, "role": "reference_audio" } ], "ratio": "16:9", "duration": 4, "resolution": "720p", "watermark": false, "generate_audio": true }' ``` ## 查询任务 查询视频生成任务状态。 ```bash theme={null} curl "https://api2.laozhang.ai/seedance/api/v3/contents/generations/tasks/cgt-example-task-id" \ -H "Authorization: Bearer $API_KEY" ``` 成功响应示例: ```json theme={null} { "id": "cgt-example-task-id", "model": "doubao-seedance-2-0-fast-260128", "status": "succeeded", "ratio": "16:9", "duration": 4, "resolution": "720p", "content": { "video_url": "https://example.com/generated-video.mp4", "last_frame_url": "https://example.com/last-frame.jpeg" }, "usage": { "completion_tokens": 87300, "total_tokens": 87300 } } ``` 结果 URL 是临时签名地址,通常有效期为 24 小时。生产环境建议任务成功后立即下载,并转存到自己的对象存储。 ## 下载结果 通过 LaoZhang 兼容下载接口下载已成功任务的视频文件。 兼容下载接口使用 `https://api2.laozhang.ai/v1`,不是 `/seedance/api/v3`。任务成功后,该接口会根据服务端保存的任务结果定位视频文件,并返回或重定向到可下载的 MP4。 ```bash theme={null} curl -L "https://api2.laozhang.ai/v1/videos/cgt-example-task-id/content" \ -H "Authorization: Bearer $API_KEY" \ --output seedance-output.mp4 ``` 如果查询详情接口正常返回 `content.video_url`,可以直接下载该签名地址;如果查询响应体异常、没有解析到 URL,或只需要稳定拿到视频文件,建议使用 `/v1/videos/{id}/content`。 ## Python 完整示例 ```python theme={null} import os import time import requests API_KEY = os.environ["API_KEY"] BASE_URL = "https://api2.laozhang.ai/seedance/api/v3" DOWNLOAD_BASE_URL = "https://api2.laozhang.ai/v1" SUCCESS_STATUSES = {"succeeded", "completed", "success"} headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json", "Accept": "application/json", "Accept-Encoding": "identity", } def find_video_url(data): if isinstance(data, dict): for key in ("video_url", "videoUrl", "result_url", "url"): value = data.get(key) if isinstance(value, str) and value.startswith("http"): return value for value in data.values(): found = find_video_url(value) if found: return found if isinstance(data, list): for item in data: found = find_video_url(item) if found: return found return None def task_status(data): status = data.get("status") if isinstance(status, str): return status.lower() nested = data.get("data") if isinstance(nested, dict): return task_status(nested) return "unknown" payload = { "model": "doubao-seedance-2-0-fast-260128", "content": [ { "type": "text", "text": "第一人称视角果茶广告,4秒,快节奏剪辑,清爽明亮风格", } ], "ratio": "16:9", "duration": 4, "resolution": "720p", "watermark": False, "generate_audio": False, "return_last_frame": True, } create_resp = requests.post( f"{BASE_URL}/contents/generations/tasks", headers=headers, json=payload, timeout=60, ) create_resp.raise_for_status() task_id = create_resp.json()["id"] while True: query_resp = requests.get( f"{BASE_URL}/contents/generations/tasks/{task_id}", headers={ "Authorization": f"Bearer {API_KEY}", "Accept": "application/json", "Accept-Encoding": "identity", }, timeout=60, ) query_resp.raise_for_status() task = query_resp.json() status = task_status(task) if status in SUCCESS_STATUSES: video_url = find_video_url(task) if video_url: video_resp = requests.get(video_url, timeout=180) else: video_resp = requests.get( f"{DOWNLOAD_BASE_URL}/videos/{task_id}/content", headers={"Authorization": f"Bearer {API_KEY}", "Accept": "video/mp4,*/*"}, allow_redirects=True, timeout=180, ) video_resp.raise_for_status() with open(f"{task_id}.mp4", "wb") as output: output.write(video_resp.content) break if status in {"failed", "expired"}: raise RuntimeError(task) time.sleep(15) ``` ## 常见接入问题 不是重复扣费。第一条是创建任务时的预扣日志,第二条是任务完成后按实际 `usage.completion_tokens` 生成的补扣或退回日志。两条记录共同组成一次任务的完整结算,金额相加才是最终费用。第二条不显示令牌、分组和 IP 属于正常现象,不代表另一个 API Key 发起了请求。 不是。`0.18x` 是把上游人民币计价口径换算为站内美元余额的计费系数,不是在最终账单上再打折。 按 `1 美元 ≈ 7 元人民币` 的参考汇率,名义换算为 `0.18 × 7 = 1.26`,但这不表示每个任务固定上浮 26%。 LaoZhang API 实际价格通常比官方公开参考价高约 10% - 20%;最终费用由实际 tokens 用量决定,并以两条消费日志的合计金额为准。 当前路径是 `/seedance/api/v3/contents/generations/tasks`。不要去掉官方路径里的 `/api`。 不可以。请求里的 `model` 必须是纯模型 ID,例如 `doubao-seedance-2-0-260128`。不要写成 `doubao-seedance-2-0-260128 (2.0-音画同生)`。 不建议。LaoZhang 中转按纯模型 ID 匹配通道,请不要传入 `ep-...`。 方舟透传详情里的视频地址通常在 `content.video_url`。LaoZhang 兼容任务对象也可能返回顶层 `result_url` 或嵌套的 `data.content.video_url`。 只需要下载文件时,调用兼容下载接口: `/v1/videos/{id}/content` 不能。音频参考需要和至少一个图片或视频素材一起传入,否则请求会被官方接口拒绝。 # SeeDream 图片生成/编辑 Source: https://docs.laozhang.ai/api-capabilities/seedream-image SeeDream API:字节跳动火山方舟图像模型。支持 4.0(0.035 美元/张)和 4.5(0.045 美元/张)版本,文生图和图改图,最多 10 张参考图。 **API 端点:** `https://api2.laozhang.ai/v1/images/generations` **可用模型:** * `seedream-4-0-250828` - \$0.035/图 * `seedream-4-5-251128` - \$0.045/图(最新版本) **计费方式:** 按次计费 **价格调整通知(2026年1月)** 官方补贴已结束,SeeDream 价格已调整: * SeeDream 4.0:\$0.025/图 → **\$0.035/图** * SeeDream 4.5(新版本):**\$0.045/图** ## 前置要求 登录 [laozhang.ai 控制台](https://api2.laozhang.ai) 获取 API 密钥 编辑令牌设置,选择以下任一计费模式(两者价格相同): * **按量优先**(推荐):优先使用余额计费,余额不足时自动切换。适合大多数用户 * **按次计费**:每次调用直接扣费。适合预算控制严格的场景 两种模式**价格完全相同**,仅扣费方式不同。SeeDream 4.0 为 \$0.035/张,4.5 为 \$0.045/张。 令牌设置 如果未设置计费模式,API调用会失败。必须先完成此配置! ## 更新日志 **2025年9月11日** - SeeDream 4.0 API 官网上线,老张AI 当天接入并上线 ## 核心特性 纯文字描述生成高质量图片 基于原图进行AI编辑和重绘 最多支持 10 张参考图片 可自定义图片分辨率和尺寸 提供 OpenAI Images 兼容入口;已文档化字段可用,其他参数和错误行为需验证 4.0 版 \$0.035/图,4.5 版 \$0.045/图 ## 重点信息 ### 资源来源 **战略合作伙伴** SeeDream 4.0 源自 **BytePlus 火山方舟**的海外版,老张AI 已与其达成战略合作,为您提供稳定可靠的服务。 ### 技术规格 | 项目 | 说明 | | ---------- | --------------------------------------------- | | **API 格式** | OpenAI Image API 兼容 | | **请求端点** | `/v1/images/generations` | | **模型名称** | `seedream-4-0-250828` / `seedream-4-5-251128` | | **最大参考图** | 10 张 | | **尺寸支持** | 可自定义分辨率 | | **水印** | 可选关闭 | ### 版本与价格 | 版本 | 模型ID | 价格 | 说明 | | ---------------- | --------------------- | --------- | ----------- | | **SeeDream 4.0** | `seedream-4-0-250828` | \$0.035/图 | 稳定版本 | | **SeeDream 4.5** | `seedream-4-5-251128` | \$0.045/图 | 最新版本,生成质量更高 | 💰 **定价说明** * **SeeDream 4.0**:\$0.035/图 * **SeeDream 4.5**:\$0.045/图 * **扣费说明**:按次计费,实际扣费可在调用日志中查看 ## 准备工作 登录 [老张API令牌管理](https://api2.laozhang.ai/token) 创建**按次计费**类型的令牌 令牌创建界面 **重要**:必须选择"按次计费"类型 复制生成的令牌,格式为 `sk-xxxxxx`,在代码中替换 `API_KEY` ## 文生图 (Text to Image) ### Python 版本 ```python theme={null} #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Seedream API 图片生成器 - 纯Python版本 修改 API_KEY 即可使用 """ # =================== 配置区域 =================== API_KEY = "sk-" # 替换为您的API密钥 API_URL = "https://api2.laozhang.ai/v1/images/generations" # API地址 PROMPT = "A beautiful sunset over mountains, realistic style" # 图片描述 MODEL = "seedream-4-0-250828" # 模型名称 OUTPUT_DIR = "." # 输出目录 # ============================================== import requests import os import datetime def generate_image(prompt, output_dir="."): """生成图片并保存到本地""" print(f"🎨 Seedream 图片生成器") print(f"📝 提示词: {prompt}") print("=" * 50) # API 请求参数 headers = { "Content-Type": "application/json", "Authorization": f"Bearer {API_KEY}" } payload = { "model": MODEL, "prompt": prompt, "response_format": "url", "size": "2K", "watermark": False } try: print("⏳ 正在生成图片...") # 调用 API response = requests.post(API_URL, headers=headers, json=payload, timeout=60) if response.status_code != 200: return False, f"API错误 ({response.status_code}): {response.text}" # 解析响应 result = response.json() if "data" not in result or len(result["data"]) == 0: return False, "API未返回图片数据" # 获取图片URL image_url = result["data"][0]["url"] print(f"🌐 获取图片URL成功") # 下载图片 print("⬇️ 正在下载图片...") img_response = requests.get(image_url, timeout=30) img_response.raise_for_status() # 生成文件名(带时间戳) timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") filename = os.path.join(output_dir, f"generated_{timestamp}.jpg") # 保存图片 os.makedirs(output_dir, exist_ok=True) with open(filename, 'wb') as f: f.write(img_response.content) file_size = len(img_response.content) return True, f"✅ 生成成功: {filename} ({file_size // 1024}KB)" except Exception as e: return False, f"生成失败: {str(e)}" def main(): """主函数""" print("🚀 Seedream API 图片生成器 - Python版本") print("=" * 50) # 检查 API 密钥 if API_KEY == "sk-" or not API_KEY: print("⚠️ 请先修改代码顶部的 API_KEY") print(" 将 'sk-' 替换为您的真实API密钥") print() print("📋 使用说明:") print("1. 修改 API_KEY 为您的真实密钥") print("2. 可选:修改 PROMPT 生成不同内容的图片") print("3. 运行: python3 seedream-text-to-image.py") return # 执行图片生成 success, message = generate_image(PROMPT, OUTPUT_DIR) print(message) if success: print() print("🎉 任务完成!") print("💡 提示:修改 PROMPT 可以生成不同内容的图片") if __name__ == "__main__": main() ``` ### Curl 简单版本 ```bash theme={null} curl -X POST https://api2.laozhang.ai/v1/images/generations \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-YOUR_API_KEY" \ -d '{ "model": "seedream-4-0-250828", "prompt": "A beautiful sunset over mountains, realistic style", "response_format": "url", "size": "2K", "watermark": false }' ``` ### Curl 一行版本(带自动下载) 需要安装 python3,会自动解析响应并下载图片 ```bash theme={null} curl -X POST https://api2.laozhang.ai/v1/images/generations \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-YOUR_API_KEY" \ -d '{"model": "seedream-4-0-250828","prompt": "A beautiful sunset over mountains, realistic style","response_format": "url","size": "2K","watermark": false}' \ | python3 -c "import json,sys,os; data=json.loads(sys.stdin.read()); os.system(f'curl -L -o generated_\$(date +%Y%m%d_%H%M%S).jpg \"{data[\"data\"][0][\"url\"]}\"') if 'data' in data else print('Error')" ``` ## 图改图 (Image to Image) 基于原图进行AI编辑和重绘,支持最多 10 张参考图。 ### Python 版本 ```python theme={null} #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Seedream API 图片编辑器 - Python版本 基于原图生成新图片,修改 API_KEY 即可使用 """ # =================== 配置区域 =================== API_KEY = "sk-" # 替换为您的API密钥 API_URL = "https://api2.laozhang.ai/v1/images/generations" # 图片编辑API地址 PROMPT = "Generate a close-up image of a dog lying on lush grass." # 编辑提示词 IMAGE_URL = "https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/seedream4_imageToimage.png" # 原图URL MODEL = "seedream-4-0-250828" # 使用的模型 OUTPUT_DIR = "." # 输出目录 # ============================================== import requests import os import datetime def edit_image(prompt, image_url, output_dir="."): """基于原图生成编辑后的图片""" print(f"🎨 Seedream 图片编辑器") print(f"📝 编辑提示: {prompt}") print(f"🖼️ 原图链接: {image_url[:50]}...") print("=" * 50) # API 请求参数 headers = { "Content-Type": "application/json", "Authorization": f"Bearer {API_KEY}" } payload = { "model": MODEL, "prompt": prompt, "image": image_url, "sequential_image_generation": "disabled", "response_format": "url", "size": "2K", "stream": False, "watermark": False } try: print("⏳ 正在编辑图片...") # 调用 API response = requests.post(API_URL, headers=headers, json=payload, timeout=60) if response.status_code != 200: return False, f"API错误 ({response.status_code}): {response.text}" # 解析响应 result = response.json() if "data" not in result or len(result["data"]) == 0: return False, "API未返回图片数据" # 获取图片URL edited_image_url = result["data"][0]["url"] print(f"🌐 获取编辑图片URL成功") # 下载图片 print("⬇️ 正在下载编辑后的图片...") img_response = requests.get(edited_image_url, timeout=30) img_response.raise_for_status() # 生成文件名(带时间戳) timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") filename = os.path.join(output_dir, f"edited_{timestamp}.jpg") # 保存图片 os.makedirs(output_dir, exist_ok=True) with open(filename, 'wb') as f: f.write(img_response.content) file_size = len(img_response.content) return True, f"✅ 编辑成功: {filename} ({file_size // 1024}KB)" except Exception as e: return False, f"编辑失败: {str(e)}" def main(): """主函数""" print("🚀 Seedream API 图片编辑器 - Python版本") print("=" * 50) # 检查 API 密钥 if API_KEY == "sk-" or not API_KEY: print("⚠️ 请先修改代码顶部的 API_KEY") print(" 将 'sk-' 替换为您的真实API密钥") print() print("📋 使用说明:") print("1. 修改 API_KEY 为您的真实密钥") print("2. 修改 IMAGE_URL 为您要编辑的图片链接") print("3. 修改 PROMPT 描述您想要的编辑效果") print("4. 运行: python3 seedream-image-edit.py") return # 执行图片编辑 success, message = edit_image(PROMPT, IMAGE_URL, OUTPUT_DIR) print(message) if success: print() print("🎉 编辑完成!") print("💡 提示:修改 PROMPT 和 IMAGE_URL 可以编辑不同的图片") if __name__ == "__main__": main() ``` ### Curl 版本 ```bash theme={null} #!/bin/bash # Seedream API 图片编辑器 - Curl版本 # 基于原图生成新图片,修改 API_KEY 即可使用 # =============== 配置区域 =============== API_KEY="sk-YOUR_API_KEY" # 请替换为您的API密钥 API_URL="https://api2.laozhang.ai/v1/images/generations" # 图片编辑API地址 PROMPT="Generate a close-up image of a dog lying on lush grass." # 编辑提示词 IMAGE_URL="https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/seedream4_imageToimage.png" # 原图URL MODEL="seedream-4-0-250828" # 模型名称 # ==================================== # 检查API密钥 if [ "$API_KEY" = "sk-YOUR_API_KEY" ]; then echo "⚠️ 请先修改脚本中的 API_KEY" echo " 将 'sk-YOUR_API_KEY' 替换为您的真实API密钥" echo "" echo "📋 使用说明:" echo "1. 修改 API_KEY 为您的真实密钥" echo "2. 修改 IMAGE_URL 为您要编辑的图片链接" echo "3. 修改 PROMPT 描述您想要的编辑效果" echo "4. 运行: ./seedream-image-edit.sh" exit 1 fi # 生成输出文件名 TIMESTAMP=$(date +"%Y%m%d_%H%M%S") OUTPUT_FILE="edited_${TIMESTAMP}.jpg" echo "🎨 Seedream API 图片编辑器 - Curl版本" echo "========================================" echo "📝 编辑提示: $PROMPT" echo "🖼️ 原图链接: ${IMAGE_URL:0:50}..." echo "📁 输出文件: $OUTPUT_FILE" echo "========================================" # 步骤1: 调用API获取JSON响应 echo "⏳ 正在编辑图片..." # 构建JSON请求体 JSON_DATA=$(cat < 0: url = data['data'][0]['url'] print(url) else: print('ERROR: 未找到图片URL') sys.exit(1) except Exception as e: print(f'ERROR: {e}') sys.exit(1) ") # 检查URL解析结果 if [[ "$EDITED_IMAGE_URL" == ERROR* ]]; then echo "❌ URL解析失败: $EDITED_IMAGE_URL" echo "📄 原始API响应:" echo "$RESPONSE" exit 1 fi echo "🌐 编辑图片URL获取成功" # 步骤3: 下载编辑后的图片 echo "⬇️ 正在下载编辑后的图片..." curl -s -L -o "$OUTPUT_FILE" "$EDITED_IMAGE_URL" # 检查下载结果 if [ -f "$OUTPUT_FILE" ] && [ -s "$OUTPUT_FILE" ]; then FILE_SIZE=$(du -h "$OUTPUT_FILE" | cut -f1) echo "✅ 图片编辑成功!" echo "📁 文件: $OUTPUT_FILE" echo "📊 大小: $FILE_SIZE" echo "" echo "🎉 完成! 请查看编辑后的图片文件" echo "💡 提示: 修改 PROMPT 和 IMAGE_URL 可以编辑不同的图片" else echo "❌ 图片下载失败" echo "🔗 您可以手动访问: $EDITED_IMAGE_URL" fi ``` ## 相关资源 ### 官方文档 BytePlus ModelArk 官方技术文档 Seedream 4.0 用户手册 Seedream 4.0 使用指南 提示词和风格关键词指南 ### 常用边界问题 支持自定义图片尺寸,可通过 `size` 参数指定: * `2K`:2048像素(推荐) * 也支持自定义分辨率 详见官方文档的参数说明。 * 文生图:无需参考图 * 图改图:支持 1-10 张参考图 * 通过 `image` 参数传入图片URL或Base64 可通过 `watermark` 参数控制: * `false`:水印策略以模型返回为准(推荐) * `true`:带水印 支持两种响应格式(`response_format`): * `url`:返回图片链接(推荐,方便下载) * `b64_json`:返回Base64编码 通过 `sequential_image_generation` 参数控制: * `disabled`:标准生成模式(推荐) * `enabled`:顺序生成模式 ## API 参数说明 ### 请求参数 | 参数 | 类型 | 必需 | 说明 | | ----------------------------- | ------- | -- | -------------------------------- | | `model` | string | ✓ | 模型名称:`seedream-4-0-250828` | | `prompt` | string | ✓ | 图片描述或编辑提示词 | | `image` | string | ✗ | 参考图片URL(图改图时使用) | | `size` | string | ✗ | 图片尺寸,默认 `2K` | | `response_format` | string | ✗ | 响应格式:`url` 或 `b64_json`,默认 `url` | | `watermark` | boolean | ✗ | 是否添加水印,默认 `false` | | `sequential_image_generation` | string | ✗ | 生成模式,默认 `disabled` | | `stream` | boolean | ✗ | 是否流式响应,默认 `false` | ### 响应格式 ```json theme={null} { "created": 1726051200, "data": [ { "url": "https://example.com/generated_image.jpg", "revised_prompt": "..." } ] } ``` ## 下一步 \$0.025/图的 Gemini 图片生成 查看 FLUX 图片生成 API 创建 API 令牌 查看余额、账户额度和调用日志 # Sora 官方 API 转发方案(当前可用) Source: https://docs.laozhang.ai/api-capabilities/sora2/official-forward 当前 Sora2 视频唯一可用线路:OpenAI Sora 官方 API 透明转发;创建令牌时仅支持 Sora2Official 或 GPTImage2 Enterprise 分组,并使用按量扣费。 ## 方案介绍 当前 Sora2 视频新接入仅官方 API 转发可用。创建令牌规则与官方 API 转发 `gpt-image-2` 一致:只能选择 `Sora2Official` 或 `GPTImage2 Enterprise` 分组,并使用按量扣费。旧同步 API、旧异步队列、旧线路模型和角色创建文档已标为过时,仅供历史排查参考。 **官方 API 转发**(官方 API 转发)是指直接调用 OpenAI 官方 Sora API 并透明转发给用户的方案。与已经过时的"旧线路"(官网旧线路)方案不同,官方 API 转发方案具有更高的稳定性和更精准的指令遵循能力。 **什么是官方 API 转发?** 官方 API 转发是 OpenAI 官方 API 的透明转发服务。您的请求会直接转发到 OpenAI 官方服务器,享受与 OpenAI 官方完全一致的服务质量和稳定性。 ## 方案对比 | 对比项 | 官方 API 转发(当前可用) | 旧线路(已过时) | | -------- | --------------- | ---------------- | | **稳定性** | 官方 API 转发,稳定性更高 | 依赖旧线路,已不作为当前可用入口 | | **指令遵循** | 精准还原 | 一般 | | **画质** | 稳定无模糊 | 偶现模糊 | | **时长选择** | 4/8/12 秒 | 10/15 秒 | | **图生视频** | 支持 | 支持 | | **调用方式** | 仅异步 | 同步 + 异步 | | **价格** | 按秒计费 | 按次计费 | **如何选择?** * **当前新接入**:选择官方 API 转发方案 * **旧线路文档**:仅用于历史排查,不建议新项目继续接入 ## 支持的模型和定价 ### sora-2(标准模型) | 分辨率 | 每秒价格 | 4 秒 | 8 秒 | 12 秒 | | ------------ | ----- | ----- | ----- | ----- | | 720x1280(竖屏) | \$0.1 | \$0.4 | \$0.8 | \$1.2 | | 1280x720(横屏) | \$0.1 | \$0.4 | \$0.8 | \$1.2 | ### sora-2-pro(高清模型) | 分辨率 | 每秒价格 | 4 秒 | 8 秒 | 12 秒 | | --------------- | ----- | ----- | ----- | ----- | | 720x1280(竖屏) | \$0.3 | \$1.2 | \$2.4 | \$3.6 | | 1280x720(横屏) | \$0.3 | \$1.2 | \$2.4 | \$3.6 | | 1024x1792(竖屏高清) | \$0.5 | \$2.0 | \$4.0 | \$6.0 | | 1792x1024(横屏高清) | \$0.5 | \$2.0 | \$4.0 | \$6.0 | 以上价格已包含本站服务费。 ## 如何开始使用 ### 令牌创建规则 | 配置项 | 应该怎么选 | 说明 | | ------- | -------------------------------------------------- | ------------------------------------------------------- | | 控制台入口 | [令牌管理](https://api2.laozhang.ai/token) → 新增令牌 | 建议为 Sora 官方 API 转发单独创建新令牌,不要复用旧 Sora2 旧线路令牌 | | 计费模式 | **按量计费**(控制台显示为"按量优先"时选择"按量优先") | 与官方 API 转发 `gpt-image-2` 一致,按实际官方 API 转发调用量扣费,不使用按次计费令牌 | | 可选分组 1 | `Sora2Official` | AZ + 官方密钥 混合官方 API 转发,普通 Sora 官方 API 转发接入优先选这个分组 | | 可选分组 2 | `GPTImage2 Enterprise` | 官方密钥 API,适合更重视官方线路一致性和稳定性的生产调用 | | 不要选择 | 默认分组、`gpt-image-2-vip` 所在旧线路分组、旧 Sora2 旧线路/同步/异步分组 | 这些分组不是当前 Sora2 视频官方 API 转发入口 | | 请求里的模型名 | `sora-2` 或 `sora-2-pro` | 分组只决定线路和计费;视频生成请求仍在 `model` 字段传入 Sora 模型名 | 登录 [laozhang.ai 控制台](https://api2.laozhang.ai/token),新增令牌,并按上表选择计费模式和分组。 令牌计费模式必须选择 **"按量计费"**;如果控制台下拉框显示为"按量优先",就选择"按量优先"。实际消费按官方 API 转发调用量扣费。 Sora 官方 API 转发方案不支持默认分组、旧线路分组或按次计费令牌。请不要选择默认分组、`gpt-image-2-vip` 所在旧线路分组,或其他旧线路分组。 参考下方完整示例调用 API。 ## API 参考 ### 基础信息 | 配置项 | 值 | | ------------ | ------------------------------------ | | **Base URL** | `https://api2.laozhang.ai` | | **认证方式** | `Authorization: Bearer YOUR_API_KEY` | | **请求格式** | `multipart/form-data` | ### API 端点 | 端点 | 方法 | 说明 | | ------------------------- | ---- | -------- | | `/v1/videos` | POST | 创建视频生成任务 | | `/v1/videos/{id}` | GET | 查询任务状态 | | `/v1/videos/{id}/content` | GET | 下载生成的视频 | ### 请求参数 | 参数 | 类型 | 必填 | 说明 | | ----------------- | ------ | -- | ------------------------------- | | `model` | string | 是 | 模型名称:`sora-2` 或 `sora-2-pro` | | `prompt` | string | 是 | 视频描述文本 | | `size` | string | 否 | 分辨率,如 `1280x720`(默认 `720x1280`) | | `seconds` | string | 否 | 视频时长:`4`、`8` 或 `12`(默认 `4`) | | `input_reference` | file | 否 | 参考图片文件(用于图生视频) | ### 支持的分辨率(size 参数) **sora-2:** * `720x1280`(竖屏,默认) * `1280x720`(横屏) **sora-2-pro:** * `720x1280`(竖屏) * `1280x720`(横屏) * `1024x1792`(竖屏高清) * `1792x1024`(横屏高清) ## 完整示例 ### 文生视频(cURL) **Step 1: 创建视频生成任务** ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/videos" \ -H "Authorization: Bearer YOUR_API_KEY" \ -F model="sora-2" \ -F prompt="A golden retriever playing fetch on a sunny beach, waves gently rolling in the background, cinematic lighting" \ -F size="1280x720" \ -F seconds="8" ``` **响应示例:** ```json theme={null} { "id": "video_69788dc4a1c8819887468fbeffdda023", "object": "video", "model": "sora-2", "status": "queued", "progress": 0, "created_at": 1769508292, "size": "1280x720", "seconds": "8" } ``` **Step 2: 轮询任务状态** ```bash theme={null} curl "https://api2.laozhang.ai/v1/videos/video_69788dc4a1c8819887468fbeffdda023" \ -H "Authorization: Bearer YOUR_API_KEY" ``` **响应示例(进行中):** ```json theme={null} { "id": "video_69788dc4a1c8819887468fbeffdda023", "object": "video", "status": "in_progress", "progress": 45, "created_at": 1769508292 } ``` **响应示例(完成):** ```json theme={null} { "id": "video_69788dc4a1c8819887468fbeffdda023", "object": "video", "status": "completed", "progress": 100, "created_at": 1769508292, "completed_at": 1769508592 } ``` **Step 3: 下载视频** ```bash theme={null} curl "https://api2.laozhang.ai/v1/videos/video_69788dc4a1c8819887468fbeffdda023/content" \ -H "Authorization: Bearer YOUR_API_KEY" \ -o output.mp4 ``` ### 图生视频(cURL) **图生视频**功能允许您提供一张参考图片作为视频的第一帧,AI 会基于这张图片生成动态视频。 ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/videos" \ -H "Authorization: Bearer YOUR_API_KEY" \ -F model="sora-2" \ -F prompt="The camera slowly zooms in, the scene comes alive with gentle movement, cinematic atmosphere" \ -F size="1280x720" \ -F seconds="4" \ -F input_reference="@your_image.jpeg;type=image/jpeg" ``` **图片要求** * 图片分辨率必须与 `size` 参数匹配(如 size=1280x720,则图片需为 1280×720 像素) * 支持格式:JPEG、PNG、WebP * **不支持包含真人面孔的图片**(会被内容审核系统拒绝) ### Python 示例 ```python theme={null} import requests import time API_KEY = "YOUR_API_KEY" BASE_URL = "https://api2.laozhang.ai" headers = { "Authorization": f"Bearer {API_KEY}" } # 文生视频 def create_video(prompt, model="sora-2", seconds="8", size="1280x720"): response = requests.post( f"{BASE_URL}/v1/videos", headers=headers, data={ "model": model, "prompt": prompt, "seconds": seconds, "size": size } ) response.raise_for_status() return response.json() # 图生视频 def create_video_from_image(prompt, image_path, model="sora-2", seconds="4", size="1280x720"): with open(image_path, "rb") as f: response = requests.post( f"{BASE_URL}/v1/videos", headers=headers, data={ "model": model, "prompt": prompt, "seconds": seconds, "size": size }, files={ "input_reference": (image_path.split("/")[-1], f, "image/jpeg") } ) response.raise_for_status() return response.json() # 轮询任务状态 def poll_status(video_id, timeout=600, interval=15): start_time = time.time() while time.time() - start_time < timeout: response = requests.get( f"{BASE_URL}/v1/videos/{video_id}", headers=headers ) response.raise_for_status() data = response.json() status = data.get("status") progress = data.get("progress", 0) print(f"状态: {status}, 进度: {progress}%") if status == "completed": return data elif status == "failed": raise Exception(f"视频生成失败: {data.get('error')}") time.sleep(interval) raise TimeoutError("视频生成超时") # 下载视频 def download_video(video_id, output_path="output.mp4"): response = requests.get( f"{BASE_URL}/v1/videos/{video_id}/content", headers=headers ) response.raise_for_status() with open(output_path, "wb") as f: f.write(response.content) print(f"视频已保存到: {output_path}") # 完整流程示例 if __name__ == "__main__": # 文生视频 job = create_video( prompt="A golden retriever playing fetch on a sunny beach", model="sora-2", seconds="8", size="1280x720" ) print(f"任务已创建: {job['id']}") # 等待完成 result = poll_status(job["id"]) print("视频生成完成!") # 下载视频 download_video(job["id"], "my_video.mp4") # 图生视频示例 # job2 = create_video_from_image( # prompt="The scene comes alive with gentle movement", # image_path="reference.jpg", # model="sora-2", # seconds="4", # size="1280x720" # ) ``` ### 任务状态说明 | 状态 | 说明 | | ------------- | ------------ | | `queued` | 任务已加入队列,等待处理 | | `in_progress` | 正在生成视频 | | `completed` | 生成完成,可下载 | | `failed` | 生成失败 | **轮询建议** 视频生成通常需要 2-5 分钟。建议每 15-20 秒轮询一次状态,避免过于频繁的请求。 ## 开发文档 官方 API 转发方案提供 OpenAI 兼容入口;只有专题页已验证的字段属于支持范围,更多参数和高级用法请参考: 视频生成完整指南 API 接口参考文档 sora-2 模型详情 sora-2-pro 模型详情 ## 注意事项 **重要限制** 1. **仅支持异步调用**:官方 API 转发方案不支持同步 API,所有请求均为异步模式 2. **仅支持按量扣费**:必须选择"按量计费"模式,不支持"按次计费"令牌 3. **仅支持两个官方兼容分组**:创建令牌时只能选择 `Sora2Official` 或 `GPTImage2 Enterprise` 4. **图片限制**:图生视频不支持包含真人面孔的图片 ## 常见问题 官方 API 转发是直接调用 OpenAI 官方 API 的透明转发;旧线路是历史阶段通过旧网站接入方式实现的旧线路,目前已不作为 Sora2 视频的新接入入口。 OpenAI 官方 Sora API 本身只提供异步调用方式,因此官方 API 转发方案也仅支持异步调用。 官方 API 转发方案支持 OpenAI 官方的 4/8/12 秒时长选项;旧线路方案支持的是官网界面的 10/15 秒时长。 图片分辨率必须与目标视频的 size 参数匹配。例如,如果设置 size=1280x720,则图片必须是 1280×720 像素。支持 JPEG、PNG、WebP 格式,不支持包含真人面孔的图片。 ## 相关文档 * [模型与价格总表](/models) * [Images API 与视频路线边界](/api-reference/images) * [调用日志](/faq/call-logs) * [内容安全与用户责任](/faq/content-safety) # Embedding API 接入指南 Source: https://docs.laozhang.ai/api-capabilities/text-embedding 通过老张API /v1/embeddings 将文本转为向量,并验证模型 ID、维度、批量顺序、错误和实际计费。 ## 直接答案 使用 `POST https://api2.laozhang.ai/v1/embeddings` 将文本或文本数组转换为向量。先在[模型目录](/models)筛选支持 Embeddings 的模型,再用当前 API Key 验证默认维度、可选降维、批量顺序和计费。不要把某个 OpenAI 模型的维度规则推广到所有厂商模型。 本页最后核对日期为 **2026 年 9 月 2 日**。 ## 最小请求 ```bash theme={null} curl "https://api2.laozhang.ai/v1/embeddings" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "text-embedding-3-small", "input": "用于验证向量接口的短文本" }' ``` Python: ```python theme={null} import os from openai import OpenAI client = OpenAI( api_key=os.environ["LAOZHANG_API_KEY"], base_url="https://api2.laozhang.ai/v1", ) response = client.embeddings.create( model="text-embedding-3-small", input=["第一段文本", "第二段文本"], ) vectors = [item.embedding for item in response.data] print([len(vector) for vector in vectors]) ``` 示例模型来自当前模型目录,但账户权限和价格仍以控制台为准。 ## 验收项目 | 项目 | 验收方法 | | ------------ | --------------------------- | | 模型 ID | 从控制台复制并发送最小请求 | | 默认维度 | 检查 `len(data[0].embedding)` | | `dimensions` | 仅在模型专题或实测明确支持时使用 | | 批量输入 | 检查 `data[].index` 和输入顺序 | | 空字符串/超长输入 | 确认错误类型和是否计费 | | usage | 与调用日志和目标模型计费单位对照 | ## 使用边界 * 不同模型的向量维度和语义空间不能直接混用; * 更换模型后应重新生成索引; * 降维可能影响召回效果,需要离线评估; * 批量大小、输入长度和速率限制需实测; * 向量数据库、归一化和距离函数应与模型建议一致。 ## 相关文档 * [模型与价格总表](/models) * [Models API](/api-reference/models) * [LangChain 接入](/scenarios/engineering/langchain) * [调用日志](/faq/call-logs) # 文本生成 API 接入指南 Source: https://docs.laozhang.ai/api-capabilities/text-generation 选择老张API文本模型并通过 Chat Completions 或 Responses 完成最小调用、流式输出、错误处理和生产验收。 ## 直接答案 文本生成不是单一模型功能页。先在[模型与价格总表](/models)按任务、端点、分组和价格选择模型,再使用 [Chat Completions](/api-reference/chat-completions) 或 [Responses API](/api-capabilities/openai-responses)。模型出现在目录中,不代表所有参数、工具和流式事件都兼容。 本页最后核对日期为 **2026 年 9 月 2 日**。 ## 选择接口 | 接口 | 适合场景 | 主要输出 | | ---------------------- | ------------------------- | ------------------------------ | | `/v1/chat/completions` | 已有 messages 工作流、广泛客户端兼容 | `choices[].message` 或流式 delta | | `/v1/responses` | 新一代文本、图片、文件、工具和状态工作流 | `output[]`、`output_text` 或响应事件 | | 厂商原生协议 | 需要 Gemini、Anthropic 等原生字段 | 厂商内容块和事件;只在专题页明确支持时使用 | ## 最小调用 ```python theme={null} import os from openai import OpenAI client = OpenAI( api_key=os.environ["LAOZHANG_API_KEY"], base_url="https://api2.laozhang.ai/v1", ) response = client.chat.completions.create( model="MODEL_ID", messages=[{"role": "user", "content": "用一句话说明连接结果"}], ) print(response.choices[0].message.content) ``` 从控制台复制 `MODEL_ID`,不要根据营销名称自行拼接。 ## 模型选择方法 不要使用固定“最佳模型”榜单。用代表性样本比较: * 任务成功率和事实准确性; * 指令遵循和结构化输出; * 工具调用完整率; * 延迟、稳定性和重试率; * 输入、输出和缓存实际用量; * 当前 API Key 分组的价格与权限。 ## 生产验收 1. 固定 model、endpoint、SDK 和版本; 2. 验证普通、流式和错误请求; 3. 验证上下文与输出上限; 4. 对工具和结构化输出单独验收; 5. 比对 usage、调用日志和实际扣费; 6. 记录测试日期、限制和未测范围。 ## 相关文档 * [Chat Completions API](/api-reference/chat-completions) * [OpenAI 官方 Chat Completions](https://developers.openai.com/api/reference/cli/resources/chat/subresources/completions) * [Responses API](/api-capabilities/openai-responses) * [模型与价格总表](/models) * [模型可用性与权限](/faq/model-availability) # 图像、视频与文档理解 API 指南 Source: https://docs.laozhang.ai/api-capabilities/vision-understanding 选择老张API多模态模型并验收图片、视频、PDF和文件输入的协议、MIME、大小、响应、错误与数据边界。 ## 直接答案 视觉理解能力取决于模型、端点和输入协议。先在[模型目录](/models)确认目标模型支持的端点,再按 OpenAI 兼容、Responses、Gemini 原生或厂商原生结构提交图片、视频、PDF或文件。不要因为模型支持图片就推断它支持视频、PDF、OCR、工具或所有 MIME。 本页最后核对日期为 **2026 年 9 月 2 日**。 ## 选择协议 | 协议 | 常见输入 | 适用边界 | | ---------------- | ------------------------------------------- | --------------- | | Chat Completions | `messages[].content[]` 中的文本和 image URL | 具体内容块和模型支持需实测 | | Responses | `input` 中的文本、图片或文件 item | 文件、工具和状态不保证全部透传 | | Gemini 原生 | `contents[].parts[]`、inline data 或 file URI | 仅在模型页明确支持时使用 | | 厂商原生 | 厂商专用内容块和端点 | 不能与 OpenAI 格式混用 | ## 最小图片理解请求 以下仅展示常见 OpenAI Chat Completions 结构: ```json theme={null} { "model": "VISION_MODEL_ID", "messages": [ { "role": "user", "content": [ {"type": "text", "text": "描述图片中的可见内容"}, { "type": "image_url", "image_url": {"url": "https://example.com/image.jpg"} } ] } ] } ``` Base64、file ID、视频和 PDF 使用不同结构时,应按模型专题页处理。 ## 生产验收 * 支持的 MIME、大小、分辨率、页数、时长和文件来源; * 多图片顺序、旋转、透明通道和 EXIF; * OCR、表格、图表和小字的准确性; * 视频抽帧、音轨、时间定位和处理状态; * 无法访问 URL、损坏文件和不支持格式的错误; * 数据跨境、上游保留和敏感信息处理; * usage、计费和调用日志。 视觉模型输出可能遗漏或误读内容。法律、医疗、财务、身份和其他高风险场景必须保留人工复核,不能将模型结果作为唯一结论。 ## 相关文档 * [Chat Completions API](/api-reference/chat-completions) * [OpenAI 官方模型与多模态入口](https://developers.openai.com/api/docs/models) * [Responses API](/api-capabilities/openai-responses) * [Gemini 接入指南](/api-reference/gemini) * [数据与日志边界](/faq/data-security) # Wan 2.7 视频生成 API Source: https://docs.laozhang.ai/api-capabilities/wan-video-generation Wan 2.7 视频生成接口开发文档:通过 LaoZhang API 调用 DashScope 兼容异步任务接口,支持文生视频、图生视频、参考图生视频和视频编辑。 ## 接入概览 本文定义 Wan 视频生成在 LaoZhang API 上的开发接入方式。接口采用 DashScope 兼容异步任务协议:客户端先创建任务并获取 `task_id`,再轮询任务状态,任务完成后从 `result_url` 下载 MP4 文件。 Wan 视频生成不使用 Sora / Veo 的 `/v1/videos` 接口。Wan 2.7 的图生视频、参考图生视频和视频编辑依赖 DashScope 原生 `input.media[]` 结构,请固定使用本文的 `/wan/api/v1/services/aigc/video-generation/video-synthesis` 创建任务路径。 ## 认证与令牌 在 [令牌管理](https://api2.laozhang.ai/token) 创建用于 Wan 视频生成的令牌时,按下面配置: | 配置项 | 选择 | | ------ | --------------------------------------------- | | 控制台入口 | [令牌管理](https://api2.laozhang.ai/token) → 新增令牌 | | 选择分组 | `Wan` | | 计费模式 | `按量扣费` | | Header | `Authorization: Bearer YOUR_API_KEY` | | 建议 | 为 Wan 视频单独创建令牌,便于按模型、任务和调用日志核对消费 | Wan 视频请求必须使用 `Wan` 分组、按量扣费的令牌。默认分组、Veo 分组、Sora 分组或其他视频分组的令牌可能返回无可用渠道、模型不匹配或计费分组错误。 ## 计费与价格 以下为上游官方公开价格口径,用于接入前成本预估。LaoZhang API 实际扣费以控制台模型价格和调用日志为准。当前控制台中 `Wan` 分组显示倍率 `0.15x`;该数值是上游人民币价格与本站美元计价口径之间的换算系数。按固定汇率 `1:7` 计算,`0.15 × 7 = 1.05`,即当前价格约为阿里云官方人民币原价的 `105%`。`0.15x` 不是需要在调用日志“实际扣除”金额上再次相乘的额外折扣。 官方参考:[阿里云百炼模型价格](https://help.aliyun.com/zh/model-studio/model-pricing)。 | 请求形态 | 官方计费口径 | 720P 官方价 | 1080P 官方价 | | ------------------ | ---------------------- | --------- | --------- | | 文生视频、仅图像/音频输入的图生视频 | 按成功生成的输出视频秒数计费;失败不计费 | `0.6 元/秒` | `1 元/秒` | | 参考生视频中包含输入视频 | 输入视频计费时长 + 输出视频时长,按秒计费 | `0.6 元/秒` | `1 元/秒` | | 视频编辑 | 输入视频时长 + 输出视频时长,按秒计费 | `0.6 元/秒` | `1 元/秒` | `duration` 和 `resolution` 会直接影响费用。生产环境应在创建任务前完成成本预估,并在任务完成后按控制台调用日志核对实际扣费。 ## 调用流程 调用 `POST /wan/api/v1/services/aigc/video-generation/video-synthesis`。请求体使用 JSON,`model` 传 Wan 模型 ID,`input.prompt` 传提示词,图生视频、参考图生视频和视频编辑通过 `input.media[]` 传素材。 调用 `GET /v1/tasks/{task_id}`。客户端只需要根据顶层 `status` 字段判断状态,不要解析内部上游字段作为业务状态。 当 `status=completed` 时,读取顶层 `result_url` 并直接下载。`result_url` 是上游对象存储签名 URL,下载请求不要携带 LaoZhang API 的 `Authorization` 头。 ## API 参考 ### 请求约定 | 配置项 | 值 | | ------------- | ------------------------------------ | | Base URL | `https://api2.laozhang.ai` | | 认证方式 | `Authorization: Bearer YOUR_API_KEY` | | 创建请求格式 | `application/json` | | 创建任务必需 Header | `X-DashScope-Async: enable` | | 轮询间隔 | 建议 5-10 秒 | | 客户端超时 | 建议 20 分钟 | ### 端点 | 用途 | 方法 | 路径 | | ------ | ------ | ------------------------------------------------------------ | | 创建视频任务 | `POST` | `/wan/api/v1/services/aigc/video-generation/video-synthesis` | | 查询任务状态 | `GET` | `/v1/tasks/{task_id}` | | 下载视频 | `GET` | 任务完成后返回的 `result_url` | ### 状态机 | 状态 | 是否终态 | 客户端处理 | | ------------- | ---- | ----------------------------------------- | | `submitted` | 否 | 任务已提交,继续轮询 | | `in_progress` | 否 | 任务生成中,继续轮询 | | `completed` | 是 | 读取 `result_url` 下载 MP4 | | `failed` | 是 | 读取 `error.message` 或 `fail_reason`,不要继续轮询 | Wan / DashScope 的 `progress` 是粗粒度上报,常见情况是长时间停在 `30%`,最后直接跳到 `100%`。只要 `status` 仍是 `in_progress`,通常继续等待即可。 ## 模型与输入模式 | 模型 ID | 能力 | `input.media[]` 要求 | | ------------------------------------------------------------------------------------------------ | --------------- | --------------------------------------- | | `wan2.7-t2v` | 文生视频 | 不传 `media` | | `wan2.7-i2v` | 图生视频,可配驱动音频 | 至少 1 个 `first_frame`;可选 `driving_audio` | | `wan2.7-r2v` | 参考图生视频 | 1 个或多个 `reference_image` | | `wan2.7-videoedit` | 视频编辑 | 1 个 `video` + 1 个或多个 `reference_image` | | `wan2.6-t2v` / `wan2.6-i2v` / `wan2.6-r2v` / `wan2.6-r2v-flash` | Wan 2.6 系列 | 与同能力 Wan 2.7 模型一致 | | `happyhorse-1.0-t2v` / `happyhorse-1.0-i2v` / `happyhorse-1.0-r2v` / `happyhorse-1.0-video-edit` | HappyHorse 视频模型 | 与同能力模型一致,具体素材数量按模型能力限制 | `wan2.7-image-pro` 是图片模型,不属于本文的视频生成端点。请不要把它提交到 `/wan/api/v1/services/aigc/video-generation/video-synthesis`。 ## 请求体 ### 顶层字段 | 字段 | 类型 | 必填 | 说明 | | ------------ | ------ | -- | --------------------- | | `model` | string | 是 | 模型 ID,例如 `wan2.7-t2v` | | `input` | object | 是 | 输入对象,包含提示词和媒体素材 | | `parameters` | object | 否 | 生成参数,例如分辨率、时长、水印 | ### `input` | 字段 | 类型 | 必填 | 说明 | | -------- | ------ | ----- | ------------------------------------ | | `prompt` | string | 是 | 自然语言提示词 | | `media` | array | 按模型而定 | 素材数组;t2v 不传,i2v / r2v / videoedit 必填 | ### `input.media[]` | `type` | 用途 | | ----------------- | --------------------------- | | `first_frame` | 图生视频首帧图片 | | `last_frame` | 尾帧图片,按模型能力使用 | | `reference_image` | 参考图片,可用于 r2v 或视频编辑 | | `driving_audio` | 驱动音频,常用于 `wan2.7-i2v` | | `video` | 输入视频,常用于 `wan2.7-videoedit` | 媒体素材 URL 必须是公网可访问的 HTTPS 直链。需要登录、带 Cookie、内网地址或临时不可访问的链接会导致任务失败。 ### `parameters` | 字段 | 类型 | 推荐值 | 说明 | | --------------- | ------- | ---------- | --------------------------------------- | | `resolution` | string | `720P` | 可用值通常为 `480P`、`720P`、`1080P`;建议使用大写 `P` | | `duration` | integer | `5` 或 `10` | 视频时长,传整数,不要传字符串 | | `prompt_extend` | boolean | `true` | 是否启用上游提示词扩写 | | `watermark` | boolean | `true` | 是否添加 AI 生成水印 | | `seed` | integer | 可选 | 随机种子,传整数 | ## 环境变量 后续示例统一使用以下变量: ```bash theme={null} export BASE_URL="https://api2.laozhang.ai" export API_KEY="YOUR_API_KEY" ``` ## 文生视频 ```bash theme={null} curl -X POST "$BASE_URL/wan/api/v1/services/aigc/video-generation/video-synthesis" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -H "X-DashScope-Async: enable" \ --data-raw '{ "model": "wan2.7-t2v", "input": { "prompt": "黄昏海边的灯塔,镜头缓慢推进,海浪轻拍礁石,海鸟叫声,电影级光影,稳定运镜" }, "parameters": { "resolution": "720P", "duration": 5, "prompt_extend": true, "watermark": true } }' ``` 创建成功返回 DashScope 兼容的任务对象。客户端应保存 `output.task_id`: ```json theme={null} { "output": { "task_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "task_status": "PENDING" }, "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } ``` ## 图生视频 ```bash theme={null} curl -X POST "$BASE_URL/wan/api/v1/services/aigc/video-generation/video-synthesis" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -H "X-DashScope-Async: enable" \ --data-raw '{ "model": "wan2.7-i2v", "input": { "prompt": "一个由喷漆所画成的少年从墙上活过来,演唱英文 rap,夜晚铁路桥下,电影级光影", "media": [ { "type": "first_frame", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png" }, { "type": "driving_audio", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3" } ] }, "parameters": { "resolution": "720P", "duration": 10, "prompt_extend": true, "watermark": true } }' ``` `driving_audio` 属于模型能力差异项。`wan2.7-i2v` 支持图片加音频驱动;其他 i2v 模型如不支持音频,请只传 `first_frame`。 ## 参考图生视频 ```bash theme={null} curl -X POST "$BASE_URL/wan/api/v1/services/aigc/video-generation/video-synthesis" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -H "X-DashScope-Async: enable" \ --data-raw '{ "model": "wan2.7-r2v", "input": { "prompt": "一位身穿这件礼服的女孩在洒满夕阳的花园里缓步行走,微风轻拂裙摆,电影级光影,稳定运镜", "media": [ { "type": "reference_image", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260402/fwjpqf/wan2.7-videoedit-change-clothes.png" } ] }, "parameters": { "resolution": "720P", "duration": 5, "prompt_extend": true, "watermark": true } }' ``` ## 视频编辑 ```bash theme={null} curl -X POST "$BASE_URL/wan/api/v1/services/aigc/video-generation/video-synthesis" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -H "X-DashScope-Async: enable" \ --data-raw '{ "model": "wan2.7-videoedit", "input": { "prompt": "将视频中女孩的衣服替换为图片中的衣服", "media": [ { "type": "video", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260403/nlspwm/T2VA_22.mp4" }, { "type": "reference_image", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260402/fwjpqf/wan2.7-videoedit-change-clothes.png" } ] }, "parameters": { "resolution": "720P", "prompt_extend": true, "watermark": true } }' ``` ## 查询和下载 ### 查询任务 ```bash theme={null} curl "$BASE_URL/v1/tasks/$TASK_ID" \ -H "Authorization: Bearer $API_KEY" ``` 完成响应会包含 `status=completed` 和 `result_url`。业务侧建议只依赖顶层字段: ```json theme={null} { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "task_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "object": "task", "platform": "wan", "action": "text_to_video", "task_type": "text_to_video", "status": "completed", "progress": "100%", "result_url": "https://dashscope-xxx.oss-accelerate.aliyuncs.com/...", "result": { "data": { "model": "wan2.7-t2v", "parameters": { "resolution": "720P", "duration": 5, "prompt_extend": true, "watermark": true } } } } ``` ### 下载视频 ```bash theme={null} curl -L -o wan-output.mp4 "$RESULT_URL" ``` 下载 `result_url` 时不要携带 LaoZhang API 的 `Authorization` 头。该地址是上游签名直链,额外的鉴权头可能导致 OSS 返回 403。 ## Python 最小客户端 ```python theme={null} import json import time import urllib.request from urllib.error import HTTPError BASE_URL = "https://api2.laozhang.ai" API_KEY = "YOUR_API_KEY" def request(method, path, body=None, extra_headers=None): headers = {"Authorization": f"Bearer {API_KEY}"} if extra_headers: headers.update(extra_headers) data = None if body is not None: headers["Content-Type"] = "application/json" data = json.dumps(body, ensure_ascii=False).encode("utf-8") req = urllib.request.Request(BASE_URL + path, data=data, method=method, headers=headers) try: with urllib.request.urlopen(req, timeout=60) as resp: return json.loads(resp.read().decode("utf-8")) except HTTPError as exc: error_body = exc.read().decode("utf-8", errors="replace") raise RuntimeError(f"HTTP {exc.code}: {error_body}") from exc created = request( "POST", "/wan/api/v1/services/aigc/video-generation/video-synthesis", { "model": "wan2.7-t2v", "input": {"prompt": "黄昏海边的灯塔,电影级光影,镜头缓慢推进"}, "parameters": {"resolution": "720P", "duration": 5, "prompt_extend": True}, }, {"X-DashScope-Async": "enable"}, ) task_id = created["output"]["task_id"] while True: task = request("GET", f"/v1/tasks/{task_id}") if task["status"] == "completed": # result_url 是签名下载地址,不要附加 Authorization 头。 urllib.request.urlretrieve(task["result_url"], "wan-output.mp4") break if task["status"] == "failed": raise RuntimeError(task.get("error") or task.get("fail_reason")) time.sleep(10) ``` ## 常见错误 | 现象 | 常见原因 | 处理方式 | | ----------------------------------------------------------- | --------------------------------------------------- | ----------------------------------- | | `未提供令牌` | 请求未带 `Authorization` | 添加 `Authorization: Bearer $API_KEY` | | `Current group Wan has no available channels for model ...` | 模型名错误,或当前 `Wan` 分组未配置该模型渠道 | 检查模型 ID;如模型应可用,联系管理员检查渠道 | | `[InvalidParameter] Field required: input.media` | i2v、r2v 或视频编辑任务缺少 `input.media[]`,或误用了 `/v1/videos` | 使用本文的 DashScope 透传端点,并按模型传入对应素材 | | `任务不存在` | `task_id` 错误、任务已过期或不是当前站点生成的任务 | 核对创建响应中的 `task_id` | | 下载 403 或 `SignatureDoesNotMatch` | 下载 `result_url` 时携带了额外鉴权头,或签名链接过期 | 去掉 `Authorization` 头;过期后重新查询任务获取新链接 | 生产接入建议设置 20 分钟任务超时,保存创建响应、`request_id`、`task_id` 和最终任务详情,方便排查上游错误与扣费记录。 ## 相关文档 * [当前模型选择与验收](/api-capabilities/model-info) * [模型与价格总表](/models) * [调用日志](/faq/call-logs) * [数据与日志边界](/faq/data-security) # API 开发文档 Source: https://docs.laozhang.ai/api-manual GPT-5.6、Claude Sonnet 5、Gemini 3.6 Flash 等热门AI模型的统一API中文技术文档,包含Python、Node.js、Java、Go示例与错误处理。 ## 为什么选择老张API? 老张API提供**企业级AI技术API接入服务**,解决开发者在使用多个AI模型时的支付门槛和接口统一问题。 ## 服务特色 ### OpenAI 兼容模式 老张API采用 **OpenAI 兼容格式**,统一接口调用200+AI模型: **支持的模型厂商:** * 🤖 **OpenAI**:gpt-5.6、gpt-5.6-terra、gpt-5.6-luna、gpt-5.1-codex 等 * 🧠 **Anthropic**:claude-sonnet-5、claude-opus-4-8、claude-fable-5 等 * 💎 **Google**:gemini-3.6-flash、gemini-3.5-flash-lite、gemini-3.1-pro-preview 等 * 🚀 **xAI**:grok-4.5、grok-4.3、grok-4.20 系列等 * 🔍 **DeepSeek**:deepseek-v4-pro、deepseek-v4-flash 等 * 🌟 **阿里**:Qwen 系列模型 * 💬 **Moonshot**:Kimi 模型等 模型是否可调用取决于当前账号、令牌分组和线路。正式接入前请在[控制台模型与价格页面](https://api2.laozhang.ai/account/pricing)确认准确模型 ID、实时价格和开放状态。 ### 功能支持范围 **✅ 支持的功能:** * 💬 **对话补全**:Chat Completions接口 * 🖼️ **图像生成**:gpt-image-2、flux-kontext-pro、flux-kontext-max 等 * 🔊 **语音处理**:Whisper转录 * 📊 **嵌入向量**:文本向量化 * ⚡ **函数调用**:Function Calling * 📡 **流式输出**:实时响应 * 🔧 **OpenAI参数**:temperature、top\_p、max\_tokens等 * 🆕 **Responses端点**:OpenAI最新功能 **❌ 不支持的功能:** * 🔧 微调接口(Fine-tuning) * 📁 Files管理接口 * 🏢 组织管理接口 * 💳 计费管理接口 ### 简单切换模型 **核心优势:一套代码,多种模型** 用OpenAI格式跑通后,只要**更换模型名称**即可切换到其他大模型: ```python theme={null} # 使用 GPT-5.6 response = client.chat.completions.create( model="gpt-5.6", # OpenAI模型 messages=[...] ) # 切换到Claude,其他代码完全不变! response = client.chat.completions.create( model="claude-sonnet-5", # 只改模型名 messages=[...] ) # 切换到Gemini response = client.chat.completions.create( model="gemini-3.6-flash", # 只改模型名 messages=[...] ) ``` 这种设计让您可以轻松对比不同模型的效果,或根据成本和性能需求灵活切换模型,无需重写代码! ## 快速开始 - API 技术接入 ### 获取 API Key 账号注册用于 API 技术接入测试与企业系统集成。laozhang.ai 由新加坡公司 YingTu Technology Pte. Ltd. 运营,注册与服务可用性以企业白名单审核为准;企业用户如需注册,请发送邮件至 `hi@laozhang.ai` 联系客服申请白名单开通。 1. 访问 [老张API控制台](https://api2.laozhang.ai/token) 2. 登录您的账户 3. 在令牌管理页面点击"新增"创建API Key 4. 复制生成的API Key用于接口调用 ### 查看请求示例 在令牌管理页面,您可以快速获取各种编程语言的代码示例: **操作步骤:** 1. 进入 [令牌管理页面](https://api2.laozhang.ai/token) 2. 找到您要使用的API Key所在的行 3. 点击"操作"列中的🔧**小扳手图标**(工具图标) 4. 在弹出菜单中选择"**请求示例**" 5. 查看包含以下语言的完整代码示例: 老张API令牌管理界面 **支持的编程语言:** * **cURL** - 命令行测试 * **Python (SDK)** - 使用官方OpenAI库 * **Python (requests)** - 使用requests库 * **Node.js** - JavaScript/TypeScript * **Java** - Java应用开发 * **C#** - .NET应用开发 * **Go** - Go语言开发 * **PHP** - Web开发 * **Ruby** - Ruby应用开发 * 以及更多语言... **代码示例特点:** * ✅ **完整可运行**:复制粘贴即可使用 * ✅ **参数说明**:详细的参数配置 * ✅ **错误处理**:包含异常处理逻辑 * ✅ **最佳实践**:遵循各语言开发规范 建议开发者优先查看后台的请求示例,这些示例会根据最新的API版本实时更新,确保代码的准确性和可用性。 ## 基础信息 ### API 端点 * **主要端点**:`https://api2.laozhang.ai/v1`(推荐,全球加速) * **备用端点**:`https://api-vip.laozhang.ai/v1`(海外服务器可直连) `api2.laozhang.ai` 配置了全球加速的宽带节点,建议优先使用。`api-vip.laozhang.ai` 仅作为备用域名,适合海外服务器直连,如遇不稳定请切换回主域名。 ### 认证方式 所有 API 请求需要在 Header 中包含认证信息: ```http theme={null} Authorization: Bearer YOUR_API_KEY ``` ### 请求格式 * **Content-Type**:`application/json` * **编码格式**:UTF-8 * **请求方法**:POST(大部分接口) ## 核心接口 ### 1. 对话补全(Chat Completions) 创建一个对话补全请求,支持多轮对话。 **请求端点** ``` POST /v1/chat/completions ``` **请求参数** | 参数 | 类型 | 必填 | 说明 | | ------------------ | ------------ | -- | ------------------------- | | model | string | 是 | 模型名称,如 `gemini-3.6-flash` | | messages | array | 是 | 对话消息数组 | | temperature | number | 否 | 采样温度,0-2之间,默认1 | | max\_tokens | integer | 否 | 最大生成令牌数 | | stream | boolean | 否 | 是否流式返回,默认false | | top\_p | number | 否 | 核采样参数,0-1之间 | | n | integer | 否 | 生成数量,默认1 | | stop | string/array | 否 | 停止序列 | | presence\_penalty | number | 否 | 存在惩罚,-2到2之间 | | frequency\_penalty | number | 否 | 频率惩罚,-2到2之间 | **消息格式** ```json theme={null} { "role": "system|user|assistant", "content": "消息内容" } ``` **完整代码示例** ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/chat/completions" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3.6-flash", "messages": [ {"role": "system", "content": "你是一个有用的AI助手。"}, {"role": "user", "content": "你好!请介绍一下自己。"} ], "temperature": 0.7, "max_tokens": 1000 }' ``` ```python theme={null} from openai import OpenAI # 初始化客户端 client = OpenAI( api_key="YOUR_API_KEY", base_url="https://api2.laozhang.ai/v1" ) # 发送聊天请求 response = client.chat.completions.create( model="gemini-3.6-flash", messages=[ {"role": "system", "content": "你是一个有用的AI助手。"}, {"role": "user", "content": "你好!请介绍一下自己。"} ], temperature=0.7, max_tokens=1000 ) print(response.choices[0].message.content) ``` ```python theme={null} import requests import json url = "https://api2.laozhang.ai/v1/chat/completions" headers = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" } data = { "model": "gemini-3.6-flash", "messages": [ {"role": "system", "content": "你是一个有用的AI助手。"}, {"role": "user", "content": "你好!请介绍一下自己。"} ], "temperature": 0.7, "max_tokens": 1000 } response = requests.post(url, headers=headers, json=data) result = response.json() if response.status_code == 200: print(result["choices"][0]["message"]["content"]) else: print(f"错误: {result}") ``` ```javascript theme={null} const OpenAI = require('openai'); const client = new OpenAI({ apiKey: 'YOUR_API_KEY', baseURL: 'https://api2.laozhang.ai/v1' }); async function chatCompletion() { try { const response = await client.chat.completions.create({ model: 'gemini-3.6-flash', messages: [ {"role": "system", "content": "你是一个有用的AI助手。"}, {"role": "user", "content": "你好!请介绍一下自己。"} ], temperature: 0.7, max_tokens: 1000 }); console.log(response.choices[0].message.content); } catch (error) { console.error('API调用错误:', error); } } chatCompletion(); ``` ```java theme={null} import okhttp3.*; import com.google.gson.Gson; import java.io.IOException; import java.util.*; public class LaoZhangExample { private static final String API_KEY = "YOUR_API_KEY"; private static final String BASE_URL = "https://api2.laozhang.ai/v1"; public static void main(String[] args) throws IOException { OkHttpClient client = new OkHttpClient(); Gson gson = new Gson(); // 构建请求体 Map requestBody = new HashMap<>(); requestBody.put("model", "gemini-3.6-flash"); requestBody.put("temperature", 0.7); requestBody.put("max_tokens", 1000); List> messages = Arrays.asList( Map.of("role", "system", "content", "你是一个有用的AI助手。"), Map.of("role", "user", "content", "你好!请介绍一下自己。") ); requestBody.put("messages", messages); RequestBody body = RequestBody.create( gson.toJson(requestBody), MediaType.parse("application/json") ); Request request = new Request.Builder() .url(BASE_URL + "/chat/completions") .addHeader("Authorization", "Bearer " + API_KEY) .addHeader("Content-Type", "application/json") .post(body) .build(); try (Response response = client.newCall(request).execute()) { System.out.println(response.body().string()); } } } ``` ```csharp theme={null} using System; using System.Net.Http; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; class Program { private static readonly string API_KEY = "YOUR_API_KEY"; private static readonly string BASE_URL = "https://api2.laozhang.ai/v1"; static async Task Main(string[] args) { using var client = new HttpClient(); client.DefaultRequestHeaders.Add("Authorization", $"Bearer {API_KEY}"); var requestBody = new { model = "gemini-3.6-flash", messages = new[] { new { role = "system", content = "你是一个有用的AI助手。" }, new { role = "user", content = "你好!请介绍一下自己。" } }, temperature = 0.7, max_tokens = 1000 }; var json = JsonConvert.SerializeObject(requestBody); var content = new StringContent(json, Encoding.UTF8, "application/json"); try { var response = await client.PostAsync($"{BASE_URL}/chat/completions", content); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); } catch (Exception ex) { Console.WriteLine($"错误: {ex.Message}"); } } } ``` ```go theme={null} package main import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http" ) type Message struct { Role string `json:"role"` Content string `json:"content"` } type ChatRequest struct { Model string `json:"model"` Messages []Message `json:"messages"` Temperature float64 `json:"temperature"` MaxTokens int `json:"max_tokens"` } func main() { apiKey := "YOUR_API_KEY" baseURL := "https://api2.laozhang.ai/v1" reqData := ChatRequest{ Model: "gemini-3.6-flash", Messages: []Message{ {Role: "system", Content: "你是一个有用的AI助手。"}, {Role: "user", Content: "你好!请介绍一下自己。"}, }, Temperature: 0.7, MaxTokens: 1000, } jsonData, _ := json.Marshal(reqData) req, _ := http.NewRequest("POST", baseURL+"/chat/completions", bytes.NewBuffer(jsonData)) req.Header.Set("Authorization", "Bearer "+apiKey) req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { fmt.Printf("请求错误: %v\n", err) return } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body)) } ``` ```php theme={null} 'gemini-3.6-flash', 'messages' => array( array('role' => 'system', 'content' => '你是一个有用的AI助手。'), array('role' => 'user', 'content' => '你好!请介绍一下自己。') ), 'temperature' => 0.7, 'max_tokens' => 1000 ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $base_url . '/chat/completions'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $api_key, 'Content-Type: application/json' )); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code == 200) { $result = json_decode($response, true); echo $result['choices'][0]['message']['content']; } else { echo "错误: " . $response; } ?> ``` ```ruby theme={null} require 'net/http' require 'json' api_key = 'YOUR_API_KEY' base_url = 'https://api2.laozhang.ai/v1' uri = URI("#{base_url}/chat/completions") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Post.new(uri) request['Authorization'] = "Bearer #{api_key}" request['Content-Type'] = 'application/json' request.body = { model: 'gemini-3.6-flash', messages: [ { role: 'system', content: '你是一个有用的AI助手。' }, { role: 'user', content: '你好!请介绍一下自己。' } ], temperature: 0.7, max_tokens: 1000 }.to_json response = http.request(request) if response.code == '200' result = JSON.parse(response.body) puts result['choices'][0]['message']['content'] else puts "错误: #{response.body}" end ``` **响应示例** ```json theme={null} { "id": "chatcmpl-123", "object": "chat.completion", "created": 1699000000, "model": "gemini-3.6-flash", "choices": [{ "index": 0, "message": { "role": "assistant", "content": "Hello! How can I help you today?" }, "finish_reason": "stop" }], "usage": { "prompt_tokens": 20, "completion_tokens": 10, "total_tokens": 30 } } ``` ### 2. 文本补全(Completions) 为兼容旧版接口保留,建议使用 Chat Completions。 **请求端点** ``` POST /v1/completions ``` **请求参数** | 参数 | 类型 | 必填 | 说明 | | ----------- | ------------ | -- | ------ | | model | string | 是 | 模型名称 | | prompt | string/array | 是 | 提示文本 | | max\_tokens | integer | 否 | 最大生成长度 | | temperature | number | 否 | 采样温度 | | top\_p | number | 否 | 核采样参数 | | n | integer | 否 | 生成数量 | | stream | boolean | 否 | 流式输出 | | stop | string/array | 否 | 停止序列 | ### 3. 嵌入向量(Embeddings) 将文本转换为向量表示。 **请求端点** ``` POST /v1/embeddings ``` **请求参数** | 参数 | 类型 | 必填 | 说明 | | ---------------- | ------------ | -- | ------------------------------- | | model | string | 是 | 模型名称,如 `text-embedding-3-small` | | input | string/array | 是 | 输入文本 | | encoding\_format | string | 否 | 编码格式,`float` 或 `base64` | **完整代码示例** ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/embeddings" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "text-embedding-3-small", "input": "这是一段需要向量化的文本示例" }' ``` ```python theme={null} from openai import OpenAI client = OpenAI( api_key="YOUR_API_KEY", base_url="https://api2.laozhang.ai/v1" ) response = client.embeddings.create( model="text-embedding-3-small", input="这是一段需要向量化的文本示例" ) # 获取向量 embedding = response.data[0].embedding print(f"向量维度: {len(embedding)}") print(f"前5个值: {embedding[:5]}") ``` ```python theme={null} import requests import json url = "https://api2.laozhang.ai/v1/embeddings" headers = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" } data = { "model": "text-embedding-3-small", "input": "这是一段需要向量化的文本示例" } response = requests.post(url, headers=headers, json=data) result = response.json() if response.status_code == 200: embedding = result["data"][0]["embedding"] print(f"向量维度: {len(embedding)}") print(f"向量值: {embedding[:5]}") # 显示前5个值 else: print(f"错误: {result}") ``` ```javascript theme={null} const OpenAI = require('openai'); const client = new OpenAI({ apiKey: 'YOUR_API_KEY', baseURL: 'https://api2.laozhang.ai/v1' }); async function getEmbedding() { try { const response = await client.embeddings.create({ model: 'text-embedding-3-small', input: '这是一段需要向量化的文本示例' }); const embedding = response.data[0].embedding; console.log(`向量维度: ${embedding.length}`); console.log(`前5个值: ${embedding.slice(0, 5)}`); } catch (error) { console.error('API调用错误:', error); } } getEmbedding(); ``` ### 4. 图像生成(Images) 生成、编辑或变换图像。 **生成图像** ``` POST /v1/images/generations ``` **请求参数** | 参数 | 类型 | 必填 | 说明 | | ------- | ------- | -- | ------------------------------------------ | | model | string | 是 | 模型名称,推荐 `gpt-image-2` | | prompt | string | 是 | 图像描述提示词 | | n | integer | 否 | 生成数量,默认1 | | size | string | 否 | 图像尺寸:`1024x1024`, `1792x1024`, `1024x1792` | | quality | string | 否 | 质量:`standard` 或 `hd` | | style | string | 否 | 风格:`vivid` 或 `natural` | 推荐使用 `gpt-image-2` 模型进行图像生成。更多图像生成功能和参数说明,请查看 [GPT图像生成详细文档](/api-capabilities/gpt-image-2)。 **完整代码示例** ```bash theme={null} curl -X POST "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-image-2", "prompt": "一只可爱的橙色小猫坐在阳光明媚的花园里", "n": 1, "size": "1024x1024", "quality": "hd" }' ``` ```python theme={null} from openai import OpenAI client = OpenAI( api_key="YOUR_API_KEY", base_url="https://api2.laozhang.ai/v1" ) response = client.images.generate( model="gpt-image-2", # 推荐使用gpt-image-2 prompt="一只可爱的橙色小猫坐在阳光明媚的花园里", n=1, size="1024x1024", quality="hd" ) # 获取图片URL image_url = response.data[0].url print(f"生成的图片: {image_url}") # 下载图片 import requests img_response = requests.get(image_url) with open("generated_image.png", "wb") as f: f.write(img_response.content) print("图片已保存为 generated_image.png") ``` ```javascript theme={null} const OpenAI = require('openai'); const fs = require('fs'); const client = new OpenAI({ apiKey: 'YOUR_API_KEY', baseURL: 'https://api2.laozhang.ai/v1' }); async function generateImage() { try { const response = await client.images.generate({ model: 'gpt-image-2', // 推荐使用gpt-image-2 prompt: '一只可爱的橙色小猫坐在阳光明媚的花园里', n: 1, size: '1024x1024', quality: 'hd' }); const imageUrl = response.data[0].url; console.log('生成的图片:', imageUrl); // 下载图片 const fetch = require('node-fetch'); const imgResponse = await fetch(imageUrl); const buffer = await imgResponse.buffer(); fs.writeFileSync('generated_image.png', buffer); console.log('图片已保存'); } catch (error) { console.error('生成图片错误:', error); } } generateImage(); ``` ### 5. 音频转文字(Audio) 语音识别和转录。 **转录音频** ``` POST /v1/audio/transcriptions ``` **请求参数**(Form-Data) | 参数 | 类型 | 必填 | 说明 | | ---------------- | ------ | -- | ------------------ | | file | file | 是 | 音频文件 | | model | string | 是 | 模型名称,如 `whisper-1` | | language | string | 否 | 语言代码 | | prompt | string | 否 | 指导提示 | | response\_format | string | 否 | 响应格式 | | temperature | number | 否 | 采样温度 | ### 6. 模型列表 获取可用模型列表。 **请求端点** ``` GET /v1/models ``` **响应示例** ```json theme={null} { "object": "list", "data": [ { "id": "gemini-3.6-flash", "object": "model", "created": 1677610602, "owned_by": "google" }, { "id": "claude-sonnet-5", "object": "model", "created": 1687882411, "owned_by": "anthropic" } ] } ``` ## 流式响应 ### 开启流式输出 在请求中设置 `stream: true`: ```json theme={null} { "model": "gemini-3.6-flash", "messages": [{"role": "user", "content": "Hello"}], "stream": true } ``` ### 流式响应格式 响应将以 Server-Sent Events (SSE) 格式返回: ``` data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1699000000,"model":"gemini-3.6-flash","choices":[{"delta":{"content":"Hello"},"index":0}]} data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1699000000,"model":"gemini-3.6-flash","choices":[{"delta":{"content":" there"},"index":0}]} data: [DONE] ``` ### 处理流式响应 ```python theme={null} import requests import json response = requests.post( 'https://api2.laozhang.ai/v1/chat/completions', headers={ 'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json' }, json={ 'model': 'gemini-3.6-flash', 'messages': [{'role': 'user', 'content': 'Hello'}], 'stream': True }, stream=True ) for line in response.iter_lines(): if line: line = line.decode('utf-8') if line.startswith('data: '): data = line[6:] if data != '[DONE]': chunk = json.loads(data) content = chunk['choices'][0]['delta'].get('content', '') print(content, end='') ``` ```javascript theme={null} const response = await fetch('https://api2.laozhang.ai/v1/chat/completions', { method: 'POST', headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'gemini-3.6-flash', messages: [{role: 'user', content: 'Hello'}], stream: true }) }); const reader = response.body.getReader(); const decoder = new TextDecoder(); while (true) { const {done, value} = await reader.read(); if (done) break; const chunk = decoder.decode(value); const lines = chunk.split('\n'); for (const line of lines) { if (line.startsWith('data: ')) { const data = line.slice(6); if (data !== '[DONE]') { const json = JSON.parse(data); const content = json.choices[0].delta.content || ''; process.stdout.write(content); } } } } ``` ## 错误处理 ### 错误响应格式 ```json theme={null} { "error": { "message": "Invalid API key provided", "type": "invalid_request_error", "param": null, "code": "invalid_api_key" } } ``` ### 常见错误码 | 错误码 | HTTP状态码 | 说明 | | ----------------------- | ------- | ------- | | invalid\_api\_key | 401 | API密钥无效 | | insufficient\_quota | 429 | 额度不足 | | model\_not\_found | 404 | 模型不存在 | | invalid\_request\_error | 400 | 请求参数错误 | | server\_error | 500 | 服务器内部错误 | | rate\_limit\_exceeded | 429 | 请求频率过高 | ### 错误处理示例 ```python theme={null} try: response = client.chat.completions.create( model="gemini-3.6-flash", messages=[{"role": "user", "content": "Hello"}] ) except Exception as e: if hasattr(e, 'status_code'): if e.status_code == 401: print("API密钥无效") elif e.status_code == 429: print("请求过于频繁或额度不足") elif e.status_code == 500: print("服务器错误,请稍后重试") else: print(f"未知错误:{str(e)}") ``` ## 最佳实践 ### 1. 请求优化 * **合理设置 max\_tokens**:避免不必要的长输出 * **使用 temperature**:控制输出的随机性 * **批量处理**:合并多个请求减少调用次数 ### 2. 错误重试 实现指数退避的重试机制: ```python theme={null} import time import random def retry_with_backoff(func, max_retries=3): for i in range(max_retries): try: return func() except Exception as e: if i == max_retries - 1: raise e wait_time = (2 ** i) + random.uniform(0, 1) time.sleep(wait_time) ``` ### 3. 安全建议 * **保护API密钥**:使用环境变量存储 * **限制权限**:为不同应用创建不同的密钥 * **监控使用**:定期检查API使用日志 ### 4. 性能优化 * **使用流式输出**:提升用户体验 * **缓存响应**:对相同请求缓存结果 * **并发控制**:合理控制并发请求数 ## 速率限制 RPM、TPM 和并发限制会随模型、令牌分组、线路和账户配置变化,不使用统一固定值。请在控制台确认当前限制,并以渐进方式提高生产流量。 超出当前限制时通常会返回 429。客户端应读取错误信息,采用指数退避并限制重试次数;不要在未确认模型可用性和账户额度前持续重试。 ## 需要帮助? * 访问 [老张API官网](https://api2.laozhang.ai) * 查看 [支持的模型](/api-capabilities/model-info) * 联系技术支持:[hi@laozhang.ai](mailto:hi@laozhang.ai) 本手册持续更新中,请关注最新版本以获取新功能和改进。 # Chat Completions API 参考 Source: https://docs.laozhang.ai/api-reference/chat-completions 老张API Chat Completions 接口参考:端点、最小请求、条件性参数、响应、流式输出、错误处理和兼容性验收边界。 ## 直接答案 使用 `POST https://api2.laozhang.ai/v1/chat/completions` 发送消息数组并获取模型回复。老张API提供 OpenAI 兼容调用入口,但“兼容入口”不等于所有模型、参数、工具、流式事件和错误行为都与 OpenAI 完全相同;必须按模型、API Key 分组和实际请求验证。 本页最后核对日期为 **2026 年 9 月 2 日**。OpenAI 官方协议参考:[Chat Completions API](https://developers.openai.com/api/reference/cli/resources/chat/subresources/completions)。老张API当前模型、分组和价格以[控制台](https://api2.laozhang.ai/account/pricing)为准。 ## 请求 * **Method**:`POST` * **URL**:`https://api2.laozhang.ai/v1/chat/completions` * **Authorization**:`Bearer YOUR_LAOZHANG_API_KEY` * **Content-Type**:`application/json` ```bash theme={null} curl "https://api2.laozhang.ai/v1/chat/completions" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5.6", "messages": [ {"role": "user", "content": "请只回复:连接成功"} ] }' ``` 使用前请从[模型与价格总表](/models)复制实际可用的模型 ID;示例模型不代表所有账户分组都已开放。 ## 核心字段 | 字段 | 必需 | 说明 | | -------------------------------------- | --- | ---------------------------------------- | | `model` | 是 | 控制台和模型总表中的准确模型 ID | | `messages` | 是 | 按顺序排列的消息数组 | | `stream` | 否 | 请求流式输出;具体事件和 usage 行为需实测 | | `temperature` / `top_p` | 条件性 | 并非所有模型都支持;通常不要同时调整 | | `max_tokens` / `max_completion_tokens` | 条件性 | 字段名和上限取决于模型与兼容层 | | `tools` / `tool_choice` | 条件性 | 工具定义、并行调用和事件格式必须逐模型验证 | | `response_format` | 条件性 | JSON mode 或 structured output 支持不能从模型名推断 | 不要把某个模型的默认值复制成全站通用默认值。未知字段可能被拒绝、忽略或由兼容层转换;生产前需要用错误用例验证。 ## 消息角色 常见角色包括 `developer`、`system`、`user`、`assistant` 和 `tool`。OpenAI 官方文档说明,新一代模型可能优先使用 `developer` 指令;老张API及非 OpenAI 上游是否接受和如何转换这些角色,需按当前模型实测。 ```json theme={null} { "role": "user", "content": "请总结这段文本" } ``` 多模态 `content`、音频、文件或图片块仅在目标模型和路由明确支持时使用。 ## 响应与验收 非流式 OpenAI 兼容响应通常包含: * `id`、`object`、`created`、`model`; * `choices[]`; * `choices[].message`; * `choices[].finish_reason`; * 可用时的 `usage`。 不要只检查 HTTP 200。至少确认: 1. `choices[0].message.content` 或工具调用字段符合预期; 2. 流式响应能以客户端支持的方式正常结束; 3. usage 与控制台调用日志一致; 4. 无效参数、无权限模型和余额不足返回可处理的错误; 5. 重试不会造成重复计费或重复副作用。 ## 错误处理 | 状态 | 常见检查 | | -------- | ------------------------------ | | 400 | JSON、字段、类型、模型参数和上下文长度 | | 401 | Authorization 格式和 API Key 是否有效 | | 403 | API Key 分组、模型权限、账户或地区限制 | | 404 | endpoint 或模型 ID 是否准确 | | 429 | 余额、速率限制、并发和上游容量 | | 5xx / 超时 | 路由、上游、网络;仅对临时错误做有限退避重试 | 排查时记录请求时间、模型、端点、API Key 分组和脱敏错误,并查看[调用日志](/faq/call-logs)。 ## 相关文档 * [Models API](/api-reference/models) * [OpenAI Responses API](/api-capabilities/openai-responses) * [OpenAI SDK 接入](/api-capabilities/openai-sdk) * [OpenAI 官方 Chat Completions API](https://developers.openai.com/api/reference/cli/resources/chat/subresources/completions) # Claude 模型接入指南 Source: https://docs.laozhang.ai/api-reference/claude 通过老张API接入 Anthropic Claude:当前模型 ID、Messages 与 OpenAI 兼容入口、分组差异、参数边界和生产验收。 ## 直接答案 先从[模型与价格总表](/models)确认当前账户可用的 Claude 模型 ID、API Key 分组和端点。Claude 官方模型、ID 和能力以 [Anthropic 模型目录](https://platform.claude.com/docs/en/models/overview)为准;老张API是否已接入、使用哪个分组和如何计费,以控制台和调用日志为准。 本页最后核对日期为 **2026 年 9 月 2 日**,不再维护容易过期的完整静态模型和上游价格表。 ## 两种接入协议 ### Anthropic Messages 兼容入口 Anthropic 官方 Messages API 使用结构化 `messages`、必填 `max_tokens` 和模型 ID。老张API是否为当前分组提供原生 Messages 兼容入口,应以控制台、模型目录和实际请求为准。 官方协议:[Create a Message](https://platform.claude.com/docs/en/api/messages/create) ### OpenAI 兼容入口 部分 Claude 路线可通过老张API Chat Completions 兼容层调用: ```text theme={null} POST https://api2.laozhang.ai/v1/chat/completions ``` 这代表网关做了协议转换,不代表 Anthropic 原生字段、缓存、thinking、工具和错误行为会原样透传。 ## OpenAI 兼容最小请求 ```bash theme={null} curl "https://api2.laozhang.ai/v1/chat/completions" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "CLAUDE_MODEL_ID", "messages": [ {"role": "user", "content": "Reply only with: connected"} ] }' ``` 从控制台复制准确模型 ID,不要根据产品名称、Bedrock ID、Vertex ID 或旧日期格式自行拼接。 ## 需要逐项验证的能力 | 能力 | 验收重点 | | --------------------- | ------------------------------ | | system / developer 指令 | 协议转换后的优先级和内容结构 | | 多轮消息 | 角色交替、内容块和上下文限制 | | 图片和文件 | MIME、大小、数量和响应错误 | | tools | schema、tool choice、并行调用和返回块 | | thinking / effort | 字段名、可用模型、计费和响应结构 | | prompt caching | cache\_control、TTL、usage 和实际价格 | | streaming | event 名称、增量内容、结束事件和 usage | Anthropic 官方支持某项能力,不等于老张API的每条 Claude 路线都已透传。必须记录 API Key 分组、endpoint、model、测试日期和未测范围。 ## 模型 ID 与生命周期 Anthropic 官方说明,不同代际使用不同的版本命名规则;新模型的无日期 ID 可以是固定版本,而旧模型的短名称可能是别名。不要把无日期 ID 一律当成“自动更新到最新”。 生产项目应: 1. 保存经过验证的准确模型 ID; 2. 关注 Anthropic 官方弃用信息和老张API公告; 3. 新旧模型并行测试后再迁移; 4. 保留回滚和调用日志证据。 ## 相关文档 * [Anthropic 官方模型目录](https://platform.claude.com/docs/en/models/overview) * [Anthropic 官方 Messages API](https://platform.claude.com/docs/en/api/messages/create) * [Chat Completions API](/api-reference/chat-completions) * [模型可用性与权限](/faq/model-availability) * [Claude Code 配置](/scenarios/programming/claude-code) # Gemini 模型接入指南 Source: https://docs.laozhang.ai/api-reference/gemini 通过老张API接入 Google Gemini:当前模型发现、OpenAI 兼容与 Gemini 原生 generateContent 协议、参数边界和生产验收。 ## 直接答案 先从[模型与价格总表](/models)确认当前账户可用的 Gemini 模型 ID、API Key 分组和端点。Google 官方模型、版本和能力以 [Gemini 模型目录](https://ai.google.dev/gemini-api/docs/models)为准;老张API是否已接入、使用哪个协议和如何计费,以控制台与调用日志为准。 本页最后核对日期为 **2026 年 9 月 2 日**,不维护容易过期的完整静态模型和上游价格表。 ## 两种接入协议 ### OpenAI 兼容入口 部分 Gemini 文本和多模态模型可通过老张API Chat Completions 兼容层调用: ```text theme={null} POST https://api2.laozhang.ai/v1/chat/completions ``` 该入口会转换消息和响应结构,不等于 Gemini 原生 `contents`、`parts`、安全设置、工具和 usage 字段原样透传。 ### Gemini 原生入口 当模型专题页或控制台明确支持 Gemini 原生协议时,使用 AI Studio 风格路径: ```text theme={null} POST https://api2.laozhang.ai/v1beta/models/{model}:generateContent ``` Google 官方 REST 结构为 `v1beta/models/{model}:generateContent`,请求主体使用 `contents[]` 和 `parts[]`。不要使用 Vertex AI 的 project/location/publisher 路径替代这一协议,除非页面明确说明支持 Vertex 形式。 官方参考:[Gemini generateContent](https://ai.google.dev/api/generate-content) ## Gemini 原生最小请求 ```bash theme={null} curl "https://api2.laozhang.ai/v1beta/models/GEMINI_MODEL_ID:generateContent" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "contents": [ { "role": "user", "parts": [{"text": "Reply only with: connected"}] } ] }' ``` 鉴权头、模型 ID、分组和响应结构以老张API模型专题页及真实请求为准;Google 官方示例使用 `x-goog-api-key`,网关鉴权方式可能不同。 ## 需要逐项验证的能力 | 能力 | 验收重点 | | ----------------- | ---------------------------------- | | 文本与多轮 | `contents` 顺序、role 和 finish reason | | 图片、音频、视频、PDF | MIME、inline/file URI、大小和处理状态 | | thinking | 模型、预算/配置字段、响应和计费 | | function calling | schema、tool config、返回 parts 和多轮回传 | | structured output | response MIME、schema 和无效输出处理 | | safety settings | 可用类别、阈值、拦截响应和上游差异 | | streaming | streamGenerateContent 路径、事件和结束条件 | Google 官方 Gemini 支持某项能力,不等于老张API当前分组和兼容层已完整支持。模型 ID、preview/stable 状态和下线计划也会变化。 ## 模型版本 Google 会提供 stable、preview、experimental 等版本。生产使用前: 1. 从官方目录和控制台复制准确模型 ID; 2. 明确 stable、preview 或 experimental 状态; 3. 记录测试日期和可用分组; 4. 对替代模型做并行验收; 5. 关注 Google 官方下线信息和老张API公告。 ## 相关文档 * [Google 官方 Gemini 模型目录](https://ai.google.dev/gemini-api/docs/models) * [Google 官方 generateContent API](https://ai.google.dev/api/generate-content) * [Chat Completions API](/api-reference/chat-completions) * [Nano Banana 2](/api-capabilities/nano-banana2-image) * [模型可用性与权限](/faq/model-availability) # Images API 参考 Source: https://docs.laozhang.ai/api-reference/images 老张API图像生成与编辑接口入口、模型路由、最小请求、响应、价格和兼容性边界;避免把所有图像模型误写成同一协议。 按次计费入口新增 `gpt-image-2.5-flare-vip` 与 `gpt-image-2.5-sunburst-vip`,均为 \$0.03/次,接入方式同 `gpt-image-2-vip`。按次文生图支持 `low`、`medium`、`high`、`xhigh`、`max` 五档质量;尺寸、生成和编辑示例见 [GPT Image 2.5 指南](/api-capabilities/gpt-image-2-5)。 `gpt-image-2.5-flare-vip` 和 `gpt-image-2.5-sunburst-vip` 支持 PNG 透明生成与图片去背景。传入 `background="transparent"` 和 `output_format="png"`;具体生成与编辑请求见 [GPT Image 2.5 透明背景说明](/api-capabilities/gpt-image-2-5)。 ## 直接答案 老张API的图像模型并不全部使用同一个接口。OpenAI Images 兼容线路通常使用 `/v1/images/generations` 或 `/v1/images/edits`;部分模型使用 Chat Completions、Gemini 原生协议或专用异步接口。先从[图像生成 API 选择指南](/api-capabilities/image-generation-guide)选择模型,再按该模型页面的 endpoint、分组和参数调用。 本页更新日期为 **2026 年 9 月 10 日**。GPT Image 2.5 Flare / Sunburst 使用官转分组的 Images 生成与编辑接口;Default 使用 `gpt-image-2-web`(GPT 网页版最新 2.5)。模型 ID 与计费见 [GPT Image 2.5 指南](/api-capabilities/gpt-image-2-5),官方接口定义见 [OpenAI 图像生成文档](https://developers.openai.com/api/docs/guides/image-generation)。 ## 路由选择 | 任务 | 常见入口 | 必须确认 | | --------------------- | --------------------------------------------------- | ---------------------------- | | 文生图 | `POST /v1/images/generations` | 模型 ID、API Key 分组、尺寸、质量和返回格式 | | 图像编辑 | `POST /v1/images/edits` 或模型专题页指定入口 | multipart/JSON、参考图数量、遮罩和输出限制 | | Gemini 原生图像 | `/v1beta/models/{model}:generateContent`,仅在模型页明确支持时 | 请求结构、图片输入、响应 parts 和 MIME | | Chat Completions 图像路由 | `POST /v1/chat/completions`,仅在模型页明确支持时 | 消息结构、异步任务、结果字段和下载期限 | 不要把“模型能生成图片”自动等同于“完全支持 OpenAI Images API”。接口路径相同也不证明 `size`、`quality`、`n`、编辑、错误值和 MIME 行为一致。 ## Images Generations 最小请求 以下只展示 OpenAI Images 兼容入口。请把 `MODEL_ID` 替换为控制台和模型专题页确认的模型: ```bash theme={null} curl "https://api2.laozhang.ai/v1/images/generations" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "MODEL_ID", "prompt": "A blue ceramic cup on a wooden table" }' ``` 尺寸、质量、张数、背景、输出格式和编辑字段只在模型文档明确列出时使用。 ## 响应验收 不同线路可能返回 URL、Base64、任务 ID 或嵌套内容块。至少验证: 1. 返回对象中存在可用图像或可轮询任务; 2. 实际 MIME 与文件内容一致; 3. 图片尺寸与请求和文档一致; 4. URL 有效期和下载失败分支明确; 5. `quality`、`size` 和无效值会按文档生效或报错; 6. 实际扣费与控制台调用日志一致。 ## 价格 本页不维护跨模型静态价格,也不使用“最低价”等比较结论。图像可能按张、按请求、按 Token 或其他单位计费,并受 API Key 分组和线路影响。使用[控制台实时价格](https://api2.laozhang.ai/account/pricing)和代表性请求估算成本;企业采购或折扣联系站长或支持团队。 ## 当前文档入口 * [GPT Image 2.5](/api-capabilities/gpt-image-2-5) * [GPT Image 2:已有集成](/api-capabilities/gpt-image-2) * [Grok Imagine](/api-capabilities/grok-imagine-image) * [Nano Banana 2](/api-capabilities/nano-banana2-image) * [Nano Banana 2 Lite](/api-capabilities/nano-banana-2-lite-api) * [Nano Banana Pro](/api-capabilities/nano-banana-pro-image) * [Flux 图像生成](/api-capabilities/flux-image-generation) * [Seedream](/api-capabilities/seedream-image) 历史 GPT-Image-1、Sora Image 或旧路线仅用于已有集成排查,不应作为新项目默认选择。 ## 相关文档 * [图像生成 API 选择指南](/api-capabilities/image-generation-guide) * [调用日志](/faq/call-logs) * [模型与价格总表](/models) * [OpenAI 官方 GPT-Image-2](https://developers.openai.com/api/docs/models/gpt-image-2) # Models API 参考 Source: https://docs.laozhang.ai/api-reference/models 通过老张API Models API 获取当前账户可见的模型 ID,并正确理解列表字段、权限、端点和兼容性边界。 ## 直接答案 使用 `GET https://api2.laozhang.ai/v1/models` 获取当前 API Key 可见的模型列表。列表用于发现模型 ID,不证明该模型支持所有端点、参数、SDK、工具或账户分组,也不应被当作价格和完整兼容性的唯一依据。 本页最后核对日期为 **2026 年 9 月 2 日**。OpenAI 官方 Models API 说明模型对象提供 ID、创建时间和所有者等基础信息:[Models API](https://developers.openai.com/api/reference/typescript/resources/models/methods/retrieve)。老张API价格和分组以[控制台](https://api2.laozhang.ai/account/pricing)为准。 ## 获取模型列表 ```bash theme={null} curl "https://api2.laozhang.ai/v1/models" \ -H "Authorization: Bearer $LAOZHANG_API_KEY" ``` 典型响应结构: ```json theme={null} { "object": "list", "data": [ { "id": "MODEL_ID", "object": "model", "created": 0, "owned_by": "provider-or-gateway" } ] } ``` 实际字段可能因网关和模型来源不同而增加或缺失。客户端应忽略未知字段,不依赖示例中的占位值。 ## 字段边界 | 字段 | 用途 | 不代表什么 | | ---------- | ----------------- | --------------------- | | `id` | API 请求中使用的候选模型 ID | 不代表当前 API Key 必然有调用权限 | | `object` | 对象类型 | 不代表具体端点支持范围 | | `created` | 模型记录的时间字段 | 不代表最近更新或上线日期 | | `owned_by` | 所有者或路由标识 | 不代表请求一定直连该厂商 | ## 从列表到可用的验收步骤 1. 在[模型与价格总表](/models)确认模型 ID、端点和候选分组; 2. 在控制台确认当前 API Key 权限和计费单位; 3. 向目标端点发送最小真实请求; 4. 验证响应结构、错误行为和实际扣费; 5. 对工具、流式、多模态和错误分支分别测试。 “出现在 `/v1/models`”“请求返回 HTTP 200”或“可用 OpenAI SDK”都不能单独证明完整兼容。 ## 常见问题 ### 为什么控制台有模型但 API 列表没有? 可能与 API Key 分组、账户权限、缓存或模型状态有关。先重新创建最小测试密钥,再携带时间、账户、模型和分组联系支持。 ### 为什么列表里有模型但调用返回 403 或 404? 模型可能不属于当前分组、端点不匹配、模型已调整,或当前账户没有权限。按[模型可用性排查](/faq/model-availability)核对。 ### Models API 是否返回实时价格? 不要假设。价格、阶梯、分组和按次计费以[控制台价格页](https://api2.laozhang.ai/account/pricing)、[模型目录](/models)和调用日志为准。 ## 相关文档 * [模型可用性与权限](/faq/model-availability) * [Chat Completions API](/api-reference/chat-completions) * [模型与价格总表](/models) * [OpenAI 官方 Models API](https://developers.openai.com/api/reference/typescript/resources/models/methods/retrieve) # OpenAI 模型接入指南 Source: https://docs.laozhang.ai/api-reference/openai 通过老张API接入 OpenAI 模型:当前模型发现、Chat Completions 与 Responses 入口、SDK 配置、兼容性和生产验收边界。 ## 直接答案 先在[模型与价格总表](/models)或控制台确认当前 OpenAI 模型 ID、API Key 分组和支持端点,再选择 Chat Completions、Responses 或 Images 接口。OpenAI 官方当前模型和生命周期会变化;本页不复制静态完整列表或上游价格。 本页最后核对日期为 **2026 年 9 月 2 日**。OpenAI 当前模型以[官方模型目录](https://developers.openai.com/api/docs/models)为准;老张API实际可用性和价格以[控制台](https://api2.laozhang.ai/account/pricing)为准。 ## 三类事实必须分开 | 事实 | 权威来源 | | -------------------------- | ------------------ | | OpenAI 官方模型能力、ID、生命周期和上游协议 | OpenAI 官方文档 | | 老张API是否已接入、可用分组、路由和计费方式 | 老张API控制台、模型目录和调用日志 | | 当前账户能否使用某字段、工具或 SDK | 使用目标 API Key 的真实请求 | OpenAI 官方存在某个模型,不代表老张API每个账户都已开放;老张API模型列表出现某个 ID,也不证明所有 OpenAI 参数都完整透传。 ## 接口选择 ### Chat Completions 适用于已有 OpenAI-compatible 消息工作流: ```text theme={null} POST https://api2.laozhang.ai/v1/chat/completions ``` 查看[Chat Completions API 参考](/api-reference/chat-completions)。 ### Responses 适用于文本、图片、文件、工具、对话状态等新一代 OpenAI 工作流: ```text theme={null} POST https://api2.laozhang.ai/v1/responses ``` OpenAI 官方 Responses 支持的工具和字段不等于老张API已全部透传。查看[老张API Responses API](/api-capabilities/openai-responses)中的已验证范围。 ### Images OpenAI 图像模型已包含 GPT Image 2.5 Flare 与 Sunburst。老张API两个模型使用官转分组;Default 通过 `gpt-image-2-web` 使用 GPT 网页版最新 2.5。查看 [GPT Image 2.5](/api-capabilities/gpt-image-2-5) 和 [Images API 参考](/api-reference/images)。 VIP 按次线路可使用 `gpt-image-2.5-flare-vip` 或 `gpt-image-2.5-sunburst-vip`,均为 \$0.03/次,接入方式同 `gpt-image-2-vip`;详见 [GPT Image 2.5](/api-capabilities/gpt-image-2-5)。 ## SDK 最小配置 ```python theme={null} import os from openai import OpenAI client = OpenAI( api_key=os.environ["LAOZHANG_API_KEY"], base_url="https://api2.laozhang.ai/v1", ) ``` 安装版本、方法名和响应辅助属性应按当前 OpenAI 官方 SDK 文档核对;老张API不承诺所有 SDK 语言和版本行为完全一致。 ## 生产验收 对每个模型和端点记录: * 测试日期、SDK 及版本; * API Key 分组、endpoint 和 model; * 脱敏 request、expected 和 actual; * 非流式、流式、工具和错误分支; * usage、调用日志和实际扣费; * 条件性支持和未测范围。 ## 迁移原则 从 OpenAI 官方端点迁移时,不要只替换 Base URL 后就宣布完成: 1. 先确认模型 ID 在目标分组可用; 2. 删除该模型不支持的字段; 3. 验证流式事件和工具调用; 4. 验证错误、超时和重试; 5. 比对响应、MIME、usage 和账单; 6. 保留回滚配置。 ## 相关文档 * [OpenAI 官方模型目录](https://developers.openai.com/api/docs/models) * [OpenAI 官方 Responses API](https://developers.openai.com/api/reference/cli/resources/responses/methods/create) * [Chat Completions API](/api-reference/chat-completions) * [Models API](/api-reference/models) * [OpenAI SDK 接入](/api-capabilities/openai-sdk) # 老张API公告:新模型、价格与服务状态 Source: https://docs.laozhang.ai/changelog 查看老张API最新模型上线、价格与计费变化、线路恢复、弃用迁移和服务状态公告,并进入独立详情页了解影响与操作方法。 这里集中展示老张API仍值得关注的最新公告。列表仅保留“日期 + 一句话”,模型区别、影响范围、接入方法、常见问题和证据来源均放在独立详情页,避免公告首页过长。 ## 最新公告 * **2026年9月16日** — GPT Image 2.5 两个 `-vip` 模型因上游资源不足暂不可用;官转、`gpt-image-2.5-web` 与 `gpt-image-2-vip` 正常。[查看替代模型与切换说明](/announcements/gpt-image-2-5-vip-unavailable-2026-09) * **2026年9月3日** — Gemini 3.8 Flash 已上线老张API,当前输入价格为 \$0.75 / 1M tokens,输出价格为 \$3.75 / 1M tokens。[查看模型 ID、接入方法与迁移注意事项](/announcements/gemini-3-8-flash-2026-09) * **2026年9月3日** — `grok-imagine-image-2.0` 已开放:\$0.055/成功输出图片,支持 1K/2K、15 种固定宽高比、单次最多 10 张输出和最多三张参考图的 multipart 编辑。[查看接口、价格与三图示例](/announcements/grok-imagine-image-2-0-2026-09) * **2026年7月30日** — GPT-5.6 Luna API 价格下调 80%,Terra 下调 20%,老张API已同步生效,现有调用无需修改。[查看最新价格与长上下文计费](/announcements/gpt-5-6-pricing-2026-07) * **2026年7月23日** — `api.laozhang.ai` 受到 DNS 攻击及污染影响,默认接口已切换为 `api2.laozhang.ai`,API Key 与参数不变。[查看域名切换方法](/announcements/api-domain-migration-2026-07) 当前模型可用性、令牌分组、价格和实际扣费以[老张API控制台](https://api2.laozhang.ai/account/pricing)及调用日志为准。历史公告记录的是当时状态,不自动代表当前状态。 ## 常见问题 ### 最新模型应该在哪里确认是否可用? 先查看对应公告详情,再到[控制台模型与价格页面](https://api2.laozhang.ai/account/pricing)确认当前令牌分组是否开放该模型。正式上线前应使用目标令牌完成小流量测试。 ### 为什么公告首页不再展示完整内容? 公告首页只承担最新信息索引,独立详情页承载可搜索、可引用的完整答案,年度归档保存历史记录。这样既减少页面加载和生产渲染压力,也不会让公告内容挤占产品与模型导航。 ### 历史公告中的价格和状态还有效吗? 不一定。历史页面用于说明当时发生的变化;当前价格、可用分组和服务状态始终以控制台与最新公告为准。 ## 历史归档 * [2026 年完整公告归档](/announcements/changelog-archive-2026) * [2025 年完整公告归档](/announcements/changelog-archive-2025) ## 获取更新 * [加入 Telegram 公告频道](https://t.me/laozhang_ai) * [查看控制台模型与价格](https://api2.laozhang.ai/account/pricing) # 如何通过 API 查询账户余额 Source: https://docs.laozhang.ai/faq/balance-query-api 介绍如何获取老张API系统令牌 AccessToken,并通过余额查询 API 读取 quota、used_quota、请求次数和用户分组,用于余额监控和告警。 ## 简短答案 可以通过 `https://api2.laozhang.ai/api/user/self` 查询老张API账户余额。调用前需要在账户设置中生成系统令牌 AccessToken,并在请求头中传入 `Authorization`;使用 cURL 时建议加上 `--compressed`,否则 gzip 响应可能显示为乱码。 如果您正在接入生产监控或需要完整字段说明、错误处理和代码示例,请优先阅读开发者接口文档。 ## 获取系统令牌(AccessToken) 在调用余额查询接口之前,您需要先获取系统令牌(AccessToken)。 登录后访问 [账户设置页面](https://api2.laozhang.ai/account/profile),点击「系统令牌」选项。 系统令牌入口 在弹出的对话框中输入您的账户密码进行身份验证。 输入密码验证 验证成功后,系统会显示您的 AccessToken。请立即复制保存。 获取Token结果 **安全警告**: * AccessToken 具有账户完全权限,请妥善保管 * Token 只在创建时显示一次,无法再次查询 * 生成新 Token 会使旧 Token 立即失效 * 切勿在代码中硬编码或提交到公开仓库 ## 接口说明 ### 接口信息 | 项目 | 说明 | | ------ | ---------------------------------------- | | 接口 URL | `https://api2.laozhang.ai/api/user/self` | | 请求方法 | GET | | 认证方式 | Authorization Header | | 响应格式 | JSON (gzip 压缩) | ### 请求 Headers | Header 名称 | 必填 | 说明 | | ------------- | -- | ------------------------ | | Authorization | 是 | 系统令牌,直接填写 Token 字符串 | | Accept | 否 | 建议设置为 `application/json` | | Content-Type | 否 | 建议设置为 `application/json` | ### 响应字段说明 成功响应示例: ```json theme={null} { "success": true, "message": null, "data": { "username": "your_username", "display_name": "Your Name", "quota": 24997909, "used_quota": 10027091, "request_count": 339, "group": "svip" } } ``` 核心字段: | 字段名 | 类型 | 说明 | | -------------------- | ------- | --------------------- | | success | Boolean | 请求是否成功 | | message | String | 错误信息(成功时为 null) | | data.quota | Integer | 剩余额度(当前可用余额) | | data.used\_quota | Integer | 已使用额度 | | data.request\_count | Integer | 总请求次数 | | data.group | String | 用户所属组 | | data.ModelFixedPrice | Array | 模型价格列表;只查余额时可以忽略 | | data.access\_token | String | 敏感字段;如果接口返回,请不要写入普通日志 | 响应可能随账户状态返回更多字段。请只依赖 `quota`、`used_quota`、`request_count`、`group` 等业务需要的核心字段,并允许未知字段存在;如果出现 `access_token` 等敏感字段,不要写入普通日志或告警正文。 ### 额度和金额换算 `quota` 和 `used_quota` 返回的是额度单位。当前余额展示按 `50 万`额度约等于 `1 USD` 换算: * 剩余美元余额:`quota ÷ 50 万` * 已使用美元额度:`used_quota ÷ 50 万` * 历史总额度:`(quota + used_quota) ÷ 50 万` 例如接口返回 `quota: 24997909`,则剩余余额为 `24997909 ÷ 50 万 = 49.995818`,约等于 `50.00 USD`。 如果要做告警,建议同时记录原始 `quota` 和换算后的美元金额。模型实际扣费仍以当前模型价格、账户分组、调用日志和控制台展示为准。 ## 代码示例 **基础请求**(必须添加 `--compressed` 选项): ```bash theme={null} curl --compressed 'https://api2.laozhang.ai/api/user/self' \ -H 'Accept: application/json' \ -H 'Authorization: YOUR_ACCESS_TOKEN' \ -H 'Content-Type: application/json' ``` **重要提示**:必须添加 `--compressed` 选项,因为 API 返回 gzip 压缩内容,否则会得到乱码。 使用环境变量和 jq 提取核心信息: ```bash theme={null} export LAOZHANG_TOKEN='YOUR_ACCESS_TOKEN' curl --compressed -s 'https://api2.laozhang.ai/api/user/self' \ -H 'Accept: application/json' \ -H "Authorization: $LAOZHANG_TOKEN" \ -H 'Content-Type: application/json' | \ jq '.data | { quota, remaining_usd: (.quota / (50 * 10000)), used_quota, used_usd: (.used_quota / (50 * 10000)), request_count }' ``` `-s` 选项隐藏进度条,`--compressed` 自动解压 gzip 响应。 ```python theme={null} import requests # 配置 url = "https://api2.laozhang.ai/api/user/self" access_token = "YOUR_ACCESS_TOKEN" # 替换为你的令牌 # 请求头 headers = { 'Accept': 'application/json', 'Authorization': access_token, 'Content-Type': 'application/json' } # 发送请求 response = requests.get(url, headers=headers, timeout=10) # 检查响应 if response.status_code == 200: data = response.json() user_data = data['data'] # 提取核心信息 quota = user_data['quota'] used_quota = user_data['used_quota'] request_count = user_data['request_count'] quota_unit_per_usd = 50 * 10000 # 打印结果 print(f"剩余额度:{quota:,}") print(f"剩余美元余额:{quota / quota_unit_per_usd:.2f} USD") print(f"已使用额度:{used_quota:,}") print(f"已使用美元额度:{used_quota / quota_unit_per_usd:.2f} USD") print(f"请求次数:{request_count:,} 次") else: print(f"请求失败:HTTP {response.status_code}") print(response.text) ``` Python 的 `requests` 库会自动处理 gzip 解压,无需额外配置。 ## 错误处理 ### HTTP 401 - 认证失败 ```json theme={null} { "success": false, "message": "Unauthorized" } ``` **原因**:Authorization 令牌无效或已过期 **解决方法**:检查并更新系统令牌 ### HTTP 403 - 权限不足 ```json theme={null} { "success": false, "message": "Forbidden" } ``` **原因**:当前令牌无权访问该接口 **解决方法**:联系管理员确认权限配置 ## 仍然无法查询时 如果接口仍然返回认证失败、乱码、空响应或字段不符合预期,请先确认使用的是系统令牌 AccessToken,而不是普通 API Key。 联系技术支持时,请提供: * 账号邮箱或用户名 * 请求时间和 HTTP 状态码 * 返回的 `message` 字段或错误截图 * 已打码的请求命令,保留 URL、Header 名称和参数,不要暴露完整 AccessToken * 是否使用了 `--compressed` 或等效 gzip 解压配置 ## 常见问题 `quota` 字段就是当前的剩余额度(可用余额)。如果 `quota` 为 0 或接近 0,说明账户余额不足,需要及时确认账户额度。 当前余额展示按 `50 万`额度约等于 `1 USD` 换算。公式是:剩余美元余额 = `quota ÷ 50 万`,已使用美元额度 = `used_quota ÷ 50 万`。 例如 `quota: 24997909`,则 `24997909 ÷ 50 万 = 49.995818`,约等于 `50.00 USD`。生产告警建议同时保存原始 `quota` 和换算后的美元金额;模型实际扣费仍以控制台价格页、调用日志和当前账户规则为准。 **原因**:API 返回 gzip 压缩内容,curl 没有自动解压。 **解决方案**:添加 `--compressed` 选项: ```bash theme={null} # 正确 curl --compressed 'https://api2.laozhang.ai/api/user/self' -H 'Authorization: YOUR_TOKEN' # 错误(会乱码) curl 'https://api2.laozhang.ai/api/user/self' -H 'Authorization: YOUR_TOKEN' ``` 这通常是因为 curl 没有解压 gzip 内容。添加 `--compressed` 选项即可解决。 该字段返回各个 AI 模型的定价信息。如果您只关心余额信息,可以忽略该字段。 可以编写定时脚本定期查询余额,当 `quota` 低于设定阈值时发送告警通知(如邮件、Slack、Webhook 等)。 ## 相关问题 * 如果需要完整接口参数和接入示例,请查看[余额查询 API](/api-capabilities/balance-query) * 如果 `quota` 仍有余额但请求失败,请查看[为什么还有余额跑不通?](/faq/balance-insufficient) * 如果需要核对单次请求的模型、Token 和计费,请查看[如何查看我的调用记录?](/faq/call-logs) * 如果需要创建或更换 API Key,请查看[API密钥获取与管理](/faq/token-management) ## 注意事项 * 使用环境变量管理 Token * 不要提交到公开仓库 * 定期更换 Token * 设置合理超时时间(推荐 10 秒) * 避免过于频繁的查询 * 建议查询间隔 ≥ 1 分钟 * 处理网络异常和超时 * 处理认证失败情况 * 记录错误日志便于排查 * API 返回 gzip 压缩内容 * curl 必须添加 `--compressed` * requests 库自动处理 # 如何查看和使用调用日志? Source: https://docs.laozhang.ai/faq/call-logs 说明老张API控制台调用日志的用途、可见元数据、默认内容边界、通常保留时间,以及排查调用失败时应提供的脱敏信息。 ## 简短答案 登录[调用日志页面](https://api2.laozhang.ai/log),按时间、模型、状态或其他当前可用条件查找请求。调用日志主要用于核对计费、路由、错误类别和请求状态;老张API默认不保存 API prompt 或 response 内容。 本页依据 [老张API数据政策](https://www.laozhang.ai/zh-cn/data-policy) 整理,最后核对日期为 **2026 年 9 月 2 日**。控制台字段和筛选能力可能调整,以当前页面为准。 ## 日志可能包含什么 根据数据政策,请求元数据可能包括: * 账户或 API Key 标识; * 时间戳、模型、端点和路由; * Token、用量或计费单位; * 请求状态和错误类别; * 延迟和路由信息; * 安全、防滥用和服务完整性所需信息。 ## 默认不包含什么 老张API默认不保存 API prompt 和 response 内容。上游模型和基础设施服务商可能适用自己的日志、保留和安全审查规则,具体边界不能从老张API调用日志页面反推。 ## 保留时间 故障排查日志通常保留 **7 天**。为安全、防滥用调查、账单争议、法律合规或服务完整性而合理需要时,相关元数据可能保留更长时间。 账单、交易、账户、安全事件和用户主动提交的客服材料适用不同的保留目的和期限,详见[数据政策](https://www.laozhang.ai/zh-cn/data-policy)。 ## 排查调用失败 1. 记录失败发生的准确时间和时区; 2. 确认模型 ID、端点和 API Key 分组; 3. 查看 HTTP 状态、平台错误信息和是否产生计费; 4. 使用最小请求复现,区分参数、权限、余额、路由和上游错误; 5. 无法解决时,把脱敏后的证据发送给支持团队。 建议提供: * 账户邮箱或用户名; * 请求时间和时区; * 模型 ID、端点和令牌分组; * HTTP 状态码、错误类别和脱敏错误信息; * 控制台中可用于定位的请求标识; * 是否重试以及重试结果。 不要发送完整 API Key、密码、完整 prompt/response、受监管数据或无关的客户资料。不要假设文档中存在公开的日志查询 API;可用接口以当前控制台和正式 API 文档为准。 ## 相关文档 * [老张API如何处理数据与日志](/faq/data-security) * [为什么还有余额但调用失败](/faq/balance-insufficient) * [API Key 获取与管理](/faq/token-management) * [老张API数据政策](https://www.laozhang.ai/zh-cn/data-policy) # Claude Code 使用 AWS Claude 报 400 ValidationException 怎么办? Source: https://docs.laozhang.ai/faq/claude-code-aws-400-validation-error 说明 Claude Code 通过老张API使用 AWS Claude 官方通道时,遇到 400 ValidationException、Extra inputs are not permitted 或 cache_control.scope 错误的处理方式。 ## 简短答案 如果 Claude Code 使用 AWS Claude 官方通道时出现 `400 ValidationException`、`Extra inputs are not permitted` 或 `cache_control.scope` 相关错误,先在启动 Claude Code 前设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。这个设置会关闭 Claude Code 实验性 Beta 请求字段,避免部分额外字段被 AWS Claude / Bedrock 通道判定为非法输入。临时排查可以用 `export`,长期使用建议写入 `~/.claude/settings.json`。 ## 适用场景 * 已经按[Claude Code 配置教程](/scenarios/programming/claude-code)接入老张API * Claude Code 使用 AWS Claude 官方通道或 Bedrock 相关通道 * 终端、日志或报错里出现 `400 ValidationException` * 错误信息包含 `Extra inputs are not permitted` * 错误信息指向 `cache_control.scope`、`cache_control`、`scope` 或类似额外请求字段 * API Key、余额和模型 ID 看起来正常,但 Claude Code 仍在请求阶段被拒绝 这类错误通常是请求字段兼容性问题,不一定代表账户余额不足、模型下线或 API Key 失效。不要先反复更换密钥,先按下面步骤关闭实验性 Beta 请求字段。 ## 临时生效:启动前设置环境变量 如果 Claude Code 已经启动,先退出当前进程。环境变量需要在启动前设置,启动后再设置通常不会影响已经运行的进程。 在准备启动 Claude Code 的终端里执行: ```bash theme={null} export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 ``` 在同一个终端进入项目目录并启动: ```bash theme={null} claude ``` 如果 400 错误消失,说明问题大概率与 Claude Code 实验性 Beta 请求字段和 AWS Claude / Bedrock 通道兼容有关。 ## 推荐做法:写入 settings.json 为了避免每次打开终端都重新设置,建议把环境变量写入 `~/.claude/settings.json`: ```json theme={null} { "env": { "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1" } } ``` 如果你已经在 `~/.claude/settings.json` 里配置了老张API地址、密钥和模型,只需要把这一项合并到现有 `env` 中,不要删除原来的配置: ```json theme={null} { "env": { "ANTHROPIC_BASE_URL": "https://api2.laozhang.ai", "ANTHROPIC_AUTH_TOKEN": "sk-你的老张API密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-6", "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1" } } ``` 不要把包含完整 `ANTHROPIC_AUTH_TOKEN`、API Key 或 AccessToken 的 `settings.json` 截图发到公开渠道。需要给客服定位时,请只提供打码后的配置和完整错误信息。 ## 为什么这个设置能解决 400 Claude Code 的部分版本可能会向请求里加入实验性 Beta 字段。AWS Claude 官方通道或 Bedrock 相关通道通常会严格校验请求体,遇到不接受的额外字段时,就可能返回: * `400 ValidationException` * `Extra inputs are not permitted` * `cache_control.scope` 相关错误 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 的作用是让 Claude Code 不发送这些实验性 Beta 请求字段,使请求结构更接近通道可接受的标准格式。该设置主要解决字段兼容问题,不能替代模型权限、余额、API Key 或模型 ID 的排查。 ## 仍然报错时怎么排查 1. 确认已经重新打开终端或重新启动 Claude Code。 2. 确认 `~/.claude/settings.json` 中的 `env` 没有写错层级。 3. 升级 Claude Code 到当前可用版本后重试。 4. 检查模型 ID 是否仍在控制台可用列表中。 5. 确认使用的是老张API密钥,并且令牌分组适合 Claude Code。 6. 查看[调用日志](/faq/call-logs),确认错误是在请求校验阶段、模型权限阶段,还是余额/额度阶段。 ## 需要联系客服时提供什么 如果关闭实验性 Beta 字段后仍然无法解决,请提供以下信息: * 账号邮箱或用户名 * Claude Code 版本 * 操作系统和终端类型 * 使用的模型 ID * 是否使用 AWS Claude 官方通道 * 完整错误信息,尤其是 `ValidationException` 后面的字段名 * 老张API控制台[调用日志](/faq/call-logs)中的请求时间、状态和 Request ID * 打码后的 `~/.claude/settings.json`,不要包含完整 API Key 或 AccessToken ## 相关问题 * 如果还没有配置 Claude Code,请查看[Claude Code 配置教程](/scenarios/programming/claude-code) * 如果不确定模型是否可用,请查看[可用AI模型与权限说明](/faq/model-availability) * 如果需要创建或更换 API Key,请查看[API密钥获取与管理](/faq/token-management) * 如果需要核对错误时间和请求状态,请查看[如何查看我的调用记录?](/faq/call-logs) # 如何确认模型是否可用、可调用和可计费? Source: https://docs.laozhang.ai/faq/model-availability 通过控制台模型价格页、Models API、API Key 分组和最小请求确认模型 ID、端点、权限、计费方式与当前可用状态。 ## 简短答案 不要依赖静态“当前模型列表”。先在[控制台模型价格页](https://api2.laozhang.ai/account/pricing)确认准确模型 ID、端点、计费单位和可用分组,再使用目标 API Key 发送最小请求。模型出现在列表中不等于每个端点、参数、SDK 或账户分组都已验证兼容。 模型、渠道、端点、价格、速率限制和路由可能因上游、安全、法律、商业或运营原因调整。本页依据[老张API用户协议](https://www.laozhang.ai/zh-cn/terms),最后核对日期为 **2026 年 9 月 2 日**。 ## 四层确认 ### 1. 模型 ID 从[模型与价格总表](/models)或控制台复制准确模型 ID,避免根据产品名称、昵称或第三方文章自行拼接。 ### 2. 端点和协议 确认模型使用 Chat Completions、Responses、Images、Embeddings、音频、视频异步任务或其他端点。不能只因为模型出现在 `/v1/models` 就推断所有协议都可用。 ### 3. API Key 分组和权限 同一模型可能只对特定 API Key 分组、计费类型或账户开放。使用实际生产密钥前,先以独立测试密钥验证;需要企业权限、折扣或特殊分组时联系站长或支持团队。 ### 4. 最小真实请求 使用最少参数发送请求,并记录: * 测试日期; * API Key 分组; * endpoint 和 model; * request 与关键 response; * expected 与 actual; * 计费结果、限制和未测范围。 HTTP 200 或模型列表只证明该次请求或列表返回成功,不能证明工具调用、流式事件、多模态输入、错误处理和所有参数都兼容。 ## 常见错误分类 | 现象 | 优先检查 | | ------------------------- | -------------------- | | `model_not_found` | 模型 ID、账户分组、端点和是否已下线 | | `permission_denied` / 403 | API Key 权限、账户状态和地区限制 | | 400 参数错误 | 当前端点支持的字段、类型和取值 | | 429 | 余额、速率限制、并发和上游容量 | | 5xx 或超时 | 上游、路由、网络和是否适合有限重试 | ## 联系支持时提供什么 * 账户邮箱或用户名; * 模型 ID、端点和 API Key 分组; * 请求时间和时区; * 脱敏后的错误与请求标识; * 最小请求和预期结果; * 控制台价格页或模型页截图。 不要发送完整 API Key、完整客户数据或无关请求内容。 ## 相关文档 * [模型与价格总表](/models) * [热门模型与状态说明](/api-capabilities/model-info) * [如何查看调用日志](/faq/call-logs) * [为什么还有余额但调用失败](/faq/balance-insufficient) # API Key 如何创建、保存、轮换和撤销? Source: https://docs.laozhang.ai/faq/token-management 说明老张API API Key 的创建入口、安全保存、环境变量配置、最小权限、泄露响应、轮换与撤销流程,并区分 API Key 和系统 AccessToken。 ## 简短答案 在[令牌管理页面](https://api2.laozhang.ai/token)创建和管理 API Key。密钥应只保存在服务器端环境变量或密钥管理服务中,不得写入前端代码、仓库、日志、截图或公开消息。怀疑泄露时应立即撤销或轮换,并检查调用日志。 本页依据 [老张API用户协议](https://www.laozhang.ai/zh-cn/terms) 与 [数据政策](https://www.laozhang.ai/zh-cn/data-policy) 整理,最后核对日期为 **2026 年 9 月 2 日**。控制台字段和权限选项以当前页面为准。 ## 创建 API Key 1. 登录老张API控制台; 2. 打开[令牌管理](https://api2.laozhang.ai/token); 3. 按当前控制台要求选择名称、分组、额度或其他可用限制; 4. 创建后立即复制并保存到安全位置; 5. 使用最小请求验证端点、模型和计费分组。 不要在文档、工单或群聊中发送完整 API Key。支持团队排查时通常只需要账户、时间、模型、错误和脱敏后的密钥标识。 ## 推荐保存方式 ### 环境变量 ```bash theme={null} export LAOZHANG_API_KEY="YOUR_LAOZHANG_API_KEY" ``` ```python theme={null} import os from openai import OpenAI client = OpenAI( api_key=os.environ["LAOZHANG_API_KEY"], base_url="https://api2.laozhang.ai/v1", ) ``` 生产环境优先使用云密钥管理服务、容器 Secret 或部署平台的加密环境变量。不要通过 `echo`、调试日志或异常信息输出密钥。 ## 最小权限与隔离 * 开发、测试和生产使用不同密钥; * 不同团队、服务或自动化任务使用独立密钥; * 根据控制台当前能力设置分组、额度、模型或有效期限制; * 定期检查未使用或来源不明的密钥; * 不在浏览器、移动端或公开客户端中嵌入服务器 API Key。 ## 轮换和撤销 出现以下情况时应立即轮换或撤销: * 密钥进入 Git、日志、截图、工单或公开消息; * 发现来源不明的调用或余额变化; * 员工、外包或系统权限发生变化; * 依赖、服务器或部署凭证被入侵; * 支持或安全团队要求采取措施。 安全轮换流程: 1. 创建新密钥并在受控环境验证; 2. 更新服务端 Secret; 3. 观察新密钥调用结果; 4. 撤销旧密钥; 5. 检查[调用日志](/faq/call-logs)和受影响时间范围。 固定轮换周期应由企业自己的风险、审计和运维策略决定,文档不承诺统一周期或无限额度。 ## API Key 与系统 AccessToken 普通模型调用使用 API Key。账户级余额查询等管理接口可能使用不同的系统 AccessToken,不能互换。需要账户级查询时,请查看[余额查询 API](/faq/balance-query-api),并按该页面的权限边界操作。 ## 需要支持时提供什么 联系支持时提供账户、密钥创建时间、脱敏后的密钥前后缀、异常调用时间、模型和错误信息。不要发送完整 API Key;如果已经公开,应先撤销或轮换,再继续排查。 ## 相关文档 * [如何查看调用日志](/faq/call-logs) * [为什么还有余额但调用失败](/faq/balance-insufficient) * [老张API如何处理数据与日志](/faq/data-security) * [老张API用户协议](https://www.laozhang.ai/zh-cn/terms) # API接入快速开始 Source: https://docs.laozhang.ai/getting-started API技术接入教程:如何集成老张API调用ChatGPT、Claude、Gemini等AI模型。含 Python、Node.js、curl 代码示例,三步完成接入。 ## 开始之前 **账户用途说明** 注册账号用于**API技术接入测试与企业系统集成**。新账号获得的测试额度(\$0.5)仅用于: * API接口连通性验证 * 开发调试与技术测试 * 系统集成前的功能验证 **不适用于**生产环境或面向公众的内容交付服务。 laozhang.ai 由新加坡公司 YingTu Technology Pte. Ltd. 运营,注册与服务可用性以企业白名单审核为准。仅支持 Gmail 邮箱注册;企业用户如需注册,请发送邮件至 `hi@laozhang.ai` 联系客服申请白名单开通。 本文会用**最简单**的方式,帮您实现API技术接入: * 统一接口调用200+AI模型 * OpenAI SDK兼容,代码改动最小化 * 支持按量计费和企业账户额度管理 文档默认 API 域名已切换为 `api2.laozhang.ai`。欧美用户可使用不经过 CDN 的海外直连域名 `api-vip.laozhang.ai`;全球 Cloudflare 备用线路为 `api-cf.laozhang.ai`,但长时间无响应的同步请求可能触发约 120 秒代理读取超时。详见 [API 域名切换通知](/announcements/api-domain-migration-2026-07)。 ## 第一步:注册并确认账户权限 ### 注册账号 打开 [老张API注册页](https://api2.laozhang.ai/register/?aff_code=Snip) 新账户将获得\$0.5测试额度,用于API接口连通性验证 * 邮箱:仅支持 Gmail 邮箱注册 * 密码:至少8位字符 * 验证码:检查垃圾邮箱 登录后进入[控制台首页](https://api2.laozhang.ai/account/profile) 您会看到: * 账户余额(含测试额度) * 使用统计 * 快速入门指引 ### 账户额度与企业服务 测试额度仅用于 API 接口连通性验证和开发调试。生产环境、企业内部系统或团队接入前,请通过邮箱确认账户额度、服务合同、商业发票和使用边界。 企业服务支持: * 企业付款安排 * 开具商业发票 * 提供服务合同 * 支持月结等方式 联系邮箱:[hi@laozhang.ai](mailto:hi@laozhang.ai) **额度说明**: * 测试额度可用于验证接口连通性 * 生产使用前请确认账户额度和使用范围 * 企业服务请联系邮箱:`hi@laozhang.ai` ## 第二步:获取API密钥 ### 两种方式获取密钥 1. 进入[令牌管理页](https://api2.laozhang.ai/token) 2. 找到**默认令牌** 3. 点击右侧**复制**按钮 优点:立即可用,无需配置 1. 点击右上角\[新增]按钮 2. 输入密钥名称: * `dev-key`:开发环境 * `prod-key`:生产环境 * `test-models`:模型兼容性测试 3. 设置额度限制(可选) 4. 点击创建 优点:精细管理,按项目分配 **安全提醒**: * 密钥只显示一次,请妥善保存 * 不要提交到GitHub公开仓库 * 建议使用环境变量存储 ## 第三步:完成首次调用 ### 测试方法 使用[Cherry Studio客户端](/scenarios/chat/cherry-studio)测试,配置完成后: 1. 选择模型:`gemini-3.6-flash` 2. 输入提示词:"你好,请介绍一下你自己" 3. 点击发送 配置完成后即可开始测试 ```bash theme={null} # 替换YOUR_API_KEY为您的密钥 curl -X POST https://api2.laozhang.ai/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_KEY" -d '{"model": "gemini-3.6-flash", "messages": [{"role": "system", "content": "你是一个友好的AI助手"}, {"role": "user", "content": "用中文回答:今天天气怎么样?"}], "temperature": 0.7}' ``` 实际响应时间取决于模型、输入长度、网络和当前线路负载 ### 接入配置信息 ```yaml theme={null} # API基础地址 base_url: https://api2.laozhang.ai/v1 # API密钥(以sk-开头) api_key: sk-xxxxxxxxxxxxxx # 模型名称(即插即用) model: gemini-3.6-flash # 或 gemini-3.5-flash-lite、claude-sonnet-5 等 ``` ### 各语言完整示例 ```python theme={null} # 安装:pip install openai from openai import OpenAI # 初始化客户端 client = OpenAI( api_key="您的API密钥", # 在老张API获取 base_url="https://api2.laozhang.ai/v1" # 接入地址 ) # 调用不同模型的示例 def test_models(): models = [ "gemini-3.5-flash-lite", # 低延迟、高吞吐 "claude-sonnet-5", # 编程和 Agent "gemini-3.6-flash" # 通用多模态 ] for model in models: try: response = client.chat.completions.create( model=model, messages=[ {"role": "system", "content": "你是一个友好的AI助手"}, {"role": "user", "content": "用一句话介绍你自己"} ], temperature=0.7, max_tokens=100 ) print(f"{model}: {response.choices[0].message.content}") print(f"使用Token数: {response.usage.total_tokens}\n") except Exception as e: print(f"{model} 调用失败: {e}\n") if __name__ == "__main__": test_models() ``` **最佳实践**:使用环境变量存储API密钥 ```python theme={null} import os client = OpenAI( api_key=os.getenv("LAOZHANG_API_KEY"), base_url="https://api2.laozhang.ai/v1" ) ``` ```javascript theme={null} // 安装:npm install openai import OpenAI from 'openai'; // 初始化客户端 const client = new OpenAI({ apiKey: process.env.LAOZHANG_API_KEY || '您的API密钥', baseURL: 'https://api2.laozhang.ai/v1' }); // 流式输出示例(实时响应) async function streamChat() { const stream = await client.chat.completions.create({ model: 'gemini-3.6-flash', messages: [ { role: 'system', content: '你是一个有帮助的AI助手' }, { role: 'user', content: '请写一个简单的React组件' } ], stream: true, // 启用流式输出 temperature: 0.7 }); // 逐字输出 for await (const chunk of stream) { process.stdout.write(chunk.choices[0]?.delta?.content || ''); } } // 并发调用多个模型 async function compareModels(prompt) { const models = ['gpt-5.6', 'claude-sonnet-5', 'gemini-3.6-flash']; const promises = models.map(model => client.chat.completions.create({ model, messages: [{ role: 'user', content: prompt }], max_tokens: 100 }) ); const results = await Promise.all(promises); results.forEach((result, index) => { console.log(`\n${models[index]}:\n${result.choices[0].message.content}`); }); } // 运行示例 streamChat().catch(console.error); ``` ```bash theme={null} # 基础调用 curl -X POST https://api2.laozhang.ai/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.6-flash", "messages": [{"role": "user", "content": "你好"}]}' # 流式输出(SSE) curl -X POST https://api2.laozhang.ai/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "claude-sonnet-5", "messages": [{"role": "user", "content": "写一个Python快速排序"}], "stream": true}' # 调用图像生成 curl -X POST https://api2.laozhang.ai/v1/images/generations -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gpt-image-2", "prompt": "一只可爱的小猫", "n": 1, "size": "1024x1024"}' ``` ## 下一步 恭喜!您已经成功完成了 老张API 的接入。接下来您可以: 了解完整的 API 接口说明 查看所有支持的 AI 模型 将 老张API 集成到各种工具 在控制台监控使用情况 ## 常见问题速查 **三个标志**: 1. API调用返回正常结果(没有报错) 2. 响应时间低于1秒 3. 控制台能看到调用记录 查看调用记录:[使用日志](https://api2.laozhang.ai/log) **根据场景选择**: **编程开发**: * 首选:`claude-sonnet-5` * 备选:`gpt-5.6-terra` **文章写作**: * 首选:`gpt-5.6` * 备选:`claude-sonnet-5` **快速响应**: * 首选:`gemini-3.6-flash` * 备选:`gpt-5.6-luna` **成本敏感**: * 首选:`gemini-3.5-flash-lite` * 备选:`gpt-5.6-luna` **立即操作**: 1. 登录[令牌管理](https://api2.laozhang.ai/token) 2. 删除泄露的密钥 3. 创建新密钥 4. 更新所有应用中的密钥 **预防措施**: * 使用环境变量 * 设置额度限制 * 定期轮换密钥 **可能原因**: 1. 测试额度已用完 2. 调用的模型费用较高 3. 批量请求消耗过快 **解决方法**: * 联系账户管理员或客服确认账户额度 * 切换到成本较低的模型 * 设置`max_tokens`限制 企业用户可联系支持团队确认账户开通方式: * 企业付款安排 * 开具商业发票 * 签订服务合同 联系邮箱:`hi@laozhang.ai` 提示:保存好您的 API 密钥,并定期在控制台查看使用日志,每笔请求都有消息历史,合理优化成本。 # 地区可用性与注册限制 Source: https://docs.laozhang.ai/index 老张API由新加坡公司 YingTu Technology Pte. Ltd. 运营,仅支持 Gmail 邮箱注册;企业用户请联系客服申请白名单。 ## 地区可用性与注册限制 **laozhang.ai 由新加坡公司 YingTu Technology Pte. Ltd. 运营,注册与服务可用性以企业白名单审核为准。** **仅支持 Gmail 邮箱注册。** **企业用户如需注册,请发送邮件至 `hi@laozhang.ai` 联系客服申请白名单开通。** **International users?** [Switch to English version](/en) **服务定位声明** 老张API是面向**企业与开发者**的AI技术API接入服务平台,提供标准化API集成能力。本平台仅提供技术API接入服务,不面向公众提供内容生成服务。输出内容的合法性与合规性由使用方自行负责。 ## 公司介绍 laozhang.ai 是由新加坡公司 **YingTu Technology Pte. Ltd.** 运营的企业级 AI 技术 API 接入服务品牌,主产品站为 [www.laozhang.ai](https://www.laozhang.ai)。 * **公司主体**:YINGTU TECHNOLOGY PTE. LTD.(新加坡) * **产品品牌**:laozhang.ai * **主产品站**:[www.laozhang.ai](https://www.laozhang.ai) * **运营声明**:laozhang.ai is operated by YingTu Technology Pte. Ltd. @laozhang\_cn `hi@laozhang.ai` @laozhang\_ai ## 常用入口 仅支持 Gmail 邮箱注册;企业用户请先邮件申请白名单 完成 API 接入测试,获取密钥并验证连通性 查看接口规范、认证方式和请求示例 查看当前支持的模型与能力范围 了解按量计费、企业付款和商业发票说明 查看模型上线、线路调整和价格更新 ## 核心 API 能力 Chat Completions - 创建多轮对话和文本生成 Models API - 获取所有可用模型信息 Images API - GPT-Image-2、Flux、Nano Banana 等图像生成 Wan 2.7、Veo 3.1、Sora 2、Seedance 等异步视频生成接入 Embeddings API - 文本向量化和语义搜索 使用官方 SDK 无缝接入 老张API 兼容 OpenAI 响应格式的标准接口 ## 使用场景 Cherry Studio、Open WebUI、ChatGPT Next Web 等客户端接入 Cursor、Cline、Claude Code、OpenClaw 等开发场景 LangChain、Dify 等应用开发和工作流集成 Bob 翻译、沉浸式翻译等工具配置 ## 企业服务与使用边界 * **服务对象**:企业系统集成、软件开发、内部工具和业务自动化场景。 * **接口方式**:统一余额、统一鉴权、OpenAI 兼容调用方式。 * **服务边界**:不参与模型训练、不干预生成逻辑、不面向公众提供内容生成服务。 * **数据责任**:平台默认不保存 API prompt 和 response;必要元数据按数据政策保留,上游服务商可能适用自己的处理规则;输出使用由使用方审核并负责。 * **企业支持**:支持企业付款、商业发票、服务合同和白名单注册沟通,服务主体为新加坡公司 YingTu Technology Pte. Ltd. 数据处理边界请查看[数据政策](https://www.laozhang.ai/zh-cn/data-policy),服务、计费和退款边界请查看[用户协议](https://www.laozhang.ai/zh-cn/terms)。 新账号测试额度仅用于 API 接口连通性验证与开发调试测试,不适用于生产环境或面向公众的内容交付服务。 ## 常见问题 老张API是面向企业与开发者的AI技术API接入服务平台,提供统一的API接口对接200+AI模型,用于系统集成、应用开发等企业级场景。 laozhang.ai 由新加坡公司 YingTu Technology Pte. Ltd. 运营。仅支持 Gmail 邮箱注册;企业用户如需注册,请发送邮件至 `hi@laozhang.ai` 联系客服申请白名单开通。 不需要。完成老张API账号注册和密钥配置后,可通过统一接口调用当前支持的模型;具体可用模型以控制台和模型信息页为准。 适用于企业系统集成、软件开发、内部工具、业务自动化等场景。包括AI对话应用开发、代码辅助、内容处理等。 # 模型与价格总表 Source: https://docs.laozhang.ai/models/index 查询老张API当前在线模型的输入、输出、缓存读、按次和阶梯价格,以及可用分组与兼容端点。

模型与价格总表

本页汇总老张API当前 251 个在线模型,展示输入价、输出价、缓存读价、按次价格、阶梯计价、可用分组与兼容端点。数据更新于 2026/09/10 10:33(UTC+8);最终可用性和实际扣费以登录后的控制台与调用日志为准。

在线模型251
覆盖厂商12
按量计费223
按次计费28
价格确认与下一步

模型与价格来自老张API公开价格配置,按页面更新时间生成。登录后的控制台用于确认账号分组与当前价格,调用日志用于确认实际扣费。

价格说明

本页所有金额统一以美元展示。按量模型的输入、输出和缓存读价格单位为每 100 万 tokens(\$/1M);按次模型以每次调用计价。表格展示默认标价;阶梯模型显示首档价格,其他档位见下方阶梯表。账号合同或专属线路可能采用不同价格。gpt-image-2 同时存在按次和按量线路,请按GPT Image 2 分组说明确认令牌计费类型。

企业采购与折扣沟通

企业采购、批量使用、合同、发票、折扣或特殊付款安排,请联系站长或支持团队确认。文档不公布固定折扣门槛或百分比;最终商业条件、到账金额和实际扣费以双方确认内容、控制台和调用日志为准。

同一模型可能支持多个令牌分组,不同分组对应不同线路、权限或计费方式。选择模型前请在控制台确认账号可用分组和实际价格。

字段说明

| 字段 | 含义 | | ----------- | ---------------------------------------- | | **模型 ID** | API 请求中使用的模型名;带 † 的模型按单次请求 token 数量分档计价。 | | **输入 / 输出** | 按量模型的美元价格,单位为每 1M tokens。 | | **缓存读** | 命中提示词缓存后的输入价格;“—”表示当前配置未列出缓存读价格。 | | **按次价格** | 按调用次数计费的美元价格;一次可能对应一次请求、图片或任务,具体以模型文档为准。 | | **令牌分组** | 模型可用的分组名称;账号权限和实际价格以控制台为准。 | | **兼容端点** | 当前价格接口列出的协议入口;未逐一实测,不代表所有客户端参数都兼容。 |

在线模型目录

每个厂商内按模型版本从新到旧排列;可使用浏览器页面内查找,或点击上方搜索结果快速定位。宽表格在手机端可左右滑动。

OpenAI 100

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | ----------------------------------- | -- | -----------------: | -----------------: | ------------------: | ---------: | ------------------------------------------------------------------ | ---------------------------- | | `gpt-6-astra` † | 按量 | \$10 / 1M tokens | \$50 / 1M tokens | \$1 / 1M tokens | — | default | Chat Completions | | `gpt-5.6-luna` † | 按量 | \$0.2 / 1M tokens | \$1.2 / 1M tokens | \$0.02 / 1M tokens | — | default | Chat Completions | | `gpt-5.6-sol` † | 按量 | \$4 / 1M tokens | \$20 / 1M tokens | \$0.4 / 1M tokens | — | default | Chat Completions | | `gpt-5.6-terra` † | 按量 | \$2 / 1M tokens | \$12 / 1M tokens | \$0.2 / 1M tokens | — | default | Chat Completions | | `gpt-5.5` † | 按量 | \$5 / 1M tokens | \$30 / 1M tokens | \$0.5 / 1M tokens | — | default | Chat Completions | | `gpt-5.4` † | 按量 | \$2.5 / 1M tokens | \$15 / 1M tokens | \$0.25 / 1M tokens | — | default | Chat Completions | | `gpt-5.4-mini` | 按量 | \$0.75 / 1M tokens | \$4.5 / 1M tokens | \$0.075 / 1M tokens | — | default | Chat Completions | | `gpt-5.4-nano` | 按量 | \$0.2 / 1M tokens | \$1.25 / 1M tokens | \$0.02 / 1M tokens | — | default | Chat Completions | | `gpt-5.4-pro` † | 按量 | \$30 / 1M tokens | \$180 / 1M tokens | — | — | default | Chat Completions | | `gpt-5.3` | 按量 | \$75 / 1M tokens | \$450 / 1M tokens | — | — | default | Chat Completions | | `gpt-5.2` | 按量 | \$1.75 / 1M tokens | \$14 / 1M tokens | \$0.175 / 1M tokens | — | default | Chat Completions | | `gpt-5.2-2025-12-11` | 按量 | \$1.75 / 1M tokens | \$14 / 1M tokens | \$0.175 / 1M tokens | — | default | Chat Completions | | `gpt-5.1` | 按量 | \$1.25 / 1M tokens | \$10 / 1M tokens | \$0.125 / 1M tokens | — | default | Chat Completions | | `gpt-5.1-thinking` | 按量 | \$1.25 / 1M tokens | \$10 / 1M tokens | \$0.125 / 1M tokens | — | default | Chat Completions | | `gpt-5.1-2025-11-13` | 按量 | \$1.25 / 1M tokens | \$10 / 1M tokens | \$0.125 / 1M tokens | — | default | Chat Completions | | `gpt-5` | 按量 | \$1.25 / 1M tokens | \$10 / 1M tokens | \$0.125 / 1M tokens | — | default | Chat Completions | | `gpt-5-chat` | 按量 | \$1.25 / 1M tokens | \$10 / 1M tokens | \$0.125 / 1M tokens | — | default | Chat Completions | | `gpt-5-mini` | 按量 | \$0.25 / 1M tokens | \$2 / 1M tokens | \$0.025 / 1M tokens | — | default | Chat Completions | | `gpt-5-nano` | 按量 | \$0.05 / 1M tokens | \$0.4 / 1M tokens | \$0.005 / 1M tokens | — | default | Chat Completions | | `gpt-5-pro` | 按量 | \$15 / 1M tokens | \$120 / 1M tokens | — | — | default | Chat Completions | | `gpt-5-pro-2025-10-06` | 按量 | \$15 / 1M tokens | \$120 / 1M tokens | — | — | default | Chat Completions | | `gpt-5-2025-08-07` | 按量 | \$1.25 / 1M tokens | \$10 / 1M tokens | \$0.125 / 1M tokens | — | default | Chat Completions | | `gpt-5-mini-2025-08-07` | 按量 | \$0.25 / 1M tokens | \$2 / 1M tokens | \$0.025 / 1M tokens | — | default | Chat Completions | | `gpt-5-nano-2025-08-07` | 按量 | \$0.05 / 1M tokens | \$0.4 / 1M tokens | \$0.005 / 1M tokens | — | default | Chat Completions | | `gpt-4.1` | 按量 | \$2 / 1M tokens | \$8 / 1M tokens | \$0.5 / 1M tokens | — | default | Chat Completions | | `gpt-4.1-mini` | 按量 | \$0.4 / 1M tokens | \$1.6 / 1M tokens | \$0.1 / 1M tokens | — | default | Chat Completions | | `gpt-4.1-nano` | 按量 | \$0.1 / 1M tokens | \$0.4 / 1M tokens | \$0.025 / 1M tokens | — | default | Chat Completions | | `gpt-4.1-2025-04-14` | 按量 | \$2 / 1M tokens | \$8 / 1M tokens | \$0.5 / 1M tokens | — | default | Chat Completions | | `gpt-4.1-mini-2025-04-14` | 按量 | \$0.4 / 1M tokens | \$1.6 / 1M tokens | \$0.1 / 1M tokens | — | default | Chat Completions | | `gpt-4.1-nano-2025-04-14` | 按量 | \$0.1 / 1M tokens | \$0.4 / 1M tokens | \$0.025 / 1M tokens | — | default | Chat Completions | | `gpt-4o` | 按量 | \$2.5 / 1M tokens | \$10 / 1M tokens | \$1.25 / 1M tokens | — | default | Chat Completions | | `gpt-4o-audio-preview` | 按量 | \$2.5 / 1M tokens | \$10 / 1M tokens | — | — | default | Chat Completions | | `gpt-4o-mini` | 按量 | \$0.15 / 1M tokens | \$0.6 / 1M tokens | \$0.075 / 1M tokens | — | default | Chat Completions | | `gpt-4o-mini-audio-preview` | 按量 | \$2 / 1M tokens | \$8 / 1M tokens | — | — | default | Chat Completions | | `gpt-4o-mini-transcribe` | 按量 | \$1.5 / 1M tokens | \$6 / 1M tokens | — | — | default | Chat Completions | | `gpt-4o-mini-tts` | 按量 | \$1.2 / 1M tokens | \$18 / 1M tokens | — | — | default | Chat Completions | | `gpt-4o-transcribe` | 按量 | \$8 / 1M tokens | \$16 / 1M tokens | — | — | default | Chat Completions | | `o4-mini` | 按量 | \$1.1 / 1M tokens | \$4.4 / 1M tokens | \$0.275 / 1M tokens | — | default | Chat Completions | | `text-embedding-v4` | 按量 | \$0.07 / 1M tokens | \$0.07 / 1M tokens | — | — | default | Embeddings, Chat Completions | | `o4-mini-2025-04-16` | 按量 | \$1.1 / 1M tokens | \$4.4 / 1M tokens | \$0.275 / 1M tokens | — | default | Chat Completions | | `gpt-4o-2024-11-20` | 按量 | \$2.5 / 1M tokens | \$10 / 1M tokens | \$1.25 / 1M tokens | — | default | Chat Completions | | `gpt-4o-2024-08-06` | 按量 | \$2.5 / 1M tokens | \$10 / 1M tokens | \$1.25 / 1M tokens | — | default | Chat Completions | | `gpt-4o-mini-2024-07-18` | 按量 | \$0.15 / 1M tokens | \$0.6 / 1M tokens | \$0.075 / 1M tokens | — | default | Chat Completions | | `gpt-4o-2024-05-13` | 按量 | \$5 / 1M tokens | \$15 / 1M tokens | — | — | default | Chat Completions | | `gpt-3.5-turbo` | 按量 | \$0.5 / 1M tokens | \$1.5 / 1M tokens | — | — | default | Chat Completions | | `gpt-3.5-turbo-0125` | 按量 | \$0.5 / 1M tokens | \$1.5 / 1M tokens | — | — | default | Chat Completions | | `gpt-3.5-turbo-0613` | 按量 | \$1.5 / 1M tokens | \$1.95 / 1M tokens | — | — | default | Chat Completions | | `gpt-3.5-turbo-1106` | 按量 | \$1 / 1M tokens | \$2 / 1M tokens | — | — | default | Chat Completions | | `gpt-3.5-turbo-16k` | 按量 | \$3 / 1M tokens | \$3.9 / 1M tokens | — | — | default | Chat Completions | | `gpt-3.5-turbo-16k-0613` | 按量 | \$3 / 1M tokens | \$3.9 / 1M tokens | — | — | default | Chat Completions | | `gpt-3.5-turbo-instruct` | 按量 | \$1.5 / 1M tokens | \$1.95 / 1M tokens | — | — | default | Chat Completions | | `dall-e-3` | 按量 | \$40 / 1M tokens | \$40 / 1M tokens | — | — | default | Images, Chat Completions | | `o3` | 按量 | \$3 / 1M tokens | \$12 / 1M tokens | \$0.75 / 1M tokens | — | default | Chat Completions | | `o3-mini` | 按量 | \$1.1 / 1M tokens | \$4.4 / 1M tokens | \$0.55 / 1M tokens | — | default | Chat Completions | | `o3-mini-low` | 按量 | \$1.1 / 1M tokens | \$4.4 / 1M tokens | \$0.55 / 1M tokens | — | default | Chat Completions | | `o3-mini-medium` | 按量 | \$1.1 / 1M tokens | \$4.4 / 1M tokens | \$0.55 / 1M tokens | — | default | Chat Completions | | `o3-pro` | 按量 | \$20 / 1M tokens | \$80 / 1M tokens | — | — | default | Responses | | `text-embedding-3-large` | 按量 | \$0.13 / 1M tokens | \$0.13 / 1M tokens | — | — | default | Embeddings, Chat Completions | | `text-embedding-3-small` | 按量 | \$0.02 / 1M tokens | \$0.02 / 1M tokens | — | — | default | Embeddings, Chat Completions | | `o3-pro-2025-06-10` | 按量 | \$20 / 1M tokens | \$80 / 1M tokens | — | — | default | Responses | | `o3-2025-04-16` | 按量 | \$3 / 1M tokens | \$12 / 1M tokens | \$0.75 / 1M tokens | — | default | Chat Completions | | `o3-mini-2025-01-31` | 按量 | \$1.1 / 1M tokens | \$4.4 / 1M tokens | \$0.55 / 1M tokens | — | default | Chat Completions | | `o3-mini-2025-01-31-high` | 按量 | \$1.1 / 1M tokens | \$4.4 / 1M tokens | \$0.55 / 1M tokens | — | default | Chat Completions | | `o3-mini-2025-01-31-low` | 按量 | \$1.1 / 1M tokens | \$4.4 / 1M tokens | \$0.55 / 1M tokens | — | default | Chat Completions | | `o3-mini-2025-01-31-medium` | 按量 | \$1.1 / 1M tokens | \$4.4 / 1M tokens | \$0.55 / 1M tokens | — | default | Chat Completions | | `gpt-image-2.5-flare` | 按量 | \$5 / 1M tokens | \$30 / 1M tokens | \$1.25 / 1M tokens | — | GPTImage2 Sora2 Enterprise, Sora2Official | Images, Chat Completions | | `gpt-image-2.5-flare-vip` | 按次 | — | — | — | \$0.03 / 次 | default, 其他图像分组(名称见控制台) | Images, Chat Completions | | `gpt-image-2.5-sunburst` | 按量 | \$5 / 1M tokens | \$30 / 1M tokens | \$1.25 / 1M tokens | — | GPTImage2 Sora2 Enterprise, Sora2Official | Images, Chat Completions | | `gpt-image-2.5-sunburst-vip` | 按次 | — | — | — | \$0.03 / 次 | default, 其他图像分组(名称见控制台) | Images, Chat Completions | | `gpt-image-2.5-web` | 按次 | — | — | — | \$0.03 / 次 | default, 其他图像分组(名称见控制台) | Images, Chat Completions | | `gpt-image-2.5-flare-2026-09-08` | 按量 | \$5 / 1M tokens | \$30 / 1M tokens | \$1.25 / 1M tokens | — | GPTImage2 Sora2 Enterprise, Sora2Official | Images, Chat Completions | | `gpt-image-2.5-sunburst-2026-09-08` | 按量 | \$5 / 1M tokens | \$30 / 1M tokens | \$1.25 / 1M tokens | — | GPTImage2 Sora2 Enterprise, Sora2Official | Images, Chat Completions | | `gpt-image-2` | 按次 | — | — | — | \$0.03 / 次 | GPTImage2 Sora2 Enterprise, default, 其他图像分组(名称见控制台), Sora2Official | Images, Chat Completions | | `gpt-image-2-all` | 按次 | — | — | — | \$0.03 / 次 | default, 其他图像分组(名称见控制台) | Images, Chat Completions | | `gpt-image-2-vip` | 按次 | — | — | — | \$0.03 / 次 | default, 其他图像分组(名称见控制台) | Images, Chat Completions | | `gpt-image-2-web` | 按次 | — | — | — | \$0.03 / 次 | default, 其他图像分组(名称见控制台) | Images, Chat Completions | | `sora-2` | 按次 | — | — | — | \$0.15 / 次 | Sora2Official | Chat Completions | | `sora-2-character` | 按次 | — | — | — | \$0.01 / 次 | default | Chat Completions | | `sora-2-pro` | 按次 | — | — | — | \$0.8 / 次 | Sora2Official | Chat Completions | | `text-embedding-ada-002` | 按量 | \$0.1 / 1M tokens | \$0.1 / 1M tokens | — | — | default | Embeddings, Chat Completions | | `gpt-image-1.5` | 按量 | \$5 / 1M tokens | \$32 / 1M tokens | \$1.25 / 1M tokens | — | GPTImage2 Sora2 Enterprise, default, Sora2Official | Images, Chat Completions | | `gpt-image-1.5-2025-12-16` | 按量 | \$5 / 1M tokens | \$32 / 1M tokens | \$1.25 / 1M tokens | — | default | Images, Chat Completions | | `gpt-image-1` | 按量 | \$5 / 1M tokens | \$40 / 1M tokens | \$1.25 / 1M tokens | — | GPTImage2 Sora2 Enterprise, default, Sora2Official | Images, Chat Completions | | `gpt-image-1-mini` | 按量 | \$2 / 1M tokens | \$8 / 1M tokens | \$0.2 / 1M tokens | — | GPTImage2 Sora2 Enterprise, default, Sora2Official | Images, Chat Completions | | `o1` | 按量 | \$15 / 1M tokens | \$60 / 1M tokens | \$7.5 / 1M tokens | — | default | Chat Completions | | `o1-mini` | 按量 | \$1.1 / 1M tokens | \$4.4 / 1M tokens | \$0.55 / 1M tokens | — | default | Chat Completions | | `o1-preview` | 按量 | \$15 / 1M tokens | \$60 / 1M tokens | \$7.5 / 1M tokens | — | default | Chat Completions | | `o1-pro` | 按量 | \$180 / 1M tokens | \$720 / 1M tokens | — | — | default | Chat Completions | | `tts-1` | 按量 | \$30 / 1M tokens | \$30 / 1M tokens | — | — | default | Chat Completions | | `tts-1-hd` | 按量 | \$60 / 1M tokens | \$60 / 1M tokens | — | — | default | Chat Completions | | `whisper-1` | 按量 | \$60 / 1M tokens | \$0 / 1M tokens | — | — | default | Chat Completions | | `o1-pro-2025-03-19` | 按量 | \$180 / 1M tokens | \$720 / 1M tokens | — | — | default | Chat Completions | | `o1-2024-12-17` | 按量 | \$15 / 1M tokens | \$60 / 1M tokens | \$7.5 / 1M tokens | — | default | Chat Completions | | `o1-mini-2024-09-12` | 按量 | \$1.1 / 1M tokens | \$4.4 / 1M tokens | \$0.55 / 1M tokens | — | default | Chat Completions | | `o1-preview-2024-09-12` | 按量 | \$15 / 1M tokens | \$60 / 1M tokens | \$7.5 / 1M tokens | — | default | Chat Completions | | `omni-moderation-latest` | 按量 | \$0.2 / 1M tokens | \$0.2 / 1M tokens | — | — | default | Chat Completions | | `gpt-oss-120b` | 按量 | \$0.5 / 1M tokens | \$2 / 1M tokens | — | — | default | Chat Completions | | `gpt-oss-20b` | 按量 | \$0.1 / 1M tokens | \$0.4 / 1M tokens | — | — | default | Chat Completions | | `sora-character` | 按次 | — | — | — | \$0.01 / 次 | default | Chat Completions | | `omni-moderation-2024-09-26` | 按量 | \$0.2 / 1M tokens | \$0.2 / 1M tokens | — | — | default | Chat Completions |

Google 20

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | --------------------------------- | -- | -----------------: | ------------------: | ------------------: | ----------: | ------- | ------------------------ | | `gemini-3.8-flash` | 按量 | \$0.75 / 1M tokens | \$3.75 / 1M tokens | \$0.075 / 1M tokens | — | default | Gemini, Chat Completions | | `gemini-3.7-flash` | 按量 | \$0.75 / 1M tokens | \$3.75 / 1M tokens | — | — | default | Gemini, Chat Completions | | `gemini-3.6-flash` | 按量 | \$1.5 / 1M tokens | \$7.5 / 1M tokens | — | — | default | Gemini, Chat Completions | | `gemini-3.5-flash` | 按量 | \$1.5 / 1M tokens | \$9 / 1M tokens | \$0.15 / 1M tokens | — | default | Gemini, Chat Completions | | `gemini-3.5-flash-lite` | 按量 | \$0.3 / 1M tokens | \$2.502 / 1M tokens | \$0.03 / 1M tokens | — | default | Gemini, Chat Completions | | `gemini-3.1-flash-image` | 按次 | — | — | — | \$0.055 / 次 | default | Gemini, Chat Completions | | `gemini-3.1-flash-image-preview` | 按次 | — | — | — | \$0.055 / 次 | default | Gemini, Chat Completions | | `gemini-3.1-flash-lite` | 按量 | \$0.25 / 1M tokens | \$1.5 / 1M tokens | \$0.025 / 1M tokens | — | default | Gemini, Chat Completions | | `gemini-3.1-flash-lite-image` | 按次 | — | — | — | \$0.025 / 次 | default | Gemini, Chat Completions | | `gemini-3.1-flash-lite-preview` | 按量 | \$0.25 / 1M tokens | \$1.5 / 1M tokens | \$0.025 / 1M tokens | — | default | Gemini, Chat Completions | | `gemini-3.1-pro-preview` † | 按量 | \$2 / 1M tokens | \$12 / 1M tokens | \$0.2 / 1M tokens | — | default | Gemini, Chat Completions | | `gemini-3-flash-preview` | 按量 | \$0.44 / 1M tokens | \$2.64 / 1M tokens | \$0.044 / 1M tokens | — | default | Gemini, Chat Completions | | `gemini-3-flash-preview-thinking` | 按量 | \$0.44 / 1M tokens | \$2.64 / 1M tokens | \$0.044 / 1M tokens | — | default | Gemini, Chat Completions | | `gemini-3-pro-image` | 按次 | — | — | — | \$0.09 / 次 | default | Gemini, Chat Completions | | `gemini-3-pro-image-preview` | 按次 | — | — | — | \$0.09 / 次 | default | Gemini, Chat Completions | | `gemini-2.5-flash` | 按量 | \$0.3 / 1M tokens | \$2.4 / 1M tokens | \$0.03 / 1M tokens | — | default | Gemini, Chat Completions | | `gemini-2.5-flash-image` | 按次 | — | — | — | \$0.02 / 次 | default | Gemini, Chat Completions | | `gemini-2.5-flash-lite` | 按量 | \$0.1 / 1M tokens | \$0.4 / 1M tokens | \$0.01 / 1M tokens | — | default | Gemini, Chat Completions | | `gemini-2.5-flash-nothinking` | 按量 | \$0.3 / 1M tokens | \$2.4 / 1M tokens | \$0.03 / 1M tokens | — | default | Gemini, Chat Completions | | `gemini-2.5-pro` † | 按量 | \$1.25 / 1M tokens | \$10 / 1M tokens | \$0.125 / 1M tokens | — | default | Gemini, Chat Completions |

xAI 12

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | ----------------------------- | -- | -----------------: | ----------------: | ----------------: | ----------: | ------- | ---------------- | | `grok-4.6` † | 按量 | \$2 / 1M tokens | \$6 / 1M tokens | — | — | default | Chat Completions | | `grok-4.5` | 按量 | \$2 / 1M tokens | \$6 / 1M tokens | \$0.5 / 1M tokens | — | default | Chat Completions | | `grok-4.3` | 按量 | \$1.25 / 1M tokens | \$2.5 / 1M tokens | \$0.2 / 1M tokens | — | default | Chat Completions | | `grok-4-1-fast-non-reasoning` | 按量 | \$0.2 / 1M tokens | \$0.5 / 1M tokens | — | — | default | Chat Completions | | `grok-4-1-fast-reasoning` | 按量 | \$0.2 / 1M tokens | \$0.5 / 1M tokens | — | — | default | Chat Completions | | `grok-4-fast-non-reasoning` | 按量 | \$0.2 / 1M tokens | \$0.5 / 1M tokens | — | — | default | Chat Completions | | `grok-4-fast-reasoning` | 按量 | \$0.2 / 1M tokens | \$0.5 / 1M tokens | — | — | default | Chat Completions | | `grok-3` | 按量 | \$3 / 1M tokens | \$15 / 1M tokens | — | — | default | Chat Completions | | `grok-3-mini` | 按量 | \$0.3 / 1M tokens | \$1.8 / 1M tokens | — | — | default | Chat Completions | | `grok-imagine-image-2.0` | 按次 | — | — | — | \$0.055 / 次 | default | Chat Completions | | `grok-imagine-image` | 按次 | — | — | — | \$0.025 / 次 | default | Chat Completions | | `grok-imagine-image-quality` | 按次 | — | — | — | \$0.045 / 次 | default | Chat Completions |

DeepSeek 8

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | ------------------------------ | -- | -----------------: | -----------------: | ---------------------: | ---: | ------- | ------------------------------------ | | `deepseek-v4-flash` | 按量 | \$0.44 / 1M tokens | \$1.32 / 1M tokens | \$0.088 / 1M tokens | — | default | Anthropic Messages, Chat Completions | | `deepseek-v4-flash-vision-exp` | 按量 | \$0.44 / 1M tokens | \$1.32 / 1M tokens | \$0.014667 / 1M tokens | — | default | Anthropic Messages, Chat Completions | | `deepseek-v4-pro` | 按量 | \$1.74 / 1M tokens | \$3.48 / 1M tokens | \$0.145 / 1M tokens | — | default | Anthropic Messages, Chat Completions | | `DeepSeek-V3.2-Exp-nothinking` | 按量 | \$0.3 / 1M tokens | \$0.45 / 1M tokens | — | — | default | Chat Completions | | `DeepSeek-V3.2-Exp-thinking` | 按量 | \$0.3 / 1M tokens | \$0.45 / 1M tokens | — | — | default | Chat Completions | | `deepseek-v3.2` | 按量 | \$0.28 / 1M tokens | \$0.42 / 1M tokens | — | — | default | Chat Completions | | `deepseek-v3.2-thinking` | 按量 | \$0.28 / 1M tokens | \$0.42 / 1M tokens | — | — | default | Chat Completions | | `deepseek-r1` | 按量 | \$0.57 / 1M tokens | \$2.28 / 1M tokens | \$0.1425 / 1M tokens | — | default | Chat Completions |

阿里巴巴 77

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | -------------------------------- | -- | ---------------------: | ---------------------: | --: | ---: | ------- | ---------------------------- | | `qwen3.6-flash` † | 按量 | \$0.164384 / 1M tokens | \$0.986301 / 1M tokens | — | — | default | Chat Completions | | `qwen3.6-max-preview` † | 按量 | \$1.2329 / 1M tokens | \$7.3973 / 1M tokens | — | — | default | Chat Completions | | `qwen3.6-plus` † | 按量 | \$0.273973 / 1M tokens | \$1.6438 / 1M tokens | — | — | default | Chat Completions | | `qwen3.5-122b-a10b` | 按量 | \$0.12 / 1M tokens | \$0.96 / 1M tokens | — | — | default | Chat Completions | | `qwen3.5-27b` | 按量 | \$0.09 / 1M tokens | \$0.72 / 1M tokens | — | — | default | Chat Completions | | `qwen3.5-35b-a3b` | 按量 | \$0.06 / 1M tokens | \$0.48 / 1M tokens | — | — | default | Chat Completions | | `qwen3.5-397b-a17b` | 按量 | \$0.18 / 1M tokens | \$1.08 / 1M tokens | — | — | default | Chat Completions | | `qwen3.5-flash` † | 按量 | \$0.027397 / 1M tokens | \$0.273973 / 1M tokens | — | — | default | Chat Completions | | `qwen3.5-plus` † | 按量 | \$0.109589 / 1M tokens | \$0.657534 / 1M tokens | — | — | default | Chat Completions | | `qwen3.5-flash-2026-02-23` † | 按量 | \$0.027397 / 1M tokens | \$0.273973 / 1M tokens | — | — | default | Chat Completions | | `qwen3.5-plus-2026-02-15` † | 按量 | \$0.109589 / 1M tokens | \$0.657534 / 1M tokens | — | — | default | Chat Completions | | `qwen3-235b-a22b` | 按量 | \$1 / 1M tokens | \$10 / 1M tokens | — | — | default | Chat Completions | | `qwen3-30b-a3b` | 按量 | \$0.2 / 1M tokens | \$2 / 1M tokens | — | — | default | Chat Completions | | `qwen3-32b` | 按量 | \$0.4 / 1M tokens | \$4 / 1M tokens | — | — | default | Chat Completions | | `qwen3-coder-480b-a35b-instruct` | 按量 | \$3 / 1M tokens | \$15 / 1M tokens | — | — | default | Chat Completions | | `qwen3-coder-flash` † | 按量 | \$0.136986 / 1M tokens | \$0.547945 / 1M tokens | — | — | default | Chat Completions | | `qwen3-coder-plus` † | 按量 | \$0.547945 / 1M tokens | \$2.1918 / 1M tokens | — | — | default | Chat Completions | | `qwen3-max` † | 按量 | \$0.342466 / 1M tokens | \$1.3699 / 1M tokens | — | — | default | Chat Completions | | `qwen3-max-preview` † | 按量 | \$0.821918 / 1M tokens | \$3.2877 / 1M tokens | — | — | default | Chat Completions | | `qwen3-next-80b-a3b-instruct` | 按量 | \$0.15 / 1M tokens | \$1.2 / 1M tokens | — | — | default | Chat Completions | | `qwen3-omni-flash` | 按量 | \$2 / 1M tokens | \$20 / 1M tokens | — | — | default | Chat Completions | | `qwen3-vl-235b-a22b-instruct` | 按量 | \$0.3 / 1M tokens | \$3 / 1M tokens | — | — | default | Chat Completions | | `qwen3-vl-235b-a22b-thinking` | 按量 | \$0.3 / 1M tokens | \$3 / 1M tokens | — | — | default | Chat Completions | | `qwen3-vl-30b-a3b-thinking` | 按量 | \$0.12 / 1M tokens | \$1.2 / 1M tokens | — | — | default | Chat Completions | | `qwen3-vl-32b-thinking` | 按量 | \$0.3 / 1M tokens | \$3 / 1M tokens | — | — | default | Chat Completions | | `qwen3-vl-embedding` | 按量 | \$0.25 / 1M tokens | \$0.25 / 1M tokens | — | — | default | Embeddings, Chat Completions | | `qwen3-vl-flash` | 按量 | \$0.1 / 1M tokens | \$0.8 / 1M tokens | — | — | default | Chat Completions | | `qwen3-vl-plus` † | 按量 | \$0.136986 / 1M tokens | \$1.3699 / 1M tokens | — | — | default | Chat Completions | | `qwen3-vl-flash-2025-10-15` | 按量 | \$0.1 / 1M tokens | \$0.8 / 1M tokens | — | — | default | Chat Completions | | `qwen3-coder-plus-2025-09-23` † | 按量 | \$0.547945 / 1M tokens | \$2.1918 / 1M tokens | — | — | default | Chat Completions | | `qwen3-max-2025-09-23` † | 按量 | \$0.821918 / 1M tokens | \$3.2877 / 1M tokens | — | — | default | Chat Completions | | `qwen3-vl-plus-2025-09-23` † | 按量 | \$0.136986 / 1M tokens | \$1.3699 / 1M tokens | — | — | default | Chat Completions | | `qwen3-omni-flash-2025-09-15` | 按量 | \$2 / 1M tokens | \$20 / 1M tokens | — | — | default | Chat Completions | | `qwen3-coder-plus-2025-07-22` † | 按量 | \$0.547945 / 1M tokens | \$2.1918 / 1M tokens | — | — | default | Chat Completions | | `qwen3-235b-a22b-instruct-2507` | 按量 | \$1 / 1M tokens | \$10 / 1M tokens | — | — | default | Chat Completions | | `qwen3-235b-a22b-thinking-2507` | 按量 | \$1.6 / 1M tokens | \$12.8 / 1M tokens | — | — | default | Chat Completions | | `qwen3-30b-a3b-instruct-2507` | 按量 | \$0.2 / 1M tokens | \$0.8 / 1M tokens | — | — | default | Chat Completions | | `qwen3-30b-a3b-thinking-2507` | 按量 | \$0.2 / 1M tokens | \$2.4 / 1M tokens | — | — | default | Chat Completions | | `wan2.7-i2v` | 按量 | \$1.2 / 1M tokens | \$1.2 / 1M tokens | — | — | Wan | Chat Completions | | `wan2.7-r2v` | 按量 | \$75 / 1M tokens | \$75 / 1M tokens | — | — | Wan | Chat Completions | | `wan2.7-t2v` | 按量 | \$1.2 / 1M tokens | \$1.2 / 1M tokens | — | — | Wan | Chat Completions | | `wan2.7-videoedit` | 按量 | \$75 / 1M tokens | \$75 / 1M tokens | — | — | Wan | Chat Completions | | `wan2.6-i2v` | 按量 | \$1.2 / 1M tokens | \$1.2 / 1M tokens | — | — | Wan | Chat Completions | | `wan2.6-r2v` | 按量 | \$75 / 1M tokens | \$75 / 1M tokens | — | — | Wan | Chat Completions | | `wan2.6-r2v-flash` | 按量 | \$75 / 1M tokens | \$75 / 1M tokens | — | — | Wan | Chat Completions | | `wan2.6-t2v` | 按量 | \$1.2 / 1M tokens | \$1.2 / 1M tokens | — | — | Wan | Chat Completions | | `qwen2-72b-instruct` | 按量 | \$2.8572 / 1M tokens | \$2.8572 / 1M tokens | — | — | default | Chat Completions | | `multimodal-embedding-v1` | 按量 | \$0 / 1M tokens | \$0 / 1M tokens | — | — | default | Embeddings, Chat Completions | | `qvq-max-latest` | 按量 | \$1.2 / 1M tokens | \$4.8 / 1M tokens | — | — | default | Chat Completions | | `qwen-max-latest` | 按量 | \$1.6 / 1M tokens | \$6.4 / 1M tokens | — | — | default | Chat Completions | | `qwen-plus-latest` † | 按量 | \$0.109589 / 1M tokens | \$0.273973 / 1M tokens | — | — | default | Chat Completions | | `qwen-turbo-latest` | 按量 | \$0.2 / 1M tokens | \$0.6 / 1M tokens | — | — | default | Chat Completions | | `qwen-vl-max-latest` | 按量 | \$0.2 / 1M tokens | \$0.8 / 1M tokens | — | — | default | Chat Completions | | `qwen-vl-ocr-latest` | 按量 | \$0.044 / 1M tokens | \$0.07348 / 1M tokens | — | — | default | Chat Completions | | `qwen-vl-plus-latest` | 按量 | \$0.2 / 1M tokens | \$0.6 / 1M tokens | — | — | default | Chat Completions | | `qwq-plus-latest` | 按量 | \$0.8 / 1M tokens | \$2.4 / 1M tokens | — | — | default | Chat Completions | | `qvq-max` | 按量 | \$1.2 / 1M tokens | \$4.8 / 1M tokens | — | — | default | Chat Completions | | `qvq-plus` | 按量 | \$0.28 / 1M tokens | \$0.7 / 1M tokens | — | — | default | Chat Completions | | `qwen-long` | 按量 | \$0.07 / 1M tokens | \$0.28 / 1M tokens | — | — | default | Chat Completions | | `qwen-max` | 按量 | \$1.6 / 1M tokens | \$6.4 / 1M tokens | — | — | default | Chat Completions | | `qwen-max-longcontext` | 按量 | \$3.2 / 1M tokens | \$3.2 / 1M tokens | — | — | default | Chat Completions | | `qwen-mt-plus` | 按量 | \$2 / 1M tokens | \$8 / 1M tokens | — | — | default | Chat Completions | | `qwen-mt-turbo` | 按量 | \$0.2 / 1M tokens | \$0.5 / 1M tokens | — | — | default | Chat Completions | | `qwen-plus` † | 按量 | \$0.109589 / 1M tokens | \$0.273973 / 1M tokens | — | — | default | Chat Completions | | `qwen-turbo` | 按量 | \$0.2 / 1M tokens | \$0.6 / 1M tokens | — | — | default | Chat Completions | | `qwen-vl-max` | 按量 | \$0.2 / 1M tokens | \$0.8 / 1M tokens | — | — | default | Chat Completions | | `qwen-vl-ocr` | 按量 | \$0.72 / 1M tokens | \$0.72 / 1M tokens | — | — | default | Chat Completions | | `qwen-vl-plus` | 按量 | \$0.2 / 1M tokens | \$0.6 / 1M tokens | — | — | default | Chat Completions | | `qwq-32b` | 按量 | \$0.4 / 1M tokens | \$1.2 / 1M tokens | — | — | default | Chat Completions | | `qwq-plus` | 按量 | \$0.8 / 1M tokens | \$2.4 / 1M tokens | — | — | default | Chat Completions | | `qwen-vl-ocr-2025-11-20` | 按量 | \$0.044 / 1M tokens | \$0.07348 / 1M tokens | — | — | default | Chat Completions | | `qwen-plus-2025-09-11` † | 按量 | \$0.109589 / 1M tokens | \$0.273973 / 1M tokens | — | — | default | Chat Completions | | `qwen-turbo-2025-07-15` | 按量 | \$0.2 / 1M tokens | \$1.6 / 1M tokens | — | — | default | Chat Completions | | `qwen-plus-2025-07-14` | 按量 | \$0.4 / 1M tokens | \$4 / 1M tokens | — | — | default | Chat Completions | | `qvq-max-2025-05-15` | 按量 | \$1 / 1M tokens | \$4 / 1M tokens | — | — | default | Chat Completions | | `qvq-plus-2025-05-15` | 按量 | \$0.28 / 1M tokens | \$0.7 / 1M tokens | — | — | default | Chat Completions | | `qwq-plus-2025-03-05` | 按量 | \$0.8 / 1M tokens | \$2.4 / 1M tokens | — | — | default | Chat Completions |

字节跳动 10

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | --------------------------------- | -- | -----------------: | ----------------: | --: | ----------: | --------- | ---------------- | | `seedream-5-0-260128` | 按次 | — | — | — | \$0.035 / 次 | default | Chat Completions | | `seedream-4-5-251128` | 按次 | — | — | — | \$0.045 / 次 | default | Chat Completions | | `seedream-4-0-250828` | 按次 | — | — | — | \$0.035 / 次 | default | Chat Completions | | `doubao-seedance-2-0-mini-260615` | 按量 | \$23 / 1M tokens | \$23 / 1M tokens | — | — | SeeDance2 | Chat Completions | | `seed-2-0-lite-260428` | 按量 | \$0.25 / 1M tokens | \$2 / 1M tokens | — | — | default | Chat Completions | | `seed-2-0-mini-260428` | 按量 | \$0.1 / 1M tokens | \$0.4 / 1M tokens | — | — | default | Chat Completions | | `seed-2-0-code-preview-260328` | 按量 | \$0.5 / 1M tokens | \$3 / 1M tokens | — | — | default | Chat Completions | | `seed-2-0-pro-260328` | 按量 | \$0.5 / 1M tokens | \$3 / 1M tokens | — | — | default | Chat Completions | | `doubao-seedance-2-0-260128` | 按量 | \$46 / 1M tokens | \$46 / 1M tokens | — | — | SeeDance2 | Chat Completions | | `doubao-seedance-2-0-fast-260128` | 按量 | \$37 / 1M tokens | \$37 / 1M tokens | — | — | SeeDance2 | Chat Completions |

智谱 10

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | --------------- | -- | ------------------: | ------------------: | --: | ---: | --------------------- | ------------------------------------ | | `glm-5.2` | 按量 | \$1.142 / 1M tokens | \$3.997 / 1M tokens | — | — | claude\_code, default | Anthropic Messages, Chat Completions | | `glm-5.1` † | 按量 | \$0.84 / 1M tokens | \$3.36 / 1M tokens | — | — | default | Chat Completions | | `glm-5` | 按量 | \$0.56 / 1M tokens | \$2.52 / 1M tokens | — | — | default | Chat Completions | | `glm-4.7` | 按量 | \$0.6 / 1M tokens | \$2.16 / 1M tokens | — | — | default | Chat Completions | | `glm-4.6` | 按量 | \$0.5 / 1M tokens | \$2 / 1M tokens | — | — | default | Chat Completions | | `glm-4.6v` | 按量 | \$0.28 / 1M tokens | \$0.84 / 1M tokens | — | — | default | Chat Completions | | `glm-4.5` | 按量 | \$0.5 / 1M tokens | \$2 / 1M tokens | — | — | default | Chat Completions | | `glm-4.5-air` | 按量 | \$0.2 / 1M tokens | \$1 / 1M tokens | — | — | default | Chat Completions | | `glm-4.5-flash` | 按量 | \$0.01 / 1M tokens | \$0.04 / 1M tokens | — | — | default | Chat Completions | | `glm-4.5v` | 按量 | \$0.5 / 1M tokens | \$1.5 / 1M tokens | — | — | default | Chat Completions |

Moonshot 5

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | ------------------ | -- | -----------------: | -----------------: | -----------------: | ---: | ------- | ---------------- | | `kimi-k2.6` | 按量 | \$0.95 / 1M tokens | \$4 / 1M tokens | \$0.16 / 1M tokens | — | default | Chat Completions | | `kimi-k2.5` | 按量 | \$0.6 / 1M tokens | \$3.15 / 1M tokens | \$0.1 / 1M tokens | — | default | Chat Completions | | `kimi-k2` | 按量 | \$0.56 / 1M tokens | \$2.24 / 1M tokens | — | — | default | Chat Completions | | `kimi-k2-128k` | 按量 | \$0.56 / 1M tokens | \$2.24 / 1M tokens | — | — | default | Chat Completions | | `kimi-k2-instruct` | 按量 | \$0.56 / 1M tokens | \$0.56 / 1M tokens | — | — | default | Chat Completions |

MiniMax 2

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | -------------- | -- | ----------------: | ----------------: | --: | ---: | ------- | ---------------- | | `MiniMax-M2.5` | 按量 | \$0.3 / 1M tokens | \$1.2 / 1M tokens | — | — | default | Chat Completions | | `MiniMax-M2.1` | 按量 | \$0.3 / 1M tokens | \$1.2 / 1M tokens | — | — | default | Chat Completions |

Black Forest Labs 5

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | ------------------ | -- | -: | -: | --: | ----------: | ------- | ------------------------ | | `flux-2-flex` | 按次 | — | — | — | \$0.06 / 次 | default | Images, Chat Completions | | `flux-2-max` | 按次 | — | — | — | \$0.07 / 次 | default | Images, Chat Completions | | `flux-2-pro` | 按次 | — | — | — | \$0.03 / 次 | default | Images, Chat Completions | | `flux-kontext-max` | 按次 | — | — | — | \$0.07 / 次 | default | Images, Chat Completions | | `flux-kontext-pro` | 按次 | — | — | — | \$0.035 / 次 | default | Images, Chat Completions |

美团 1

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | -------------------- | -- | -----------------: | ----------------: | --: | ---: | ------- | ---------------- | | `longcat-flash-chat` | 按量 | \$0.25 / 1M tokens | \$0.5 / 1M tokens | — | — | default | Chat Completions |

阶跃星辰 1

| 模型 ID | 计费 | 输入 | 输出 | 缓存读 | 按次价格 | 令牌分组 | 兼容端点 | | ---------------- | -- | ----------------: | ----------------: | --: | ---: | ------- | ---------------- | | `step-3.5-flash` | 按量 | \$0.1 / 1M tokens | \$0.3 / 1M tokens | — | — | default | Chat Completions |

阶梯计价说明

标有 † 的模型会根据单次请求的 token 数量进入不同价格档位。下表已列出每个档位对应的输入、输出和缓存读价格;实际请求跨档后的扣费以调用日志为准。

| 模型 ID | 单次请求 tokens | 输入价格 | 输出价格 | 缓存读价格 | | ----------------------------- | --------------- | ---------------------: | ---------------------: | ------------------: | | `qwen3.6-flash` | 0–256,000 | \$0.164384 / 1M tokens | \$0.986301 / 1M tokens | — | | `qwen3.6-flash` | 256,001 以上 | \$0.657534 / 1M tokens | \$3.9452 / 1M tokens | — | | `qwen3.6-max-preview` | 0–128,000 | \$1.2329 / 1M tokens | \$7.3973 / 1M tokens | — | | `qwen3.6-max-preview` | 128,001 以上 | \$2.0548 / 1M tokens | \$12.3288 / 1M tokens | — | | `qwen3.6-plus` | 0–256,000 | \$0.273973 / 1M tokens | \$1.6438 / 1M tokens | — | | `qwen3.6-plus` | 256,001 以上 | \$1.0959 / 1M tokens | \$6.5753 / 1M tokens | — | | `qwen3.5-flash` | 0–128,000 | \$0.027397 / 1M tokens | \$0.273973 / 1M tokens | — | | `qwen3.5-flash` | 128,001–256,000 | \$0.109589 / 1M tokens | \$1.0959 / 1M tokens | — | | `qwen3.5-flash` | 256,001 以上 | \$0.164384 / 1M tokens | \$1.6438 / 1M tokens | — | | `qwen3.5-plus` | 0–128,000 | \$0.109589 / 1M tokens | \$0.657534 / 1M tokens | — | | `qwen3.5-plus` | 128,001–256,000 | \$0.273973 / 1M tokens | \$1.6438 / 1M tokens | — | | `qwen3.5-plus` | 256,001 以上 | \$0.547945 / 1M tokens | \$3.2877 / 1M tokens | — | | `qwen3.5-flash-2026-02-23` | 0–128,000 | \$0.027397 / 1M tokens | \$0.273973 / 1M tokens | — | | `qwen3.5-flash-2026-02-23` | 128,001–256,000 | \$0.109589 / 1M tokens | \$1.0959 / 1M tokens | — | | `qwen3.5-flash-2026-02-23` | 256,001 以上 | \$0.164384 / 1M tokens | \$1.6438 / 1M tokens | — | | `qwen3.5-plus-2026-02-15` | 0–128,000 | \$0.109589 / 1M tokens | \$0.657534 / 1M tokens | — | | `qwen3.5-plus-2026-02-15` | 128,001–256,000 | \$0.273973 / 1M tokens | \$1.6438 / 1M tokens | — | | `qwen3.5-plus-2026-02-15` | 256,001 以上 | \$0.547945 / 1M tokens | \$3.2877 / 1M tokens | — | | `qwen3-coder-flash` | 0–32,000 | \$0.136986 / 1M tokens | \$0.547945 / 1M tokens | — | | `qwen3-coder-flash` | 32,001–128,000 | \$0.205479 / 1M tokens | \$0.821918 / 1M tokens | — | | `qwen3-coder-flash` | 128,001–256,000 | \$0.342466 / 1M tokens | \$1.3699 / 1M tokens | — | | `qwen3-coder-flash` | 256,001 以上 | \$0.684932 / 1M tokens | \$3.4247 / 1M tokens | — | | `qwen3-coder-plus` | 0–32,000 | \$0.547945 / 1M tokens | \$2.1918 / 1M tokens | — | | `qwen3-coder-plus` | 32,001–128,000 | \$0.821918 / 1M tokens | \$3.2877 / 1M tokens | — | | `qwen3-coder-plus` | 128,001–256,000 | \$1.3699 / 1M tokens | \$5.4795 / 1M tokens | — | | `qwen3-coder-plus` | 256,001 以上 | \$2.7397 / 1M tokens | \$27.3973 / 1M tokens | — | | `qwen3-max` | 0–32,000 | \$0.342466 / 1M tokens | \$1.3699 / 1M tokens | — | | `qwen3-max` | 32,001–128,000 | \$0.547945 / 1M tokens | \$2.1918 / 1M tokens | — | | `qwen3-max` | 128,001 以上 | \$0.958904 / 1M tokens | \$3.8356 / 1M tokens | — | | `qwen3-max-preview` | 0–32,000 | \$0.821918 / 1M tokens | \$3.2877 / 1M tokens | — | | `qwen3-max-preview` | 32,001–128,000 | \$1.3699 / 1M tokens | \$5.4795 / 1M tokens | — | | `qwen3-max-preview` | 128,001 以上 | \$2.0548 / 1M tokens | \$8.2192 / 1M tokens | — | | `qwen3-vl-plus` | 0–32,000 | \$0.136986 / 1M tokens | \$1.3699 / 1M tokens | — | | `qwen3-vl-plus` | 32,001–128,000 | \$0.205479 / 1M tokens | \$2.0548 / 1M tokens | — | | `qwen3-vl-plus` | 128,001 以上 | \$0.410959 / 1M tokens | \$4.1096 / 1M tokens | — | | `qwen3-coder-plus-2025-09-23` | 0–32,000 | \$0.547945 / 1M tokens | \$2.1918 / 1M tokens | — | | `qwen3-coder-plus-2025-09-23` | 32,001–128,000 | \$0.821918 / 1M tokens | \$3.2877 / 1M tokens | — | | `qwen3-coder-plus-2025-09-23` | 128,001–256,000 | \$1.3699 / 1M tokens | \$5.4795 / 1M tokens | — | | `qwen3-coder-plus-2025-09-23` | 256,001 以上 | \$2.7397 / 1M tokens | \$27.3973 / 1M tokens | — | | `qwen3-max-2025-09-23` | 0–32,000 | \$0.821918 / 1M tokens | \$3.2877 / 1M tokens | — | | `qwen3-max-2025-09-23` | 32,001–128,000 | \$1.3699 / 1M tokens | \$5.4795 / 1M tokens | — | | `qwen3-max-2025-09-23` | 128,001 以上 | \$2.0548 / 1M tokens | \$8.2192 / 1M tokens | — | | `qwen3-vl-plus-2025-09-23` | 0–32,000 | \$0.136986 / 1M tokens | \$1.3699 / 1M tokens | — | | `qwen3-vl-plus-2025-09-23` | 32,001–128,000 | \$0.205479 / 1M tokens | \$2.0548 / 1M tokens | — | | `qwen3-vl-plus-2025-09-23` | 128,001 以上 | \$0.410959 / 1M tokens | \$4.1096 / 1M tokens | — | | `qwen3-coder-plus-2025-07-22` | 0–32,000 | \$0.547945 / 1M tokens | \$2.1918 / 1M tokens | — | | `qwen3-coder-plus-2025-07-22` | 32,001–128,000 | \$0.821918 / 1M tokens | \$3.2877 / 1M tokens | — | | `qwen3-coder-plus-2025-07-22` | 128,001–256,000 | \$1.3699 / 1M tokens | \$5.4795 / 1M tokens | — | | `qwen3-coder-plus-2025-07-22` | 256,001 以上 | \$2.7397 / 1M tokens | \$27.3973 / 1M tokens | — | | `qwen-plus-latest` | 0–128,000 | \$0.109589 / 1M tokens | \$0.273973 / 1M tokens | — | | `qwen-plus-latest` | 128,001–256,000 | \$0.328767 / 1M tokens | \$2.7397 / 1M tokens | — | | `qwen-plus-latest` | 256,001 以上 | \$0.657534 / 1M tokens | \$6.5753 / 1M tokens | — | | `qwen-plus` | 0–128,000 | \$0.109589 / 1M tokens | \$0.273973 / 1M tokens | — | | `qwen-plus` | 128,001–256,000 | \$0.328767 / 1M tokens | \$2.7397 / 1M tokens | — | | `qwen-plus` | 256,001 以上 | \$0.657534 / 1M tokens | \$6.5753 / 1M tokens | — | | `qwen-plus-2025-09-11` | 0–128,000 | \$0.109589 / 1M tokens | \$0.273973 / 1M tokens | — | | `qwen-plus-2025-09-11` | 128,001–256,000 | \$0.328767 / 1M tokens | \$2.7397 / 1M tokens | — | | `qwen-plus-2025-09-11` | 256,001 以上 | \$0.657534 / 1M tokens | \$6.5753 / 1M tokens | — | | `glm-5.1` | 0–32,768 | \$0.84 / 1M tokens | \$3.36 / 1M tokens | — | | `glm-5.1` | 32,769 以上 | \$1.14 / 1M tokens | \$3.99 / 1M tokens | — | | `gemini-3.1-pro-preview` | 0–200,000 | \$2 / 1M tokens | \$12 / 1M tokens | \$0.2 / 1M tokens | | `gemini-3.1-pro-preview` | 200,001 以上 | \$4 / 1M tokens | \$18 / 1M tokens | \$0.4 / 1M tokens | | `gemini-2.5-pro` | 0–200,000 | \$1.25 / 1M tokens | \$10 / 1M tokens | \$0.125 / 1M tokens | | `gemini-2.5-pro` | 200,001 以上 | \$2.5 / 1M tokens | \$15 / 1M tokens | \$0.25 / 1M tokens | | `gpt-6-astra` | 0–272,000 | \$10 / 1M tokens | \$50 / 1M tokens | \$1 / 1M tokens | | `gpt-6-astra` | 272,001 以上 | \$20 / 1M tokens | \$75 / 1M tokens | \$2 / 1M tokens | | `gpt-5.6-luna` | 0–272,000 | \$0.2 / 1M tokens | \$1.2 / 1M tokens | \$0.02 / 1M tokens | | `gpt-5.6-luna` | 272,001 以上 | \$0.4 / 1M tokens | \$1.8 / 1M tokens | \$0.04 / 1M tokens | | `gpt-5.6-sol` | 0–272,000 | \$4 / 1M tokens | \$20 / 1M tokens | \$0.4 / 1M tokens | | `gpt-5.6-sol` | 272,001 以上 | \$8 / 1M tokens | \$30 / 1M tokens | \$0.8 / 1M tokens | | `gpt-5.6-terra` | 0–272,000 | \$2 / 1M tokens | \$12 / 1M tokens | \$0.2 / 1M tokens | | `gpt-5.6-terra` | 272,001 以上 | \$4 / 1M tokens | \$18 / 1M tokens | \$0.4 / 1M tokens | | `gpt-5.5` | 0–271,999 | \$5 / 1M tokens | \$30 / 1M tokens | \$0.5 / 1M tokens | | `gpt-5.5` | 272,000 以上 | \$10 / 1M tokens | \$45 / 1M tokens | \$1 / 1M tokens | | `gpt-5.4` | 0–271,999 | \$2.5 / 1M tokens | \$15 / 1M tokens | \$0.25 / 1M tokens | | `gpt-5.4` | 272,000 以上 | \$5 / 1M tokens | \$22.5 / 1M tokens | \$0.5 / 1M tokens | | `gpt-5.4-pro` | 0–271,999 | \$30 / 1M tokens | \$180 / 1M tokens | — | | `gpt-5.4-pro` | 272,000 以上 | \$60 / 1M tokens | \$270 / 1M tokens | — | | `grok-4.6` | 0–204,800 | \$2 / 1M tokens | \$6 / 1M tokens | — | | `grok-4.6` | 204,801 以上 | \$4 / 1M tokens | \$12 / 1M tokens | — |

常见问题

这是真正实时价格吗?

本页按系统价格配置定期生成,并显示更新时间。模型临时调整、账号分组或专属合同可能使控制台价格不同,最终以控制台和调用日志为准。

缓存读价格什么时候生效?

仅当请求命中该模型支持的提示词缓存时生效。没有缓存配置、未命中缓存或调用方式不支持缓存时,输入仍按普通输入价格计费。

阶梯计价如何计算?

系统按单次请求的 token 数量选择对应档位。下方阶梯表同时列出该档位的输入和输出价格,最终使用量与扣费以调用日志为准。

企业采购、批量使用或折扣怎么确认?

请联系站长或支持团队说明账户、模型、预计用量、合同和发票需求。文档不承诺固定折扣门槛或百分比,最终条件以双方确认内容为准。

找到模型 ID 后怎么调用?

先确认表中的兼容端点和令牌分组,再到控制台创建对应令牌。OpenAI 兼容模型通常使用 /v1/chat/completions 或 /v1/responses;Gemini、图像和其他专用模型应按对应文档调用。

价格快照生成时间: 2026-09-10T02:33:12.609Z

# 企业服务与定价 Source: https://docs.laozhang.ai/pricing 老张API企业级定价方案。200+AI模型按量计费,透明定价,支持企业付款、服务合同和商业发票。 **2026 年 9 月 9 日图像计费更新:** Flare / Sunburst 使用官转分组,按 tokens 计费;Default 的 `gpt-image-2-web` 对应网页版最新 2.5。详见 [GPT Image 2.5 的分组与计费](/api-capabilities/gpt-image-2-5)。 **VIP 按次模型:** `gpt-image-2.5-flare-vip` 与 `gpt-image-2.5-sunburst-vip` 均为 \$0.03/次,与 `gpt-image-2-vip` 的计费方式相同。两个不带 `-vip` 后缀的官转模型仍按 tokens 计费。 ## 企业级技术服务定价 ### 服务定位 老张API提供**企业级AI技术API接入服务**,面向企业与开发者: * **技术服务性质**:信息技术服务 / API接入服务 * **服务对象**:企业用户、开发团队、技术部门 * **计费方式**:按Token/次数计费,按需使用,无月费 绝大部分模型价格透明公开,消耗视角完全可查,使用放心 每当各家厂商发布新模型,老张API 总是及时上新 本页热门模型已于 **2026年7月23日** 更新。老张API网关价格、上游厂商价格和第三方订阅价格属于不同计费体系;准确模型 ID、令牌分组、计费模式和实际单价以[控制台实时价格](https://api2.laozhang.ai/account/pricing)为准。 ## 企业服务 ### 账户额度与企业采购 老张API 面向企业和开发团队提供 API 调用额度管理。生产使用、企业采购、服务合同和商业发票需求,请先联系支持团队确认账户类型、额度安排、海外运营主体和合规边界。 **企业服务支持**: * 大额采购可联系客服确认企业报价 * 开具商业发票 * 签订服务合同 * 专属客户经理 * 技术支持群 **联系方式**: * Telegram:[https://t.me/laozhang\_cn](https://t.me/laozhang_cn) * 邮箱:[hi@laozhang.ai](mailto:hi@laozhang.ai) ### 成本估算参考 **先选模型,再用真实请求估算成本:** * **高吞吐、分类与抽取**:`gemini-3.5-flash-lite`、`gpt-5.6-luna` * **通用多模态与 Agent**:`gemini-3.6-flash`、`gpt-5.6-terra` * **编程与复杂任务**:`claude-sonnet-5`、`gpt-5.6` * **图像生成**:`gpt-image-2.5-flare`、`gpt-image-2.5-sunburst`(官转按 tokens);`gpt-image-2-web`(Default 网页版 2.5);`gemini-3.1-flash-image` 不再使用固定“每 1000 次约多少钱”的历史估算。生产预算应以目标令牌的小流量测试、调用日志中的实际 token/次数和控制台当前单价计算。 ## 用量监控与管理 ### 控制台功能 **实时数据看板** * 每日、每周、每月统计 * 模型使用分布 * 费用明细查询 * 额度预警设置 **查看地址**:[api2.laozhang.ai/log](https://api2.laozhang.ai/log) **精细化权限控制** * 多密钥管理 * 模型权限限制 * 额度上限设置 * 有效期控制 **管理地址**:[api2.laozhang.ai/token](https://api2.laozhang.ai/token) **技术优化建议** 1. 使用`max_tokens`限制输出 2. 选择合适的`temperature` 3. 缓存常用响应 4. 批量处理请求 5. 使用流式输出减少超时 ### 计费模式 老张API 支持两种计费模式,当同一模型同时支持两种模式时: **按次计费优先于按量计费** 如果一个模型同时支持按次和按量计费,系统默认使用按次计费。 #### 令牌(API Key)设置影响 如果令牌设置为"仅按量计费",即使模型支持按次计费,也会使用按量计费 令牌默认支持所有计费模式,系统自动选择(按次优先) ### 按次计费场景 以下类型的模型通常采用按次计费: **适用模型**: * `gpt-image-2-web` 等按次线路(Flare / Sunburst 官转按 tokens 计费) * Nano Banana 系列 * flux-kontext-pro **计费单位**:可能按张、按次或按量,取决于具体线路 **适用模型**: * 视频生成类 API * 动画制作模型 **计费单位**:每个视频/每秒 **识别方式**: * 模型名称包含 `-all` 后缀 * 特定功能型模型 **计费单位**:每次调用 查看完整的模型价格表:[老张API 价格列表](https://api2.laozhang.ai/account/pricing) ## Token计费说明 ### 什么是Token? Token是AI的"词汇单位",计费的基本单位。 **简单记忆**: * 1个中文字 ≈ 2个 tokens * 1个英文单词 ≈ 1个 token * 500汉字的文章 ≈ 1000 tokens **实际例子**: * "你好世界" = 4个 tokens * "Hello World" = 2个 tokens * 一篇社媒长文(2000字)≈ 4000 tokens ### 用量示例(不含固定价格) | 使用场景 | 示例输入Token | 示例输出Token | 示例总量 | | ----- | --------- | --------- | ----- | | 简单问答 | 20 | 50 | 70 | | 文章生成 | 100 | 2000 | 2100 | | 代码调试 | 500 | 300 | 800 | | 长文本翻译 | 5000 | 5000 | 10000 | 这些数字只用于解释计算方式,实际 token 数由模型分词、上下文、工具调用和输出长度决定。费用需要分别应用目标模型当前的输入价、输出价或按次价格。 ### 提示词与补全 在每次 API 调用中,费用由两部分组成: 您发送给模型的所有内容,包括: * 系统提示 * 用户问题 * 上下文信息 * 历史对话(如有) 模型生成的回复内容,包括: * 文本回答 * 代码生成 * 结构化数据 不同模型、令牌分组和线路的输入价、输出价、缓存价或按次价格可能不同。不要用上游厂商官网价格直接推算老张API账单,请以控制台和调用日志为准。 ## 当前热门模型与计费入口 ### 2026年7月模型选型 | 模型 ID | 核心定位 | 适用场景 | 价格 | | ----------------------- | ----------- | ------------------ | ------- | | `gemini-3.5-flash-lite` | 低延迟、高吞吐 | 分类、抽取、文档解析、子 Agent | 控制台实时价格 | | `gpt-5.6-luna` | GPT-5.6 轻量档 | 批处理、结构化任务、规模化自动化 | 控制台实时价格 | | `gemini-3.6-flash` | 性能与成本均衡 | 通用对话、多模态、Agent | 控制台实时价格 | 先用真实业务样本对比质量、延迟和实际扣费,再决定生产主模型。 | 模型 ID | 核心定位 | 适用场景 | 价格 | | ------------------ | ----------- | --------------------- | ------- | | `claude-sonnet-5` | 编程与工具调用主力 | Coding Agent、长任务、生产开发 | 控制台实时价格 | | `gpt-5.6` | GPT-5.6 旗舰 | 高难度编程、复杂推理、专业工作 | 控制台实时价格 | | `gpt-5.6-terra` | 能力、速度和成本均衡 | 生产 Agent、代码与通用知识工作 | 控制台实时价格 | | `gemini-3.6-flash` | 快速多模态 Agent | 代码、多模态理解、工具工作流 | 控制台实时价格 | Cursor、Claude Code 等客户端能否使用,还取决于接口协议、工具调用兼容性和客户端配置,不应只依据模型名称判断。 | 模型 ID | 主要能力 | 推荐场景 | 价格 | | -------------------------------------------------------- | ------------------------ | ----------------------------- | ------------------------------------- | | `gpt-image-2.5-flare` / `gpt-image-2.5-sunburst` | Flare 偏速度,Sunburst 偏精细编辑 | 官转 Images API | 与 GPT Image 2 官转同 token 单价;实际分组价格看控制台 | | `gpt-image-2.5-flare-vip` / `gpt-image-2.5-sunburst-vip` | VIP 按次生成与编辑 | Default,接入同 `gpt-image-2-vip` | \$0.03/次 | | `gpt-image-2-web` | GPT 网页版最新 2.5 | Default 分组 | 当前 \$0.03/次,以控制台为准 | | `gemini-3.1-flash-image` | 0.5K–4K,质量与速度均衡 | 高吞吐生成与高级编辑 | 控制台实时价格 | | `gemini-3.1-flash-lite-image` | 固定 1K、低延迟 | 草图、批量素材、高并发 | 控制台实时价格 | | `gemini-3-pro-image` | 专业 4K、复杂指令与文字排版 | 海报、品牌素材、精细编辑 | 控制台实时价格 | 图像模型可能按次、按张或按量计费,并可能因令牌分组使用不同线路。 ### 成本预估方法 使用少量样本(5-10个)进行测试调用 在控制台查看每次调用的详细 token 消耗 统计平均每次调用的 token 数量 (平均输入 tokens × 输入价 + 平均输出 tokens × 输出价)× 预计调用次数;按次模型另按每次/每张/每秒价格计算 1. 先用轻量模型测试,验证可行性 2. 通过后台日志分析实际消耗 3. 根据任务复杂度选择合适模型 4. 优化提示词减少不必要的 token 消耗 ## 实时价格查询 查看所有模型的实时价格 * 按量计费价格 * 按次计费价格 * 价格说明 快速估算使用成本 * 输入预估用量 * 选择使用模型 * 自动计算费用 ## 常见问题 登录 [老张API 控制台](https://api2.laozhang.ai),在模型列表页面可以查看所有模型的实时价格。 账户额度以控制台状态、服务合同约定或客服确认为准。企业付款通常在工作日核验后处理。 支持开具商业发票,请在控制台提交发票申请。 企业大额采购可申请专属报价,请联系客服咨询。 ## 企业服务与开票 ### 服务性质 * **服务类型**:信息技术服务 / 技术服务 * **开票类目**:信息技术服务费 或 数据采集费 * **适用客户**:企业用户、开发团队、技术部门 ### 开票流程 客户完成账户额度开通或企业付款确认后,可按实付金额申请商业发票。发票主体与税务资料以 YingTu Technology Pte. Ltd. 及双方确认的服务合同为准。 在控制台或客服确认的正式渠道提交商业发票信息 [提交开票申请 →](https://xinqikeji.feishu.cn/share/base/form/shrcnkZ6QwkdCpBUoNfDem2Mmwd) * 可按企业服务合同开具商业发票 * 发票类目以 API 技术接入服务或信息技术服务为准 * 可配合提供企业采购所需的服务清单 处理时间以账户状态、合同约定和客服确认为准,通过邮箱发送电子发票或收据 本服务由新加坡公司 YingTu Technology Pte. Ltd. 作为海外运营主体提供,以 **API 技术接入服务**性质开具商业发票或服务收据。 *** 注册账号,从当前模型目录选择 API 接入服务 ## 相关文档 * [支付、企业采购、折扣与退款说明](/faq/payment-methods) * [模型与价格总表](/models) * [调用日志](/faq/call-logs) * [老张API用户协议](https://www.laozhang.ai/zh-cn/terms) # AI模型API资源导航 - OpenAI、Claude、Gemini官方文档集合 Source: https://docs.laozhang.ai/resources 汇集OpenAI、Claude、Gemini、Grok、DeepSeek、Qwen等主流AI模型的官方API文档链接,为开发者提供一站式AI API资源导航服务。 ## 资源导航 这里收集了主流 AI 模型的官方 API 文档,方便开发者快速访问。 ## 老张API 相关链接 访问 老张API 平台首页和控制台 查看最新的模型定价信息 技术支持和业务咨询 ## 官方 API 文档 ### [OpenAI API 文档](https://platform.openai.com/docs/api-reference) * GPT-4、GPT-3.5、DALL·E、Whisper 等模型 * 完整的 API 参考文档 * 代码示例和最佳实践 ### [Claude API 文档](https://docs.anthropic.com/en/api) * Anthropic Claude 系列模型 * Messages API 和相关功能 * 安全和负责任的 AI 使用指南 ### [Gemini API 文档](https://ai.google.dev/gemini-api/docs) * Google Gemini 系列模型 * 多模态 AI 能力 * Firebase 集成支持 ### [Grok API 文档](https://docs.x.ai/docs/overview) * xAI Grok 模型(公测中) * 实时搜索集成 * 原生工具使用能力 ### [DeepSeek API 文档](https://api-docs.deepseek.com/) * DeepSeek 系列模型 * 兼容 OpenAI API 格式 * 代码生成和推理能力 ### [Qwen API 文档](https://www.alibabacloud.com/help/en/model-studio/use-qwen-by-calling-api) * 阿里云通义千问系列 * 多模态和多语言支持 * DashScope 平台服务 *** 所有外部链接都指向官方文档网站,确保您获得最新和最准确的信息。 ## 站内接入入口 * [当前模型选择与验收](/api-capabilities/model-info) * [OpenAI 模型接入](/api-reference/openai) * [Claude 模型接入](/api-reference/claude) * [Gemini 模型接入](/api-reference/gemini) # 使用场景总览 Source: https://docs.laozhang.ai/scenarios 探索老张API在对话AI、编程开发、技术工程、翻译等各个领域的实际应用场景,了解如何在不同业务中集成和使用AI大模型。 ## 场景概述 老张API 支持 200+ 热门 AI 模型,为企业、开发团队和内部工具提供统一 API 接入能力,适用于生产系统、工程自动化和业务流程集成。 ## 🎯 四大核心应用领域 智能对话、客服机器人、知识问答等交互式AI应用 代码生成、调试优化、开发辅助等编程场景 AI应用开发、工作流自动化、系统集成等技术场景 多语言翻译、文档本地化、跨语言交流等应用 *** ## 💬 对话型 AI 利用 AI 大模型构建智能对话系统,提供自然流畅的人机交互体验。 ### 典型应用场景 * **智能客服**:7x24小时自动回复,处理常见问题 * **知识问答**:基于企业知识库的智能问答系统 * **工作助手**:日程管理、信息查询、任务提醒 * **教育辅导**:个性化学习指导和答疑解惑 ### 推荐工具和平台 功能强大的桌面AI对话客户端,支持多模型切换 开源的Web界面,可自部署的ChatGPT替代方案 一键部署的网页版对话界面,支持多种模型 *** ## 💻 编程开发 AI 赋能软件开发,提升编程效率和代码质量。 ### 典型应用场景 * **代码生成**:根据需求自动生成代码片段 * **Bug修复**:智能检测和修复代码问题 * **代码重构**:优化代码结构和性能 * **技术文档**:自动生成API文档和注释 ### 推荐工具和平台 AI驱动的代码编辑器,智能代码补全和生成 VS Code中的AI编程助手,支持多种AI模型 ### 支持的编程语言 * **前端开发**:JavaScript, TypeScript, React, Vue, Angular * **后端开发**:Python, Java, Go, Node.js, PHP * **移动开发**:Swift, Kotlin, Flutter, React Native * **数据科学**:Python, R, SQL, Jupyter Notebook *** ## 🔧 技术工程 构建复杂的 AI 应用和自动化工作流程。 ### 典型应用场景 * **AI应用开发**:快速构建和部署AI应用 * **工作流自动化**:智能化业务流程处理 * **数据处理**:大规模数据分析和处理 * **系统集成**:将AI能力集成到现有系统 ### 推荐工具和平台 构建LLM应用的强大开发框架 可视化AI应用开发和部署平台 ### 技术栈支持 * **开发框架**:LangChain, LlamaIndex, Semantic Kernel * **部署平台**:Docker, Kubernetes, Serverless * **数据库**:Vector DB, PostgreSQL, MongoDB * **监控运维**:Prometheus, Grafana, ELK Stack *** ## 🌍 翻译场景 打破语言障碍,实现高质量的多语言交流。 ### 典型应用场景 * **文档翻译**:技术文档、合同、报告等专业翻译 * **网页翻译**:实时翻译网页内容,无障碍浏览 * **多语言客服**:支持多种语言的客户服务 * **内容本地化**:软件界面、营销材料的本地化 ### 推荐工具和平台 macOS上的专业翻译工具,支持截图翻译 浏览器扩展,双语对照阅读体验 ### 支持语言 * **主流语言**:中文、英语、日语、韩语、法语、德语、西班牙语 * **小语种**:泰语、越南语、阿拉伯语、俄语、意大利语 * **专业领域**:医学、法律、技术、商务等专业术语翻译 *** ## 🚀 开始使用 ### 第一步:选择适合的场景 根据您的具体需求,从上述四个领域中选择最匹配的应用场景。 ### 第二步:选择合适的工具 每个场景都有推荐的工具和平台,点击相应的卡片查看详细的集成指南。 ### 第三步:获取 API 密钥 访问 [老张API控制台](https://api2.laozhang.ai) 注册账号并获取 API 密钥。 ### 第四步:按照文档集成 每个工具都有详细的集成文档,包含完整的配置步骤和代码示例。 ## 💡 最佳实践建议 ### 性能优化 * **模型选择**:根据任务复杂度选择合适的模型(GPT-4 vs GPT-3.5) * **批量处理**:对于大量数据,使用批量API提升效率 * **缓存策略**:合理使用缓存减少重复请求 ### 成本控制 * **Token优化**:精简输入内容,使用更高效的提示词 * **模型混用**:简单任务使用低成本模型,复杂任务使用高级模型 * **用量监控**:定期查看使用统计,优化调用策略 ### 安全考虑 * **数据隐私**:敏感数据处理前进行脱敏 * **访问控制**:设置合理的API访问权限 * **内容过滤**:启用内容安全检查功能 *** ## 📞 需要帮助? 如果您在使用过程中遇到任何问题,欢迎: * 📧 **邮件咨询**:[hi@laozhang.ai](mailto:hi@laozhang.ai) * 🌐 **访问官网**:[api2.laozhang.ai](https://api2.laozhang.ai) * 💰 **查看价格**:[价格页面](https://api2.laozhang.ai/account/pricing) 新账号测试额度仅用于 API 连通性验证和开发调试,不适用于生产环境或面向公众的内容交付服务。 # Claude Code 配置教程 Source: https://docs.laozhang.ai/scenarios/programming/claude-code Claude Code 接入老张API配置教程:使用 settings.json 配置 API 地址、令牌、当前推荐 Claude 模型,并处理 AWS Claude / Bedrock 400 兼容问题。 ## 工具简介 Claude Code 是 Anthropic 官方命令行编程助手,适合在本地项目中处理代码生成、调试、重构、测试和文档任务。通过老张API配置后,可以直接在终端里使用 Claude 系列模型,不需要把项目搬到网页端。 在项目目录中运行,保留本地文件和终端工作流。 创建令牌时选择「Claude Code」分组,避免普通 Claude 分组不兼容。 默认使用 Sonnet 4.6,复杂任务再切换到 Opus 4.7。 默认关闭实验性 Beta 字段,减少 Bedrock 400 参数错误。 本页只保留新项目推荐使用的 Claude Code 模型。旧版 Opus / Sonnet 4.5、4.1、3.x 型号不再作为新配置推荐,请以控制台实际可选模型为准。 ## 必做:AWS Claude 400 兼容设置 如果 Claude Code 使用 AWS Claude 官方通道时遇到 `400 ValidationException`、`Extra inputs are not permitted` 或 `cache_control.scope` 相关错误,先关闭 Claude Code 实验性 Beta 请求字段。 临时生效只需要在启动 Claude Code 前执行这一行: ```bash theme={null} export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 ``` 推荐把它写入 `~/.claude/settings.json`,避免每次打开终端都重新设置: ```json theme={null} { "env": { "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1" } } ``` ## 快速配置 在终端运行: ```bash theme={null} npm install -g @anthropic-ai/claude-code ``` 需要 Node.js 18 或更高版本。如未安装,请先访问 [nodejs.org](https://nodejs.org) 下载安装。 访问 [老张API控制台](https://api2.laozhang.ai/token),创建新令牌时选择「Claude Code」分组,然后复制 `sk-...` 格式的密钥。 创建令牌时必须选择「Claude Code」分组,否则 Claude Code 可能无法正常调用。 编辑 `~/.claude/settings.json`: ```bash theme={null} vim ~/.claude/settings.json ``` 推荐配置如下: ```json theme={null} { "env": { "ANTHROPIC_BASE_URL": "https://api2.laozhang.ai", "ANTHROPIC_AUTH_TOKEN": "sk-你的老张API密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-6", "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1" } } ``` `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 用于关闭 Claude Code 实验性 Beta 请求字段,提升 AWS Claude / Bedrock 官方通道兼容性。 进入项目目录并启动: ```bash theme={null} cd ~/Desktop/my-project claude ``` 首次启动会显示 API 配置信息,确认 Base URL、Token 和模型无误后即可开始使用。 ## 模型选择 新项目建议只在下表模型中选择,避免继续沿用旧配置里的 Opus / Sonnet 4.5、4.1 或 3.x 型号。 | 场景 | 推荐模型 ID | 选择建议 | | ------------ | ---------------------------- | --------------------------- | | 日常开发默认模型 | `claude-sonnet-4-6` | 速度、质量和成本更均衡,适合作为默认配置 | | 日常复杂推理 | `claude-sonnet-4-6-thinking` | 适合需要更多分析步骤的代码审查、Bug 定位和方案设计 | | 高难度 Agent 任务 | `claude-opus-4-7` | 适合复杂重构、跨模块设计、长流程编码任务 | | 深度分析与多步规划 | `claude-opus-4-7-thinking` | 适合高风险迁移、架构决策和复杂问题拆解 | | 快速低成本任务 | `claude-haiku-4-5` | 适合短问题、简单脚本、文档润色和快速响应 | 默认先用 `claude-sonnet-4-6`。只有当任务需要更强规划、长上下文或复杂工具调用时,再切换到 Opus 4.7。 ## 使用方式 ### 基本命令 ```bash theme={null} claude # 显示 API Key、Base URL 和模型配置 # 确认配置无误后继续 ``` ### 常见工作流 1. 在项目目录运行 `claude` 2. 描述要处理的文件、错误或目标 3. 让 Claude Code 先给出修改计划 4. 确认后再让它修改文件、运行命令或生成测试 ### 适合的任务 生成函数、重构模块、调整项目结构。 分析报错、定位问题、补充回归验证。 编写测试用例、维护脚本和自动化命令。 生成 README、接口说明和变更记录。 ## 故障排除 如果使用 Claude Code 时出现以下错误,通常是 Claude Code 默认启用了实验性 Beta 参数,而 AWS Claude / Bedrock 官方通道不接受这些额外字段: * `400 ValidationException` * `Extra inputs are not permitted` * `cache_control.scope` 相关错误 处理顺序: 1. 先升级 Claude Code 到最新版本。 2. 再设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。 ```bash theme={null} npm update -g @anthropic-ai/claude-code ``` 根据 [Claude 官方 LLM gateway 文档](https://code.claude.com/docs/en/llm-gateway),使用 Anthropic Messages 格式连接 Bedrock 或 Vertex 时,可能需要设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`,否则部分 Beta 参数或请求字段可能导致网关/Bedrock 通道返回参数校验错误。 推荐在 `~/.claude/settings.json` 的 `env` 中加入: ```json theme={null} { "env": { "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1" } } ``` 如果只想让当前终端会话临时生效,可以执行: ```bash theme={null} export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 ``` 如需永久生效,请按你的终端环境写入配置文件: ```bash theme={null} # macOS / Linux bash echo 'export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1' >> ~/.bashrc source ~/.bashrc # macOS 默认 zsh echo 'export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1' >> ~/.zshrc source ~/.zshrc ``` Windows PowerShell 可执行: ```powershell theme={null} [System.Environment]::SetEnvironmentVariable("CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS", "1", "User") ``` 设置完成后重新打开终端并运行 Claude Code。该开关会让请求结构回到更标准的格式,避免 `cache_control`、`tool` 扩展字段、`scope` 等参数在 Bedrock 通道被判定为非法字段。 如果仍然报错,请继续检查模型名是否正确、是否存在自定义 request body、是否使用了非标准 SDK,并向客服提供报错截图、Request ID 和模型名称。 这通常是 Base URL、密钥、模型名或网络配置问题。请先检查 `~/.claude/settings.json` 里是否包含以下字段: * `ANTHROPIC_BASE_URL` * `ANTHROPIC_AUTH_TOKEN` * `ANTHROPIC_MODEL` 如果你是通过终端环境变量注入配置,而不是通过 `settings.json`,再使用 `echo` 检查当前终端是否能读到对应变量。不要把包含完整密钥的截图公开发送。 如果 Claude Code 仍提示官网账号授权,可以在项目目录创建 `.claude.json`: ```json theme={null} { "apiKey": "sk-你的老张API密钥", "apiBaseUrl": "https://api2.laozhang.ai", "hasCompletedOnboarding": true } ``` 该配置适合需要项目级固定配置的场景。全局配置仍建议放在 `~/.claude/settings.json`。 确保使用的是老张API密钥,并且令牌创建时选择了「Claude Code」分组。可以在 [老张API控制台](https://api2.laozhang.ai/token) 重新生成令牌后再测试。 运行以下命令更新到最新版本: ```bash theme={null} npm update -g @anthropic-ai/claude-code ``` 更新后重新打开终端,再运行 `claude`。 ## 最佳实践 | 建议 | 说明 | | --------------- | ------------------------------------------ | | 默认使用 Sonnet 4.6 | 成本和质量更平衡,适合大多数日常开发 | | 复杂任务切换 Opus 4.7 | 架构调整、跨文件重构和长流程任务更适合 Opus | | 大修改先要计划 | 先让 Claude Code 输出修改计划,再执行文件改动 | | 保留 Git 检查 | 修改前后使用 `git status`、`git diff` 和项目测试命令确认结果 | | 价格看控制台 | Claude Code 按 Token 使用量计费,具体价格以控制台实时展示为准 | ## 相关资源 Claude Code 官方文档 管理 API 密钥 查看当前 Claude 系列模型 VS Code 中的 AI Agent 需要更多帮助?请访问 [老张API官网](https://api2.laozhang.ai) 获取支持。 # OpenAI Codex CLI 配置老张API Source: https://docs.laozhang.ai/scenarios/programming/codex-cli 安装当前 Codex CLI,通过用户级 config.toml 配置老张API Responses provider,安全提供 API Key,并按模型、流式和工具合同完成验收与排错。 ## 直接答案 Codex CLI 当前使用 Responses 协议连接模型提供方。配置老张API时,应在用户级 `~/.codex/config.toml` 定义自定义 `model_providers.`,并通过 `env_key` 读取 `LAOZHANG_API_KEY`。仅设置 `OPENAI_BASE_URL` 环境变量、只测试 `/v1/models`,或只确认普通 Chat Completions 成功,都不足以证明 Codex 可用。 本页依据 OpenAI 官方 [Codex CLI](https://learn.chatgpt.com/docs/codex/cli)、[Authentication](https://learn.chatgpt.com/docs/auth) 和 [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference),最后核对日期为 **2026 年 9 月 2 日**。老张API模型、分组和价格以[控制台](https://api2.laozhang.ai/account/pricing)为准。 ## 安装 Codex CLI 选择一种方式,不需要同时安装。 ```bash theme={null} curl -fsSL https://chatgpt.com/codex/install.sh | sh ``` ```powershell theme={null} powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex" ``` ```bash theme={null} npm install -g @openai/codex ``` 只有 npm 安装方式需要 Node.js/npm。 ```bash theme={null} brew install --cask codex ``` 验证安装: ```bash theme={null} codex --version codex --help ``` ## 配置老张API provider ### 1. 保存密钥 ```bash theme={null} export LAOZHANG_API_KEY="YOUR_LAOZHANG_API_KEY" ``` 把环境变量写入安全的 shell 或密钥管理配置;不要提交到仓库,也不要用 `echo` 输出完整值。 ### 2. 编辑用户级配置 编辑 `~/.codex/config.toml`: ```toml theme={null} model = "gpt-5.6" model_provider = "laozhang" [model_providers.laozhang] name = "LaoZhang API" base_url = "https://api2.laozhang.ai/v1" env_key = "LAOZHANG_API_KEY" wire_api = "responses" ``` Provider、鉴权和 `openai_base_url` 等配置必须放在用户级配置中。Codex会忽略项目本地 `.codex/config.toml` 中的 `model_provider`、`model_providers` 和 `openai_base_url`,因此不要把密钥路由配置提交到项目仓库。 `wire_api = "responses"` 是当前 Codex 自定义 provider 支持的协议。若目标模型或 API Key 分组没有通过 `/v1/responses`、SSE 流式和工具调用验收,Codex 工作流可能失败。 ## `openai_base_url` 与自定义 provider 的区别 * `openai_base_url`:覆盖内置 `openai` provider 的 Base URL; * `[model_providers.laozhang]`:定义独立 provider,并通过 `env_key` 提供密钥; * 内置 provider ID 不能被自定义表覆盖; * 项目级 `.codex/config.toml` 不应用 provider 和鉴权配置。 本页推荐独立 `laozhang` provider,使密钥来源和路由边界更清楚。不要同时混用多个未经验证的配置方式。 ## 首次验收 ```bash theme={null} codex doctor --summary codex -m gpt-5.6 "只回复:连接成功" ``` 验收不应只看是否出现文本。确认: 1. 请求到达 `https://api2.laozhang.ai/v1/responses`; 2. 模型 ID 属于当前 API Key 分组; 3. SSE 流式可以正常结束; 4. usage 和调用日志一致; 5. 简单文件读取、工具调用和错误分支符合预期; 6. 无效模型、401、403、429 和断流能被正确诊断。 ## OpenAI 官方登录与老张API密钥 OpenAI官方 Codex 支持 ChatGPT 登录和 OpenAI API Key 登录: ```bash theme={null} codex login ``` ```bash theme={null} printenv OPENAI_API_KEY | codex login --with-api-key ``` 这些命令面向内置 OpenAI provider。使用上面的 `laozhang` 自定义 provider 时,密钥由 `LAOZHANG_API_KEY` 环境变量提供,不要把老张API Key误当成 ChatGPT 登录凭证。 查看当前 OpenAI 登录状态: ```bash theme={null} codex login status ``` ## 排错 ### `401` 或找不到密钥 * 确认当前 shell 存在 `LAOZHANG_API_KEY`; * 确认 `env_key` 拼写一致; * 不要打印密钥值,只检查变量是否存在; * 在控制台轮换可能泄露的密钥。 ### `model_not_found` 或 403 * 从[模型目录](/models)复制准确模型 ID; * 核对 API Key 分组和 Responses 端点; * 使用相同密钥发送最小 `/v1/responses` 请求。 ### `reconnecting`、断流或超过重试限制 * 区分 TLS/代理/网络错误与上游 429/5xx; * 查看 Codex 错误、老张API调用日志和发生时间; * 不要无限重试;先用最小任务排除工具和大上下文; * 记录 `codex --version`、模型、provider 和脱敏错误后联系支持。 ## 相关文档 * [OpenAI 官方 Codex CLI](https://learn.chatgpt.com/docs/codex/cli) * [OpenAI 官方 Authentication](https://learn.chatgpt.com/docs/auth) * [OpenAI 官方 Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) * [OpenAI Responses API](/api-capabilities/openai-responses) * [API Key 管理](/faq/token-management) * [调用日志](/faq/call-logs) # 为什么还有余额但调用失败? Source: https://docs.laozhang.ai/faq/balance-insufficient 按调用日志、余额、计费分组、模型价格、输入规模、权限和上游状态排查账户仍有余额但 API 请求失败的问题,并说明退款处理边界。 ## 简短答案 “还有余额”只说明账户显示了可用额度,不代表本次请求一定满足模型、分组、权限和预估费用要求。先查看[调用日志](https://api2.laozhang.ai/log)中的实际错误,再按余额、令牌分组、模型价格、输入规模、端点和上游状态逐项排查。 价格、计费单位、可用模型和额度规则可能变化,以控制台和当前日志为准。本页最后核对日期为 **2026 年 9 月 2 日**。 ## 排查顺序 ### 1. 记录实际错误 不要只根据“余额不足”或客户端提示猜测原因。记录: * 请求时间和时区; * 模型 ID 与端点; * API Key 分组; * HTTP 状态码和平台错误; * 本次请求是否产生用量或扣费。 ### 2. 核对当前价格和计费单位 打开[控制台价格页](https://api2.laozhang.ai/account/pricing),确认目标模型当前按 Token、请求、图片、视频时长或其他单位计费。不要使用上游官网价格或旧文档静态价格推算本次账单。 ### 3. 检查输入规模 长上下文、多图片、大文件、PDF、视频或较大的输出上限可能增加预计用量。使用最小输入重试: * 保留一条短消息; * 暂时移除图片、文件和工具调用; * 使用明确且较小的输出限制; * 不改变其他变量,以便定位原因。 ### 4. 检查分组、权限和端点 同一模型名称可能因 API Key 分组、计费类型或端点使用不同线路。确认: * API Key 是否允许当前模型和计费方式; * 请求端点是否与文档一致; * 模型 ID 是否准确; * 当前账户是否需要站长或支持团队调整权限。 ### 5. 区分平台和上游错误 如果最小请求仍失败,检查是否为速率限制、内容安全、上游不可用、超时或临时路由问题。不要无限重试;对非重试类错误先修正参数、权限或余额,对临时错误使用有限次数和退避策略。 ## 联系支持时提供什么 * 账户邮箱或用户名; * 请求时间和时区; * 模型 ID、端点和 API Key 分组; * 脱敏后的错误信息和请求标识; * 控制台余额与价格页截图; * 最小请求的复现结果。 不要发送完整 API Key、完整 prompt/response 或无关客户资料。 ## 退款和余额调整 已购买额度和已支付费用原则上不予退款,尤其是已消耗额度。是否可以退款或调整余额,按[老张API用户协议](https://www.laozhang.ai/zh-cn/terms)和个案审核结果处理;文档不承诺固定手续费或处理时长。企业采购、折扣和特殊安排请联系站长或支持团队。 ## 相关文档 * [如何查看调用日志](/faq/call-logs) * [可用模型和权限说明](/faq/model-availability) * [支付、折扣与退款说明](/faq/payment-methods) * [如何通过 API 查询账户余额](/faq/balance-query-api) # 内容安全、禁止用途与用户责任 Source: https://docs.laozhang.ai/faq/content-safety 依据老张API用户协议,说明技术 API 网关的服务边界、用户输入输出责任、上游政策、禁止用途和生产接入前的合规检查。 ## 简短答案 老张API是面向开发者的技术 API 网关与路由服务,不是上游模型的官方运营方,也不替用户判断输入、输出或使用场景是否合法。用户必须审核模型输出,确认拥有输入数据的权利,并遵守适用法律、地区限制和上游模型政策。 本页依据 [老张API用户协议](https://www.laozhang.ai/zh-cn/terms) 与 [数据政策](https://www.laozhang.ai/zh-cn/data-policy) 整理,最后核对日期为 **2026 年 9 月 2 日**。正式政策与本页不一致时,以正式政策为准。 ## 服务边界 * 老张API提供标准化技术接入、路由、计费和用量可视化; * 请求会传输给完成任务所需的第三方模型和基础设施服务商; * 老张API不控制上游模型、基础设施、政策、输出质量或可用性; * 模型、渠道、端点、价格、速率限制或功能可能因上游、安全、法律、商业或运营原因调整; * 模型输出可能不准确、不完整、不安全、侵权或不适合特定用途。 ## 用户责任 用户需要: 1. 对输入拥有必要的权利、许可、通知和同意; 2. 在使用、发布或基于输出作出决定前完成审核和验证; 3. 遵守所在地法律、制裁、出口管制、行业监管和跨境传输要求; 4. 遵守所调用上游模型的适用政策; 5. 对自己的下游产品、客户使用、业务决定和发布结果负责。 ## 禁止用途 不得将服务用于违法、有害、滥用、侵权、欺诈、暴力、性剥削、侵犯隐私、歧视、恶意软件、垃圾信息、钓鱼、监控、凭证窃取、规避制裁或其他被禁止的活动。 同时禁止: * 规避地区、账户或上游服务商限制; * 通过多账户绕过限制; * 未经授权转售 API 访问; * 抓取、复制、逆向工程非公开系统; * 探测、攻击、过载或干扰基础设施和其他用户; * 提交无权处理的个人数据、第三方保密数据或侵权材料。 ## 高风险场景 对于法律、医疗、金融、身份验证、就业、保险、教育录取、公共安全等可能显著影响个人权利或利益的场景,不应把模型输出直接作为最终决定。生产接入前应由相应的业务、法务、安全和专业人员建立人工审核、回退和记录机制。 ## 账户处理 如果平台合理认为账户违反协议、造成安全或支付风险、触发上游限制,或使用户、平台及服务商面临法律或运营风险,可以暂停、限制或终止账户、API Key、额度或访问权限。因违约、欺诈、滥用或被禁止用途导致账户终止时,未使用额度不予退款。 ## 生产接入前检查 * 确认业务场景和目标用户; * 记录所用模型、端点、分组和上游政策; * 建立输入过滤、输出复核、错误处理和人工升级路径; * 对个人数据、受监管数据和跨境传输完成合法性评估; * 保留必要的调用元数据,不在日志或客服材料中复制敏感正文; * 定期检查[网站公告](/changelog)和控制台中的模型与路由变化。 ## 需要支持时提供什么 联系 `hi@laozhang.ai` 时,请提供账户、使用场景、模型 ID、端点、请求时间、脱敏错误和希望确认的具体政策边界。API Key 值、prompt/response、个人信息和其他敏感材料一律不得随工单提交。 ## 相关文档 * [老张API如何处理数据与日志](/faq/data-security) * [如何查看调用日志](/faq/call-logs) * [支持哪些支付方式](/faq/payment-methods) * [老张API用户协议](https://www.laozhang.ai/zh-cn/terms) # 老张API如何处理数据与日志? Source: https://docs.laozhang.ai/faq/data-security 依据老张API用户协议和数据政策,说明 API prompt、response、请求元数据、账单、账户安全数据、客服材料与上游处理边界。 ## 简短答案 老张API默认不保存 API prompt 和 response 内容;请求只在完成模型处理和返回结果所必需的范围内传输。为计费、用量展示、故障排查、限流、安全和防滥用,平台会保存必要的请求元数据。上游模型服务商和基础设施服务商可能适用各自的数据处理、日志和保留规则。 本页依据 [老张API用户协议](https://www.laozhang.ai/zh-cn/terms) 与 [数据政策](https://www.laozhang.ai/zh-cn/data-policy) 整理,政策最后更新日期为 **2026 年 1 月 1 日**,本页最后核对日期为 **2026 年 9 月 2 日**。如本页与正式政策不一致,以正式政策为准。 ## API prompt 和 response | 项目 | 老张API处理边界 | | --------- | ------------------------ | | 是否默认保存 | 默认不保存 | | 保留期 | 默认不适用 | | 用途 | 仅用于传输请求、完成模型处理并返回结果 | | 是否用于训练或画像 | 默认不用于模型训练或用户画像 | | 是否传给第三方 | 会传输给完成请求所必需的上游模型和基础设施服务商 | 上游服务商可能适用自己的日志、保留、滥用监测、安全审查、训练和退出训练条款。老张API无法保证所有上游采用相同的数据处理方式。 ## 请求元数据 老张API会保存完成服务运营所需的元数据,例如: * 账户或 API Key 标识; * 时间戳、模型、端点和路由; * Token 或用量、计费单位; * 请求状态、错误类别和延迟; * 与路由可靠性、安全和防滥用有关的信息。 故障排查日志通常保留 **7 天**。为安全、防滥用调查、账单争议、法律合规或服务完整性而合理需要时,相关数据可能保留更长时间。 ## 其他会保存的数据 | 数据类别 | 示例 | 保留边界 | | ------- | ---------------------------------- | -------------------------- | | 账单与交易记录 | 额度购买、余额变化、金额、币种、发票、退款或拒付信息 | 按会计、税务、支付争议、反欺诈和法律要求所需期限保留 | | 账户与安全数据 | 邮箱、账户设置、API Key 标识、IP、用户代理、登录和安全事件 | 账户有效期间及关闭后的合理期间 | | 客服材料 | 用户主动发送的消息、截图、错误报告和诊断文件 | 为解决请求、维护支持历史和处理争议所需的合理期间 | 不要在客服消息、截图或公开群聊中发送完整 API Key、密码、受监管数据或敏感个人信息。只有在支持人员通过安全渠道明确要求时,才提供必要且经过脱敏的信息。 ## 跨境传输与用户责任 API 请求可能传输至位于美国、新加坡、欧盟或其他地区的上游模型、基础设施和服务提供商。用户需要自行确认: 1. 有权提交并传输相关数据; 2. 已取得必要的通知、同意、合同保护和合法处理基础; 3. 使用方式符合适用的隐私、数据保护、网络安全、出口管制和跨境传输要求; 4. 对个人信息、商业机密或受监管数据已采取必要的最小化、脱敏或匿名化措施。 ## 接入前检查 * 使用服务器端环境保存密钥,不在客户端或仓库中硬编码; * 尽量减少 prompt 中的个人数据和敏感信息; * 对生产工作流完成内部安全、法务和上游条款评估; * 通过[调用日志](/faq/call-logs)核对元数据和错误,不在支持材料中粘贴完整请求内容; * 如果密钥可能泄露,立即在控制台撤销或轮换,并联系支持。 ## 相关文档 * [内容安全与合规性](/faq/content-safety) * [如何查看调用日志](/faq/call-logs) * [API Key 获取与管理](/faq/token-management) * [老张API用户协议](https://www.laozhang.ai/zh-cn/terms) * [老张API数据政策](https://www.laozhang.ai/zh-cn/data-policy) # 支付、企业采购、折扣与退款说明 Source: https://docs.laozhang.ai/faq/payment-methods 依据老张API用户协议,说明付款、额度、企业采购、发票、折扣沟通和退款边界;具体商业条件由站长或支持团队确认。 ## 简短答案 价格、计费单位、可用模型和额度规则以控制台当前页面及双方确认的商业条件为准。企业采购、合同、发票、批量使用、折扣或特殊付款安排,请联系站长或支持团队沟通,文档不公布固定折扣档位。 已购买额度和已支付费用原则上不予退款,尤其是已经消耗的额度。退款或余额调整仅按适用法律、[老张API用户协议](https://www.laozhang.ai/zh-cn/terms)及审核结果处理。 本页最后核对日期为 **2026 年 9 月 2 日**。正式协议与本页不一致时,以正式协议为准。 ## 价格与计费 * 用量可按模型、端点、Token、请求次数、媒体单位、上游成本或控制台展示的其他单位计算; * 价格、可用模型、速率限制、计费单位和额度规则可能调整; * 上游紧急调整可能立即生效; * 不要使用上游厂商价格直接推算老张API账单; * 生产预算应以控制台价格和代表性请求的实际调用日志为准。 ## 企业采购与折扣 企业采购、批量调用、合同、发票、折扣和特殊付款安排不使用文档中的固定门槛或百分比。请提供以下信息并联系站长或支持团队: * 公司或团队名称; * 预计使用模型和端点; * 预计月度用量或预算范围; * 需要的合同、发票或付款方式; * 账户邮箱和期望开通时间。 **联系邮箱**:`hi@laozhang.ai` **Telegram**:[@laozhang\_cn](https://t.me/laozhang_cn) 不要在公开群聊中发送银行账户、完整税务资料、支付凭证、合同或其他敏感信息。提交渠道以站长或支持团队确认的正式方式为准。 ## 退款与余额调整 ### 原则上不退款 已购买额度和已支付费用原则上不予退款,尤其是已经消耗的额度。 ### 可能审核的情形 在以下情况下,平台可以按协议、适用法律和实际情况审核退款或余额调整: * 适用法律强制要求; * 平台永久停止相关付费服务,导致额度无法合理使用; * 因平台过错造成重大服务故障,并在显著期间内无法正常使用。 是否符合条件、处理金额、原路退回能力、手续费和时间均需个案审核,不在文档中作固定承诺。 ### 不适用退款的情形 包括但不限于:违反协议、滥用、欺诈、地区或制裁限制、恶意拒付、用户集成错误、不支持的使用场景、上游服务商限制,或对模型输出不满意。 ## 申请核验时提供什么 * 账户邮箱或用户名; * 交易时间、金额、币种和支付凭证; * 相关模型、端点、调用时间和错误信息; * 申请原因和期望处理方式; * 企业采购所需的合同或发票信息。 不要发送完整 API Key、密码或无关的请求正文。调用问题只需提供脱敏后的错误、时间、模型和请求标识。 ## 相关文档 * [企业服务与定价](/pricing) * [为什么还有余额但调用失败](/faq/balance-insufficient) * [如何查看调用日志](/faq/call-logs) * [老张API用户协议](https://www.laozhang.ai/zh-cn/terms) * [老张API数据政策](https://www.laozhang.ai/zh-cn/data-policy)