← Blog

Construa um Pipeline Criativo de IA com GLM-5 + WaveSpeed

Construa um pipeline criativo completo de IA: o GLM-5 escreve prompts, o WaveSpeed gera imagens e vídeos, tudo orquestrado via API.

10 min read
Construa um Pipeline Criativo de IA com GLM-5 + WaveSpeed

Olá, meu nome é Dora. Eu ficava alternando entre ferramentas só para conseguir lançar um clipe de produto curto. Brief em um lugar. Imagens em outro. Vídeo em outro lugar. Notas espalhadas. Nada disso era difícil, mas era… barulhento. Então tentei algo menor: um caminho estável e de ponta a ponta que me leva de um brief simples a um clipe finalizado sem o giro constante. Estou chamando isso de pipeline criativo com GLM-5. Testei por duas semanas, em três conceitos curtos e alguns fragmentos avulsos de trabalhos de clientes. Não é nada espetacular. Mas fez o trabalho parecer mais leve.

O que estamos construindo (visão geral de ponta a ponta)

Eu queria um caminho único de um brief curto até um vídeo de 6 a 10 segundos, com espaço para pequenas iterações, mas sem caça a funcionalidades. O formato é assim:

  • Escrevo um brief simples (duas ou três frases). Tom, assunto, quaisquer restrições.
  • GLM-5 transforma isso em descrições de cenas claras.
  • FLUX ou Seedream gera imagens estáticas usando o WaveSpeed para manter a inferência previsível.
  • WAN 2.5 ou Seedance cria movimento a partir das imagens aprovadas.
  • GLM-5 revisa os resultados e sugere edições precisas, não reescritas.

Algumas regras que estabeleci para mim mesma:

  • Manter os prompts curtos e estruturados. Uso os mesmos campos sempre: Sujeito, Cenário, Estilo, Notas de movimento, Restrições.
  • Lotes pequenos. No máximo três conceitos por execução. Isso mantinha minha cabeça clara e facilitava a comparação.
  • Congelar seeds quando gosto de algo. Variações depois, não durante.

Na prática, o pipeline reduziu cliques e indecisões mais do que o tempo bruto. Na terceira execução, economizei cerca de 15 minutos de uma passagem típica de 90 minutos do conceito ao clipe. O maior ganho foi mental: menos ramificações, menos desvios do tipo “e se eu tentar X”. Era exatamente isso que eu buscava.

Etapa 1 — GLM-5 gera descrições de cenas a partir do brief

Comecei com um brief mínimo: “Luz quente da manhã em uma caneca de cerâmica perto de uma janela. Vapor suave. Humor minimalista e calmo. Para uma story social 9:16. Cores da marca: destaque em verde-azulado suave.”

GLM-5 se destaca na escrita criativa com versatilidade estilística, de acordo com a documentação oficial da Zhipu AI. O que eu precisava do GLM-5 não era criatividade. Eu queria estrutura: cartões de cena consistentes que um renderizador pudesse seguir. Aqui está o formato que pedi e mantive:

  • Título da cena
  • Tipo de plano (ex.: plano médio fechado)
  • Composição (regra dos terços, notas sobre espaço negativo)
  • Iluminação
  • Paleta
  • Texturas/materiais
  • Notas de movimento (se houver)
  • Restrições rígidas (sem rostos, sem texto no quadro, dimensões de saída)

A primeira passagem pareceu prolixa. GLM-5 explicava demais o humor. Ajustei: “Mantenha cada campo em uma única frase. Use substantivos específicos e termos de câmera.” Isso resolveu a maior parte. Na segunda execução, eu estava obtendo cartões precisos que se mapeavam claramente para prompts de imagem.

Pequena vitória: pedi ao GLM-5 que adicionasse itens “proibidos” com os quais já me deparei antes (mãos extras, logotipos aleatórios, reflexos com rostos). Isso reduziu a limpeza posterior. Não é perfeito, mas com menos surpresas.

Esta parte não economizou tempo de início: economizou fadiga de julgamento depois. Eu não estava tentando adivinhar entre cinco estilos diferentes de prompt. Tinha apenas um.

Etapa 2 — FLUX / Seedream gera imagens via WaveSpeed

