Como Ilustrar Todo Artigo Que Você Publica — Com Fotos Reais, em Escala

Por que equipes de publicação estão voltando para a fotografia real, e o pipeline exato — prompt incluído — que transforma um rascunho finalizado em uma imagem de destaque creditada em cerca de 150 milissegundos.

Compartilhar
Alguém em uma mesa iluminada trabalhando em um laptop que mostra uma grade de fotos, uma caneta stylus na mão.
Foto via Pexels

Todo artigo que você publica precisa de uma imagem. Não é um extra — a imagem de destaque é o que a prévia social mostra, o que o leitor vê antes da primeira frase, e o que diz a ele em meio segundo se essa página foi feita por alguém que se importou. Multiplique isso por quatro imagens por post e quarenta posts por trimestre, e “encontrar uma foto” deixa de ser uma tarefa e passa a ser um problema de pipeline.

É assim que resolvemos: o que usar no lugar de imagens geradas e por quê, e as três formas de conectar o Pexafy ao fluxo de trabalho — manualmente, por API ou por meio de um agente de IA — incluindo o prompt que transforma um rascunho pronto em uma frase de busca que de fato encontra algo.

Por que fotos reais ainda superam as geradas

Gerar uma ilustração é fácil, e é justamente esse o problema. Quatro coisas mudaram entre “imagens de IA são um atalho” e hoje:

1 · Em volume, buscar é mais rápido do que gerar

Uma geração é um prompt, uma espera, uma inspeção e — sejamos honestos — mais duas ou três tentativas antes de uma ficar utilizável. Uma busca semântica é uma única requisição que retorna dezesseis candidatos em cerca de 150 milissegundos, cada um já licenciado, já com crédito, já dimensionado, com as dimensões na resposta. Para uma imagem, a diferença é um café. Para quatrocentas imagens por trimestre, é a diferença entre um fluxo de trabalho e um emprego.

2 · Uma fotografia é precisa; uma geração é plausível

No momento em que seu artigo trata de algo real — uma profissão, um equipamento, uma cidade, um gesto, um material —, uma imagem gerada acerta o clima e erra os detalhes. As mãos com seis dedos são a versão engraçada; a versão cara é um instrumento cirúrgico que não existe, um cockpit com controles inventados, ou uma “rua de Lisboa” que ninguém de Lisboa reconhece. Leitores que conhecem seu assunto percebem, e percebem a imagem primeiro.

3 · Todo mundo tem a mesma cara

Modelos de difusão convergem para um estilo de casa, e uma parede de ilustrações de gradiente suave, superiluminadas e suspeitosamente simétricas já soa como preenchimento. Essa percepção é o custo real: não uma penalidade, um sinal. Uma fotografia real — grão, uma cadeira desajeitada, alguém no meio de uma frase — soa como reportagem.

4 · E agora chegam com um rótulo grudado

Este ponto é mais contexto do que argumento, mas é a direção da estrada. Desde 2 de agosto de 2026, o Artigo 50 do EU AI Act exige que provedores de sistemas generativos marquem saídas sintéticas em formato legível por máquina, e que implantadores divulguem deepfakes.1 Do lado da detecção, o Google lê as C2PA Content Credentials e sua própria marca d'água SynthID para responder “isto foi gerado por IA?” dentro do Search, do Images e do Lens.2 Nada disso é uma regra sobre quais imagens um blog pode publicar, e nada disso custa posições no ranking. O que mudou está a jusante: a proveniência da imagem no topo do seu artigo agora é algo que um leitor pode verificar em dois cliques, sem perguntar a você. Uma fotografia licenciada não tem nada a declarar.

Quando imagens geradas são a escolha certa. Diagramas de conceito e esquemas. Uma cena que não pode ser fotografada (um produto que ainda não existe, um mecanismo abstrato, uma cidade futura). Um estilo de ilustração de casa que você possui e quer repetir em todo post. E qualquer coisa em que a imagem seja deliberadamente entendida como ilustração, e não como evidência. Use os dois — apenas pare de usar geração como padrão para “preciso de uma foto de pessoas em uma reunião”.

