API de geração de headshots com IA: crie um app de headshots
Crie um app de headshots funcional com uma API de geração de headshots com IA. Este artigo mostra o fluxo de requisições, os modelos que valem a pena, as opções de fundo, código em Python, verificações de qualidade e as regras de consentimento que mantêm as fotos dos clientes seguras.
Envie uma selfie e receba de volta um retrato pronto para a sala de reuniões. Essa é a promessa por trás de toda API de geração de headshots com IA, e ela é muito mais fácil de construir do que a maioria dos desenvolvedores imagina. Você não treina um modelo de rosto, não aluga GPUs e não marca um fotógrafo para cada cliente. Seu app envia uma foto e uma instrução para um endpoint HTTP, espera alguns segundos e recebe uma imagem finalizada, pronta para um perfil no LinkedIn, uma página de equipe ou um kit de imprensa.
Este artigo percorre a construção completa: o fluxo de requisições, os modelos que valem a pena, um código em Python funcional, as verificações de qualidade que impedem retratos fracos de chegar aos clientes e as regras de consentimento que mantêm o produto seguro. Tudo abaixo se baseia na API para desenvolvedores da PicassoIA e nos modelos listados na plataforma.
💡 Versão curta: hospede a selfie no seu próprio armazenamento, chame picassoia/picassoia-image-editor-pro com essa selfie como image 1, consulte a previsão até que ela tenha êxito, faça uma verificação rápida e então mostre o resultado.
Por que construir com uma API
Headshots de estúdio custam dinheiro e tempo de verdade. Um fotógrafo marca um horário, um retocador trabalha por dias e uma equipe remota de quarenta pessoas precisa de quarenta agendamentos. Um app de headshots transforma tudo isso em um formulário de upload e um botão. O que faz dele um negócio, e não uma demonstração, é o controle: a sua própria interface, os seus próprios fundos, o seu próprio preço e as suas próprias regras de dados.
Quem precisa disso
A demanda é mais ampla do que as pessoas imaginam. Estes são os produtos que continuam pedindo um recurso de headshots:
Ferramentas de RH e onboarding que precisam de um estilo de foto consistente para cada novo contratado
Construtores de currículo e sites de vagas em que uma foto de perfil muda o visual da página
Plataformas de criadores e freelancers que querem um avatar bem cuidado já no cadastro
Agências que entregam pacotes de retratos para clientes corporativos
Softwares de eventos que coletam fotos de palestrantes em todas as condições possíveis de iluminação
Construir ou comprar
Opção
Tempo de configuração
Controle
Ideal para
Site pronto para headshots
Minutos
Baixo
Uma única foto pessoal
Wrapper sem código em volta de um formulário
Horas
Médio
Ferramentas internas e testes rápidos
Seu próprio app numa API
Alguns dias
Controle total de design, preços e dados
Produtos e plataformas
Se você só precisa de uma foto sua, use um site. Se headshots são um recurso dentro de algo que você vende, uma API vence em todos os aspectos que importam depois do lançamento.
A economia conta a mesma história. Um fotógrafo cobra por pessoa, então o custo cresce a cada cliente que você adiciona. Uma chamada à API é software: o trabalho que vai no primeiro headshot é o mesmo que atende o décimo milésimo, e sua margem melhora conforme o uso cresce, em vez de encolher.
O fluxo de requisições em cinco etapas
Todo app de headshots, por mais bem acabada que seja a interface, segue o mesmo ciclo. A API da PicassoIA é assíncrona e no estilo Replicate: você cria uma previsão, consulta o status dela e depois lê o resultado.
Colete a selfie no seu frontend.
Valide e armazene para ter uma URL que a API consiga buscar.
Crie a previsão com um POST para o endpoint do modelo.
Consulte a previsão até que o status seja final.
Verifique e entregue a URL de saída.
A URL base é https://api.picassoia.com/v1, e toda requisição leva um cabeçalho Authorization: Bearer pia_sk_.... Você cria essas chaves secretas na página da API em picassoia.com, e uma conta pode ter duas delas, para que uma atenda a produção e a outra, o ambiente de homologação.
Upload e validação
Rejeite entradas ruins logo no começo. Aceite JPEG, PNG e WebP, mantenha o arquivo bem abaixo do limite de 10 MB do corpo da requisição e defina uma resolução mínima para que os rostos não fiquem menores que um selo postal. Depois, oriente o usuário na mesma tela: fique de frente para a janela, segure o celular na altura dos olhos, apenas uma pessoa no enquadramento, sem óculos escuros.
Uma dica de dez segundos na tela de upload evita mais chamados de suporte do que qualquer configuração do modelo. Uma selfie fora de foco em um corredor escuro produz um headshot fora de foco todas as vezes.
Criar a previsão
Os endpoints dos modelos seguem um padrão: POST /v1/models/{owner}/{name}/predictions. O corpo envolve cada parâmetro dentro de um objeto input. Para um headshot, o input contém a URL da selfie e uma instrução em texto. Você recebe de volta um objeto de previsão com um id e um status imediatamente, muito antes de a imagem existir.
Consultar e depois armazenar
Chame GET /v1/predictions/{id} a cada dois ou três segundos até que o status exiba succeeded, failed ou canceled. Se um cliente fechar a aba, POST /v1/predictions/{id}/cancel interrompe o trabalho. Quando der certo, baixe a saída e copie-a para o seu próprio armazenamento, para que seu produto nunca dependa de uma URL de terceiros.
💡 Uma previsão pode rodar por até 3 horas no lado do servidor. Sua interface deve desistir muito antes. Edições normalmente terminam em segundos, então um timeout de 90 segundos no cliente, com um botão de nova tentativa bem claro, é mais que suficiente.
Escolha modelos adequados
A API e o conector MCP expõem atualmente quatro modelos. Dois importam para headshots, e o resto da plataforma ajuda enquanto você prototipa no navegador.
Aumenta a resolução para retratos em tamanho de impressão
Web
Os três últimos ficam no aplicativo web. Confira a documentação da API antes de integrá-los ao código, porque a API pública lista quatro modelos hoje.
Os fundos merecem uma decisão própria, já que mudam a forma como o retrato se lê em um círculo de perfil. Um mapeamento simples dá aos seus usuários um padrão sensato:
Caso de uso
Fundo
Por que funciona
LinkedIn e candidaturas a vagas
Cinza neutro
Sóbrio, se lê bem em miniatura
Diretório da empresa
Branco
Idêntico em toda a equipe
Portfólio e trabalhos criativos
Grafite
Dá profundidade sem distrair
Vendas e imobiliário
Escritório desfocado
Parece acessível e local
Editor ou texto para imagem
Um cliente quer parecer consigo mesmo, só que melhor iluminado e melhor vestido. Texto para imagem inventa uma pessoa nova, e isso é o produto errado. Um modelo de edição mantém o rosto da selfie e muda todo o resto, por isso o PicassoIA Image Editor Pro é o carro-chefe. Use o PicassoIA Image para as imagens que o seu próprio marketing precisa: amostras para a landing page, fixtures de teste e fundos de escritório vazios.
Limpeza depois da edição
Dois pequenos passos elevam o resultado. O Bria Remove Background oferece aos clientes um recorte transparente que eles podem colocar na cor da empresa. O Topaz Image Upscale aproxima um retrato em tamanho web da resolução de impressão. Ofereça-os como extras opcionais depois que o resultado principal estiver certo.
Envie a selfie como primeira imagem de referência. O modelo aceita até três, e a primeira é a principal.
Escreva a instrução e chame a selfie de imagem 1.
Escolha a proporção, o formato de saída e a qualidade.
Gere, compare as duas variações se você pediu duas, e baixe a melhor.
Quer evitar escrever prompts? O Professional Headshot aceita uma única foto e uma escolha de fundo: branco, preto, neutro, cinza ou escritório. Também oferece 14 predefinições de proporção, uma opção de gênero para maior precisão facial, um seed para resultados repetíveis e saída em PNG ou JPG. É a forma mais rápida de ver como cada fundo fica antes de criar o seu próprio seletor.
Configurações que importam
Parâmetro
O que faz
Padrão sensato
images
Até 3 referências, a primeira é a principal
Selfie primeiro
prompt
A edição, referindo-se a image 1, image 2
Menos de 4.000 caracteres
aspect_ratio
Proporção de saída
match_input_image
output_format
WebP, JPG ou PNG
PNG para entrega
output_quality
0 a 100, apenas JPG e WebP
95
num_outputs
1 ou 2 variações por chamada
2 para ter um botão de nova tentativa
seed
Repete um resultado exatamente
Armazene junto com a tarefa
Um prompt que funciona
Coloque a identidade primeiro, depois a cena. Nomeie o figurino, o fundo e a luz para que o modelo não precise adivinhar nada:
Turn image 1 into a professional corporate headshot of the same person.
Keep the face, skin tone, hair and expression natural and unchanged.
Dark navy blazer over a white shirt, seamless soft grey studio backdrop,
soft main light from the left, gentle fill from the right, 85mm portrait
lens look, natural skin texture with visible pores, sharp eyes.
Evite pedidos vagos como "me deixe com uma aparência incrível". Eles incentivam a suavização, e a pele suavizada é o caminho mais rápido para um resultado de plástico, obviamente falso.
Código funcional em Python
Os trechos abaixo seguem o formato no estilo Replicate descrito acima. A documentação oficial em picassoia.com/en/api inclui exemplos em Python, Node e cURL, então confirme os nomes dos campos por lá antes de lançar.
A função principal
import os
import time
import requests
BASE = "https://api.picassoia.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['PICASSOIA_TOKEN']}"}
MODEL = "picassoia/picassoia-image-editor-pro"
def make_headshot(selfie_url: str, backdrop: str = "soft grey studio backdrop") -> str:
prompt = (
"Turn image 1 into a professional corporate headshot of the same person. "
"Keep the face, skin tone and hair natural and unchanged. "
f"Dark navy blazer, {backdrop}, soft main light from the left, "
"85mm portrait lens look, natural skin texture."
)
created = requests.post(
f"{BASE}/models/{MODEL}/predictions",
headers=HEADERS,
json={"input": {
"images": [selfie_url],
"prompt": prompt,
"output_format": "png",
}},
timeout=30,
)
created.raise_for_status()
prediction = created.json()
deadline = time.time() + 90
while prediction["status"] not in ("succeeded", "failed", "canceled"):
if time.time() > deadline:
requests.post(f"{BASE}/predictions/{prediction['id']}/cancel", headers=HEADERS, timeout=30)
raise TimeoutError("Headshot took too long")
time.sleep(3)
prediction = requests.get(
f"{BASE}/predictions/{prediction['id']}", headers=HEADERS, timeout=30
).json()
if prediction["status"] != "succeeded":
raise RuntimeError(prediction.get("error") or prediction["status"])
return prediction["output"][0]
O token vem de uma variável de ambiente, nunca do frontend. Se ele for incluído em um bundle para celular ou em um script do navegador, qualquer pessoa pode lê-lo.
Respeite o limite de cinco tarefas
Uma conta executa 5 previsões ao mesmo tempo, compartilhadas entre todas as credenciais e todas as conexões MCP. Um pico no dia do lançamento vai bater nesse limite, então enfileire as tarefas do seu lado:
import asyncio
slots = asyncio.Semaphore(4) # leave one slot for retries
async def run_job(selfie_url: str) -> str:
async with slots:
return await asyncio.to_thread(make_headshot, selfie_url)
Salve cada tarefa em uma tabela com o status dela, e então mostre aos clientes a posição deles na fila. Uma fila visível parece rápida. Um spinner travado parece quebrado.
Verificações de qualidade antes da entrega
Um headshot que parece 95% certo ainda é um pedido de reembolso. As pessoas percebem rostos com uma sensibilidade quase sobrenatural, então verifique cada resultado antes que ele chegue a um cliente.
Semelhança e pele
Passe por esta lista em um conjunto de teste com cinquenta selfies antes do lançamento:
Formato do rosto e cor dos olhos batem com a selfie
A pele mantém os poros, as linhas finas e o tom, sem desfoque de cera
As bordas do cabelo estão limpas, sem halo contra o fundo
Dentes, orelhas e óculos têm a quantidade e a simetria certas
Joias e colarinhos não estão fundidos ao pescoço
O fundo é simples o bastante para a miniatura da foto de perfil
Veja o resultado no tamanho de miniatura e no tamanho completo. Muitos defeitos só aparecem em um dos dois.
Monte o conjunto de teste de propósito. Inclua salas escuras, óculos, barbas, cabelos longos, chapéus e pessoas fotografadas um pouco de baixo para cima. Registre o seed e o prompt de cada execução, para que, quando um cliente relatar um retrato estranho, você consiga reproduzi-lo em um minuto e corrigir a instrução em vez de adivinhar.
Triagem automatizada
Modelos de linguagem (LLMs) ajudam em dois pontos. Primeiro, eles podem transformar as escolhas do formulário (fundo, roupa, clima) na instrução final, para que o pessoal de produto edite a redação sem precisar fazer deploy. O Gemini 3.5 Flash é uma opção rápida para esse trabalho, e o Claude Sonnet 5 combina com manuais de regras mais longos. Segundo, o Llama Guard 4 12B pode filtrar textos livres que os usuários digitam em campos de instrução personalizados.
A API pública lista quatro modelos, então, para essas etapas, chame o seu próprio provedor de LLM ou teste os prompts no aplicativo web da PicassoIA primeiro.
Mantenha também um plano B humano. Dê a cada resultado um botão Tentar novamente, que executa a mesma selfie com um novo seed, e um link Denunciar que permite ao cliente sinalizar um retrato ruim.
Regras de consentimento e privacidade
Um rosto é um dado pessoal. Trate-o assim desde o primeiro dia, porque um app de headshots que lida mal com fotos não tem uma segunda chance.
Consentimento e armazenamento
Peça aos usuários que confirmem que a foto mostra a própria pessoa ou alguém que concordou
Apague a selfie original assim que o retrato final for entregue
Nunca reutilize fotos de clientes em amostras ou marketing sem permissão por escrito
Identifique o resultado como gerado por IA dentro do seu app, já que algumas plataformas e empregadores se importam com isso
Publique uma página de privacidade em linguagem simples que diga por quanto tempo os arquivos são mantidos
Limites com que planejar
Limite
Valor
O que fazer
Previsões simultâneas
5 por conta
Enfileire tarefas e limite os workers a 4
Corpo da requisição
10 MB
Redimensione selfies grandes no navegador
Tamanho do prompt
4.000 caracteres
Limite o seu construtor de instruções
Timeout de previsão
3 horas
Cancele você mesmo as tarefas paradas
Credenciais da API
2 por conta
Uma para produção, uma para homologação
💡 Confira os preços antes de prometer um preço. A página da API descreve as previsões como atualmente gratuitas, enquanto a página de preços lista o Acesso à API nos planos Pro+, Elite e Infinite. Leia as duas antes de definir o que seus clientes vão pagar.
Faça seu primeiro headshot hoje
Deixe de lado os documentos de planejamento. Abra o PicassoIA Image Editor Pro, envie uma selfie e teste três versões do prompt acima: um fundo cinza, um fundo branco e um fundo de escritório. Escolha a vencedora, copie a redação dela para a função em Python, e você terá a espinha dorsal de um produto funcional.
A partir daí, adicione uma tela de upload, uma fila, um botão de tentar novamente e uma caixa de seleção de consentimento. Essa é a lista inteira. Crie suas próprias imagens com a PicassoIA, ajuste os prompts até os retratos parecerem fotografias de verdade e lance a primeira versão esta semana. Seus clientes vão se importar muito mais com um resultado limpo e rápido do que com qualquer recurso que você possa adicionar depois.