From aebf5bd919be011dc39d05bdef12b296b385ff33 Mon Sep 17 00:00:00 2001 From: Marcio Bevervanso Date: Tue, 16 Jun 2026 14:35:21 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20gerar=20s=C3=B3=201=20imagem=20(quadrad?= =?UTF-8?q?a)=20no=20criativo=20por=20IA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Em vez de gerar 3 imagens por posicionamento (mais caro e dependente da customização que a Meta vinha recusando), gera só a 1:1 — a Meta adapta para os demais posicionamentos. Mais barato e usa o caminho de imagem única + Instagram, que é estável. A customização por posicionamento fica dormente (só ligaria com 2+ imagens). Co-Authored-By: Claude Opus 4.8 --- src/app/api/ai/generate-image/route.ts | 27 +++++++++++--------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/app/api/ai/generate-image/route.ts b/src/app/api/ai/generate-image/route.ts index 7294611..64b991a 100644 --- a/src/app/api/ai/generate-image/route.ts +++ b/src/app/api/ai/generate-image/route.ts @@ -13,23 +13,18 @@ export async function POST(request: NextRequest) { ); } - const dimensionsList: ('1080x1080' | '1080x1920' | '1200x628')[] = [ - '1080x1080', - '1080x1920', - '1200x628' - ]; + // Geramos só a imagem quadrada (1:1, a mais compatível): a Meta adapta + // automaticamente para os outros posicionamentos. Sai mais barato (1 + // geração) e evita a customização por posicionamento, que a Meta recusa. + const image = await generateAdImage({ + context, + style, + dimensions: '1080x1080', + mood, + offer_text, + }); - const imagePromises = dimensionsList.map((dim) => - generateAdImage({ - context, - style, - dimensions: dim, - mood, - offer_text, - }) - ); - - const images = await Promise.all(imagePromises); + const images = [image]; return NextResponse.json({ success: true, data: images }); } catch (error) {