什么是 KoCodeImg?

KoCodeImg 是一个 AI 图片生成平台,提供 OpenAI / Anthropic / Google / Antigravity 等多平台兼容的统一 API 接口。你只需一个 API Key,即可通过标准格式调用不同平台的图片、文本与视频生成模型。

统一入口:一个 API Key 接入所有平台

兼容格式:兼容 OpenAI / Google / Anthropic SDK 与 HTTP 调用

业务计费:图片模型 18 积分起,视频模型 150 积分起,具体以模型列表为准

快速开始

  1. 1

    获取 API Key

    账号设置 页面创建 API Key,格式为 sk-koci_xxxx

  2. 2

    选择平台与模型

    根据需求选择 OpenAI / Anthropic / Google / Antigravity 兼容接口,使用对应 SDK 或 HTTP 调用。

  3. 3

    发送请求

    将 SDK 的 baseURL 指向本平台,传入 API Key 即可。

认证方式

支持以下三种认证方式:

  • Authorization: Bearer <你的 API Key>(请求头)
  • X-API-Key: <你的 API Key>(请求头)
  • ?key=<你的 API Key>(URL 参数)

安全提示:请勿在客户端代码或公开仓库中暴露 API Key。如果泄露,请立即在设置中删除并重新生成。

OpenAI 图片生成接口

OpenAI 官方文档: https://platform.openai.com/docs/api-reference/images

POST /{platform}/v1/images/generations
参数名类型必填说明
modelstring模型 ID,如 gpt-image-2、gpt-image-1.5、gemini-3-pro-image
promptstring图片描述文本,建议控制在 4000 字符内
ninteger生成数量,默认 1
sizestring1024x1024、1792x1024、1024x1792 或平台支持的比例
qualitystringstandard、hd 或模型支持的质量档位
curl
curl -X POST https://your-domain.com/openai/v1/images/generations \
  -H "Authorization: Bearer sk-koci_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "一只穿着宇航服的猫在月球上漫步",
    "n": 1,
    "size": "1024x1024",
    "quality": "hd"
  }'
Node.js (OpenAI SDK)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-koci_your_api_key",
  baseURL: "https://your-domain.com/openai/v1",
});

const response = await client.images.generate({
  model: "image-2",
  prompt: "一只穿着宇航服的猫在月球上漫步",
  n: 1,
  size: "1024x1024",
  quality: "hd",
});

console.log(response.data[0].url);
Python (OpenAI SDK)
from openai import OpenAI

client = OpenAI(
    api_key="sk-koci_your_api_key",
    base_url="https://your-domain.com/openai/v1",
)

response = client.images.generate(
    model="image-2",
    prompt="一只穿着宇航服的猫在月球上漫步",
    n=1,
    size="1024x1024",
    quality="hd",
)

print(response.data[0].url)
响应示例
{
  "created": 1716700000,
  "data": [
    {
      "url": "https://your-domain.com/storage/images/xxx.png",
      "revised_prompt": "一只穿着宇航服的猫在月球上漫步..."
    }
  ]
}

OpenAI 图生图接口

POST /{platform}/v1/images/edits
参数名类型必填说明
modelstring支持图生图的模型,如 gpt-image-2、gemini-3-pro-image
promptstring修改指令或重绘描述
imagefile/string上传图片文件,或传入远程图片 URL / base64
sizestring输出尺寸或比例
backgroundstringauto、transparent 等模型支持值
multipart 示例
curl -X POST https://your-domain.com/openai/v1/images/edits \
  -H "Authorization: Bearer sk-koci_your_api_key" \
  -F model="gpt-image-2" \
  -F prompt="把背景改成赛博朋克夜景" \
  -F image=@input.png
cURL (multipart/form-data)
curl -X POST https://your-domain.com/openai/v1/images/edits \
  -H "Authorization: Bearer sk-koci_your_api_key" \
  -F "image=@reference.png" \
  -F "prompt=将背景改为星空,保留主体人物" \
  -F "model=image-2-hd" \
  -F "size=1024x1024"
Node.js (OpenAI SDK)
import OpenAI from "openai";
import fs from "fs";

