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.

Ver la disponibilidad verificada por canal

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.

Guía de PNG transparente · Precios del editor web