BBH Image SDK

SDK 文档

返回首页 查看示例

初始化

`bbh-image-sdk.js` 可以直接在浏览器里引入。初始化时只需要配置服务地址和 API Key。

引入和初始化
<script src="./bbh-image-sdk.js"></script>

const sdk = new BBHImageSDK({
  baseURL: 'https://bbh-ai-server.benbh.cn',
  apiKey: 'sk_your_api_key_here'
});
可选配置 `requestTimeoutSeconds` 放在 `new BBHImageSDK()` 里,只控制单次 HTTP 请求超时,不是生图任务等待时间。

SDK 方法

getModels() 查询可用模型、任务类型、档位、参数和参考图限制。
getUserPoints() 查询总积分、可用积分、每日赠送积分。
submitImage() 只提交图片任务,返回 `task_id`,不等待最终结果。
waitForTask() 根据 `task_id` 轮询任务,直到完成或失败。
generateImage() 提交任务并自动轮询,适合单次点击生成。
uploadTempFile() 上传本地文件,返回可作为参考图使用的临时 URL。
fileToDataURL() 把浏览器本地文件转为 Data URI base64。
extractResults() 从任务状态响应中提取结果列表。

生图参数

`submitImage()` 和 `generateImage()` 接收的图片生成参数一致。区别是 `submitImage()` 只返回 `task_id`,`generateImage()` 会提交并等待最终结果。

参数说明
modelId必填,模型 ID,默认示例使用 `101`。
prompt必填,提示词。
tierId可选,档位 ID;没有档位时不要填写。
aspect_ratio可选,画幅,例如 `1:1`、`16:9`、`9:16`。
image_size可选,尺寸,例如 `1K`、`2K`、`4K`。
quality可选,输出质量;是否支持以模型返回参数为准。
文生图
const result = await sdk.generateImage({
  modelId: '101',
  prompt: 'a cute cat',
  aspect_ratio: '1:1',
  image_size: '1K'
}, {
  intervalSeconds: 5,
  timeoutSeconds: 600
});

参考图

不传 `images` 时接口按文生图处理;传入 `images` 时接口按图生图处理。

Base64 参考图
const imageData = await BBHImageSDK.fileToDataURL(file);

await sdk.generateImage({
  modelId: '101',
  prompt: 'turn this into anime style',
  images: [{
    type: 'base64',
    data: imageData
  }]
});
URL 参考图
const uploadResponse = await sdk.uploadTempFile(file);

await sdk.generateImage({
  modelId: '101',
  prompt: 'turn this into anime style',
  images: [{
    type: 'url',
    data: uploadResponse.data.url
  }]
});

多任务提交

需要“提交后继续操作”的页面,不要用等待式调用。先提交任务拿 `task_id`,再给每个任务独立轮询。

提交和等待分离
const submitResponse = await sdk.submitImage({
  modelId: '101',
  prompt: 'a cute cat',
  aspect_ratio: '1:1',
  image_size: '1K'
});

const taskId = submitResponse.data.task_id;

sdk.waitForTask(taskId, {
  intervalSeconds: 5,
  timeoutSeconds: 600
}).then(statusResponse => {
  const results = BBHImageSDK.extractResults(statusResponse);
  console.log(taskId, results);
});