const client = new OpenAI({
  apiKey: "sk-koci_your_api_key",
  baseURL: "https://your-domain.com/openai/v1",
});

const response = await client.images.edit({
  model: "image-2-hd",
  image: fs.createReadStream("reference.png"),
  prompt: "将背景改为星空,保留主体人物",
  size: "1024x1024",
});

console.log(response.data[0].url);
Python (OpenAI SDK)
from openai import OpenAI

client = OpenAI(
    api_key="sk-koci_your_api_key",
    base_url="https://your-domain.com/openai/v1",
)

response = client.images.edit(
    model="image-2-hd",
    image=open("reference.png", "rb"),
    prompt="将背景改为星空,保留主体人物",
    size="1024x1024",
)

print(response.data[0].url)
带遮罩局部编辑
response = client.images.edit(
    model="image-2-hd",
    image=open("photo.png", "rb"),
    mask=open("mask.png", "rb"),  # 透明区域 = 需要重绘的部分
    prompt="在空白区域添加一只金色的猫",
    size="1024x1024",
)

print(response.data[0].url)
响应示例
{
  "created": 1716700000,
  "data": [
    {
      "url": "https://your-domain.com/storage/images/edited_xxx.png",
      "revised_prompt": "将背景改为星空,保留主体人物..."
    }
  ]
}

可用模型

模型供应商积分参数
gemini-3-pro-imageAntigravity (Gemini)18-
gemini-3.1-flash-imageAntigravity (Gemini)18-
gpt-image-1.5superapi18tiers: 1k · background
gpt-image-2superapi18tiers: 1k/2k/4k

OpenAI 可用模型

参数名类型必填说明
标准image-2快速生成,适合日常使用
高清image-2-hd高清画质,细节更丰富
超清image-2-ultra最高画质,适合商业用途

Anthropic 图片生成接口

POST /anthropic/v1/images/generations

请求体沿用 OpenAI 图片生成字段,便于现有服务端快速切换。

Anthropic 消息接口

POST /anthropic/v1/messages

兼容 Anthropic Messages 风格,服务端会从 messages 中提取最新提示词并生成图片结果。

Python (Anthropic SDK)
import anthropic

client = anthropic.Anthropic(
    api_key="sk-koci_your_api_key",
    base_url="https://your-domain.com/anthropic/v1",
)

message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "生成一张日落海滩的图片"}
    ],
)

print(message.content)

Google 图片生成接口

POST /google/v1/images/generations

Google GenAI 兼容接口

POST /google/v1beta/models/{model}:generateContent
Python (Google GenAI SDK)
from google import genai

client = genai.Client(
    api_key="sk-koci_your_api_key",
    http_options={"base_url": "https://your-domain.com/google/v1beta"},
)

response = client.models.generate_content(
    model="gemini-2.0-flash-exp",
    contents="生成一张赛博朋克城市的图片",
    config=genai.types.GenerateContentConfig(
        response_modalities=["TEXT", "IMAGE"],
    ),
)

for part in response.candidates[0].content.parts:
    if part.inline_data:
        with open("output.png", "wb") as f:
            f.write(part.inline_data.data)
cURL
curl -X POST "https://your-domain.com/google/v1beta/models/gemini-2.0-flash-exp:generateContent" \
  -H "Authorization: Bearer sk-koci_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [{"text": "生成一张赛博朋克城市的图片"}]
    }],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"]
    }
  }'

Antigravity (Gemini) 图片生成接口

基于 Google Gemini generateContent API,支持 1K / 2K / 4K 多分辨率和 5 种宽高比。

POST /antigravity/v1beta/models/{model}:generateContent
参数名类型必填说明
contentsarray对话内容,包含 text 部件或 inlineData + text
generationConfig.responseModalitiesarray固定为 ["IMAGE", "TEXT"]
generationConfig.imageConfig.imageSizestring1K、2K、4K
generationConfig.imageConfig.aspectRatiostring1:1、16:9、9:16、4:3、3:4
cURL
curl -X POST "https://your-domain.com/antigravity/v1beta/models/gemini-3.1-flash-image:generateContent" \
  -H "Authorization: Bearer sk-koci_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{"text": "一只穿着宇航服的猫在月球上漫步"}]
    }],
    "generationConfig": {
      "responseModalities": ["IMAGE", "TEXT"],
      "imageConfig": { "imageSize": "2K", "aspectRatio": "16:9" }
    }
  }'
