← 返回首页

接口文档

将接口地址发送给codex可以制作成skill使用

baseurlhttps://shengtu.ximuai.com
JS 示例

GPT 图片模型提交

提交 gpt-image-2 生图任务。提交成功会立即扣除卡密余额。

POST/api/draw/completions
model必填string

只能传 gpt-image-2。

cardCode必填string

用户卡密,例如 XIMU-XXXXXX-XXXXXX-XXXXXX。

prompt必填string

生图提示词。

aspectRatio可选string

默认 1024x1024。gpt-image-2 传像素尺寸。

images可选string[]

参考图片数组,传图片 URL 或 data:image/png;base64 格式字符串;不传时使用空数组。

replyType可选string

默认 async。可传 json、stream、async;async 返回任务 ID 后可调用结果查询接口轮询。

JS 请求示例

async function createGptImageTask() {
  const response = await fetch('/api/draw/completions', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'gpt-image-2',
      cardCode: 'XIMU-XXXXXX-XXXXXX-XXXXXX',
      prompt: '生成一张现代中式庭院的高清图片,白天,自然光',
      aspectRatio: '1672x941',
      images: [],
      replyType: 'async'
    })
  })

  if (!response.ok) {
    throw new Error(await response.text())
  }

  return await response.json()
}

Nano Banana 模型提交

提交 nano-banana-2 或 nano-banana-pro 生图任务。提交成功会立即扣除卡密余额。

POST/api/draw/nano-banana
model必填string

只能传 nano-banana-2 或 nano-banana-pro。

cardCode必填string

用户卡密,例如 XIMU-XXXXXX-XXXXXX-XXXXXX。

prompt必填string

生图提示词。

aspectRatio可选string

默认 auto。nano-banana-pro 可传 auto、1:1、16:9、9:16、4:3、3:4、3:2、2:3、5:4、4:5、21:9;nano-banana-2 额外支持 1:4、4:1、1:8、8:1。

imageSize可选string

默认 1K。可传 1K、2K、4K。

images可选string[]

参考图片数组,传图片 URL 或 data:image/png;base64 格式字符串;不传时使用空数组。

replyType可选string

默认 async。可传 json、stream、async;async 返回任务 ID 后可调用结果查询接口轮询。

JS 请求示例

async function createNanoBananaTask() {
  const response = await fetch('/api/draw/nano-banana', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'nano-banana-pro',
      cardCode: 'XIMU-XXXXXX-XXXXXX-XXXXXX',
      prompt: '生成一张产品海报,极简风格,高级灰背景,突出主体质感',
      aspectRatio: 'auto',
      imageSize: '1K',
      images: [],
      replyType: 'async'
    })
  })

  if (!response.ok) {
    throw new Error(await response.text())
  }

  return await response.json()
}

生图结果查询

根据提交接口返回的任务 ID 查询生图进度和结果。建议每 5 秒轮询一次。

GET/api/draw/result
id必填string

提交生图任务后返回的任务 ID,可从 response.data.id 或 response.id 读取。

JS 请求示例

async function pollDrawResult(taskId) {
  const params = new URLSearchParams({ id: taskId })
  const response = await fetch(`/api/draw/result?${params.toString()}`)

  if (!response.ok) {
    throw new Error(await response.text())
  }

  return await response.json()
}

const timer = setInterval(async () => {
  const result = await pollDrawResult('任务ID')
  const payload = result.data || result

  if (payload.status === 'succeeded' || payload.status === 'failed' || payload.status === 'violation') {
    clearInterval(timer)
  }
}, 5000)

卡密余额查询

根据卡密查询当前余额。

POST/api/credits/card
code必填string

用户卡密,例如 XIMU-XXXXXX-XXXXXX-XXXXXX。

JS 请求示例

async function getCardBalance() {
  const response = await fetch('/api/credits/card', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      code: 'XIMU-XXXXXX-XXXXXX-XXXXXX'
    })
  })

  if (!response.ok) {
    throw new Error(await response.text())
  }

  return await response.json()
}