Explorar documentación

Mantenido por

Guía de Integración de API de Imagen y Vídeo

Usa OOMOL Fusion API desde un backend de confianza para generar y editar imágenes o crear vídeos. Cada proveedor conserva los formatos de petición y respuesta compatibles. La compatibilidad se limita a modelos y operaciones concretos, no a todas sus API.

Crear una clave API

Crea una clave personal en OOMOL Console y define la variable de entorno siguiente en tu backend. Usa esta clave OOMOL como apiKey del SDK o token HTTP Bearer. Los ejemplos no requieren claves del proveedor. No incluyas la clave en código del navegador, repositorios públicos ni registros.

export FUSION_API_TOKEN="<your-oomol-api-key>"

Elegir un endpoint

El servicio usa https://fusion-api.oomol.com. Utiliza la Base URL completa del proveedor, incluida la ruta de versión. No la sustituyas por la de Connector o ProjectConnector. Antes de una petición de pago, confirma la disponibilidad del modelo y consulta los precios.

ProveedorBase URL
OpenAI Imageshttps://fusion-api.oomol.com/v1/provider/openai/v1
Seedreamhttps://fusion-api.oomol.com/v1/provider/seedream/api/v3
Seedancehttps://fusion-api.oomol.com/v1/provider/seedance/api/v3
Wanxhttps://fusion-api.oomol.com/v1/provider/wanx/api/v1
Klinghttps://fusion-api.oomol.com/v1/provider/kling/
MiniMaxhttps://fusion-api.oomol.com/v1/provider/minimax/

Ejecutar un ejemplo

Instala solo el paquete necesario. Guarda el ejemplo en example.ts y ejecútalo en un entorno TypeScript del servidor. Las versiones indicadas corresponden a las pruebas locales del repositorio y no garantizan todas las versiones de SDK. Con credenciales válidas y un endpoint disponible, estos ejemplos realizan una generación real.

OpenAI Images

Generación y edición de imágenes; no incluye otras API OpenAI.

npm install openai@7.23.0
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.FUSION_API_TOKEN,
  baseURL: "https://fusion-api.oomol.com/v1/provider/openai/v1",
  maxRetries: 0,
  timeout: 1_080_000,
});

const result = await client.images.generate({
  model: "gpt-image-2",
  prompt: "A ceramic mug on a wooden table",
  size: "1536x864",
  quality: "medium",
});
console.log(result);

Seedream

Generación de imágenes, referencias y algunas salidas SSE.

npm install @volcengine/ark-runtime@1.0.11
import { ArkRuntimeClient } from "@volcengine/ark-runtime";

const client = new ArkRuntimeClient({
  apiKey: process.env.FUSION_API_TOKEN,
  baseURL: "https://fusion-api.oomol.com/v1/provider/seedream/api/v3",
  retryTimes: 0,
  timeout: 125_000,
});

const result = await client.generateImages({
  model: "doubao-seedream-5-0-260128",
  prompt: "A ceramic mug on a wooden table",
  size: "2K",
  response_format: "url",
});
console.log(result);

Seedance

Generación de vídeo y consulta de tareas.

npm install @volcengine/ark-runtime@1.0.11
import { ArkRuntimeClient } from "@volcengine/ark-runtime";

const client = new ArkRuntimeClient({
  apiKey: process.env.FUSION_API_TOKEN,
  baseURL: "https://fusion-api.oomol.com/v1/provider/seedance/api/v3",
  retryTimes: 0,
  timeout: 125_000,
});

const task = await client.createContentGenerationTask({
  model: "doubao-seedance-2-0-260128",
  content: [{ type: "text", text: "A boat on the ocean" }],
  duration: 5,
  resolution: "720p",
});
const status = await client.getContentGenerationTask(task.id);
console.log(task.id, status);

Wanx

Generación de vídeo y consulta de tareas.

npm install dashscope-sdk-official@1.26.0
import { Configuration, VideoSynthesis } from "dashscope-sdk-official";