Python
import httpx, base64

resp = httpx.post(
    "https://your-domain.com/antigravity/v1beta/models/gemini-3.1-flash-image:generateContent",
    headers={
        "Authorization": "Bearer sk-koci_your_api_key",
        "Content-Type": "application/json",
    },
    json={
        "contents": [{
            "role": "user",
            "parts": [{"text": "一只穿着宇航服的猫在月球上漫步"}],
        }],
        "generationConfig": {
            "responseModalities": ["IMAGE", "TEXT"],
            "imageConfig": {"imageSize": "2K", "aspectRatio": "16:9"},
        },
    },
    timeout=600,
)

data = resp.json()
for part in data["candidates"][0]["content"]["parts"]:
    if "inlineData" in part:
        img = base64.b64decode(part["inlineData"]["data"])
        with open("output.jpg", "wb") as f:
            f.write(img)
    elif "text" in part:
        print(part["text"])
Node.js
const resp = await fetch(
  "https://your-domain.com/antigravity/v1beta/models/gemini-3.1-flash-image:generateContent",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer sk-koci_your_api_key",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      contents: [{
        role: "user",
        parts: [{ text: "一只穿着宇航服的猫在月球上漫步" }],
      }],
      generationConfig: {
        responseModalities: ["IMAGE", "TEXT"],
        imageConfig: { imageSize: "2K", aspectRatio: "16:9" },
      },
    }),
  }
);

const data = await resp.json();
for (const part of data.candidates[0].content.parts) {
  if (part.inlineData) {
    const buf = Buffer.from(part.inlineData.data, "base64");
    require("fs").writeFileSync("output.jpg", buf);
    console.log(`saved ${buf.length} bytes`);
  }
}
响应示例
{
  "candidates": [{
    "content": {
      "parts": [
        { "inlineData": { "mimeType": "image/jpeg", "data": "/9j/4AAQ... (base64)" } },
        { "text": "图片描述文本" }
      ]
    }
  }]
}

Antigravity (Gemini) 图生图接口

在 contents.parts 中传入参考图的 base64 数据,配合文本提示词实现图生图。

请求体结构
{
  "contents": [{
    "role": "user",
    "parts": [
      { "inlineData": { "mimeType": "image/png", "data": "<参考图 base64>" } },
      { "text": "将画面风格转为赛博朋克" }
    ]
  }],
  "generationConfig": {
    "responseModalities": ["IMAGE", "TEXT"],
    "imageConfig": { "imageSize": "2K", "aspectRatio": "1:1" }
  }
}
Python 图生图
import httpx, base64

with open("reference.png", "rb") as f:
    ref_b64 = base64.b64encode(f.read()).decode()

resp = httpx.post(
    "https://your-domain.com/antigravity/v1beta/models/gemini-3.1-flash-image:generateContent",
    headers={
        "Authorization": "Bearer sk-koci_your_api_key",
        "Content-Type": "application/json",
    },
    json={
        "contents": [{
            "role": "user",
            "parts": [
                {"inlineData": {"mimeType": "image/png", "data": ref_b64}},
                {"text": "将画面风格转为赛博朋克,保留构图"},
            ],
        }],
        "generationConfig": {
            "responseModalities": ["IMAGE", "TEXT"],
            "imageConfig": {"imageSize": "2K"},
        },
    },
    timeout=600,
)

可用模型与参数

模型供应商积分参数
gemini-3-pro-imageAntigravity (Gemini)18-
gemini-3.1-flash-imageAntigravity (Gemini)18-

分辨率档位 (imageSize)

参数名类型必填说明
标准1K默认默认分辨率,速度最快
高清2K可选2 倍分辨率,适合打印
超清4K可选4 倍分辨率,文件较大,耗时较长

