HiAPI
Blogue

Guia de uso

Imagens de produtos de e-commerce com Recraft V4.1 Flash: $0,01 por imagem para catálogos em lote

Um lote paralelo real no recraft-v4.1-flash/text-to-image: imagens de listagem e de ambientação, brancura de fundo medida, tempos e script em lote.

Nov 1, 2026
Imagens de produtos de e-commerce com Recraft V4.1 Flash: $0,01 por imagem para catálogos em lote

TL;DR

  • No HiAPI, recraft-v4.1-flash/text-to-image custa apenas $0,01 por imagem, então 1.000 imagens de catálogo custam $10,00. A versão padrão recraft-v4.1/text-to-image custa $0,05 por imagem e aceita os mesmos parâmetros (comparação de preços).
  • Na nossa execução, 4 imagens de produtos enviadas em paralelo foram concluídas em 21,5 segundos de tempo real, cerca de 19–20 segundos por tarefa (incluindo download). Custo total: $0,04.
  • Ao definir background_color como branco, o fundo gerado fica próximo do branco, mas não é um #FFFFFF uniforme. Se o marketplace exigir branco puro, é necessário adicionar uma etapa extra de limpeza.

Quando escolher o nível Flash para catálogos

Use o Flash quando o volume for grande: cada SKU precisa de uma imagem de listagem com fundo branco, mais uma ou duas imagens de ambientação, e você pretende revisar cada uma antes de publicar. A $0,01 por imagem, 500 SKUs com 3 imagens cada totalizam $15,00. As mesmas 1.500 imagens com a versão padrão V4.1 custariam $75,00.

O Flash e a versão padrão V4.1 aceitam os mesmos campos de entrada, então atualizar as imagens selecionadas para o nível superior exige apenas alterar o model. Este artigo não compara a qualidade de imagem dos dois níveis, porque não executamos ambos com prompts correspondentes. Antes de definir o nível para materiais oficiais, verifique os resultados por conta própria.

Schema de entrada verificado

Verificamos o schema contra a API real enviando valores intencionalmente inválidos:

Campo Tipo Observação
prompt string Obrigatório
image_size enum square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9
colors array de {r,g,b} Orientação de paleta. Passar uma string retorna 400 INVALID_REQUEST: colors: got string, want array
background_color {r,g,b} Cor do fundo

Campos desconhecidos são rejeitados (additional properties ... not allowed), e qualquer image_size fora dos seis presets também é rejeitado. Tamanhos de pixel personalizados não são suportados. Tamanhos obtidos: square_hd 1024×1024, portrait_4_3 896×1216, landscape_4_3 1216×896.

Saída real de um lote

As quatro imagens abaixo vieram do mesmo lote paralelo. As legendas indicam os tamanhos; cada imagem custou $0,01.

Imagem de listagem com fundo branco

E-commerce product photo of a matte sage-green ceramic coffee mug with a curved handle, centered, front three-quarter view, pure white seamless background, soft even studio lighting, gentle contact shadow, no props, no text

recraft-v4.1-flash/text-to-image, square_hd, 1024×1024, background_color branco, $0,01.

E-commerce product photo of a single white leather low-top sneaker with gum rubber sole, side profile facing left, pure white seamless background, soft even studio lighting, subtle shadow under the sole, no props, no text

recraft-v4.1-flash/text-to-image, square_hd, 1024×1024, background_color branco, $0,01.

A caneca corresponde bem ao prompt: centralizada, sombra de contato limpa, sem adereços. O tênis mostra por que a revisão ainda é necessária. Pedimos sola de borracha gum (gum rubber sole), mas obtivemos uma sola cor de creme, e o tênis ficou na metade inferior do quadro em vez de centralizado. Sem comparar com o produto real, nenhuma das duas imagens serve como imagem de listagem utilizável para um SKU real.

Imagens de ambientação

Lifestyle product photo of an amber glass dropper serum bottle with a plain white label, standing on a travertine stone tray beside a eucalyptus sprig, bathroom shelf, soft morning window light, shallow depth of field, premium skincare catalog look

recraft-v4.1-flash/text-to-image, portrait_4_3, 896×1216, $0,01.

Lifestyle product photo of a charcoal canvas rolltop backpack leaning against a wooden bench in a sunlit train station, warm afternoon light, shallow depth of field, travel catalog look, no people, no logos

recraft-v4.1-flash/text-to-image, landscape_4_3, 1216×896, $0,01.

Ambas as cenas incluíram todos os adereços e indicações de iluminação dos respectivos prompts. O rótulo do frasco de sérum ficou em branco conforme solicitado. Isso é útil se você pretende compor um rótulo real depois e é mais seguro do que deixar o modelo inventar texto.

O que "fundo branco" retorna de fato

Amostramos pixels das duas imagens de listagem:

Imagem Amostras de canto / borda (RGB) Exatamente 255,255,255 Próximo do branco (todos os canais ≥ 250)
Caneca 255,255,255 · 255,255,253 · 253,254,252 48,1% dos pixels 75,4%
Tênis 254,253,253 · 251,250,249 · 255,255,255 58,3% dos pixels 79,3%