Rodei tanto FLUX quanto Seedream porque eles têm temperamentos diferentes. FLUX me deu imagens limpas e voltadas para design. Seedream divagou um pouco mais, mas às vezes encontrou texturas bonitas em cerâmicas e madeira. Rodei ambos pelo WaveSpeed para padronizar etapas, seeds e schedulers sem gerenciar dezenas de parâmetros manualmente.

Notas de campo:

  • A repetibilidade do WaveSpeed foi importante. Quando gostava de um quadro, congelava o seed e ajustava apenas guidance e steps. Isso tornava os “acidentes felizes” reproduzíveis.
  • Defini a proporção no resultado alvo (9:16) desde o início. Recortar depois sempre deixava o vapor com aspecto estranho.
  • Mantive os prompts conforme o que vinha do GLM-5. Sem floreios poéticos. Estéril, mas reduziu bordas estranhas.

Fricção: mãos e janelas. Reflexos adoram inventar pessoas. Adicionei “sem figuras, sem silhuetas, sem reflexos humanos” às restrições e aumentei um pouco o negative guidance. Isso reduziu o ruído.

O tempo de execução por imagem variou de rápido a “tempo para um café” dependendo da minha máquina. Gerei de 8 a 12 candidatos por cena e depois cortei duramente para 2. Se não conseguia escolher rapidamente, significava que o prompt não estava preciso o suficiente. De volta ao GLM-5 com uma pequena edição, em vez de garimpar imagens.

Etapa 3 — WAN 2.5 / Seedance gera vídeo a partir das imagens

Esta parte é onde normalmente perco o fio da meada: muitas opções de movimento. Limitei-me a dois modos: paralaxe suave e movimento de câmera gentil. WAN 2.5 lidou convincentemente com a paralaxe. Seedance se saiu melhor com micro-movimentos como vapor e deslocamentos suaves de foco.

Meu checklist de passagem da imagem para o movimento:

  • Exportar PNG limpo na resolução alvo (1080x1920 para testes).
  • Fornecer uma nota de movimento precisa (ex.: “dolly-in de 2 a 3°, manter alça da caneca no terço, deriva de vapor favorável a loop”).
  • Limitar a duração a 6 a 8 segundos. Clipes longos ficaram imprecisos e chamavam atenção para artefatos do modelo.

Surpresas:

  • Cintilação de textura. Esmaltes com grão ficam ótimos como imagens estáticas e ficam ruidosos em movimento. Reduzi a intensidade da textura na etapa 2 quando sabia que iria animar.
  • Distorção de bordas próximas às extremidades. Composições centralizadas se sustentaram melhor. Canecas fora do eixo curvavam como borracha.

As melhores execuções pareciam invisíveis. Quando funcionava, eu parava de pensar no modelo e simplesmente observava a luz respirar. Quando não funcionava, desmoronava rápido, geralmente porque pedi movimento demais.

Etapa 4 — GLM-5 revisa os resultados e sugere iterações

Trouxe o GLM-5 de volta como um segundo par de olhos tranquilo. Pedi a ele para:

  • Comparar os clipes finais com o brief original.
  • Sinalizar incompatibilidades (paleta, humor, restrições).
  • Propor uma pequena mudança por clipe, não cinco.

Isso foi mais útil do que eu esperava. GLM-5 identificava consistentemente desvios de cor. Em uma execução, observou que o destaque em verde-azulado parecia frio contrastando com a luz quente: uma sutil mudança de matiz no fundo corrigiu isso.

Mas às vezes também exagerava, sugerindo novos adereços ou sobreposições de texto. Respondi estabelecendo uma regra: “Sem novos substantivos. Ajuste apenas iluminação, cor ou intensidade de movimento.” Isso manteve as iterações fundamentadas.

O loop aqui foi rápido: uma passagem de notas, uma passagem de correções. Se ainda não estava satisfeita, arquivava o conceito em vez de moer. Essa contenção impediu que o pipeline se tornasse inchado.

Código completo (Python, WaveSpeed SDK)