宽高比 (aspectRatio)

参数名类型必填说明
1:1头像、图标默认社交媒体封面
16:9横屏壁纸可选视频封面、Banner
9:16手机壁纸可选竖屏海报、Story
4:3传统照片可选PPT 插图
3:4竖版照片可选书籍封面

SSE 流式生成

原生接口返回 Server-Sent Events 流,支持实时进度回传。适合需要展示生成进度的场景。

POST https://your-domain.com/api/generate/
cURL
curl -X POST https://your-domain.com/api/generate/ \
  -H "Authorization: Bearer sk-koci_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "conversation_id": "your-conversation-id",
    "prompt": "一只穿着宇航服的猫在月球上漫步",
    "style": "realistic",
    "size": "1:1",
    "model": "standard"
  }'
SSE 事件流
event: status
data: {"status": "queued", "message_id": "550e8400-..."}

event: progress
data: {"status": "processing", "progress": 30}

event: progress
data: {"status": "processing", "progress": 70}

event: complete
data: {"status": "complete", "image_url": "https://...", "thumbnail_url": "https://..."}
Python (SSE Client)
import requests
import sseclient

resp = requests.post(
    "https://your-domain.com/api/generate/",
    headers={
        "Authorization": "Bearer sk-koci_your_api_key",
        "Content-Type": "application/json",
        "Accept": "text/event-stream",
    },
    json={
        "conversation_id": "your-conversation-id",
        "prompt": "一只穿着宇航服的猫在月球上漫步",
        "style": "realistic",
        "size": "1:1",
        "model": "standard",
    },
    stream=True,
)

client = sseclient.SSEClient(resp)
for event in client.events():
    print(f"[{event.event}] {event.data}")

原生图生图

POST /api/generate/img2img
POST /api/generate/upload-reference
参数名类型必填说明
imagefile参考图片 PNG/JPG
promptstring描述修改意图
conversation_idstring对话 ID
strengthnumber变化强度 0.0-1.0,默认 0.7
stylestringrealistic、anime、watercolor 等
modelstringstandard、hd、ultra
cURL
curl -X POST https://your-domain.com/api/generate/img2img \
  -H "Authorization: Bearer sk-koci_your_api_key" \
  -F "image=@reference.png" \
  -F "prompt=将画面风格转为赛博朋克" \
  -F "conversation_id=your-conversation-id" \
  -F "strength=0.75" \
  -F "style=cyberpunk" \
  -F "model=hd"
Python
import requests
import sseclient

resp = requests.post(
    "https://your-domain.com/api/generate/img2img",
    headers={
        "Authorization": "Bearer sk-koci_your_api_key",
        "Accept": "text/event-stream",
    },
    files={"image": open("reference.png", "rb")},
    data={
        "prompt": "将画面风格转为赛博朋克",
        "conversation_id": "your-conversation-id",
        "strength": "0.75",
        "style": "cyberpunk",
        "model": "hd",
    },
    stream=True,
)

client = sseclient.SSEClient(resp)
for event in client.events():
    print(f"[{event.event}] {event.data}")

视频生成

POST /api/videos
GET /api/videos/{task_id}/stream
参数名类型必填说明
modelstring视频模型名,如 veo-3-1、veo-omni-flash
promptstring视频画面描述
modestringtext2video / image2video / video_edit
sizestring16:9、9:16、1:1
reference_imagesstring[]参考图/首尾帧公网 URL,最多 9 张
input_video_urlstring输入视频 URL,视频编辑模式使用
提交任务
curl -X POST https://your-domain.com/api/videos \
  -H "Authorization: Bearer <访问令牌>" \
  -H "Content-Type: application/json" \
  -d '{"model": "veo-3-1", "prompt": "日出时分宁静的山间湖泊,电影感航拍", "mode": "text2video", "size": "16:9"}'
提交响应
{
  "status": "queued",
  "task_id": "v_xxxxxxxx",
  "video_id": "v_xxxxxxxx"
}
轮询进度 (SSE)
GET https://your-domain.com/api/videos/{task_id}/stream

