Geração de imagens
Esta skill transforma a mensagem de uma postagem em um arquivo de imagem finalizado no tamanho exato que cada plataforma deseja. Ela controla o método de produção: como a cena é escolhida, como o título entra na imagem, como o rosto de uma pessoa real é mantido real, como a proporção de aspecto é controlada, como o arquivo é verificado e como o texto alternativo é escrito. Ela delega para brand/brand-profile.md as constantes de marca (paleta, fontes, regras de logotipo, regras de semelhança), para a skill writing as palavras do título, para a skill video-editing as capas construídas dentro de uma edição de vídeo e para a skill review-loop a verificação independente antes de qualquer envio.
Ordem de autoridade: brand-profile.md vence em constantes de marca e texto de conformidade; esta skill controla o método.
Antes de começar
- Encontre o workspace de marketing (padrão
marketing/). Se não houver um, diga em uma linha e ofereça-se para executar a skillbrand-setup; se o usuário quiser continuar, peça apenas a paleta (dois ou três códigos hexadecimais), uma fonte para o título e se uma pessoa real aparece. - Leia de
brand/brand-profile.md:## Identidade visual(paleta, fontes, uso do logotipo, estilo de imagem),## Semelhança(caminhos de imagens de referência e regras),## Plataformas(para onde isso vai),## Conformidade(qualquer coisa que deve ou não aparecer em uma imagem),## Limitese## Ferramentas(qual modelo de imagem está disponível). - Leia
brand/voice-learnings.mdantes de fixar qualquer redação de título: títulos são cópia, e a cópia deve soar como a pessoa. - Leia
brand/performance-learnings.mdpara qualquer coisa que a conta tenha aprendido sobre quais imagens geram alcance. - Trabalhe na pasta da peça,
content/<aaaa-mm-dd>-<slug>/. As imagens vão para uma subpastaimages/lá. - Saiba o formato antes de produzir: estática simples, carrossel, capa de vídeo curto, capa de vídeo longo ou estática animada. Se ninguém escolheu, escolha o mais simples que se encaixa e diga o motivo em uma linha.
O padrão
- O título é incorporado à cena pelo modelo de imagem, nunca colado por cima em código. Peça ao modelo para renderizar o título e o subtítulo como parte da imagem, iluminados e posicionados como um designer faria. Por quê: texto adicionado depois com PIL, sobreposições estilo Canva ou HTML fica em um plano diferente da fotografia e parece um template barato, que é o motivo mais comum para as pessoas rejeitarem imagens de IA. O modelo de imagem agora é bom em texto curto exibido; deixe-o fazer o trabalho.
- O título é o herói. Grande, ousado, condensado, cerca de 40% da altura visível e nunca menos de um terço, duas ou três linhas curtas, uma palavra de destaque na cor de acento. Se parecer uma legenda, falhou. Por quê: a grade e o feed são julgados no tamanho de miniatura em um telefone, e apenas um título grande sobrevive a isso.
- Todo o texto vive na zona segura da grade. O quadrado 1:1 centralizado da tela, com uma margem adicional de 7 a 8% em cada lado, com espaço livre acima do título e nada importante nos 12% inferiores. Por quê: grades de perfil, prévias de link e cortes no feed cortam as bordas. Abra
references/grid-safe-zone.mdpara números por formato. - Cada imagem é uma cena distinta e de aparência real construída para aquela mensagem. Uma pessoa fazendo algo em um lugar real, ou uma metáfora visual forte, em cor natural com o acento da marca usado com moderação. Nunca o mesmo retrato no mesmo fundo com apenas as palavras trocadas. A única exceção é uma série semanal deliberada, que pode repetir seu layout de propósito.
- Pessoas reais permanecem reais. Quando uma pessoa real aparece, seu rosto vem de suas fotos de referência, em sua idade e constituição reais. Nunca invente um rosto, nunca publique as próprias fotos de referência.
- Tamanho exato, verificado. Cada arquivo é finalizado no tamanho exato em pixels em
references/asset-sizes.mde suas dimensões são verificadas, não presumidas. - Nunca remende a forma no código. Não preencha com espaços vazios, letterbox, espelhe, estique ou componha uma imagem gerada para forçar uma proporção de aspecto. Re-role com uma âncora de aspecto (abaixo). Por quê: uma imagem com preenchimento vazio tem espaço morto que parece inacabado, e é óbvio à primeira vista.
- Uma linha de texto alternativo por imagem. Descrição simples da cena e do título incorporado, sem hashtags, sem links, sem venda.
O método
1. Decida a imagem (nova para cada imagem)
- Nomeie a mensagem central única da postagem em uma frase.
- Decida a emoção: reconfortante, inteligente, calma, engraçada, alegre ou um aviso gentil. Padrão para calorosa. Nunca pessimista.
- Invente uma ideia visual que a carregue: uma pessoa em um momento real (ao telefone em uma rua movimentada, em uma mesa de cozinha com um café, desfazendo caixas), ou uma metáfora legível única (uma rede de segurança sob uma fachada de loja, uma corrente com um elo rachado, um calendário com um dia circulado).
- Escreva o título (2 a 5 palavras é o ideal, nunca mais de três linhas curtas) e um subtítulo opcional de uma linha. Lidere com a linha literal e simples que diz o que é; ofereça um gancho mais inteligente como uma alternativa rotulada. Por quê: títulos simples tendem a vencer em clareza e em pesquisa, e as pessoas os escolhem quando têm a opção.
- Planeje a zona vazia para o título desde o início, geralmente uma área mais escura de céu, parede ou sombra dentro do quadrado seguro da grade.
2. Gere a cena com o título nela
Escreva um prompt que descreva a cena, a luz, o enquadramento e o texto juntos. Soletre o título exatamente, entre aspas, diga qual palavra é a cor de acento, peça por tipo "enorme, ousado, condensado, escala de pôster" na zona reservada, e mantenha o subtítulo curto o suficiente para não quebrar. Deixe o fundo muito limpo.
Proteções contra erros, porque os modelos de imagem falham de maneiras previsíveis:
- Um subtítulo que quebra frequentemente tem uma palavra duplicada na quebra ("primeiro primeiro"). Mantenha-o em uma linha.
- Texto fixo pequeno (um nome, um handle, um endereço web) é frequentemente escrito errado. Se a marca usa uma pequena etiqueta de nome, carimbe esse elemento depois (
scripts/cover_from_frame.py --wordmarkmostra como) em vez de pedir ao modelo. - Títulos longos encolhem e ficam distorcidos. Menos palavras, maior.
Abra references/prompting-and-aspect.md para estrutura de prompt, truques de proporção de aspecto e o exemplo prático do Gemini. A versão curta: se sua ferramenta expõe uma configuração de proporção de aspecto, use-a; se ela só retorna quadrados, edite em uma tela em branco da proporção alvo (scripts/aspect_scaffold.py) e nunca passe uma imagem de referência quadrada junto.
3. Travamento de semelhança (qualquer imagem com uma pessoa real)
Leia references/likeness-lock.md antes da primeira imagem com rosto de uma sessão. Em resumo:
- Construa a partir das fotos de referência em
brand/reference-images/: edite um retrato limpo e de frente para a cena em vez de descrever a pessoa em palavras, e alimente dois ou três recortes de rosto apertados (não selfies de cena inteira, cujos fundos sangram) como referências de identidade. Gire fotos de telefone na vertical primeiro. - Verifique o resultado item por item contra uma foto colorida fornecida (cor do cabelo, estilo do cabelo, barba, formato do rosto e constituição, óculos, idade). Nunca julgue uma semelhança contra outra imagem de IA.
- Reserve cerca de três ou quatro novas tentativas honestas. Se ainda não for a pessoa, reconstrua a peça como uma cena sem rosto (a metáfora mais o título). Se isso também não funcionar, segure-a e diga isso. Um rosto errado é pior do que nenhuma imagem.
- Nunca publique ou recorte as fotos de referência diretamente na imagem. Elas são apenas referências de identidade.
4. Capas de quadro real para vídeo filmado
Quando a pessoa filmou um vídeo de cabeça falante, a capa é construída a partir de um quadro real desse vídeo, não de uma semelhança gerada. O rosto é genuinamente deles e a capa corresponde ao vídeo. Este é o único lugar onde uma sobreposição de título projetada em uma foto é a escolha certa, porque está intitulando uma fotografia real, exatamente como um designer de miniatura faria.
- Extraia quadros candidatos (
ffmpeg -ss <t>) ou deixe o script encontrar o quadro de rosto mais nítido em um intervalo de tempo, e escolha um com contato visual, expressão calorosa (não no meio de uma palavra), foco nítido e sem legendas queimadas. - Execute
scripts/cover_from_frame.py(veja seu--help): ele corta para o tamanho da capa, adiciona um degradê suave, ajusta automaticamente o título herói com uma palavra de acento e um sublinhado dentro do quadrado seguro da grade, adiciona uma faixa opcional de subtítulo e uma etiqueta de nome opcional, e então verifica cada caixa de texto contra a zona segura. - Combine a forma do vídeo: um curto 9:16 recebe uma capa 9:16 1080x1920 com o texto no quadrado central; um longo 16:9 recebe uma capa 1280x720. Se a edição estiver sendo feita com a skill
video-editing, sua própria etapa de capa faz isso dentro da edição.
5. Estáticas animadas (a única exceção para "sem sobreposições")
Uma estática animada é um MP4 em loop de 4 a 6 segundos que preenche um espaço estático e é tratado como vídeo pela maioria dos feeds. O texto tem que ser uma camada separada para se mover, então aqui, e somente aqui, o texto cinético projetado fica sobre uma cena gerada. Ele é mantido no mesmo padrão: uma cena real, título herói, cores da marca, posicionamento seguro na grade, e o título completo já visível no quadro 0, porque a grade exibe um vídeo a partir de seu primeiro quadro. Abra references/animated-statics.md para quando usar um, a configuração para scripts/animate_render.js, a regra de direitos de áudio e os pontos de revisão.
6. Nenhum modelo de imagem disponível: a rota HTML
Se nenhum modelo de imagem estiver conectado, ou a peça for um layout de tipo puro (um cartão de citação literal, um cartão de estatística, um carrossel de slides de texto, um banner de perfil), projete-o em HTML e CSS e renderize-o com Playwright. Regras que importam: a viewport é o tamanho real de saída, sem transformações de escala CSS, fontes carregadas antes da captura de tela, e as dimensões do PNG verificadas depois. Abra references/html-fallback.md e use scripts/render_html.js. Um cartão de citação também é a rota certa quando um depoimento deve ser reproduzido palavra por palavra, porque o texto gerado pode desviar.
7. Finalize, arquive e descreva
- Finalize no tamanho exato para cada destino (
references/asset-sizes.md). Um mestre 4:5 geralmente atende Instagram, Facebook, LinkedIn e Threads; derive um 1:1 apenas por corte central se todo o texto estiver dentro do quadrado central, caso contrário, gere um quadrado separado. - Execute
python3 scripts/check_image.py <arquivo> --expect LxA --gridpara confirmar dimensões e escrever uma folha de prévia da grade (o quadrado central e cortes 3:4 no tamanho de miniatura, com a caixa segura desenhada). - Salve em
content/<aaaa-mm-dd>-<slug>/images/com um nome que diga o que é (<slug>-feed-4x5.png,<slug>-cover-9x16.png). - Escreva uma linha de texto alternativo por imagem no
PACKAGE.mdda peça, por exemplo: "Uma mulher com um avental polvilhado de farinha virando a placa de uma porta de padaria para ABERTO, com o título 'Aberto antes da correria escolar' no topo." Cada slide de carrossel recebe sua própria linha. Capas de vídeo não precisam de texto alternativo. - Mantenha o prompt final (e quaisquer notas de novas tentativas) na pasta da peça, para que uma futura nova tentativa comece do que funcionou.
Verificações antes do envio (o loop de revisão)
Cada geração e cada nova tentativa é uma nova imagem, então recebe a verificação completa no arquivo salvo, aberto e olhado, nunca julgado a partir do prompt:
- Ortografia de cada palavra no título, subtítulo e qualquer etiqueta carimbada; nenhuma palavra duplicada.
- Primazia do título: dominante, lê-se primeiro, legível no tamanho de miniatura da grade de perfil.
- Seguro na grade: todo o texto dentro do quadrado centralizado com as margens; nada tocando uma borda; nada na faixa inferior. Para qualquer vídeo, julgue o primeiro quadro.
- Semelhança (peças com rosto): a rubrica contra uma foto colorida fornecida. Incerteza conta como falha.
- Forma: dimensões verdadeiras correspondem ao alvo; nada preenchido ou esticado.
- Marca: paleta e fontes do perfil, acento usado com moderação, cor natural.
- Distinto: não é uma cópia próxima das últimas imagens na conta.
- Verdade e conformidade: qualquer figura ou alegação na imagem remonta a uma fonte; rótulos exigidos de
## Conformidadeestão presentes; nada de## Limitesaparece.
Se falhar, corrija a causa e faça uma nova tentativa, então julgue o novo arquivo da mesma forma. Em seguida, entregue o conjunto para a skill review-loop para a passagem independente. Se uma peça não puder ser feita limpa, mantenha o prompt, diga o que falhou e segure-a. Nunca envie um rosto substituto ou uma alternativa de texto colado.
Adaptando
- Nenhuma pessoa real na câmera? Pule o travamento de semelhança e apoie-se em cenas e metáforas; o resto do padrão permanece inalterado.
- Um negócio de produto? Trate o produto como o "rosto": use fotos reais do produto como referências para que o modelo mantenha sua forma, rótulo e cor honestos.
- Modelo de imagem diferente? O método permanece. Apenas a mecânica em
references/prompting-and-aspect.mdmuda (como a proporção de aspecto é definida, se imagens de referência são aceitas). - Um formato de série (resumo semanal, dica da semana): fixe um layout composto para a série e varie todo o resto entre as séries.
- Indústrias regulamentadas: verifique
## Conformidadepara qualquer coisa que deve aparecer em uma imagem ou que nunca deve aparecer (números, garantias, depoimentos). Em caso de dúvida, mantenha as alegações fora da imagem e na legenda onde o aviso legal reside. - Suas próprias lições: quando o usuário rejeitar ou trocar uma imagem, anote o quê e por que em
brand/performance-learnings.md(lições visuais) oubrand/voice-learnings.md(redação do título), para que a próxima imagem comece mais perto.
Arquivos nesta skill
| Arquivo | Abra-o quando |
|---|---|
references/asset-sizes.md | finalizando qualquer arquivo; verificando o tamanho atual de uma plataforma |
references/grid-safe-zone.md | colocando texto em qualquer formato |
references/prompting-and-aspect.md | escrevendo um prompt, lutando contra a proporção de aspecto, usando Gemini |
references/likeness-lock.md | qualquer imagem com uma pessoa real |
references/animated-statics.md | fazendo um MP4 em loop para um espaço estático |
references/html-fallback.md | sem modelo de imagem, ou um layout de tipo puro |
scripts/aspect_scaffold.py | fazendo uma tela em branco na proporção alvo para ferramentas baseadas em edição |
scripts/cover_from_frame.py | construindo uma capa a partir de um quadro de vídeo real |
scripts/animate_render.js | renderizando uma estática animada |
scripts/render_html.js | renderizando um layout HTML |