O fundo parece branco, mas não é um #FFFFFF totalmente uniforme. Marketplaces que exigem branco puro na imagem principal precisam de uma etapa de pós-processamento. Você pode fixar os pixels próximos do branco em 255, ou recortar o produto e colocá-lo sobre uma tela limpa. O tutorial de remoção de fundo do Recraft apresenta uma solução de recorte na mesma API.

Script em lote: envio paralelo, polling, download

Este é o script que executamos, simplificado. Cada SKU tem seu próprio Idempotency-Key, então uma nova tentativa após um timeout de rede não cria uma tarefa paga duplicada. As URLs de saída são temporárias: as nossas estavam em temp.hiapi.ai e tinham expireAt, expirando exatamente 7 dias após a criação. Baixe cada imagem o quanto antes após o sucesso da tarefa.

import os, time, requests
from concurrent.futures import ThreadPoolExecutor

BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}",
           "Content-Type": "application/json"}
WHITE = {"r": 255, "g": 255, "b": 255}
BATCH_ID = "catalog-2026-11-01"  # change per intentional new batch

JOBS = [
    {"sku": "mug-sage", "image_size": "square_hd", "background_color": WHITE,
     "prompt": "E-commerce product photo of a matte sage-green ceramic coffee mug ..."},
    {"sku": "serum-amber", "image_size": "portrait_4_3",
     "prompt": "Lifestyle product photo of an amber glass dropper serum bottle ..."},
    # one dict per SKU / shot
]

def run(job):
    payload = {"model": "recraft-v4.1-flash/text-to-image",
               "input": {k: v for k, v in job.items() if k != "sku"}}
    r = requests.post(BASE, json=payload, timeout=60,
                      headers={**HEADERS, "Idempotency-Key": f"{BATCH_ID}-{job['sku']}"})
    r.raise_for_status()
    task_id = r.json()["data"]["taskId"]
    while True:
        task = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
        if task["status"] in ("success", "fail", "failed"):
            break
        time.sleep(3)
    if task["status"] != "success":
        return job["sku"], task["status"]
    img = requests.get(task["output"][0]["url"], timeout=60).content
    with open(f"{job['sku']}.webp", "wb") as f:  # output was WebP in our run
        f.write(img)
    return job["sku"], "saved"

with ThreadPoolExecutor(max_workers=4) as pool:
    for sku, status in pool.map(run, JOBS):
        print(sku, status)

Nossa execução retornou o seguinte para cada tarefa (mostrando apenas uma):

{
  "taskId": "tk-hiapi-01M6AMTSX0B7Z531QT740DS54P",
  "model": "recraft-v4.1-flash/text-to-image",
  "status": "success",
  "storage": "temp",
  "output": [{"type": "image", "url": "https://temp.hiapi.ai/.../...-0.webp", "expireAt": 1794111048}]
}

Os timestamps created e completed dessa tarefa diferem em 9 segundos. O tempo restante do lado do cliente é gasto no intervalo de polling e no download de arquivos WebP de 0,45–1,26 MB. Para detalhes completos de requisição e polling, consulte o guia da API Recraft V4.1 e a documentação do HiAPI.

Orçamento do catálogo

Imagens por SKU 100 SKUs 1.000 SKUs
1 (somente imagem de listagem) $1,00 $10,00
3 (imagem de listagem + 2 imagens de ambientação) $3,00 $30,00
3 + 2 regenerações $5,00 $50,00

Baseado em $0,01 por imagem no Flash, conforme o preço do HiAPI em 1º de novembro de 2026. Regenerações são cobradas como qualquer outra imagem, então reserve parte do orçamento.

Padrões de prompt adequados para imagens de listagem

  • Comece pelo tipo de tomada (E-commerce product photo of ...), depois material + cor + produto.
  • Fixe o ângulo da câmera (front three-quarter view, side profile facing left).
  • Declare explicitamente fundo e iluminação (pure white seamless background, soft even studio lighting) e passe também background_color.
  • Termine com exclusões: no props, no text.
  • Verifique detalhes específicos do produto contra o item real. A cor da sola do tênis mostra que o modelo pode se desviar nesses detalhes.

Perguntas frequentes

O Flash é suficiente para a imagem principal de listagem? Para produtos simples como a caneca, a saída é limpa. Mas detalhes podem se desviar (como a sola do tênis), e o fundo não é #FFFFFF puro. Revise cada imagem e, se o marketplace exigir, limpe o fundo.

Posso manter as cores da marca consistentes em um lote? Sim. Passe o mesmo array colors em cada requisição. Ele orienta a paleta, mas não é um bloqueio de cor exato em nível de pixel.

Como atualizar as imagens selecionadas para a versão padrão V4.1? Reenvie com o mesmo payload, definindo model como recraft-v4.1/text-to-image, a $0,05 por imagem.

Isso gera meu produto real? Não. O texto para imagem cria um produto que corresponde à sua descrição. Para exibir o item real, use as cenas geradas como fundo ou mockup, ou mude para um fluxo de trabalho de imagem para imagem.

Pronto para começar o catálogo? Abra a página do modelo Recraft V4.1 Flash, teste primeiro um prompt de listagem e depois execute o script em lote para os demais SKUs.

Artigos relacionados

Ver todos os artigos →

Comece a criar com artefactos de IA persistentes

Obtenha a sua chave de API e chame modelos de imagem, vídeo e áudio através de uma única API baseada em tasks.

Ler a documentação da API