API de Seedream 5.5: integración con Kie y ejemplo en Node.js
Integra Seedream 5.5 con los identificadores de Kie para generar o editar imágenes. Consulta los límites de entrada, el cobro y la disponibilidad en ModelArk.
Elige el proveedor y las credenciales
El ejemplo utiliza Kie, un proveedor externo. Usa una clave de Kie para su endpoint. Para BytePlus ModelArk, comprueba por separado el catálogo de tu región y los modelos habilitados en tu cuenta.
Identificadores de modelo y parámetros
- Texto a imagen: seedream/5-5-text-to-image. Envía el prompt y los controles de tamaño y formato.
- Imagen a imagen: seedream/5-5-image-to-image. Añade las URL de las referencias en image_urls.
Documentación de generación de Kie · Documentación de edición de Kie
Ejemplo de servidor en Node.js
Guarda KIE_API_KEY en el entorno del servidor. El ejemplo solicita un PNG transparente, espera el estado final de la tarea y muestra la URL del resultado.
// Run on your server with Node.js 20+. Set KIE_API_KEY in the server environment.
const key = process.env.KIE_API_KEY;
if (!key) throw new Error('Missing KIE_API_KEY');
const headers = {
Authorization: `Bearer ${key}`,
'Content-Type': 'application/json',
};
async function kie(path, init = {}) {
const response = await fetch(`https://api.kie.ai/api/v1/${path}`, {
...init, headers, signal: AbortSignal.timeout(30_000),
});
if (!response.ok) throw new Error(`Kie HTTP ${response.status}`);
const body = await response.json();
if (body.code !== 200) throw new Error(`Kie error ${body.code}`);
return body.data;
}
const created = await kie('jobs/createTask', {
method: 'POST',
body: JSON.stringify({
model: 'seedream/5-5-text-to-image',
input: {
prompt: 'An isolated ivory ceramic vase, soft side light, transparent background',
aspect_ratio: '1:1', size: '1K',
background: 'transparent', output_format: 'png', nsfw_checker: true,
},
}),
});
if (!created?.taskId) throw new Error('Missing task ID');
let done = false;
for (let attempt = 0; attempt < 30; attempt++) {
await new Promise(resolve => setTimeout(resolve, Math.min(3000 * 1.25 ** attempt, 15000)));
const task = await kie(`jobs/recordInfo?taskId=${encodeURIComponent(created.taskId)}`);
if (task.state === 'fail') throw new Error('Generation failed; inspect task logs');
if (task.state === 'success') {
const urls = JSON.parse(task.resultJson).resultUrls;
if (!Array.isArray(urls) || !urls.length) throw new Error('Missing results');
console.log(urls); // Download to your own storage before the provider URLs expire.
done = true;
break;
}
}
if (!done) throw new Error(`Still pending: retain task ID ${created.taskId} and resume status checks`);Cobro, límites y resultados
Kie cobra las imágenes de referencia además de la salida. Esta integración admite 1K, 1,5K o 2K y hasta 10 referencias por edición. Consulta el precio y los límites del proveedor antes de iniciar un lote.
Guarda el ID de la tarea y descarga el resultado a tu propio almacenamiento si necesitas conservarlo. Evita reenviar automáticamente una solicitud cuyo estado aún se desconoce.