Estruturando Prompts em YAML para Geração de Imagens com GPT Image

A geração de imagens por inteligência artificial deu um salto qualitativo com a introdução da GPT Image, que permite criar imagens altamente personalizadas com linguagem natural. No entanto, conforme os prompts se tornam mais complexos, cresce também a necessidade de estruturação clara e modular — e é aí que o YAML brilha.

Neste post, exploramos como usar YAML como linguagem descritiva para gerar imagens, apresentando boas práticas e um exemplo completo para cenas ricas em contexto, estilo e composição.

🔧 Por que usar YAML para Prompts Visuais?

Usar YAML ao invés de texto corrido traz benefícios claros:

  • Organização hierárquica de elementos visuais
  • Legibilidade para humanos e compatibilidade com APIs estruturadas
  • Reusabilidade e fácil versionamento de partes do prompt
  • Precisão sem ambiguidade: separa conceito, estilo e intenção final

🧱 Estrutura Recomendada

yaml

metadata:
  version: "1.0.0"
  created_at: "2025-04-23"
  author: "Seu Nome"
  purpose: "Descrição breve do propósito da imagem"
  style_reference: "Referência estilística (ex: ‘Studio Ghibli’, ‘Klimt’, ‘Photorealism’)"

scene:
  setting:
    location: "Lugar específico"
    time_of_day: "Dia / noite / entardecer"
    era: "Década ou contexto histórico"
    lighting: "Tipo de iluminação"
    weather: "Clima"
    atmosphere: "Sensações pretendidas"
    camera_style:
      type: "Tipo de câmera (digital, analógica, filme)"
      effects: ["granulação", "distorção", "saturação", etc.]
      framing: "Plano geral, close-up, aérea, etc."

composition:
  foreground:
    - "Elementos em primeiro plano"
  midground:
    - "Elementos ao centro"
  background:
    - "Elementos ao fundo"

characters:
  crowd:
    diversity: "Diversidade desejada"
    fashion:
      era: "Época"
      elements: ["roupas específicas", "acessórios"]
    action: ["movimentos ou comportamentos"]

style:
  photorealism: true
  texture: "Textura desejada (granulação, pintura a óleo, etc.)"
  lighting_details: "Contrastes, reflexos, halos"
  color_palette:
    dominant: ["cores principais"]
    secondary: ["cores complementares"]
  depth: "Distribuição de camadas (2D plano ou 3D com profundidade)"

notes:
  - "Instruções adicionais (ex: fidelidade cultural, elementos que não podem faltar)"

🎯 Boas Práticas

1. Separar narrativa de estilo

Evite misturar estilo visual com eventos da cena. Isso mantém o prompt interpretável tanto para humanos quanto para a API.

2. Descrever em camadas (foreground / midground / background)

Isso ajuda o modelo a organizar os elementos visuais com coerência espacial.

3. Especificar o estilo de câmera e textura

Quer uma imagem que pareça saída de uma câmera descartável dos anos 80? Diga isso.

4. Controlar a paleta de cores

Indicar cores dominantes e secundárias melhora a estética e fidelidade temática da imagem.

5. Adicionar instruções culturais e visuais precisas

Exemplo: “garanta que as roupas estejam em sintonia com a moda japonesa da década de 80” ou “insira kanji corretos nas placas”.

🌆 Exemplo: Tóquio nos Anos 80

Trecho adaptado do nosso YAML completo:

yaml

metadata:
  version: "1.0.0"
  created_at: "2025-04-23"
  author: "Elzo Brito & ChatGPT"
  purpose: "Image generation prompt for GPT Image API"
  style_reference: "Photorealistic retro photography, 1980s Tokyo"

scene:
  setting:
    location: "Tokyo street market"
    time_of_day: "Night"
    era: "1980s"
    lighting: "Colorful neon signs in Japanese characters"
    weather: "Cool and slightly humid evening"
    atmosphere: "Lively, slightly hazy with neon reflections on wet pavement"
    camera_style:
      type: "Disposable film camera"
      brand_simulation: "Fujifilm / Kodak"
      effects: ["grainy texture", "soft lens glow", "color shift toward magenta and cyan"]
      framing: "Wide-angle street view with depth of field"

composition:
  foreground:
    - "Street food vendor grilling yakitori with visible smoke and orange glow"
    - "Group of teenagers in retro fashion (acid-wash jeans, windbreakers, headbands)"
    - "Neon signs reflecting off rain-slick street"
  midground:
    - "Vending machines with glowing buttons"
    - "Shoppers holding shopping bags and cassette tapes"
  background:
    - "Large Sony Walkman billboard in Japanese katakana with bold red and yellow colors"
    - "Silhouette of a passing train behind buildings"
    - "Pagoda-style rooftop in shadow"

characters:
  crowd:
    diversity: "High"
    fashion:
      era: "1980s Japanese urban"
      elements: ["shoulder pads", "high-waist pants", "vintage sneakers", "tucked shirts"]
    action: ["shopping", "eating", "chatting", "taking photos with analog cameras"]

style:
  photorealism: true
  texture: "High grain, analog softness"
  lighting_details: "Multiple colored light sources, strong contrast, neon halos"
  color_palette:
    dominant: ["electric blue", "hot pink", "deep red", "neon green"]
    secondary: ["warm amber", "steel gray", "midnight blue"]
  depth: "Layered composition with atmospheric haze"

notes:
  - "Ensure signs and clothing have Japanese cultural accuracy"
  - "Add subtle lens flares near neon lights"
  - "Include handwritten signboards and kanji graffiti for authenticity"

Resultado: A imagem gerada trouxe com fidelidade visual os elementos solicitados — desde o cartaz do Walkman até a moda vintage e a textura analógica típica de fotos de filme.

🛠️ Ferramentas Recomendadas

  • Editor de YAML: YAML Lint
  • Visualizador de YAML estruturado: Obsidian ou VSCode com plugins de preview

Deixe um comentário