data: {"status": "processing", "progress": 30}

data: {"status": "complete", "progress": 100, "video_url": "https://.../video.mp4", "video_id": "v_xxxxxxxx"}
模型供应商积分参数
seedance-2.0-720pbobdong (seedance)150 / 秒mode: text2video/image2video · seconds: 5
sora-2newtoken-video150mode: text2video · seconds: 12
veo-3-1newtoken-video150mode: text2video/image2video · seconds: 8
veo-omni-flashnewtoken-video150mode: text2video/image2video · seconds: 8
veo-omni-flash-video-editnewtoken-video150mode: video_edit · seconds: 8 · video input

请求参数

参数名类型必填说明
conversation_idstring对话 ID,通过 POST /api/conversations/ 创建
promptstring文本提示词
modelstring模型 ID,见可用模型表
size / ratiostring图片尺寸或视频比例
qualitystring质量档位
reference_imagesarray参考图 URL 列表
stylestringrealistic、anime、watercolor、oil-painting 等
modestring视频text2video、image2video 或 video_edit
durationnumber视频视频时长,按模型能力限制

文本模型

模型供应商积分参数
gpt-5.4kocode18-
gpt-5.5kocode36-

视频可用模型

参数名类型必填说明
veo-3-1文生 / 图生8 秒首尾帧、多图参考≤9
veo-omni-flash文生 / 图生10 秒首尾帧、多图参考≤9
seedance-2.0-720p文生 / 图生5/10/15 秒720p,按秒计费
sora-2文生12 秒无参考图
veo-omni-flash-video-edit视频编辑8 秒需要 input_video_url

图生视频需提供公网可访问的参考图 URL;视频时长由模型固定。生成完成后视频会转存至平台存储,长期有效。

错误码

参数名类型必填说明
401API Key 无效或已过期检查检查 Key 是否正确,是否已被删除
402积分不足充值前往平台充值或签到获取积分
429请求过于频繁限速降低请求频率,参考速率限制
500服务内部错误重试稍后重试,如持续出现请联系支持

上游兼容补充

统一入口: 一个 API Key 接入所有平台;兼容格式: 完全兼容 OpenAI / Google / Anthropic SDK。你只需一个 API Key,即可通过标准格式调用不同平台的图片生成模型。

安全提示: 请勿在客户端代码或公开仓库中暴露 API Key。如果泄露,请立即在设置中删除并重新生成。

OpenAI 图片生成接口: 图片描述文本最大 4000 字符,生成数量默认 1,当前仅支持 1;图片尺寸支持 1024x1024、1792x1024、1024x1792;质量为 standard 或 hd。模型 ID,如 image-2、image-2-hd。

OpenAI 图生图接口: 基于参考图片生成新图片,支持风格迁移、局部修改等场景。兼容 OpenAI Images Edit API 格式。参考图片文件 PNG/JPG 最大 4MB;遮罩图片为 PNG,透明区域为需要编辑的部分。提示: 支持基于参考图的风格迁移与局部编辑,带遮罩时透明区域为重绘部分。

Google / Gemini: contents 为对话内容列表,包含角色和部件;generationConfig 为生成配置,包含 responseModalities 等。Antigravity 图生图会在 parts 数组中依次添加多个 inlineData 部件,最后一个 part 为文本提示词。

Antigravity 注意: 4K 分辨率图片较大,请求可能需要较长时间(最多 10 分钟),请设置足够的超时时间。图片以 base64 返回在响应体中,非 URL。支持多张参考图,配合文本提示词实现图生图。

视频生成接口: 视频生成为异步接口,提交任务后立即返回 task_id,再通过 SSE 实时获取进度,完成后从事件中取得视频地址。请在请求头携带登录后获取的访问令牌。图生视频需提供公网可访问的参考图 URL;视频时长由模型固定。生成完成后视频会转存至平台存储,长期有效。

