Skip to main content
RuAPI 提供两个系列的图像生成模型:Gemini Image(也就是俗称的 Nano Banana)和 GPT Image。它们的调用方式完全不同,这是动手之前必须先搞清楚的一点。USDT 计费,无需外币卡。
Gemini 图像模型不走 /v1/images/generations 它们走普通的聊天端点 /v1/chat/completions,生成的图片直接夹在回复正文里。详见「方式一」。

可用模型

准确的价格见主站 价格页面。Gemini 系列按次计费(一张图一口价),gpt-image-2 按 token 计费(图越大、质量越高越贵)。

接口地址与鉴权

  • Base URLhttps://www.ruapi.ai/v1
  • 鉴权:请求头带 Authorization: Bearer sk-你的KEY(在控制台「令牌」页创建)

方式一:Gemini Image —— 走聊天端点

Gemini 图像模型挂在聊天端点上。你像调文本模型一样发请求,回来的是图片。
图片是以 Markdown data URI 的形式内联在 choices[0].message.content 里的 —— 没有单独的图片字段。响应长这样:
你得自己把 base64 从正文里抠出来。下面是现成的代码。

文生图

一次响应里可能有多张图,所以例子里用的是 findall 而不是 search。模型几乎总会在图片旁边附一句简短的文字说明。

图生图(编辑)

要改一张已有的图,按 vision 模型的格式传进去即可:content 用数组,里面放 textimage_url 两部分。url 既可以是公网链接,也可以是 data URI。
输入图的宽高比会被保留,结果不会被裁成正方形。

多轮连续修图

模型的回复可以原样塞回 messages 里当作 assistant 消息 —— 其中的 Markdown data URI 会被识别,图片将作为下一轮的输入。这样就能做「改成黑白」→「再加个白边」这种连续编辑。
每一轮都是一次独立的付费调用。另外,带 base64 图片的历史会让请求体迅速膨胀,别把超过两三张的历史图都塞进上下文。

支持的输入图片格式

image/pngimage/jpegimage/webpimage/heicimage/heif。其他格式会被拒绝,报 mime type is not supported by Gemini

原生 Gemini 端点

如果你本来就在用 Google GenAI SDK,同一个密钥也能走原生格式:
这条路径下图片是结构化返回的 —— 在 candidates[0].content.parts[].inlineData.data(base64),不用解析 Markdown。如果你不需要兼容 OpenAI SDK,这个方式更省事。

方式二:GPT Image —— 走 /v1/images/generations

gpt-image-2 就是 OpenAI 那套经典的图像生成端点。没有 messages,只有 prompt

参数

响应

请用 b64_json,不要用 url url 指向的是外部存储,链接有效期没有保证,随时可能打不开。b64_json 就是图片本身,拿到手就永久属于你。
usage.output_tokens 是图片 token,价格就按它算。把 quality 降到 low 能让它成倍减少,适合出草稿和做测试。

常见问题

因为按 OpenAI 的口径它不是「图像生成模型」,而是一个能吐图片的多模态聊天模型。请用 /v1/chat/completions 调用,见「方式一」。
那就是图片。通过 OpenAI 兼容的聊天端点返回时,图片被拼成 ![image](data:image/png;base64,...) 塞进正文。用上面的正则抠出来即可;或者改走原生 Gemini 端点,那里图片是独立字段。
gemini-2.5-flash-image 性价比最高。要极致细节就用 gemini-3-pro-image-previewgpt-image-2 也能改图,但走的是另一个端点 /v1/images/edits
Gemini 系列什么都不存,base64 直接在响应里。gpt-image-2 的响应带一个 url 字段,但不要依赖它 —— 把 b64_json 存下来。
不会。Gemini 图像模型按次计费,一张图一口价。usage 只是参考信息,不参与扣费。只有 gpt-image-2 是按 token 计费的。