建龙网络图片接入文档← 返回主页
建龙网络 / 文档 / 图片接入

图片接入文档

通过建龙统一网关接入 OpenAI Images、OpenAI Responses、Gemini 和 Grok 图片模型。文档中的示例均使用脱敏令牌,响应中的图片 URL 和 Base64 内容仅作格式示例。

<JIANLONG_API_BASE_URL> 示例为 https://newapi.jianlong.it<JIANLONG_API_TOKEN> 为控制台创建的客户端令牌。不要把令牌写入前端、代码仓库或日志。

1. 文档概览

建龙图片网关统一负责令牌鉴权、渠道选择、模型路由、计费和错误包装。客户端可以按模型支持的协议提交请求,也可以使用 OpenAI 兼容入口降低接入成本。图片生成通常是同步请求,服务端在响应中直接返回图片 URL 或 Base64;具体耗时取决于模型和尺寸。

能力入口适用场景
OpenAI Images 生成POST /v1/images/generations文生图,支持尺寸、质量、背景、格式等参数
OpenAI Images 编辑POST /v1/images/edits本地参考图、局部编辑、图生图;使用 multipart 文件上传
Responses 图片工具POST /v1/responses在 Responses 输入中调用 image generation tool
Gemini 兼容入口POST /v1/chat/completionsGemini 图片模型及多模态提示词
Gemini 原生入口POST /v1beta/models/{model}:generateContent需要原生 contents/parts 结构的客户端
Grok 图片生成POST /v1/images/generations使用 Grok Imagine 图片模型

2. 鉴权与基础约定

Bearer 鉴权

Authorization: Bearer <JIANLONG_API_TOKEN>
Content-Type: application/json

/v1/images/edits 外,JSON 请求均使用 Content-Type: application/json。图片编辑请求使用 multipart/form-data,不要手动设置 boundary。

查看模型

curl "<JIANLONG_API_BASE_URL>/v1/models" \
  -H "Authorization: Bearer <JIANLONG_API_TOKEN>"
{
  "object": "list",
  "data": [
    {"id": "gpt-image-2", "object": "model"},
    {"id": "gemini-3-pro-image-preview", "object": "model"},
    {"id": "grok-imagine-image", "object": "model"}
  ]
}

模型列表以当前令牌实际返回为准。不同分组可见的模型不同,不能仅凭文档中的示例名称判断令牌是否有权限。

3. 模型与协议选择

模型清单

模型协议/入口能力
gpt-image-2
gpt-image-2.5
gpt-image-2.5-flare
gpt-image-2.5-sunburst
OpenAI Images
Responses 图片工具
文生图、参考图编辑;可用尺寸、质量、背景、输出格式等字段
gemini-3-pro-image-preview
gemini-3.1-flash-image-preview
Gemini Chat 兼容
Gemini 原生
文本生成图片、多模态参考输入;具体分辨率能力以模型返回为准
grok-imagine-image
grok-imagine-image-quality
OpenAI Images 兼容Grok Imagine 图片生成;按渠道可用字段执行

协议映射

模型名称不是协议名称。接入前优先调用 /v1/models,再根据目标模型选择入口:

目标推荐路径请求体
OpenAI/Grok 图片/v1/images/generationsOpenAI Images JSON
OpenAI 参考图编辑/v1/images/editsmultipart/form-data
Gemini 兼容调用/v1/chat/completionsmessages JSON
Gemini 原生调用/v1beta/models/{model}:generateContentcontents JSON

4. 通用参数

字段类型必填说明
modelstring模型 ID,必须存在于当前令牌的 /v1/models 返回中
promptstring图片描述。建议写主体、场景、构图、光线、材质、镜头和文字要求
ninteger生成数量,默认 1;上限由模型和渠道决定
sizestring目标尺寸,例如 1024x10241536x1024
qualitystringautolowmediumhigh
backgroundstringautoopaquetransparent
output_formatstringpngjpegwebp;部分兼容入口也接受 response_format
response_formatstringurlb64_json,默认以渠道实际返回为准
streambooleanResponses/兼容入口是否流式返回;图片最终结果仍需等待完成事件

尺寸与质量

示例值比例用途
1024x10241:1头像、商品方图
1024x15362:3竖版海报
1536x10243:2横版照片
1024x17929:16手机竖屏
1792x102416:9横幅、视频封面