const client = new VideoSynthesis(new Configuration({
  apiKey: process.env.FUSION_API_TOKEN,
  basePath: "https://fusion-api.oomol.com/v1/provider/wanx/api/v1",
}));

const task = await client.asyncCall({
  model: "wan3.0-video",
  prompt: "A boat on the ocean",
  resolution: "1080P",
  duration: 5,
});
const status = await client.fetch(task.output.task_id);
console.log(task.output.task_id, status);

Kling

Generación de vídeo y consulta de tareas.

npm install ky@1.11.0
import ky from "ky";

const client = ky.create({
  prefixUrl: "https://fusion-api.oomol.com/v1/provider/kling/",
  headers: { Authorization: `Bearer ${process.env.FUSION_API_TOKEN}` },
  retry: 0,
  redirect: "error",
  timeout: 30_000,
});

const task = await client.post("text-to-video/kling-3.0-turbo", {
  json: {
    prompt: "A boat on the ocean",
    settings: { duration: 5, resolution: "720p", aspect_ratio: "16:9" },
  },
}).json<{ data: { id: string } }>();
const status = await client.get("tasks", {
  searchParams: { task_ids: task.data.id },
}).json();
console.log(task.data.id, status);

MiniMax

Generación de vídeo y consulta de tareas.

npm install ky@1.11.0
import ky from "ky";

const client = ky.create({
  prefixUrl: "https://fusion-api.oomol.com/v1/provider/minimax/",
  headers: { Authorization: `Bearer ${process.env.FUSION_API_TOKEN}` },
  retry: 0,
  redirect: "error",
  timeout: 30_000,
});

const task = await client.post("v2/video_generation", {
  json: {
    model: "MiniMax-H3",
    content: [{ type: "text", text: "A boat on the ocean" }],
    duration: 5,
    resolution: "768P",
    ratio: "16:9",
  },
}).json<{ task_id: string }>();
const status = await client.get(
  `v2/query/video_generation/${encodeURIComponent(task.task_id)}`,
).json();
console.log(task.task_id, status);

Consultar los resultados de vídeo

Los ejemplos de vídeo crean una tarea y la consultan una vez. Guarda su ID. La creación correcta significa que la tarea fue aceptada, no que el vídeo esté listo. Consulta la misma tarea con la misma identidad OOMOL, dejando intervalos, hasta un estado final. Detente al completarse o fallar y lee el resultado o error. Un fallo de consulta no demuestra que la generación haya fallado. No recrees la tarea para comprobar su progreso.

Gestionar errores y reintentos

Comprueba los errores HTTP y el estado de la tarea. Los controles de autenticación y saldo pueden devolver errores de la pasarela con otro formato. Revisa la clave OOMOL ante fallos de autenticación, la cuenta y la facturación ante problemas de permisos o saldo y los parámetros ante entradas no válidas. Si hay límites, reduce la concurrencia y sigue las indicaciones de reintento recibidas.

Un tiempo de espera agotado, una desconexión o un error del servidor puede dejar el resultado incierto. Guarda los ID y los errores y consulta la tarea existente cuando sea posible. No reenvíes automáticamente la generación, pues puede crear otra tarea de pago. Los ejemplos OpenAI y Ark desactivan reintentos; ky también desactiva redirecciones. DashScope usa la configuración probada. Un límite de espera de la aplicación no debe causar otra creación automática.

Archivos, streaming y resultados

Las cargas, referencias y transmisiones tienen límites por proveedor. El ejemplo OpenAI cubre solo Images API, no chat, Responses ni otras API. Seedream admite ciertas operaciones SSE; la entrada de imágenes OpenAI presentada es síncrona. Recibir eventos parciales no equivale a recibir el evento final.

Descarga las URL de medios con otro cliente, sin el encabezado OOMOL Authorization. No supongas que los enlaces son permanentes. Desconectarse no garantiza cancelar una generación aceptada. Para operaciones no compatibles o resultados inciertos, contacta con soporte indicando el ID de petición o tarea y sin enviar secretos.

Volver a la presentación de API de Imagen y Vídeo.

Referencia de la API

Referencia de la API · OpenAPI JSON

Empezar

Empezar