API Stock

API Stock vs. fal.ai

Alternativa a fal.ai

Compara fal.ai y API Stock para modelos alojados de imagen y vídeo: configuraciones equivalentes, costes por volumen y migración del cliente fal a nuestra API de tareas.

Comparación de API Stock y fal.ai

Cuándo elegir API Stock

Elige API Stock para modelos alojados con un formato de tarea común a imágenes, vídeo y música, y chat con el mismo saldo.

Cuándo seguir con fal.ai

Mantén fal.ai para funciones SDK, entrenamiento o modelos fuera de nuestro catálogo. Compartir modelos no hace intercambiables endpoints, moderación ni opciones avanzadas.

Documentación API de fal.ai

Desplaza horizontalmente para ver todas las columnas.

Cambios API: de fal.ai a API Stock
Detalle de integraciónfal.aiAPI Stock
Solicitudfal.subscribe(model, { input })POST /api/v1/generation/create
AutenticaciónFAL_KEY / Authorization: KeyAuthorization: Bearer
Identificador del modelofal-ai/bytedance/seedream/v4.5/text-to-imageseedream-4-5

Se compara el modelo del ejemplo, no todos los endpoints del proveedor. Un mismo nombre no garantiza parámetros, moderación ni resultados idénticos.

Comparación de precios: fal.ai y API Stock

Modelos compartidos seleccionados con las mismas unidades de facturación. Nuestros precios proceden del catálogo actual; los del proveedor incluyen fecha de consulta y enlaces a sus fuentes.

Comparación de precios: fal.ai y API Stock
Nano Bananapor imagen · texto a imagenAPI Stock$0.012fal.ai$0.03969.2% menos
Nano Banana 21k · por imagen · texto a imagenAPI Stock$0.018fal.ai$0.0877.5% menos
Nano Banana 22k · por imagen · texto a imagenAPI Stock$0.02fal.ai$0.1283.3% menos
Nano Banana 2512px · por imagen · texto a imagenAPI Stock$0.022fal.ai$0.0663.3% menos
Nano Banana 24k · por imagen · texto a imagenAPI Stock$0.026fal.ai$0.1683.8% menos
Nano Banana Pro1k · por imagen · texto a imagenAPI Stock$0.029fal.ai$0.1580.7% menos
Nano Banana Pro2k · por imagen · texto a imagenAPI Stock$0.029fal.ai$0.1580.7% menos
Nano Banana Pro4k · por imagen · texto a imagenAPI Stock$0.043fal.ai$0.385.7% menos
Seedream 4.5por imagen · texto a imagenAPI Stock$0.036fal.ai$0.0410% menos
Seedream 5.0 Litepor imagen · texto a imagenAPI Stock$0.03325fal.ai$0.0355% menos
Seedream 5.0 Pro1K · por imagen · texto a imagenAPI Stock$0.04fal.ai$0.067540.7% menos
Seedream 5.0 Pro2K · 1:1 · por imagen · texto a imagenAPI Stock$0.079fal.ai$0.13541.5% menos
Wan 2.7 Imagepor imagen · texto a imagenAPI Stock$0.0285fal.ai$0.035% menos
Veo 3.1 Fast1080p · por clip completo8s · Con audioTexto → vídeoAPI Stock$0.189fal.ai$1.284.3% menos
Veo 3.1 Fast720p · por clip completo8s · Con audioTexto → vídeoAPI Stock$0.189fal.ai$1.284.3% menos
Veo 3.1 Fast4k · por clip completo8s · Con audioTexto → vídeoAPI Stock$0.429fal.ai$2.884.7% menos
Veo 3.1 Quality1080p · por clip completo8s · Con audioTexto → vídeoAPI Stock$1.425fal.ai$3.255.5% menos
Veo 3.1 Quality720p · por clip completo8s · Con audioTexto → vídeoAPI Stock$1.2fal.ai$3.262.5% menos
Veo 3.1 Quality4k · por clip completo8s · Con audioTexto → vídeoAPI Stock$1.8fal.ai$4.862.5% menos
Wan 2.7 Video720p · por segundo generadoImagen → vídeoAPI Stock$0.086fal.ai$0.114% menos
Wan 2.7 Video1080p · por segundo generadoImagen → vídeoAPI Stock$0.129fal.ai$0.1514% menos

Cada fila indica el flujo y la unidad de cobro. Imágenes: un resultado sin referencias. Vídeo: por segundo o clip según se indique; compara resolución, duración y audio.

Coste de una carga de trabajo

Nano Banana

1.000 imágenes con la configuración indicada

API Stock
$12
fal.ai
$39

Nano Banana 2 · 1k

1.000 imágenes con la configuración indicada

API Stock
$18
fal.ai
$80

Totales ilustrativos a partir de las filas anteriores, sin descuentos por volumen, suscripciones ni opciones de pago. No garantizan latencia ni resultados idénticos.