Mantive a orquestração simples. Um script Python une as etapas com alguns pequenos auxiliares:

  • Uma classe Brief que armazena Sujeito, Cenário, Estilo, Movimento, Restrições.
  • Um auxiliar glm5() que formata o prompt e analisa os cartões de cena em dicts.
  • Um auxiliar images() que chama o WaveSpeed com FLUX ou Seedream, passando seeds, steps e prompts negativos.
  • Um auxiliar video() que entrega as imagens ao WAN 2.5 ou Seedance com notas de movimento.
  • Um auxiliar review() que alimenta miniaturas ou gifs curtos de volta ao GLM-5 para notas de alinhamento.

Dois detalhes mantiveram tudo estável:

  • Escrevi resultados em disco com caminhos determinísticos: run_id/scene_01/flux_seed1234.png. Facilitou o rastreamento.
  • Registrei parâmetros próximos aos resultados em um pequeno arquivo YAML. Quando um clipe ficava certo, eu sabia exatamente o porquê.

Não estou descartando o código aqui para evitar transformar isso em um colá-tudo. A estrutura acima é suficiente para recriar com sua própria pilha. Se você já usa o WaveSpeed, trata-se principalmente de escolher onde congelar a aleatoriedade e onde permitir variação.

Detalhamento de custos para 10 ativos

Os custos variam muito por provedor e configurações de modelo, então tome isso como um intervalo prático dos meus testes, não uma promessa. Dez ativos aqui significa 10 clipes verticais curtos (uma cena cada), com 8 a 12 candidatos de imagem por cena.

  • Prompting e revisão com GLM-5: leve. O preço da API GLM-5 é de $1,00/M de entrada e $3,20/M de saída, significativamente mais barato que o Claude Opus 4.6 ($5/M de entrada, $25/M de saída). Nas minhas execuções, cada ativo usou cerca de 2 a 3 interações de brief mais uma revisão. Se você está em precificação baseada em uso, isso geralmente fica em poucos dólares para 10 ativos.
  • Geração de imagens: o principal fator variável. Em steps médios com 8 a 12 candidatos por cena, vi custos na faixa de dígito único médio a alto por ativo em planos de pagamento por inferência. Menos se você processar em lote em sua própria GPU.
  • Geração de vídeo: também variável. Clipes de paralaxe simples custam menos; movimento com físicas custa mais. Nas minhas notas, isso ficou similar às imagens por ativo, às vezes um pouco mais alto.

Total aproximado para 10 ativos, modelos mistos, configurações conservadoras: baixas centenas se totalmente baseado em nuvem com variação generosa; notavelmente menos se você hospeda as etapas de imagem e paga apenas pelo movimento. Se você for rígido — 6 candidatos em vez de 12, uma passagem de movimento — pode reduzir isso em um terço. Se perseguir variações, dobra rapidamente. Seeds e pequenas regras de iteração ajudam a domar a conta.

Extensões: adicionar LoRAs, upscaling, processamento em lote

Depois que a base pareceu estável, experimentei algumas extensões.

  • LoRAs para textura de marca: treinei um pequeno pacote de destaque para esmalte de cerâmica e papel de fundo. Ajudou a manter materiais consistentes entre cenas. O truque foi o peso modesto. LoRAs pesadas puxavam tudo para o mesmo visual.
  • Upscaling suave: faço upscale apenas após o movimento, não antes. O pré-upscale tornava os artefatos mais evidentes. O pós-upscale com um modelo leve que preserva detalhes manteve as bordas limpas sem inventar poros em uma caneca.
  • Processamento em lote: adicionei uma fila onde cada conceito avança como uma unidade. Sem misturar etapas de briefs diferentes. Parece rígido, mas me salvou da espiral do “só mais uma tentativa”.

Algumas coisas que não mantive:

  • Legendagem automática dentro do pipeline. Isso puxava os visuais para o território de “conteúdo” em vez de imagens-que-se-movem. Faço legendas fora, mais perto da publicação.
  • Mistura agressiva de estilos. Ficava bom em grade e cansativo em movimento.

Para quem se encaixa: criadores que gostam de caminhos previsíveis e ganhos pequenos e estáveis. Quem não vai se empolgar: pessoas que perseguem espetáculo ou arte de alta variância. Tudo bem.

Meu objetivo era tornar o pipeline criativo com GLM-5 mais silencioso, não mais inteligente. Nos bons dias, é exatamente isso: uma caneca, um pouco de luz e menos abas abertas do que o normal. Fico com isso.

Compartilhar