Communitygithub.com

product-video

Planeje e gere vídeos curtos de produtos e e-commerce com Makernice, como demonstrações de produtos, clipes de anúncios e vídeos para listagens em marketplaces. Abrange escolha do modo, escrita do prompt, seleção de proporção e resolução, verificação do preço e execução do trabalho.

O que é product-video?

Esta skill permite que um agente de IA planeje e gere vídeos curtos de produtos e e-commerce usando a API da Makernice, transformando uma foto pública de um produto em um clipe de vídeo dinâmico. Ela suporta modos como imagem-para-vídeo (i2v), referência-para-vídeo (r2v) com múltiplas fotos, e texto-para-vídeo (t2v) quando nenhuma foto está disponível, garantindo que o agente escolha a melhor abordagem com base nos ativos fornecidos. O agente coleta detalhes essenciais como produto, foto (URL pública), plataforma de destino (definindo proporção como 9:16 para TikTok/Reels, 16:9 para YouTube ou 1:1 para marketplaces) e orçamento, depois escreve prompts descritivos estruturados com assunto, movimento de câmera, configuração e estilo. A skill também gerencia todo o pipeline de geração: estima custos via ferramenta `estimate_cost`, solicita confirmação do usuário antes de executar (a menos que o orçamento já esteja definido), executa o job com `request_id` único e lida com erros de rede com novas tentativas seguras. Para vídeos com múltiplos clipes, ela executa jobs separados, cada um com seu próprio custo e ID, fornecendo totais acumulados. O tratamento de recusas inclui ajuste de preço, downgrade de resolução/duração, verificação de saldo e cancelamento de jobs em fila. A skill suporta plataformas como Claude Code, Cursor, Codex e outros agentes compatíveis com a API Makernice, com preços em USD.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/makernice/makernice-plugin/tree/HEAD/skills/product-video

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

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 https para 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)
  • 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 i2v com a foto como image_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 r2v se o modelo tiver um, com reference_images, dentro de max_references.
  • Sem foto: use um modo t2v e descreva o produto com precisão.
  • Se um modelo listar negative_prompt em options, 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:

  1. Sujeito: o produto exato, com material e cor ("uma caneca de cerâmica preta fosca com base de cortiça").
  2. 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.
  3. 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").
  4. 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 720p primeiro para verificar movimento e enquadramento; custa menos. Faça a versão final em 1080p para site, anúncios ou telas grandes. 720p geralmente é suficiente para feeds de celular.

  • Chame estimate_cost para 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 o amount_usd aprovado de estimate_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 exemplo caneca-orbita-720p-1. Um ID usado nunca pode ser reutilizado para um job diferente.
  • Se generate falhar com um erro de rede, timeout, erro de sistema ou "Muitas solicitações", aguarde alguns segundos e tente novamente com o mesmo input, o mesmo max_cost_usd e o mesmo request_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 novo max_cost_usd e um novo request_id.
  • Acima do limite por job: sugira 720p ou 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_balance e explique. Se a ferramenta get_topup_link estiver 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_job com seu job_id libera o valor retido integralmente.

Habilidades Relacionadas