O que fxai-poster · Cartaz e Design de Imagens faz?
Uma imagem bem projetada: capa de vídeo / cartaz / imagem de artigo / imagem para redes sociais / imagem de e-commerce / infográfico / imagem incorporada em vídeo – tudo passa por aqui. Este skill é a única fonte das especificações de design de imagens geradas por IA: a saída de qualquer skill segue as normas e portões de controle de qualidade definidos aqui, sem criar um conjunto separado.
Lista de Arquivos do Skill (Leia Primeiro, Depois Decida Qual Arquivo Consultar)
| Arquivo | Quando Ler |
|---|---|
references/01-mode-selection.md | Leitura obrigatória antes de começar: qual modo usar: web / image / hybrid |
references/02-web-mode-layout.md | Layout para web / hybrid: temas, estrutura de texto de capa, critérios de atratividade |
references/03-image-generation-and-hybrid-mode.md | Escrever prompts de geração de imagem, ajustar máscaras de fundo |
references/04-insert-into-first-video-frame.md | Como aplicar o cartaz ao primeiro frame do MP4 (método de inserção, dois pontos críticos, verificação) |
references/05-cover-template-library.md | Leitura obrigatória para capas de vídeo: 8 estilos, duração da seção de capa e trilha sonora |
references/06-infographic-layout.md | Blocos de informação ≥ 3: seleção de estrutura, cartões numerados, ícones e cores |
references/07-narrative-and-information-hierarchy.md | Definir tese, intensidade emocional, proporção e legibilidade (comum a todos os modos) |
references/08-image-type-matrix.md | Leitura obrigatória para definir o tipo: dimensões, elementos essenciais e foco da qualidade para 15 tipos de uso |
references/09-quality-gates.md | Leitura obrigatória antes da entrega: critérios e caminhos de correção para os três portões |
references/10-qwen2.1-prompt-specifications.md | Leitura obrigatória para escrever prompts: estrutura de seis seções, regras de aspas, vinculação de personagens, dimensões, chamadas entre skills |
references/11-cover-multi-size-and-platform-specs.md | Capas multiplataforma: chaves de dimensão, lados de margem, prioridade de geração, aceitação |
references/svg-icons.md, references/infographic-template.html | 23 fragmentos SVG inline; exemplo de layout de infográfico (apenas referência) |
poster.py, cover_batch.py | Entrada para geração de imagem; --gen-cover com texto / --gen-base sem texto |
cover_styles.py, cover_side.py | 8 estilos (render / render_matrix); determina o lado do texto com base na margem da imagem de fundo |
cover_prompt.py | Layout → prompt de geração de imagem, a terceira seção da estrutura de seis seções descreve o layout em detalhes |
cover_sizes.json | Fonte única e verdadeira de dimensões e especificações de cada site |
qc.py | Três verificações: pre / prompt / post / types |
Todo o resto não deve ser lido.
Modos e Estilos
hybrid (imagem gerada + texto sobreposto) / image (imagem gerada, texto escrito no prompt e renderizado na imagem) / web (layout puro de texto); para capas, a preferência é image com texto.
Critérios e ordem de decisão no arquivo 01, modos padrão para 15 tipos de uso no arquivo 08. As chaves dos 8 estilos estão no arquivo 05, saída em múltiplas dimensões no arquivo 11; pelo menos 2 versões por vídeo (com e sem pessoas).
Portões de Controle de Qualidade (Obrigatório Antes da Entrega, Três Portões)
Se qualquer portão falhar, não prossiga. Corrija conforme o relatório e execute novamente.
python qc.py pre --kind record_cover --w 1680 --h 1054 --mode hybrid --title "…" --hooks "数字前置,反差反转"
python qc.py post --img 封面.png --kind record_cover # Os outros dois: prompt / types
- Pré-verificação: proporção / modo / elementos essenciais / texto excede largura / atratividade insuficiente
- Portão do Prompt: estrutura de seis seções + quatro elementos da área de texto (aspas, posição, tamanho da fonte, cor da fonte) + vestuário
- Portão da Imagem Final: proporção / resolução / brilho / camadas / PSNR são portões rígidos; nitidez em três níveis (
SHARP_TIER), imagens puras adicionam--no-text
Critérios e caminhos de correção: veja references/09-quality-gates.md.
Regras Rígidas
- 🔴 Dimensões seguem o tipo de uso, sempre baseadas nas chaves de
cover_sizes.json: capa de vídeo verticalvert_9x16(1080×1920), horizontalhoriz_16x9(1920×1080); demais usos especificam a chave conforme necessário, este arquivo não define pixels. - 🔴 Capturas de tela e arquivos temporários do ffmpeg ficam no diretório temporário do sistema em
fxai_burn/poster/(o script cria automaticamente, usa caminhos ASCII), o resultado é copiado de volta ao projeto – caminhos chineses fazemfile://e a análise de filtros do ffmpeg falharem. - 🔴 Cores: altere apenas as variáveis CSS em
themes/*.css, cores não são fixadas em HTML. - 🔴 Fontes: siga a lista branca de
fxai-standard/references/06-fonts-and-media-licensing.md; se uma fonte estiver faltando, use uma fonte chinesa já instalada no sistema e registre na lista de entrega. - 🔴 Materiais para plataformas de mídia são enviados nus por padrão: sem URLs, contatos, QR codes, chamadas para seguir, marcas ou logotipos (critério: imagens para plataformas de mídia não carregam nenhuma informação de direcionamento). Apenas para cartazes de site oficial ou materiais externos use explicitamente
--brand/--site. - 🔴 Atratividade é o primeiro requisito de uma capa: o critério é se alguém para ao passar por ela; cada capa deve ter pelo menos 2 elementos de atratividade (palavras de tendência / números no início / contraste e reversão / etiqueta de identidade / promessa de resultado / senso de urgência).
- 🔴 O título principal da capa deve ter duas camadas: "positivo → reversão": a primeira linha mostra o lado alcançado, a segunda linha (cor de ênfase) mostra o custo/verdade; mencione palavras-chave de tecnologia com cápsulas; cada linha do título principal ≤ 7 caracteres (incluindo pontuação).
- 🔴 Cartazes puramente textuais têm o maior impacto: sem imagens decorativas, sem close-ups de pessoas, título não ultrapassa duas linhas.
- 🔴 A duração (quadros) da seção de capa e o método de preenchimento de áudio são definidos apenas em
references/05-cover-template-library.mdna seção "Duração da Seção de Capa"; este arquivo não define valores. 🔴 A aplicação da capa deve vir antes da mixagem da BGM: a seção de capa tem seu próprio áudio de preenchimento, não é música de fundo; a BGM deve ser a última etapa, atuando sobre o vídeo completo já com capa. Veja a seção 1d do arquivo04. - 🔴 Este skill não gera vídeos: vídeos são gerados por
fxai-audio-video/fxai-mv-pipeline/fxai-short-drama; este skill entrega apenas imagens ou aplica o primeiro quadro. - 🔴 Blocos de informação ≥ 3 usam layout de infográfico (arquivo
06); uma única capa carrega apenas uma tese. - 🔴 Portão de legibilidade (arquivo
07): contraste de texto do corpo ≥ 4.5:1, texto grande ≥ 3:1, título principal legível em miniatura de 200px, recompor ao mudar de proporção sem cortar; ícones SVG inline proíbem emoji, cores fixadas em hexadecimal. - 🔴 Obrigatório passar pelos três portões de qualidade antes da entrega (arquivo
09): qualquer FALHA impede a entrega; se a imagem de fundo for reprovada, gere novamente, não tente corrigir com edição. - 🔴 Dimensões de capa aceitam apenas chaves, por padrão saem apenas duas: pixels e especificações de cada site estão apenas em
cover_sizes.json; o registro/projeto referencia apenasvert_9x16/horiz_16x9, e osizesdo arquivocapa.jsondo projeto lista apenas essas duas chaves. As demais chaves são geradas apenas quando o usuário especifica. 🔴 A proporção da caixa de upload da plataforma (vertical 3:4 / horizontal 4:3) é uma caixa de recorte da própria plataforma, não justifica uma terceira saída; texto vertical deve estar dentro da área segura de 3:4. Detalhes no arquivoreferences/11. - 🔴 Texto da capa é renderizado diretamente pela geração de imagem por padrão: as instruções de layout são escritas na terceira seção do prompt via
cover_prompt.py(--gen-cover); "imagem sem texto" é permitida apenas para rota de camada sobreposta (--gen-base). Veja o arquivo11. - 🔴 Responsabilidade única: a geração de imagem é sempre delegada a
fxai-scene-gen, a localização do serviço afxai-workflow; o navegador usagpu.chrome_exe()defxai-slide-video, o ffmpeg usaav.ffmpeg_libass()defxai-audio-video. Este skill não conhece, não configura endereços de serviço e não fixa caminhos de executáveis.
A redação e os critérios dos itens 5 a 8 acima estão em references/02-web-mode-layout.md.
Execução Direta
# hybrid (padrão: imagem gerada + texto sobreposto)
python poster.py --mode hybrid --out-dir <projeto> --name cover --size 1680x1054 \
--prompt "…" --title "Ela voltou|Desta vez, não vou recuar" --tag "Drama antigo · Episódio 3" --overlay 0.5
# image (capa: texto escrito no prompt, imagem gerada com texto renderizado)
python poster.py --mode image --out-dir <projeto> --name mv_cover \
--prompt "…(estrutura de seis seções, terceira descreve layout em detalhes)…" --size 1080x1920
# Aplicar ao primeiro quadro do vídeo
python poster.py --mode web --out-dir <projeto> --name cover --title "…" \
--attach-video <projeto>/video_final.mp4 --cover-frames 10
Parâmetros de layout do modo web (--theme / --kicker / --sub / --keys) estão em 02-web-mode-layout.md.
Cartão de Informação de Abertura
Ao aplicar o primeiro quadro, sobreponha "Produção / Nome do Drama / Nome do Episódio / Destaque / Créditos" usando intro_card.py; comando, máscara e margens de recorte em references/04-insert-into-first-video-frame.md na seção "Cartão de Informação de Abertura".
Lista de Projeto (A Página Exibe o Progresso com Base Nela)
Crie o arquivo do projeto assim que o diretório de saída for criado; atualize a cada etapa concluída; estrutura no arquivo 01 do fxai-standard.
P=~/.workbuddy/skills/fxai-standard/scripts/fxai_project.py
python "$P" init "<projeto>" --title <nome> --category image --skill fxai-poster
python "$P" stage "<projeto>" --script 2 --image 1 --audio 0 --video 0