Corrige proporção de cartazes, layout paisagem e recorte de imagens ilustrativas
This commit is contained in:
@@ -1400,8 +1400,13 @@ Detalhes do Cartaz:
|
||||
- Orientação: "${orientacao === 'paisagem' ? 'Paisagem/Horizontal' : 'Retrato/Vertical'}"
|
||||
|
||||
Por favor, gere o CONTEÚDO textual e estrutural do cartaz em HTML.
|
||||
REGRAS FUNDAMENTAIS E ESTÉTICAS:
|
||||
- O cartaz deve caber ESTRITAMENTE em UMA ÚNICA PÁGINA (Tamanho ${tamanho || 'A4'}, orientação ${orientacao === 'paisagem' ? 'Horizontal' : 'Vertical'}). Não crie textos longos ou listas que fariam a folha "vazar" na impressão.
|
||||
|
||||
REGRAS DE IDIOMA E LOCALIZAÇÃO:
|
||||
- O conteúdo gerado deve ser IMPRETERIVELMENTE em português do Brasil (pt-BR). Não use termos em outros idiomas de forma desnecessária.
|
||||
|
||||
REGRAS FUNDAMENTAIS E ESTÉTICAS DE DIAGRAMAÇÃO:
|
||||
- O cartaz deve caber ESTRITAMENTE em UMA ÚNICA PÁGINA FÍSICA (Tamanho ${tamanho || 'A4'}, orientação ${orientacao === 'paisagem' ? 'Horizontal/Paisagem' : 'Vertical/Retrato'}). Não extrapole este espaço de forma alguma.
|
||||
- Limite a quantidade de conteúdo: gere no máximo 2 ou 3 cards (divs de conteúdo) no total. Cada card deve ter pouquíssimo texto (no máximo 3 ou 4 itens curtos por card).
|
||||
- Distribua a informação em CARDS (pequenos cartões ou blocos curtos) bem espaçados, parecidos com pôsteres infantis modernos, onde o texto NÃO ocupa uma folha corrida.
|
||||
- Os textos devem ser extremamente curtos, diretos, visuais e fáceis de ler.
|
||||
- Use emojis apropriados para crianças.
|
||||
@@ -1409,7 +1414,7 @@ REGRAS FUNDAMENTAIS E ESTÉTICAS:
|
||||
- Se for "informativo", destaque avisos gerais e orientações (ex: horários, cardápio, provas) em caixas curtas e legíveis.
|
||||
- Se for "conscientizacao", use frases curtas de impacto sobre campanhas (ex: prevenção, saúde, coleta seletiva), acompanhadas de dicas em pequenos blocos.
|
||||
- Se for "cultural", promova a atividade de lazer, esporte ou feira destacando o evento de forma animada e pontual.
|
||||
- Considere a orientação ${orientacao === 'paisagem' ? 'Paisagem (horizontal)' : 'Retrato (vertical)'} ao organizar o fluxo: para paisagem, use \`display: flex; flex-wrap: wrap; gap: 20px;\` para os cards ficarem lado a lado; para retrato, de cima para baixo.
|
||||
- Considere a orientação ${orientacao === 'paisagem' ? 'Paisagem (horizontal)' : 'Retrato (vertical)'} ao organizar o fluxo: para paisagem, os cards devem ficar lado a lado (2 colunas horizontais); para retrato, eles se empilham verticalmente.
|
||||
- Retorne apenas o formato HTML (use <div>, <p>, <ul>, <li>, <strong>, <span>). Não adicione <html> ou <body>, retorne apenas o conteúdo interno. Não inclua o título <h1> pois ele já é colocado no topo pela interface.`;
|
||||
|
||||
let conteudoHtml = '';
|
||||
@@ -1464,7 +1469,29 @@ REGRAS FUNDAMENTAIS E ESTÉTICAS:
|
||||
let generatedImageUrl = null;
|
||||
if (promptImagem && promptImagem.trim().length > 3) {
|
||||
try {
|
||||
console.log('[Cartazes] Gerando ilustração para o cartaz...');
|
||||
console.log('[Cartazes] Refinando prompt de imagem para inglês (sem texto)...');
|
||||
let refinedPrompt = promptImagem;
|
||||
try {
|
||||
const refineRes = await callMinimax({
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: `Translate the following Portuguese description into a clean English description suitable for an image generation prompt.
|
||||
Make sure the prompt specifies a beautiful, colorful, kid-friendly vector/illustration style.
|
||||
CRITICAL REQUIREMENT: Explicitly specify in the prompt that there should be absolutely no text, no words, no signs, no letters, no labels, no speech bubbles, and no writing of any kind.
|
||||
Portuguese description: "${promptImagem}"
|
||||
Return ONLY the English prompt, no extra chat.`
|
||||
}],
|
||||
temperature: 0.3,
|
||||
max_tokens: 250
|
||||
});
|
||||
if (refineRes && refineRes.text) {
|
||||
refinedPrompt = refineRes.text;
|
||||
}
|
||||
} catch (refineErr) {
|
||||
console.error('[Cartazes] Erro ao refinar prompt:', refineErr);
|
||||
}
|
||||
|
||||
console.log('[Cartazes] Gerando ilustração com prompt final:', refinedPrompt);
|
||||
const minmBase = (process.env.MINIMAX_API_BASE || 'https://api.minimax.io/v1').replace(/\/v1\/?$/, '');
|
||||
const genResp = await fetch(`${minmBase}/v1/image_generation`, {
|
||||
method: 'POST',
|
||||
@@ -1474,7 +1501,7 @@ REGRAS FUNDAMENTAIS E ESTÉTICAS:
|
||||
},
|
||||
body: JSON.stringify({
|
||||
model: 'image-01',
|
||||
prompt: `${promptImagem}. Estilo ilustração de livro infantil de alta qualidade, 3D Pixar, cores suaves, traço limpo, sem texto.`,
|
||||
prompt: `${refinedPrompt}. Complete figures shown from top to bottom without cutoffs, kid-friendly illustration style, 3D Pixar, soft pastel colors, no text, no words, no letters, no writing, no labels.`,
|
||||
n: 1
|
||||
})
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user