尺寸、质量和透明背景并非所有模型都同时支持。网关会将兼容字段转换到渠道格式;不支持的组合会返回 400,而不是保证静默生效。

参考图片

OpenAI Images 编辑接口直接接收本地媒体文件,不需要先上传素材库。Responses 和 Gemini 若要求 URL,则使用可被上游访问的 HTTPS URL 或对应的 inline data。参考图应为 PNG、JPEG 或 WebP,并遵守当前渠道的文件大小限制。

5. OpenAI Images API

5.1 文生图

POST /v1/images/generations

curl -X POST "<JIANLONG_API_BASE_URL>/v1/images/generations" \
  -H "Authorization: Bearer <JIANLONG_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "一只白色陶瓷杯放在深色木桌上,清晨侧光,写实产品摄影",
    "size": "1024x1024",
    "quality": "high",
    "background": "opaque",
    "output_format": "png",
    "n": 1
  }'

请求字段

字段示例说明
modelgpt-image-2OpenAI 图片模型 ID
prompt中文或英文描述必填,不能为空
size1024x1024目标尺寸
qualitylow生成质量/速度档位
backgroundtransparent透明或不透明背景
n1生成张数
response_formaturl兼容客户端时可指定 URL 或 Base64

5.2 图片编辑

POST /v1/images/edits,请求为 multipart。字段 image 是本地文件,提示词和普通参数为表单字段。

curl -X POST "<JIANLONG_API_BASE_URL>/v1/images/edits" \
  -H "Authorization: Bearer <JIANLONG_API_TOKEN>" \
  -F "model=gpt-image-2" \
  -F "prompt=保留人物脸部和姿态,将背景替换为樱花公园,春日自然光" \
  -F "image=@./reference.png" \
  -F "size=1024x1536" \
  -F "quality=high" \
  -F "output_format=png" \
  -F "n=1"
字段位置必填说明
image文件PNG/JPEG/WebP;直接上传,不经过视频素材库
prompt表单描述修改内容和必须保留的内容
model表单例如 gpt-image-2
mask文件需要局部编辑时上传遮罩;是否可用取决于渠道
size/quality/n表单与生成接口含义一致

5.3 响应格式

{
  "created": 1789814557,
  "data": [
    {
      "url": "https://.../generated-image.png",
      "revised_prompt": "..."
    }
  ],
  "background": "opaque",
  "output_format": "png",
  "quality": "low",
  "size": "1024x1024",
  "usage": {
    "input_tokens": 21,
    "output_tokens": 272,
    "total_tokens": 293
  }
}

当返回 b64_json 而不是 url 时,字段位于 data[].b64_json,内容不包含 data:image/png;base64, 前缀时,客户端需要自行补上 MIME 前缀。

6. OpenAI Responses 图片工具

POST /v1/responses。适合已使用 OpenAI Responses SDK 的客户端。图片生成通过 tools 声明,不要把 image_generation 当作普通聊天文本。

6.1 请求示例

curl -X POST "<JIANLONG_API_BASE_URL>/v1/responses" \
  -H "Authorization: Bearer <JIANLONG_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "input": "生成一张极简白色建筑的建筑摄影图,午后硬光",
    "tools": [{
      "type": "image_generation",
      "size": "1024x1024",
      "quality": "high",
      "background": "opaque",
      "output_format": "png"
    }]
  }'
字段类型说明
modelstring图片模型 ID
inputstring/array提示词或多模态输入
toolsarray包含一个 image_generation 工具配置
tools[].sizestring输出尺寸
tools[].qualitystring质量档位
tools[].backgroundstring背景模式
tools[].output_formatstring输出格式

6.2 响应与取图

{
  "id": "resp_01J...",
  "object": "response",
  "status": "completed",
  "output": [
    {
      "type": "image_generation_call",
      "id": "ig_01J...",
      "status": "completed",
      "result": "iVBORw0KGgoAAA..."
    }
  ],
  "usage": {"input_tokens": 18, "output_tokens": 280, "total_tokens": 298}
}

Responses 的图片结果常见于 output[].result,可能是 Base64;客户端应同时兼容 data[].urldata[].b64_jsonoutput[].result。如果请求使用流式模式,监听图片生成完成事件后再读取最终结果。

7. Gemini 图片协议

7.1 OpenAI 兼容入口

