getModels()
查询可用模型、任务类型、档位、参数和参考图限制。
初始化
`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 方法
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);
});