Product video (Vídeo de produto)
Transforme um produto (de preferência com uma foto) em um clipe de vídeo curto. Responda no idioma do usuário. Todos os preços estão em USD.
1. Coletar o resumo
Pergunte apenas o que estiver faltando:
- Produto: o que é, material, cor, tamanho, a principal característica a mostrar.
- Foto do produto: um link público
httpspara uma foto limpa. Arquivos locais e links privados não funcionam; o usuário precisa hospedar a imagem em uma URL pública https primeiro. - Onde será usado: define a proporção.
- TikTok, Reels, Shorts, stories:
9:16 - Hero de site, YouTube, landing page:
16:9 - Listagem em marketplace, post no feed:
1:1(se o modelo oferecer)
- TikTok, Reels, Shorts, stories:
- Duração e orçamento: a maioria dos clipes tem de 5 a 10 segundos. Para um vídeo mais longo, planeje vários clipes curtos em vez de um longo.
2. Escolher modelo e modo
Chame list_models, depois chame novamente com model definido como um ID candidato para ver seus modes, aspect_ratios, durations, options e max_prompt_chars.
- Foto disponível: use um modo
i2vcom a foto comoimage_url. Isso mantém a forma, o rótulo e a cor reais do produto. - Várias fotos de referência (produto de diferentes ângulos): use um modo
r2vse o modelo tiver um, comreference_images, dentro demax_references. - Sem foto: use um modo
t2ve descreva o produto com precisão. - Se um modelo listar
negative_promptemoptions, você pode usá-lo para coisas como "rótulo distorcido, peças extras, borrado".
3. Escrever o prompt
Um clipe, uma tomada. Monte o prompt nesta ordem:
- Sujeito: o produto exato, com material e cor ("uma caneca de cerâmica preta fosca com base de cortiça").
- Ação ou movimento de câmera: apenas um movimento, por exemplo, aproximação lenta, órbita suave de 360 graus, revelação de cima para baixo, panorâmica macro na textura, mão pegando o produto.
- Cenário e iluminação: superfície, fundo, iluminação ("sobre uma mesa de carvalho clara, luz suave de janela pela manhã, profundidade de campo rasa").
- Estilo e ritmo: "aparência comercial limpa, ritmo calmo".
Dicas:
- Não peça ao modelo para renderizar palavras, preços ou logotipos como texto; eles geralmente saem distorcidos. Adicione texto depois em um editor.
- Com
i2v, descreva o movimento e a cena, não a aparência do produto novamente; a foto já a define. - Fique abaixo de
max_prompt_chars.
Exemplo:
Uma caneca de cerâmica preta fosca com base de cortiça sobre uma mesa de carvalho clara, subindo vapor, a câmera se aproxima lentamente, luz suave de janela pela manhã, profundidade de campo rasa, aparência comercial limpa, ritmo calmo.
4. Resolução e preço
-
Faça um rascunho em
720pprimeiro para verificar movimento e enquadramento; custa menos. Faça a versão final em1080ppara site, anúncios ou telas grandes.720pgeralmente é suficiente para feeds de celular. -
Chame
estimate_costpara as opções de rascunho e final e mostre ambos os preços ao usuário antes de executar qualquer coisa:{"input": {"model": "<id do modelo>", "mode": "i2v", "prompt": "Uma caneca de cerâmica preta fosca sobre uma mesa de carvalho clara, subindo vapor, a câmera se aproxima lentamente, luz suave da manhã", "image_url": "https://exemplo.com/caneca.jpg", "duration": 5, "resolution": "720p", "aspect_ratio": "9:16"}}
5. Gerar após a concordância do usuário
Chame generate somente após o usuário ter visto o preço e concordado. Se o usuário já definiu um orçamento e disse para prosseguir, você pode iniciar sem perguntar novamente, desde que amount_usd esteja dentro desse orçamento; ainda use amount_usd, não o orçamento, como max_cost_usd.
max_cost_usd: obrigatório. Use oamount_usdaprovado deestimate_cost, exatamente como retornado. O job será recusado se o preço for maior.request_id: obrigatório e único para cada novo job, ASCII imprimível sem espaços, no máximo 64 caracteres, por exemplocaneca-orbita-720p-1. Um ID usado nunca pode ser reutilizado para um job diferente.- Se
generatefalhar com um erro de rede, timeout, erro de sistema ou "Muitas solicitações", aguarde alguns segundos e tente novamente com o mesmoinput, o mesmomax_cost_usde o mesmorequest_id. O mesmo ID retorna o mesmo job e nunca é cobrado duas vezes.
{"input": {"model": "<id do modelo>", "mode": "i2v", "prompt": "Uma caneca de cerâmica preta fosca sobre uma mesa de carvalho clara, subindo vapor, a câmera se aproxima lentamente, luz suave da manhã", "image_url": "https://exemplo.com/caneca.jpg", "duration": 5, "resolution": "720p", "aspect_ratio": "9:16"}, "max_cost_usd": "<amount_usd from estimate_cost>", "request_id": "caneca-orbita-720p-1"}
Aguarde com check_job, passando job_id e wait_s definido como 55; se o job ainda estiver em execução, siga next_step e chame novamente com wait_s 55. Não faça polling em loop apertado.
Em caso de sucesso, forneça o link do resultado de outputs e o console_url. Os links expiram após 24 horas; check_job retorna links novos. Se uma saída tiver state blocked e nenhum url, a revisão de segurança ocultou o resultado após a geração; esse job ainda é cobrado, e o usuário pode contatar a Makernice para que seja revisado. Jobs com falha não são cobrados; informe ao usuário o motivo do error.
Para um vídeo com múltiplos clipes, execute um job por clipe, cada um com seu próprio estimate_cost, max_cost_usd e novo request_id, e forneça ao usuário o total acumulado.
Lidando com recusas
- Preço acima de
max_cost_usd: mostre o novo preço e pergunte antes de tentar novamente com um novomax_cost_usde um novorequest_id. - Acima do limite por job: sugira
720pou uma duração menor, ou o usuário pode aumentar o limite por job na Makernice. - Saldo insuficiente ou limite diário atingido: chame
get_balancee explique. Se a ferramentaget_topup_linkestiver disponível e o usuário perguntar como adicionar saldo, forneça o link uma vez. - Configurações erradas em um job na fila:
cancel_jobcom seujob_idlibera o valor retido integralmente.