Três formas de ilustrar, dependendo do seu volume

Mesmo motor, mesmo catálogo — 9M+ fotos de uso livre de 9 bibliotecas — e três pontos de entrada. Escolha pela quantidade de artigos que você publica, não por quão técnico você é.

Ponto de entrada Melhor paraquem e quanto Por artigo O que você precisa
Interface de busca Editores, um post por vez — até ~20/mês ~30 segundos Um navegador. Não é preciso conta para buscar.
API REST Um CMS, um build de site estático, um lote de rascunhos ~1 requisição, ~150 ms Uma chave de API. 5.000 req/mês grátis, 20/min.
Servidor MCP O agente de IA que escreve ou edita o rascunho Dentro da mesma conversa Uma URL de conector, OAuth ou uma chave.

Os três compartilham um catálogo e uma classificação, de modo que uma foto encontrada por um editor na interface é a mesma foto, com o mesmo identificador, que a API retorna para o seu script de build.

Um artigo, 30 segundos: a interface de busca

Descreva a cena da forma como você descreveria para um fotógrafo, em uma frase completa, no seu próprio idioma. Não team meeting — “a small team standing in a semi circle for a short morning stand-up meeting in a bright open plan office”. Cada detalhe concreto a mais estreita o conjunto de resultados em vez de esvaziá-lo, porque o motor classifica por significado, e não comparando suas palavras com as tags de alguém.

pexafy.com — uma frase, resultados de várias bibliotecas em uma única grade
A página de resultados de busca do Pexafy mostrando fotos de uma equipe em pé em uma reunião matinal, encontradas a partir de uma consulta em frase completa.
O pequeno ponto colorido em cada cartão é a pontuação de relevância — verde significa que o motor está confiante. Os resultados são combinados e reclassificados entre todas as bibliotecas indexadas, não empilhados uma biblioteca após a outra. Execute esta busca exata →

Depois, refine com os filtros que importam para o layout de um artigo — e apenas esses:

Filtros — cor, orientação, fonte, licença
O painel de filtros do Pexafy, mostrando amostras de cor, opções de orientação e seleção de fonte.
Orientação → paisagem para uma imagem de destaque (retrato corta mal em prévias sociais). Cor para manter uma série de posts visualmente coerente com sua marca — escolha a mesma amostra para todo artigo de uma campanha e o índice do blog de repente parece projetado.
  1. Escreva a frase, não a palavra-chave. Sujeito + ação + lugar + luz. Até 500 caracteres, em qualquer um de mais de 100 idiomas.
  2. Filtre por paisagem para a imagem de destaque, depois execute de novo sem o filtro para imagens dentro do artigo, onde retrato costuma ficar melhor.
  3. Abra a foto para obter a linha de atribuição pronta, a página de origem original e o arquivo em resolução total.
  4. Use “fotos semelhantes” na que você escolheu para ilustrar a próxima seção no mesmo registro visual — mesma luz, mesmo tratamento, cena diferente.

O prompt: transforme um rascunho em uma frase de busca

Este é o passo que todo mundo erra ao automatizar. Alimentam a caixa de busca diretamente com o título do artigo, e o título é exatamente o input errado: ele é abstrato (“The hidden cost of context switching”) e nenhuma fotografia do mundo o representa. O que você quer do modelo não é um resumo — é um briefing de câmera.

O prompt do editor de fotos — copie exatamente como está
# system prompt
You are a photo editor. Read the article and write ONE search sentence
for a stock-photo engine that ranks by meaning, not by keywords.

Rules:
1. Describe a scene a camera could have taken: someone doing
   something, somewhere. Never name the topic itself ("fintech",
   "productivity", "SEO") — name what would be in the frame.
2. 12 to 25 words. Longer beats shorter: every concrete detail
   (light, place, gesture, time of day) sharpens the match.