参数名类型必填说明
模型名称模型 ID说明能力
Gemini Flashgemini-3.1-flash-image速度快,适合日常生成质量高
Gemini Progemini-3-pro-image质量高,细节更丰富文生图 / 图生图
标准1K默认分辨率,速度最快默认
高清2K2 倍分辨率,适合打印可选
超清4K4 倍分辨率,文件较大,耗时较长可选
1:1头像、图标、社交媒体封面默认适用场景
16:9横屏壁纸、视频封面、Banner可选比例
9:16手机壁纸、竖屏海报、Story可选比例
4:3传统照片、PPT 插图可选比例
3:4竖版照片、书籍封面可选比例
补充示例格式
event: progress
data: {"status": "processing", "progress": 40}

event: complete
data: {"status": "complete", "image_url": "https://...", "thumbnail_url": "https://..."}

print(f"saved {len(img)} bytes")
console.log("saved ${buf.length} bytes")

请求示例:
POST https://your-domain.com/api/generate/img2img
image=@reference.png
prompt=将画面风格转为赛博朋克
strength=0.75
style=cyberpunk
model=hd

????????

?????????????????SDK ??????????????????????

KoCodeImg 是一个 AI 图片生成平台,提供 OpenAI / Anthropic / Google 等多平台兼容的统一 API 接口。 你只需一个 API Key,即可通过标准格式调用不同平台的图片生成模型。

页面创建 API Key,格式为

根据需求选择 OpenAI / Anthropic / Google 兼容接口,使用对应 SDK 或 HTTP 调用

指向本平台,传入 API Key 即可

支持以下三种认证方式:

(请求头)

X-API-Key: <你的 API Key>

?key=<你的 API Key>

(URL 参数)

OpenAI 官方文档:

请求参数:

图片描述文本,最大 4000 字符

生成数量,默认 1,当前仅支持 1

图片尺寸: 1024x1024、1792x1024、1024x1792

质量: standard 或 hd

bash

curl -X POST https://your-domain.com/openai/v1/images/generations \ -H "Authorization: Bearer sk-koci_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "model": "image-2", "prompt": "一只穿着宇航服的猫在月球上漫步", "n": 1, "size": "1024x1024", "quality": "hd" }'

Node.js (OpenAI SDK):

javascript

Python (OpenAI SDK):

响应示例:

基于参考图片生成新图片,支持风格迁移、局部修改等场景。兼容 OpenAI Images Edit API 格式。

参考图片文件 (PNG/JPG, 最大 4MB)

描述期望的修改或生成效果

生成数量,默认 1

输出尺寸: 1024x1024、1792x1024、1024x1792

遮罩图片,透明区域为需要编辑的部分 (PNG)

cURL (multipart/form-data):

带遮罩局部编辑:

支持基于参考图的风格迁移与局部编辑(带遮罩时透明区域为重绘部分)。

快速生成,适合日常使用

高清画质,细节更丰富

最高画质,适合商业用途

Anthropic 官方文档:

https://docs.anthropic.com

POST /{platform}/v1/messages

模型 ID,如 claude-sonnet-4-20250514

最大输出 token 数

对话消息列表,包含 role 和 content

Python (Anthropic SDK):

Gemini 官方文档:

https://ai.google.dev/gemini-api/docs

POST /{platform}/v1beta/models/{model}:generateContent

对话内容列表,包含角色和部件

object

生成配置,包含 responseModalities 等

Python (Google GenAI SDK):

cURL:

Antigravity 图片生成接口

基于 Google Gemini generateContent API,支持 1K / 2K / 4K 多分辨率和 5 种宽高比。

对话内容,包含 text 部件 (文生图) 或 inlineData + text (图生图)

分辨率档位: 1K (默认)、2K、4K

宽高比: 1:1 (默认)、16:9、9:16、4:3、3:4

Python:

import httpx, base64 resp = httpx.post( "https://your-domain.com/antigravity/v1beta/models/gemini-3.1-flash-image:generateContent", headers={ "Authorization": "Bearer sk-koci_your_api_key", "Content-Type": "application/json", }, json={ "contents": [{ "role": "user", "parts": [{"text": "一只穿着宇航服的猫在月球上漫步"}], }], "generationConfig": { "responseModalities": ["IMAGE", "TEXT"], "imageConfig": {"imageSize": "2K", "aspectRatio": "16:9"}, }, }, timeout=600, ) data = resp.json() for part in data["candidates"][0]["content"]["parts"]: if "inlineData" in part: img = base64.b64decode(part["inlineData"]["data"]) with open("output.jpg", "wb") as f: f.write(img) print(f"saved {len(img)} bytes") elif "text" in part: print(part["text"])

