API Stock vs. Replicate
Alternativa ao Replicate
Busca uma alternativa ao Replicate para modelos hospedados de imagem e vídeo? Compare preços de imagens e substitua previsões pela API do API Stock.
Comparação entre API Stock e Replicate
Quando escolher API Stock
Escolha API Stock para obter resultados dos modelos do catálogo sem gerenciar implantações nem hardware.
Quando continuar com Replicate
Mantenha Replicate para implantações próprias, treinamento ou modelos da comunidade fora do catálogo. API Stock não substitui toda a plataforma de hospedagem.
Documentação API do ReplicateRole horizontalmente para ver todas as colunas.
| Detalhe de integração | Replicate | API Stock |
|---|---|---|
| Solicitação | POST /v1/models/bytedance/seedream-4.5/predictions | POST /api/v1/generation/create |
| Autenticação | Authorization: Bearer | Authorization: Bearer |
| Identificador do modelo | bytedance/seedream-4.5 | 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: Replicate 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 | Replicate | Diferença do nosso preço |
|---|---|---|---|
| Seedream 4.52K · por imagem · texto para imagem | API Stock$0.036 | Replicate$0.04 | 10% menor |
| Nano Bananapor imagem · texto para imagem | API Stock$0.015 | Replicate$0.039 | 61.5% menor |
Uma imagem a partir de texto, sem referências. Tarifas públicas básicas; planos, descontos por volume, outras resoluções e edições podem mudar o preço final.
Custo de uma carga de trabalho
Seedream 4.5 · 2K
1.000 imagens na configuração indicada
- API Stock
- $36
- Replicate
- $40
Nano Banana
1.000 imagens na configuração indicada
- API Stock
- $15
- Replicate
- $39
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 Replicate
Substitua replicate.run ou a criação de previsões por POST /api/v1/generation/create. Use id público e parâmetros documentados no lugar de input. Receba resultados por consulta de status 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.
Replicate
curl --fail-with-body 'https://api.replicate.com/v1/models/bytedance/seedream-4.5/predictions' \-H "Authorization: Bearer $REPLICATE_API_TOKEN" \-H 'Content-Type: application/json' \-d '{"input": {"prompt": "A ceramic mug on a wooden table, soft morning light","size": "2K","max_images": 1}}'
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 Replicate?
Substitua replicate.run ou a criação de previsões por POST /api/v1/generation/create. Use id público e parâmetros documentados no lugar de input. Receba resultados por consulta de status ou webhook.
API Stock é sempre mais barato que Replicate?
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 Replicate?
Mantenha Replicate para implantações próprias, treinamento ou modelos da comunidade fora do catálogo. API Stock não substitui toda a plataforma de hospedagem.
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.