API Stock vs. fal.ai
Alternativa ao fal.ai
Compare fal.ai e API Stock para modelos hospedados de imagem e vídeo: configurações equivalentes, custos por volume e migração do cliente fal para nossa API de tarefas.
Comparação entre API Stock e fal.ai
Quando escolher API Stock
Escolha API Stock para modelos hospedados com formato de tarefa comum para imagens, vídeos e música e chat no mesmo saldo.
Quando continuar com fal.ai
Mantenha fal.ai para funções do SDK, treinamento ou modelos fora do catálogo. Modelos compartilhados não tornam endpoints, moderação ou opções avançadas intercambiáveis.
Documentação API do fal.aiRole horizontalmente para ver todas as colunas.
| Detalhe de integração | fal.ai | API Stock |
|---|---|---|
| Solicitação | fal.subscribe(model, { input }) | POST /api/v1/generation/create |
| Autenticação | FAL_KEY / Authorization: Key | Authorization: Bearer |
| Identificador do modelo | fal-ai/bytedance/seedream/v4.5/text-to-image | seedream-4-5 |
O modelo do exemplo é comparado, não todos os endpoints do provedor. Nomes iguais não garantem parâmetros, moderação ou resultados idênticos.
Comparação de preços: fal.ai e API Stock
Modelos compartilhados selecionados com as mesmas unidades de cobrança. Nossos preços vêm do catálogo atual; os preços do provedor incluem a data de consulta e links para as fontes.
| Modelo | API Stock | fal.ai | Diferença do nosso preço |
|---|---|---|---|
| Nano Bananapor imagem · texto para imagem | API Stock$0.012 | fal.ai$0.039 | 69.2% menor |
| Nano Banana 21k · por imagem · texto para imagem | API Stock$0.018 | fal.ai$0.08 | 77.5% menor |
| Nano Banana 22k · por imagem · texto para imagem | API Stock$0.02 | fal.ai$0.12 | 83.3% menor |
| Nano Banana 2512px · por imagem · texto para imagem | API Stock$0.022 | fal.ai$0.06 | 63.3% menor |
| Nano Banana 24k · por imagem · texto para imagem | API Stock$0.026 | fal.ai$0.16 | 83.8% menor |
| Nano Banana Pro1k · por imagem · texto para imagem | API Stock$0.029 | fal.ai$0.15 | 80.7% menor |
| Nano Banana Pro2k · por imagem · texto para imagem | API Stock$0.029 | fal.ai$0.15 | 80.7% menor |
| Nano Banana Pro4k · por imagem · texto para imagem | API Stock$0.043 | fal.ai$0.3 | 85.7% menor |
| Seedream 4.5por imagem · texto para imagem | API Stock$0.036 | fal.ai$0.04 | 10% menor |
| Seedream 5.0 Litepor imagem · texto para imagem | API Stock$0.03325 | fal.ai$0.035 | 5% menor |
| Seedream 5.0 Pro1K · por imagem · texto para imagem | API Stock$0.04 | fal.ai$0.0675 | 40.7% menor |
| Seedream 5.0 Pro2K · 1:1 · por imagem · texto para imagem | API Stock$0.079 | fal.ai$0.135 | 41.5% menor |
| Wan 2.7 Imagepor imagem · texto para imagem | API Stock$0.0285 | fal.ai$0.03 | 5% menor |
| Veo 3.1 Fast1080p · por clipe inteiro8s · Com áudioTexto → vídeo | API Stock$0.189 | fal.ai$1.2 | 84.3% menor |
| Veo 3.1 Fast720p · por clipe inteiro8s · Com áudioTexto → vídeo | API Stock$0.189 | fal.ai$1.2 | 84.3% menor |
| Veo 3.1 Fast4k · por clipe inteiro8s · Com áudioTexto → vídeo | API Stock$0.429 | fal.ai$2.8 | 84.7% menor |
| Veo 3.1 Quality1080p · por clipe inteiro8s · Com áudioTexto → vídeo | API Stock$1.425 | fal.ai$3.2 | 55.5% menor |
| Veo 3.1 Quality720p · por clipe inteiro8s · Com áudioTexto → vídeo | API Stock$1.2 | fal.ai$3.2 | 62.5% menor |
| Veo 3.1 Quality4k · por clipe inteiro8s · Com áudioTexto → vídeo | API Stock$1.8 | fal.ai$4.8 | 62.5% menor |
| Wan 2.7 Video720p · por segundo geradoImagem → vídeo | API Stock$0.086 | fal.ai$0.1 | 14% menor |
| Wan 2.7 Video1080p · por segundo geradoImagem → vídeo | API Stock$0.129 | fal.ai$0.15 | 14% menor |
Cada linha indica o fluxo e a unidade de cobrança. Imagens: uma saída sem referências. Vídeos: por segundo ou clipe conforme indicado; compare resolução, duração e áudio.
Custo de uma carga de trabalho
Nano Banana
1.000 imagens na configuração indicada
- API Stock
- $12
- fal.ai
- $39
Nano Banana 2 · 1k
1.000 imagens na configuração indicada
- API Stock
- $18
- fal.ai
- $80
Totais ilustrativos das linhas acima, sem descontos por volume, assinaturas ou opções pagas. Não garantem latência nem resultados idênticos.
Migração do fal.ai
Substitua fal.subscribe ou fal.queue.submit por POST /api/v1/generation/create. Converta input em parâmetros documentados, use id do catálogo e consulte taskId por polling ou webhook.
1
Crie uma conta, recarregue o saldo e gere uma chave API.
2
Envie POST /api/v1/generation/create com o id público e os parâmetros documentados. Cada tarefa gera uma saída.
3
Leia taskId. Consulte GET /api/v1/task/status/TASK_ID ou informe webhook ao criar a tarefa.
fal.ai
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
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"}'
Exemplo completo: criar tarefa e obter arquivo
Execute no servidor com Node 22+ ou Bun e API_KEY. Uma única tarefa paga é criada e consultada sem recriação. As URLs são temporárias: salve o arquivo no seu armazenamento.
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()));
Mantenha as chaves API no servidor. Teste uma solicitação com parâmetros, status e resultado antes de transferir o tráfego de produção.
Perguntas frequentes
Como migrar do fal.ai?
Substitua fal.subscribe ou fal.queue.submit por POST /api/v1/generation/create. Converta input em parâmetros documentados, use id do catálogo e consulte taskId por polling ou webhook.
API Stock é sempre mais barato que fal.ai?
Não. Compare o modelo, a configuração e a unidade de cobrança exatos na tabela. Os preços podem subir ou cair; confira ambos os catálogos antes de migrar.
Posso transferir qualquer fluxo do fal.ai?
Mantenha fal.ai para funções do SDK, treinamento ou modelos fora do catálogo. Modelos compartilhados não tornam endpoints, moderação ou opções avançadas intercambiáveis.
O que acontece com solicitações falhas ou incompletas?
Tarefas de mídia são repetidas pelas rotas configuradas, usando reserva quando disponível. Falhas definitivas de geração são reembolsadas. Consulte a tarefa em andamento em vez de duplicá-la. Uma URL expirada não significa falha na geração.
Como adiciono saldo?
Os métodos de pagamento disponíveis, as moedas e os valores mínimos de recarga são exibidos na sua conta antes do pagamento. Não há assinatura: o uso dos modelos é descontado do saldo pré-pago.
Teste sua primeira solicitação em API Stock
Escolha um modelo, confira os parâmetros e o preço e crie uma chave API. Teste uma solicitação antes de transferir o tráfego.