Node.js:

4K 分辨率图片较大,请求可能需要较长时间 (最多 10 分钟),请设置足够的超时时间。图片以 base64 返回在响应体中,非 URL。

Antigravity 图生图接口

在 contents.parts 中传入参考图的 base64 数据,配合文本提示词实现图生图。

请求体结构:

Python 图生图:

import httpx, base64 # 读取参考图并编码 with open("reference.png", "rb") as f: ref_b64 = base64.b64encode(f.read()).decode() resp = httpx.post( "https://your-domain.com/antigravity/v1beta/models/gemini-3.1-flash-image:generateContent", headers={ "Authorization": "Bearer sk-koci_your_api_key", "Content-Type": "application/json", }, json={ "contents": [{ "role": "user", "parts": [ {"inlineData": {"mimeType": "image/png", "data": ref_b64}}, {"text": "将画面风格转为赛博朋克,保留构图"}, ], }], "generationConfig": { "responseModalities": ["IMAGE", "TEXT"], "imageConfig": {"imageSize": "2K"}, }, }, timeout=600, ) data = resp.json() for part in data["candidates"][0]["content"]["parts"]: if "inlineData" in part: img = base64.b64decode(part["inlineData"]["data"]) with open("output.jpg", "wb") as f: f.write(img)

支持多张参考图,在 parts 数组中依次添加多个 inlineData 部件,最后一个 part 为文本提示词。

模型列表:

速度快,适合日常生成

质量高,细节更丰富

分辨率档位 (imageSize):

默认分辨率,速度最快

2 倍分辨率,适合打印

4 倍分辨率,文件较大,耗时较长

宽高比 (aspectRatio):

头像、图标、社交媒体封面 (默认)

原生接口返回 Server-Sent Events 流,支持实时进度回传。适合需要展示生成进度的场景。

SSE 事件流:

Python (SSE Client):

原生图生图接口,上传参考图并描述修改意图,支持 SSE 进度流。

请求参数 (multipart/form-data):

参考图片 (PNG/JPG, 最大 4MB)

变化强度 0.0-1.0,默认 0.7 (越大越偏离原图)

风格: realistic, anime, watercolor 等

输出比例: 1:1, 16:9, 9:16

模型: standard, hd, ultra

遮罩图 (PNG),透明区域为编辑区

SSE 事件流 (与文生图相同):

event: status data: {"status": "queued", "message_id": "550e8400-..."} event: progress data: {"status": "processing", "progress": 40} event: complete data: {"status": "complete", "image_url": "https://...", "thumbnail_url": "https://..."}

对话 ID,通过 POST /api/conversations/ 创建

风格: realistic, anime, watercolor, oil-painting 等

比例: 1:1, 16:9, 9:16

模型: standard、hd、ultra

视频生成为异步接口:提交任务后立即返回 task_id,再通过 SSE 实时获取进度,完成后从事件中取得视频地址。请在请求头携带登录后获取的访问令牌。

提交任务:

视频模型名,如 veo-3-1、veo-omni-flash

text2video(文生) / image2video(图生) / video_edit(视频编辑)

画面比例: 16:9、9:16、1:1

参考图/首尾帧公网 URL(图生视频,最多 9 张)

输入视频 URL(视频编辑模式)

提交响应:

轮询进度 (SSE):

文生 / 图生(首尾帧、多图参考≤9)

图生视频需提供公网可访问的参考图 URL;视频时长由模型固定。生成完成后视频会转存至平台存储,长期有效。

状态码

含义

处理建议

检查 Key 是否正确,是否已被删除

降低请求频率,参考速率限制

稍后重试,如持续出现请联系支持

产品

联系我们

法律

服务条款

隐私政策

Cookie 政策

2026