3. No text, logos, brands, charts, screenshots or famous people.
   Free photo libraries have almost none of those.
4. No invisible metaphors ("growth", "synergy", "transformation").
5. Match the mood of the article: calm, tense, tired, celebratory.
6. Write the sentence in English even if the article is not.

Return JSON only:
{ "query": "…", "orientation": "landscape", "alt": "…" }

A regra 1 faz a maior parte do trabalho. Aqui está a mesma regra aplicada a três rascunhos reais — a coluna do meio é o que uma pessoa digita quando está com pressa, a coluna da direita é o que o prompt retorna:

O artigo é sobre… A consulta apressada O briefing de câmera
Por que sua reunião diária está quebrada team meeting “a small team standing in a semi circle for a short morning stand-up meeting in a bright open plan office”
Reduzindo o onboarding de 6 semanas para 9 dias onboarding “a new employee on their first day at a desk, listening while a colleague leans in and points at their screen”
O custo oculto de trocar de contexto productivity “a tired developer rubbing their eyes in front of two monitors late in the evening, the office empty behind them”

team meeting retorna o estoque genérico de sala de reunião que todo mundo que escreve sobre seu tema já está usando. A frase na terceira coluna retorna isto, em 155 milissegundos:

GET /search/photos — “a small team standing in a semi circle for a short morning stand-up meeting…” · 16 resultados · 155 ms
Três bibliotecas diferentes entre os seis primeiros, classificadas juntas em vez de uma biblioteca após a outra. Todas mostram pessoas em pé, em grupo, em um escritório real — que é o que a frase pedia e o que team meeting nunca garante.

O pipeline: rascunho entra, imagem de destaque com crédito sai

Quarenta linhas, duas chamadas: uma ao modelo para o briefing, outra ao Pexafy para a foto. Coloque no hook de salvamento do seu CMS, no build do seu site estático, ou em um script que percorre uma pasta de arquivos Markdown.

illustrate.py — artigo entra, imagem + alt + crédito saem
import json, os, requests
from anthropic import Anthropic

SEARCH = "https://api.pexafy.com/api/v1/search/photos"
llm = Anthropic()  # ANTHROPIC_API_KEY vindo do ambiente

def camera_brief(article: str) -> dict:
    # PHOTO_EDITOR = o system prompt acima
    msg = llm.messages.create(
        model="claude-sonnet-5",
        max_tokens=300,
        system=PHOTO_EDITOR,
        messages=[{ "role": "user", "content": article[:12000] }],
    )
    return json.loads(msg.content[0].text)

def illustrate(article: str) -> dict | None:
    brief = camera_brief(article)
    r = requests.get(
        SEARCH,
        headers={"X-Api-Key": os.environ["PEXAFY_API_KEY"]},
        params={
            "q": brief["query"],           # a frase completa
            "orientation": brief["orientation"],
            "per_page": 8,
            "score_threshold": 0.55,      # descarta correspondências fracas
        },
        timeout=10,
    )
    hits = r.json()["data"]
    if not hits:                        # briefing estreito demais → amplia e tenta de novo
        return None

    top = hits[0]
    return {
        "src":    top["urls"]["regular"],        # 1080px — tamanho de destaque
        "alt":    brief["alt"] or top["alt_description"],
        "credit": top["attribution"]["html"],   # pronto para renderizar
        "width":  top["width"],
        "height": top["height"],
        "id":     top["photo_id"],           # guarde: sem repetições
    }

Três detalhes que transformam uma demonstração em algo que você pode deixar rodando:

  • score_threshold — não retornar nada é melhor do que retornar uma foto ruim. Se o briefing ficou específico demais, amplie-o (remova a última cláusula) e tente de novo uma vez.
  • Guarde o photo_id — uma linha no seu banco de dados, e nunca dois artigos do seu site compartilham uma imagem de destaque. Essa é a falha que todo mundo encontra no artigo número trinta.
  • Uma requisição por slot de imagem — uma imagem de destaque mais três imagens de seção são quatro requisições por artigo, ou uma se você aproveitar quatro resultados diferentes da mesma busca.