Precios

Migrar desde fal.ai

Sustituye fal.subscribe o fal.queue.submit por POST /api/v1/generation/create. Convierte input en parámetros documentados, usa un id del catálogo y consulta taskId mediante sondeo o webhook.

  1. 1

    Crea una cuenta, recarga el saldo y genera una clave API.

  2. 2

    Envía POST /api/v1/generation/create con el id público y los parámetros documentados. Cada tarea genera un resultado.

  3. 3

    Lee taskId. Consulta GET /api/v1/task/status/TASK_ID o indica webhook al crear la tarea.

fal.ai

javascript
import { fal } from "@fal-ai/client";
fal.config({ credentials: process.env.FAL_KEY });
const result = await fal.subscribe(
"fal-ai/bytedance/seedream/v4.5/text-to-image",
{ input: { prompt: "A ceramic mug on a wooden table, soft morning light", image_size: "square_hd", num_images: 1, max_images: 1 } },
);
const fileUrl = result.data.images[0].url;

API Stock

bash
curl --fail-with-body 'https://api.api-stock.com/api/v1/generation/create' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "seedream-4-5",
"prompt": "A ceramic mug on a wooden table, soft morning light",
"resolution": "2K",
"size": "1:1"
}'
Ejemplo completo: crear tarea y obtener archivo

Ejecuta en el servidor con Node 22+ o Bun y API_KEY. Se crea una sola tarea de pago y se consulta sin recrearla. Las URL son temporales: guarda el archivo en tu almacenamiento.

javascript
import { writeFile } from "node:fs/promises";
const baseURL = "https://api.api-stock.com/api/v1";
const apiKey = process.env.API_KEY;
if (!apiKey) throw new Error("Set API_KEY on the server");
async function request(path, options = {}) {
const response = await fetch(baseURL + path, {
...options,
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
signal: AbortSignal.timeout(30_000),
});
if (!response.ok) throw new Error(await response.text());
return response.json();
}
const { taskId } = await request("/generation/create", {
method: "POST",
body: JSON.stringify({
"model": "seedream-4-5",
"prompt": "A ceramic mug on a wooden table, soft morning light",
"resolution": "2K",
"size": "1:1"
}),
});
if (!taskId) throw new Error("Missing taskId");
const deadline = Date.now() + 10 * 60_000;
let fileUrl;
while (Date.now() < deadline) {
const { data } = await request(`/task/status/${encodeURIComponent(taskId)}`);
if (data.status === "finished") {
fileUrl = data.files?.[0]?.fileUrl;
if (!fileUrl) throw new Error("Task finished without a file");
break;
}
if (data.status === "failed" || data.status === "expired") {
throw new Error(data.errorMessage || data.status);
}
await new Promise((resolve) => setTimeout(resolve, 2000));
}
if (!fileUrl) throw new Error(`Still processing: save taskId ${taskId} and resume polling`);
const file = await fetch(fileUrl, { signal: AbortSignal.timeout(60_000) });
if (!file.ok) throw new Error(`Download failed: ${file.status}`);
const mime = file.headers.get("content-type")?.split(";")[0];
const extension = { "image/png": "png", "image/jpeg": "jpg", "image/webp": "webp" }[mime] || "bin";
await writeFile(`generated-image.${extension}`, new Uint8Array(await file.arrayBuffer()));

Guarda las claves API en el servidor. Prueba una solicitud, sus parámetros, estados y resultado antes de trasladar el tráfico de producción.

Preguntas frecuentes

¿Cómo migro desde fal.ai?

Sustituye fal.subscribe o fal.queue.submit por POST /api/v1/generation/create. Convierte input en parámetros documentados, usa un id del catálogo y consulta taskId mediante sondeo o webhook.

¿API Stock siempre es más barato que fal.ai?

No. Compara el modelo, la configuración y la unidad de facturación exactos de la tabla. Los precios pueden subir o bajar; consulta ambos catálogos antes de migrar.

¿Puedo trasladar cualquier flujo de fal.ai?

Mantén fal.ai para funciones SDK, entrenamiento o modelos fuera de nuestro catálogo. Compartir modelos no hace intercambiables endpoints, moderación ni opciones avanzadas.

¿Qué pasa con solicitudes fallidas o incompletas?

Las tareas multimedia se reintentan según las rutas configuradas, con reserva cuando esté disponible. Un fallo definitivo de generación se reembolsa. Consulta la tarea en curso en lugar de duplicarla. Una URL caducada no significa una generación fallida.

¿Cómo añado saldo?

Los métodos de pago disponibles, las monedas y los importes mínimos de recarga se muestran en tu cuenta antes de pagar. No hay suscripción: el uso de los modelos se descuenta del saldo prepago.

Prueba tu primera solicitud en API Stock

Elige un modelo, revisa sus parámetros y precio y crea una clave API. Prueba una solicitud antes de trasladar el tráfico.