AI Headshot Generator API : créer une app de headshots
Créez une app de headshots fonctionnelle grâce à une API de génération de headshots par IA. Cet article présente le flux de requêtes, les modèles à privilégier, le choix des fonds, le code Python, les contrôles qualité et les règles de consentement qui protègent les photos de vos clients.
Importez un selfie, récupérez un portrait digne d’un conseil d’administration. C’est la promesse de chaque AI headshot generator API, et elle est bien plus simple à mettre en œuvre que ce que la plupart des développeurs imaginent. Vous n’entraînez pas de modèle de visage, vous ne louez pas de GPU et vous ne réservez pas de photographe pour chaque client. Votre app envoie une photo et une instruction à un point de terminaison HTTP, attend quelques secondes et reçoit une image finie, prête pour un profil LinkedIn, une page d’équipe ou un dossier de presse.
Cet article détaille toute la construction : le flux de requêtes, les modèles qui valent la peine d’être utilisés, du code Python fonctionnel, les contrôles qualité qui empêchent les portraits faibles d’arriver chez les clients et les règles de consentement qui rendent le produit sûr. Tout ce qui suit repose sur l’API développeur de PicassoIA et sur les modèles listés sur la plateforme.
💡 En bref : hébergez le selfie sur votre propre stockage, appelez picassoia/picassoia-image-editor-pro avec ce selfie comme image 1, interrogez la prédiction jusqu’à ce qu’elle réussisse, lancez une vérification rapide, puis affichez le résultat.
Pourquoi construire sur une API
Les portraits en studio coûtent de l’argent et du temps. Un photographe prend rendez-vous, un retoucheur travaille pendant des jours, et une équipe à distance de quarante personnes nécessite quarante rendez-vous. Une app de headshots transforme tout cela en un formulaire d’import et un bouton. Ce qui en fait une entreprise plutôt qu’une démo, c’est le contrôle : votre propre interface, vos propres fonds, votre propre tarif et vos propres règles de données.
Qui en a besoin
La demande est plus large qu’on ne le pense. Voici les produits qui réclament sans cesse une fonctionnalité de portrait :
Outils RH et d’intégration qui ont besoin d’un style de photo unique pour chaque nouvelle recrue
Créateurs de CV et job boards où une photo de profil change l’apparence d’une page
Plateformes de créateurs et de freelances qui veulent un avatar soigné dès l’inscription
Agences qui livrent des packs de portraits à leurs clients entreprises
Logiciels d’événementiel qui collectent les photos des intervenants dans toutes les conditions d’éclairage possibles
Construire ou acheter
Option
Temps de mise en place
Contrôle
Idéal pour
Site de headshots clé en main
Quelques minutes
Faible
Une seule photo personnelle
Wrapper sans code autour d’un formulaire
Quelques heures
Moyen
Outils internes et tests rapides
Votre propre app sur une API
Quelques jours
Contrôle total du design, des tarifs et des données
Produits et plateformes
Si vous n’avez besoin que de votre propre photo, utilisez un site. Si les headshots sont une fonctionnalité intégrée à quelque chose que vous vendez, une API l’emporte en matière de tous les critères qui comptent après le lancement.
L’économie confirme ce constat. Un photographe facture par personne, donc le coût grandit avec chaque client. Un appel d’API est un logiciel : le travail investi dans le premier headshot sert aussi le dix-millième, et votre marge s’améliore à mesure que l’usage augmente au lieu de se réduire.
Le flux de requêtes en cinq étapes
Chaque app de headshots, quelle que soit la finition de son interface, suit la même boucle. L’API PicassoIA est asynchrone et de type Replicate : vous créez une prédiction, vous l’interrogez, puis vous lisez le résultat.
Collectez le selfie dans votre frontend.
Validez et stockez-le pour disposer d’une URL que l’API peut récupérer.
Créez la prédiction avec une requête POST vers le point de terminaison du modèle.
Interrogez la prédiction jusqu’à ce que son statut soit définitif.
Vérifiez et livrez l’URL de sortie.
L’URL de base est https://api.picassoia.com/v1, et chaque requête porte un en-tête Authorization: Bearer pia_sk_.... Vous créez ces clés secrètes depuis la page API de picassoia.com, et un compte peut en détenir deux, si bien que l’une peut servir la production pendant que l’autre sert la préproduction.
Importer et valider
Rejetez les mauvaises entrées tôt. Acceptez le JPEG, le PNG et le WebP, gardez le fichier bien en dessous de la limite de 10 Mo pour le corps de requête, et fixez une résolution minimale pour que les visages ne soient pas plus petits qu’un timbre-poste. Ensuite, guidez l’utilisateur sur le même écran : placez-vous face à la fenêtre, tenez le téléphone à hauteur des yeux, une seule personne dans le cadre, pas de lunettes de soleil.
Une indication de dix secondes sur l’écran d’import évite plus de tickets de support que n’importe quel réglage de modèle. Un selfie flou dans un couloir sombre produit un headshot flou à chaque fois.
Créer la prédiction
Les points de terminaison des modèles suivent un seul schéma : POST /v1/models/{owner}/{name}/predictions. Le corps enveloppe chaque paramètre dans un objet input. Pour un headshot, l’input contient l’URL du selfie et une instruction textuelle. Vous recevez aussitôt un objet de prédiction avec un id et un status, bien avant que l’image n’existe.
Interroger, puis stocker
Appelez GET /v1/predictions/{id} toutes les deux ou trois secondes jusqu’à ce que le statut affiche succeeded, failed ou canceled. Si un client ferme l’onglet, POST /v1/predictions/{id}/cancel arrête la tâche. En cas de succès, téléchargez la sortie et copiez-la dans votre propre stockage pour que votre produit ne dépende jamais d’une URL tierce.
💡 Une prédiction peut durer jusqu’à 3 heures côté serveur. Votre interface devrait abandonner bien plus tôt. Les modifications se terminent normalement en quelques secondes, donc un délai d’attente côté client de 90 secondes, avec un bouton de nouvelle tentative bien visible, suffit largement.
Choisir des modèles adaptés
L’API et le connecteur MCP exposent actuellement quatre modèles. Deux comptent pour les headshots, et le reste de la plateforme vous aide à prototyper dans le navigateur.
Augmente la résolution pour des portraits destinés à l’impression
Web
Les trois derniers se trouvent dans l’app web. Consultez la documentation de l’API avant de les intégrer au code, car l’API publique ne liste aujourd’hui que quatre modèles.
Le fond mérite sa propre décision, car il change la façon dont le portrait se lit dans un cercle de profil. Une correspondance simple donne à vos utilisateurs une valeur par défaut raisonnable :
Cas d’usage
Fond
Pourquoi ça marche
LinkedIn et candidatures
Gris neutre
Calme, lisible en miniature
Annuaire d’entreprise
Blanc
Identique pour toute l’équipe
Portfolio et travaux créatifs
Anthracite
Ajoute de la profondeur sans distraire
Ventes et immobilier
Bureau flouté
Paraît accessible et local
Éditeur ou texte vers image
Un client veut ressembler à lui-même, simplement mieux éclairé et mieux habillé. Le texte vers image invente une nouvelle personne, ce qui est le mauvais produit. Un modèle d’édition conserve le visage du selfie et modifie tout le reste, donc PicassoIA Image Editor Pro est le cheval de bataille. Utilisez PicassoIA Image pour les images dont votre marketing a besoin : exemples pour la page d’accueil, jeux de test et fonds de bureaux vides.
Nettoyage après l’édition
Deux petites étapes améliorent le résultat. Bria Remove Background offre aux clients une découpe transparente qu’ils peuvent placer sur la couleur de leur entreprise. Topaz Image Upscale pousse un portrait de taille web vers une résolution d’impression. Proposez-les en options supplémentaires une fois que le résultat principal semble correct.
Importez le selfie comme première image de référence. Le modèle en accepte jusqu’à trois, et la première est la principale.
Rédigez l’instruction et désignez le selfie par image 1.
Choisissez le format, le format de sortie et la qualité.
Générez, comparez les deux variantes si vous en avez demandé deux, et téléchargez la meilleure.
Vous ne voulez rien écrire ? Professional Headshot prend une seule photo et un choix de fond : blanc, noir, neutre, gris ou bureau. Il propose aussi 14 préréglages de format, un réglage de genre pour une meilleure précision faciale, une seed pour des résultats reproductibles et une sortie en PNG ou JPG. C’est le moyen le plus rapide de voir ce que donne chaque fond avant de construire votre propre sélecteur.
Réglages importants
Paramètre
Ce qu’il fait
Valeur par défaut raisonnable
images
Jusqu’à 3 références, la première est la principale
Le selfie en premier
prompt
La modification, en désignant image 1, image 2
Moins de 4 000 caractères
aspect_ratio
Forme de la sortie
match_input_image
output_format
WebP, JPG ou PNG
PNG pour la livraison
output_quality
0 à 100, JPG et WebP uniquement
95
num_outputs
1 ou 2 variantes par appel
2 pour un bouton de nouvelle tentative
seed
Reproduit un résultat à l’identique
Le stocker avec la tâche
Un prompt qui fonctionne
Mettez l’identité en premier, puis la scène. Nommez la tenue, le fond et la lumière pour que le modèle n’ait rien à deviner :
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.
Évitez les demandes vagues du type « faites-moi paraître formidable ». Elles invitent au lissage, et une peau lissée est le chemin le plus rapide vers un résultat plastique, manifestement faux.
Code Python fonctionnel
Les extraits ci-dessous suivent la structure de type Replicate décrite plus haut. La documentation officielle sur picassoia.com/en/api comprend des exemples en Python, Node et cURL : vérifiez les noms de champs là-bas avant de livrer.
La fonction principale
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]
Le token provient d’une variable d’environnement, jamais du frontend. S’il est livré dans un bundle mobile ou un script de navigateur, n’importe qui peut le lire.
Respecter la limite de cinq tâches
Un compte exécute 5 prédictions à la fois, partagées entre tous les identifiants et toutes les connexions MCP. Un pic le jour du lancement heurtera ce mur, donc mettez les tâches en file d’attente de votre côté :
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)
Enregistrez chaque tâche dans une table avec son statut, puis montrez aux clients leur place dans la file. Une file visible semble rapide. Un spinner figé semble cassé.
Contrôles qualité avant livraison
Un headshot qui semble correct à 95 % reste une demande de remboursement. Les gens remarquent les visages avec une sensibilité presque surnaturelle, donc vérifiez chaque résultat avant qu’il n’atteigne un client.
Ressemblance et peau
Parcourez cette liste sur un jeu de test de cinquante selfies avant le lancement :
La forme du visage et la couleur des yeux correspondent au selfie
La peau garde ses pores, les fines rides et le teint, sans flou cireux
Les contours des cheveux sont nets, sans halo sur le fond
Les dents, les oreilles et les lunettes ont le bon nombre d’éléments et une symétrie correcte
Les bijoux et les cols ne sont pas fondus dans le cou
Le fond est assez uni pour une miniature de photo de profil
Regardez le résultat en miniature et en taille réelle. Beaucoup de défauts n’apparaissent qu’à l’une des deux.
Constituez le jeu de test volontairement. Incluez les pièces sombres, les lunettes, les barbes, les cheveux longs, les chapeaux et les personnes photographiées légèrement par en dessous. Consignez la seed et le prompt pour chaque exécution, afin que, lorsqu’un client signale un portrait étrange, vous puissiez le reproduire en une minute et corriger l’instruction au lieu de deviner.
Contrôle automatisé
Les grands modèles de langage aident à deux endroits. D’abord, ils peuvent transformer les choix du formulaire (fond, tenue, ambiance) en instruction finale, afin que les équipes produit puissent modifier la formulation sans déploiement. Gemini 3.5 Flash est une option rapide pour ce travail, et Claude Sonnet 5 convient aux règlements plus longs. Ensuite, Llama Guard 4 12B peut filtrer le texte libre que les utilisateurs saisissent dans les champs d’instruction personnalisés.
L’API publique liste quatre modèles, donc pour ces étapes, appelez votre propre fournisseur de LLM ou testez d’abord les prompts dans l’app web de PicassoIA.
Prévoyez aussi une solution de repli humaine. Donnez à chaque résultat un bouton Réessayer qui relance le même selfie avec une nouvelle seed, et un lien Signaler qui permet à un client de signaler un mauvais portrait.
Règles de consentement et de confidentialité
Un visage est une donnée personnelle. Traitez-la ainsi dès le premier jour, car une app de headshots qui gère mal les photos n’a pas de seconde chance.
Consentement et stockage
Demandez aux utilisateurs de confirmer que la photo les montre eux-mêmes ou une personne qui a donné son accord
Supprimez le selfie original dès que le portrait final est livré
Ne réutilisez jamais les photos des clients pour des exemples ou du marketing sans autorisation écrite
Indiquez dans votre app que le résultat est généré par IA, car certaines plateformes et certains employeurs y sont attentifs
Publiez une page de confidentialité en langage clair qui indique combien de temps les fichiers sont conservés
Limites à anticiper
Limite
Valeur
Que faire
Prédictions simultanées
5 par compte
Mettre les tâches en file et limiter les workers à 4
Corps de requête
10 Mo
Redimensionner les grands selfies dans le navigateur
Longueur du prompt
4 000 caractères
Limiter votre générateur d’instructions
Délai d’expiration d’une prédiction
3 heures
Annuler vous-même les tâches obsolètes
Identifiants API
2 par compte
Un pour la production, un pour la préproduction
💡 Vérifiez les tarifs avant de promettre un prix. La page API indique que les prédictions sont actuellement gratuites, alors que la page tarifs liste l’accès API sur les forfaits Pro+, Elite et Infinite. Lisez les deux avant de fixer ce que paieront vos clients.
Créez votre premier headshot dès aujourd’hui
Inutile de rédiger des documents de planification. Ouvrez PicassoIA Image Editor Pro, importez un selfie et testez trois versions du prompt ci-dessus : un fond gris, un fond blanc, un fond de bureau. Choisissez la gagnante, copiez sa formulation dans la fonction Python, et vous avez l’ossature d’un produit fonctionnel.
À partir de là, ajoutez un écran d’import, une file d’attente, un bouton de nouvel essai et une case de consentement. C’est toute la liste. Créez vos propres images avec PicassoIA, poussez les prompts jusqu’à ce que les portraits ressemblent à de vraies photographies, et livrez la première version cette semaine. Vos clients se soucieront bien plus d’un résultat propre et rapide que de n’importe quelle fonctionnalité que vous pourriez ajouter plus tard.