Não usa Python? Toda a parte de busca é uma linha, e todo resultado traz os mesmos campos independentemente da biblioteca de origem:

A mesma chamada, em um shell
curl -sG "https://api.pexafy.com/api/v1/search/photos" \
  -H "X-Api-Key: $PEXAFY_API_KEY" \
  --data-urlencode "q=a tired developer rubbing their eyes at two monitors" \
  --data-urlencode "orientation=landscape" \
  --data-urlencode "per_page=6"

# → { "success": true, "data": [ … ], "meta": { "took_ms": 147 } }

O formato da resposta — urls, width, photographer_full_name, source, license_type, relevance_score, attribution — é idêntico para uma foto do Pexels, uma do Pixabay e uma do Unsplash. Essa normalização é a parte que você mesmo teria que escrever e manter; nós a desmontamos campo por campo em a comparação de APIs gratuitas de banco de imagens.

Segunda seção, segundo briefing, segunda busca — a ideia é que um artigo produza várias cenas distintas em vez de uma única foto esticada quatro vezes:

Seção 2 — “a woman working alone on a laptop at her kitchen table early in the morning with a cup of coffee” · 129 ms
Mesmo artigo, seção diferente, cena diferente — e o clima se mantém porque o briefing o mantinha. Execute esta busca também →

Deixe o agente escolher a imagem: MCP

Se um modelo já está escrevendo ou editando o rascunho, o pipeline mais limpo é nenhum pipeline: dê ao agente a ferramenta de busca e deixe-o ilustrar o que acabou de escrever, na mesma conversa, enquanto ainda tem o contexto.

O Pexafy roda um servidor Model Context Protocol hospedado em mcp.pexafy.com/mcp. Três ferramentas: search_photos (uma frase), search_photos_by_image (uma imagem de referência, opcionalmente mais uma frase — “como esta, mas ao pôr do sol”), e get_similar_photos (mais parecidas com a que você já escolheu, o que é como se mantém uma série coerente).

Claude.ai e Claude Desktop — OAuth, nenhuma chave para gerenciar
Settings → Connectors → Add custom connector
Name: Pexafy
URL:  https://mcp.pexafy.com/mcp
# depois faça login com sua conta Pexafy quando a janela abrir
Claude Code — um comando
claude mcp add --transport http pexafy https://mcp.pexafy.com/mcp \
  --header "Authorization: Bearer $PEXAFY_API_KEY"