POST /v1/chat/completions。Gemini 图片模型通过消息内容触发图片输出。部分兼容客户端把图片作为 content part 返回,必须按类型筛选,不要只读取 message.content 的纯文本。

curl -X POST "<JIANLONG_API_BASE_URL>/v1/chat/completions" \
  -H "Authorization: Bearer <JIANLONG_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3-pro-image-preview",
    "messages": [{
      "role": "user",
      "content": "生成一张夜晚霓虹街道的电影感插画,16:9 横构图"
    }],
    "size": "1536x1024"
  }'

多模态参考图

{
  "model": "gemini-3-pro-image-preview",
  "messages": [{"role":"user","content":[
    {"type":"text","text":"把这张图改成水彩风格,保留主体构图"},
    {"type":"image_url","image_url":{"url":"https://example.com/reference.png"}}
  ]}]
}

URL 必须能被上游访问。若 SDK 支持 inline data,可使用 data:image/png;base64,...;不要把需要登录才能访问的本地 URL 直接传给上游。

7.2 Gemini 原生入口

POST /v1beta/models/{model}:generateContent

curl -X POST "<JIANLONG_API_BASE_URL>/v1beta/models/gemini-3-pro-image-preview:generateContent" \
  -H "x-goog-api-key: <JIANLONG_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{
      "text": "生成一张红苹果放在白色桌面上的写实静物图"
    }]}],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"]
    }
  }'

如果网关部署将 Gemini 原生请求统一为 Bearer 鉴权,应优先使用 Authorization: Bearer;仅在网关明确开启 Google 原生兼容时使用 x-goog-api-key

7.3 响应格式

{
  "candidates": [{
    "content": {"parts": [
      {"text": "已生成图片"},
      {"inlineData": {
        "mimeType": "image/png",
        "data": "iVBORw0KGgoAAA..."
      }}
    ]},
    "finishReason": "STOP"
  ]
}

兼容入口也可能返回 OpenAI 风格的 choices[].message.content,其中图片 part 的类型可能是 image_urlinline_dataimage。解析器应同时处理这几种结构。

8. Grok 图片生成

Grok Imagine 图片模型使用 OpenAI Images 兼容入口,但可用参数以当前 Grok 渠道为准。当前模型包括 grok-imagine-imagegrok-imagine-image-quality

8.1 请求示例

curl -X POST "<JIANLONG_API_BASE_URL>/v1/images/generations" \
  -H "Authorization: Bearer <JIANLONG_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-image",
    "prompt": "a cinematic editorial portrait in a rainy city, 16:9",
    "n": 1,
    "response_format": "url"
  }'

建议先使用最小请求验证模型可用,再逐步增加 sizequality 或参考图参数。Grok 渠道没有可用媒体账号时,网关会返回 grok_media_no_eligible_account,这不是客户端 JSON 格式错误。

8.2 响应格式

{
  "created": 1789814557,
  "data": [{
    "url": "https://.../grok-generated.png",
    "revised_prompt": "..."
  }]
}

9. 错误响应与排查

HTTP/错误类型含义处理方式
401 invalid_api_key令牌无效、过期或鉴权头错误确认 Bearer 前缀、令牌分组和地址
400 invalid_request_error必填字段缺失或参数组合不支持先用最小请求,再逐项增加参数
404 model_not_found当前令牌看不到该模型调用 /v1/models,使用实际返回的 ID
413请求或参考图片超过网关限制压缩图片或改用合适尺寸
429限流、余额或上游暂时繁忙遵守 Retry-After;不要无条件高频重试
503 grok_media_no_eligible_accountGrok 媒体渠道暂无可用上游账号稍后重试或联系管理员检查渠道
server_error All available accounts exhausted对应上游账号池暂时耗尽不是请求格式问题,稍后重试
{
  "error": {
    "message": "可读的错误描述",
    "type": "invalid_request_error",
    "code": "invalid_parameter"
  }
}

10. 限制、安全与检查清单

最小验收命令

curl -sS "<JIANLONG_API_BASE_URL>/v1/models" \
  -H "Authorization: Bearer <JIANLONG_API_TOKEN>" | jq '.data[].id'

curl -sS -X POST "<JIANLONG_API_BASE_URL>/v1/images/generations" \
  -H "Authorization: Bearer <JIANLONG_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-image-2","prompt":"a red apple","size":"1024x1024","n":1}' \
  | jq '{created,data: [.data[] | {url,b64_json,revised_prompt}],usage}'