# ou registre no repositório, para que toda a equipe tenha acesso — .mcp.json
{
  "mcpServers": {
    "pexafy": {
      "type": "http",
      "url": "https://mcp.pexafy.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

A partir daí, ilustrar um artigo é uma frase, não uma tarefa. O agente escreve seu próprio briefing de câmera — ele acabou de ler o rascunho, então está em melhor posição do que ninguém para descrever a cena:

Como fica na prática
You  Here's the draft of this week's post. Find a landscape hero
     and one photo for section 2, and give me the credit lines.

Claude  → search_photos(
       q="a small team standing in a semi circle for a short morning
          stand-up meeting in a bright open plan office",
       orientation="landscape")
     ← 16 photos · 155 ms

     Hero    → Photo by Thirdman on Pexels · 6453×4302 · score 0.80
     Section → Photo by Marcus Aurelius on Pexels · 6000×4000
     Both licence-free, attribution lines below, ready to paste.

Unsplash, Pexels, Pixabay e Openverse não têm servidor MCP oficial — o que existe são wrappers comunitários que você mesmo hospeda e chaveia. Se seu fluxo editorial já passa por um agente, essa diferença é a integração.

Texto alternativo, licença e velocidade de página

A imagem está escolhida. Quatro coisas decidem se ela ajuda a página ou a prejudica em silêncio:

  1. Escreva o texto alternativo para uma pessoa, não para um rastreador. Todo resultado vem com um alt_description — use-o como rascunho, depois reescreva-o no contexto do seu parágrafo. “Quatro colegas em pé em uma reunião matinal” supera uma salada de palavras-chave, e é o texto que um leitor de tela de fato vai ler em voz alta. Mantenha abaixo de ~125 caracteres; deixe vazio (alt="") somente se a imagem for puramente decorativa.
  2. Inclua o crédito mesmo quando nada o obriga. A atribuição não é exigida pelos termos da API do Pexafy e todo resultado traz uma string attribution.html pronta — mas a licença anexada pela biblioteca original ainda rege o uso que você faz daquela foto, e uma linha de crédito visível é o que diz a um leitor (e a um motor de resposta) que aquela é uma fotografia real com um autor real.
  3. Sirva o tamanho certo. urls.regular (1080 px) é uma imagem de destaque; urls.full é um arquivo de 2400 px que nenhum artigo precisa. Sempre emita width/height a partir da resposta para que o navegador reserve o espaço — esse par de atributos, sozinho, é a diferença entre uma boa e uma má pontuação de mudança de layout. Use fetchpriority="high" na imagem de destaque, loading="lazy" em tudo abaixo da dobra.
  4. Alimente sua imagem de destaque para os seus metadados. A mesma URL deve ser seu og:image, seu twitter:image e a propriedade image dos seus dados estruturados de Article. Uma foto, três lugares, zero trabalho extra — e uma prévia social que deixa de recair sobre o seu logotipo.

Quanto custam de fato 100 artigos por mês

Suponha uma imagem de destaque mais três imagens dentro do artigo, ou seja, quatro requisições de busca por post — a versão deliberadamente desperdiçadora, em que você executa uma consulta separada por slot em vez de reaproveitar resultados de uma só:

Volume Requisições de busca / mês Plano Custo da busca
20 artigos 80 Grátis — 5.000 req/mês $0
100 artigos 400 Grátis — 5.000 req/mês $0
1.000 artigosuma agência, ou o portfólio inteiro de um cliente 4.000 Grátis — ainda dentro de 5.000 req/mês $0

Sim — a cota mensal não é um problema nos volumes de marketing de conteúdo, e preferimos dizer isso a inventar um motivo para você pagar. O limite que você de fato vai encontrar é o por minuto. O plano gratuito permite 20 requisições de API por minuto; um script de build que reilustra 100 artigos em uma só passada dispara 400 requisições tão rápido quanto seu laço permitir, então ou passa vinte minutos sendo limitado, ou começa a colecionar 429s. Duas saídas: espaçar as chamadas (um sleep no laço, e um job noturno nem percebe), ou migrar para um plano cujo limite de taxa combine com seu build — Starter é 30 requisições/minuto, Pro é 60. Escolha pelo pico, não pelo volume.

A única outra linha de custo é uma chamada curta ao modelo por artigo para produzir o briefing — algumas centenas de tokens de entrada, trinta de saída, o que será o item mais barato de qualquer pipeline de conteúdo que você possua. Compare isso com gerar quatro imagens por post, em quatrocentas imagens por mês, mais as tentativas que não deram certo.

E a parte que não aparece em nenhuma tabela de custo: o editor para de abrir cinco abas. Essa é a economia de verdade.

Referências e notas de rodapé

1 EU AI Act, Artigo 50 — obrigações de transparência para provedores e implantadores de determinados sistemas de IA, aplicável a partir de 2 de agosto de 2026. Provedores de sistemas que geram áudio, imagem, vídeo ou texto sintéticos devem marcar as saídas em formato legível por máquina e torná-las detectáveis como geradas artificialmente; implantadores devem divulgar deepfakes e, em casos definidos, texto gerado por IA publicado para informar o público. O Digital Omnibus (Regulamento (UE) 2026/1744, em vigor desde 27 de julho de 2026) deixa o próprio Artigo 50 sem alterações, mas dá aos sistemas já no mercado antes de 2 de agosto de 2026 até 2 de dezembro de 2026 para cumprir a exigência de marcação legível por máquina do Artigo 50(2). Tudo isso vincula provedores e implantadores de IA — não é uma regra sobre quais imagens um blog pode publicar.

2 O Google lê as C2PA Content Credentials e sua própria marca d'água SynthID para exibir a proveniência em Sobre esta imagem no Search, no Images e no Lens. Isso é proveniência de mídia, não uma penalidade de ranqueamento sobre conteúdo gerado por IA.

Perguntas frequentes

Devo usar imagens geradas por IA ou fotos reais para artigos de blog?
Use fotos reais sempre que o artigo for sobre algo que existe — um trabalho, um lugar, um objeto, um gesto — porque uma fotografia acerta os detalhes e carrega uma fonte verificável, uma data e um fotógrafo. Desde 2 de agosto de 2026, o Artigo 50 da Lei de IA da UE exige que sistemas generativos marquem suas saídas em um formato legível por máquina, e plataformas como o Google agora exibem essa procedência aos leitores. Imagens geradas continuam sendo a escolha certa para diagramas, cenas que não podem ser fotografadas, e para um estilo de ilustração próprio da casa.
Como encontro automaticamente uma imagem que combine com meu artigo?
Duas chamadas. Primeiro, peça a um modelo de linguagem para transformar o rascunho em um briefing de câmera — uma frase de 12 a 25 palavras descrevendo uma cena que uma câmera poderia ter capturado, nunca o tema em si. Depois envie essa frase para uma API de busca semântica de imagens, que classifica as fotos por significado em vez de correspondência de tags. Com o Pexafy isso é GET /api/v1/search/photos?q=…, cerca de 150 ms, e cada resultado vem com seu tamanho, licença e uma string de atribuição pronta.
Qual é o melhor prompt para transformar um artigo em uma consulta de busca de imagem?
Peça uma cena fotografável, não um resumo: “escreva UMA frase de 12–25 palavras descrevendo alguém fazendo algo em algum lugar; nunca cite o tema; sem texto, logos, gráficos ou pessoas famosas; sem metáforas invisíveis; combine com o tom do artigo; retorne JSON”. O prompt completo está neste artigo, pronto para copiar e colar. A regra mais importante de todas é a proibição de abstrações: “produtividade” não encontra nada, “um desenvolvedor cansado esfregando os olhos em frente a dois monitores no fim da noite” encontra a foto.
Preciso creditar as fotos que uso em posts de blog?
A atribuição não é exigida pelos termos da API do Pexafy, e cada resultado já vem com uma linha de crédito pronta em HTML e texto simples. A licença associada a cada foto por sua biblioteca original ainda rege o uso que você faz dela, e exibir o crédito é o que informa aos leitores — e aos mecanismos de resposta — que a imagem é uma fotografia real com um autor real.
O Claude ou outro agente de IA pode encontrar as fotos para meu artigo?
Sim, através do servidor MCP (Model Context Protocol) hospedado pelo Pexafy em mcp.pexafy.com/mcp. Adicione-o como um conector personalizado no Claude.ai ou Claude Desktop e faça login com OAuth, ou adicione-o ao Claude Code com um único comando claude mcp add e uma chave de API. O agente então busca por frase, por imagem de referência ou por fotos semelhantes por conta própria, enquanto ainda tem seu rascunho no contexto.
Como evito que todo artigo do meu blog use a mesma foto?
Armazene o photo_id de cada imagem que você publica e exclua-o na próxima execução — uma coluna no seu CMS. Esse é o modo de falha que todo pipeline automatizado encontra por volta do trigésimo post, e é invisível até alguém rolar o índice do seu blog. Escrever um briefing de câmera novo por seção, em vez de reutilizar o título do artigo, faz o resto.

Pare de caçar palavras-chave. Descreva o que você quer dizer.

Busque 9M+ imagens gratuitas por significado — em qualquer idioma, em menos de 100 ms.