API generadora de fotos de perfil con IA: crea una app de retratos

Crea una app de fotos de perfil funcional sobre una API generadora de fotos de perfil con IA. Este artículo muestra el flujo de peticiones, los modelos que merece la pena usar, las opciones de fondo, código en Python, controles de calidad y las normas de consentimiento que protegen las fotos de tus clientes.

API generadora de fotos de perfil con IA: crea una app de retratos
Cristian Da Conceicao
Fundador de Picasso IA

Subes un selfi y recibes un retrato listo para una sala de juntas. Esa es la promesa de cada API generadora de fotos de perfil con IA, y es mucho más fácil de construir de lo que la mayoría de los desarrolladores espera. No necesitas entrenar un modelo de rostros, no alquilas GPU y no contratas a un fotógrafo para cada cliente. Tu app envía una foto y una instrucción a un endpoint HTTP, espera unos segundos y recibe una imagen terminada, lista para un perfil de LinkedIn, una página de equipo o un dossier de prensa.

Este artículo recorre toda la construcción: el flujo de solicitudes, los modelos que vale la pena usar, código Python que funciona, las comprobaciones de calidad que impiden que retratos débiles lleguen a los clientes y las reglas de consentimiento que mantienen seguro el producto. Todo lo que sigue se basa en la API para desarrolladores de PicassoIA y en los modelos que figuran en la plataforma.

💡 Versión corta: aloja el selfi en tu propio almacenamiento, llama a picassoia/picassoia-image-editor-pro con ese selfi como image 1, consulta la predicción hasta que termine con éxito, haz una comprobación rápida y luego muestra el resultado.

Por qué construir sobre una API

Retrato de estudio de una mujer segura de sí misma con blazer gris carbón sobre un fondo gris

Los retratos de estudio cuestan dinero y tiempo. Un fotógrafo reserva un hueco, un retocador trabaja durante días y un equipo remoto de cuarenta personas necesita cuarenta citas. Una app de fotos de perfil convierte todo eso en un formulario de subida y un botón. Lo que la convierte en un negocio y no en una demo es el control: tu propia interfaz, tus propios fondos, tu propio precio y tus propias reglas de datos.

Quién lo necesita

La demanda es más amplia de lo que se suele pensar. Estos son los productos que no dejan de pedir una función de retratos:

  • Herramientas de RR. HH. y de incorporación que necesitan un estilo de foto uniforme para cada nueva contratación
  • Creadores de currículums y bolsas de empleo donde la foto de perfil cambia el aspecto de la página
  • Plataformas de creadores y freelancers que quieren un avatar pulido al registrarse
  • Agencias que entregan paquetes de retratos a clientes corporativos
  • Software para eventos que recoge fotos de ponentes en todo tipo de condiciones de luz

Construir o comprar

OpciónTiempo de puesta en marchaControlIdeal para
Web de fotos de perfil ya hechaMinutosBajoUna foto personal puntual
Envoltorio sin código alrededor de un formularioHorasMedioHerramientas internas y pruebas rápidas
Tu propia app sobre una APIUnos pocos díasControl total de diseño, precios y datosProductos y plataformas

Si solo necesitas tu propia foto, usa una web. Si los retratos son una función dentro de algo que vendes, una API gana en todos los aspectos que importan después del lanzamiento.

La economía cuenta la misma historia. Un fotógrafo cobra por persona, así que el costo crece con cada cliente que sumas. Una llamada a una API es software: el trabajo que hay detrás del primer retrato es el mismo que sirve para el retrato número diez mil, y tu margen mejora a medida que crece el uso en lugar de reducirse.

El flujo de peticiones en cinco pasos

Vista por encima del hombro de un desarrollador frente a una mesa de pie con dos monitores

Cada app de fotos de perfil, por muy pulida que sea su interfaz, sigue el mismo ciclo. La API de PicassoIA es asíncrona y de estilo Replicate: creas una predicción, la consultas y después lees el resultado.

  1. Recoge el selfi en tu frontend.
  2. Valida y guarda el archivo para tener una URL que la API pueda descargar.
  3. Crea la predicción con un POST al endpoint del modelo.
  4. Consulta la predicción hasta que su estado sea final.
  5. Comprueba y entrega la URL del resultado.

La URL base es https://api.picassoia.com/v1, y cada petición lleva una cabecera Authorization: Bearer pia_sk_.... Creas esas claves secretas desde la página de la API en picassoia.com, y una cuenta puede tener dos, así que una puede servir para producción y la otra para pruebas.

Subida y validación

Joven con camisa azul marino haciéndose un selfi junto a una ventana de oficina

Rechaza los datos incorrectos desde el principio. Acepta JPEG, PNG y WebP, mantén el archivo muy por debajo del límite de 10 MB del cuerpo de la petición y fija una resolución mínima para que los rostros no sean más pequeños que un sello de correos. Después, guía al usuario en la misma pantalla: colócate frente a la ventana, sostén el teléfono a la altura de los ojos, una sola persona en el encuadre, sin gafas de sol.

Una pista de diez segundos en la pantalla de subida evita más tickets de soporte que cualquier ajuste del modelo. Un selfi borroso en un pasillo oscuro produce un retrato borroso cada vez.

Crear la predicción

Los endpoints de los modelos siguen un único patrón: POST /v1/models/{owner}/{name}/predictions. El cuerpo envuelve cada parámetro dentro de un objeto input. Para un retrato, la entrada contiene la URL del selfi y una instrucción de texto. Recibes de inmediato un objeto de predicción con un id y un status, mucho antes de que exista la imagen.

Consultar y guardar

Llama a GET /v1/predictions/{id} cada dos o tres segundos hasta que el estado sea succeeded, failed o canceled. Si un cliente cierra la pestaña, POST /v1/predictions/{id}/cancel detiene el trabajo. Cuando termina con éxito, descarga el resultado y cópialo a tu propio almacenamiento para que tu producto nunca dependa de una URL de un tercero.

💡 Una predicción puede durar hasta 3 horas en el servidor. Tu interfaz debería rendirse mucho antes. Las ediciones suelen terminar en segundos, así que un tiempo de espera de 90 segundos en el cliente con un botón de reintento claro es suficiente.

Elige modelos que encajen

Vista cenital de cinco retratos impresos sobre fondos distintos

La API y el conector MCP exponen actualmente cuatro modelos. Dos importan para los retratos, y el resto de la plataforma te ayuda mientras haces prototipos en el navegador.

ModeloFunción en una app de retratosDónde usarlo
PicassoIA Image Editor ProConvierte un selfi en un retrato pulido, cambia fondos, retocaAPI y web
PicassoIA ImageCrea retratos de muestra y fondos base a partir de textoAPI y web
Professional HeadshotUna foto de entrada, un retrato de estudio de salida, con cinco preajustes de fondoWeb
Bria Remove BackgroundRecorta al sujeto para fondos en color de marcaWeb
Topaz Image UpscaleAumenta la resolución para retratos de tamaño impresoWeb

Los tres últimos están en la aplicación web. Revisa la documentación de la API antes de conectarlos al código, porque la API pública expone hoy cuatro modelos.

El fondo merece una decisión propia, ya que cambia cómo se lee el retrato en un círculo de perfil. Una asignación sencilla da a tus usuarios un valor predeterminado razonable:

Caso de usoFondoPor qué funciona
LinkedIn y solicitudes de empleoGris neutroSobrio, se lee bien en miniatura
Directorio de empresaBlancoIdéntico en todo el equipo
Portafolio y trabajo creativoGris carbónAñade profundidad sin distraer
Ventas e inmobiliariaOficina desenfocadaResulta cercano y local

Editor o texto a imagen

Un cliente quiere parecerse a sí mismo, solo que con mejor luz y mejor ropa. El texto a imagen inventa una persona nueva, que es el producto equivocado. Un modelo de edición mantiene el rostro del selfi y cambia todo lo demás, así que PicassoIA Image Editor Pro es el caballo de batalla. Usa PicassoIA Image para las imágenes que necesite tu propio marketing: muestras para la página de inicio, datos de prueba y fondos de oficina vacíos.

Limpieza después de la edición

Dos pasos pequeños mejoran el resultado. Bria Remove Background da a los clientes un recorte transparente que pueden colocar sobre el color de su empresa. Topaz Image Upscale lleva un retrato de tamaño web hacia una resolución de impresión. Ofrécelos como extras opcionales una vez que el resultado principal se vea bien.

Cómo usar Image Editor Pro

Haz primero el prototipo en el navegador. Tarda cinco minutos y te dice qué formulación del prompt merece la pena fijar en el código.

  1. Abre la página de PicassoIA Image Editor Pro.
  2. Sube el selfi como primera imagen de referencia. El modelo acepta hasta tres, y la primera es la principal.
  3. Escribe la instrucción y menciona el selfi como imagen 1.
  4. Elige la relación de aspecto, el formato de salida y la calidad.
  5. Genera, compara las dos variaciones si pediste dos y descarga la mejor.

Mano sosteniendo un smartphone que muestra un retrato de perfil limpio

¿Quieres cero prompts? Professional Headshot acepta una sola foto y una elección de fondo: blanco, negro, neutro, gris u oficina. También ofrece 14 preajustes de relación de aspecto, un ajuste de género para mayor precisión facial, una semilla para resultados repetibles y salida en PNG o JPG. Es la forma más rápida de ver cómo queda cada fondo antes de crear tu propio selector.

Ajustes que importan

ParámetroQué haceValor predeterminado sensato
imagesHasta 3 referencias, la primera es la principalSelfi primero
promptLa edición, que menciona image 1, image 2Menos de 4.000 caracteres
aspect_ratioForma de salidamatch_input_image
output_formatWebP, JPG o PNGPNG para entregar
output_qualityDe 0 a 100, solo JPG y WebP95
num_outputs1 o 2 variaciones por llamada2 para tener un botón de reintento
seedRepite un resultado exactamenteGuárdalo con el trabajo

Un prompt que funciona

Pon primero la identidad y después la escena. Nombra la vestimenta, el fondo y la luz para que el modelo no tenga nada que adivinar:

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.

Evita peticiones vagas como "hazme ver increíble". Invitan a suavizar, y la piel suavizada es el camino más rápido a un resultado de plástico, obviamente falso.

Código funcional en Python

Los fragmentos siguientes siguen la forma de estilo Replicate descrita arriba. La documentación oficial en picassoia.com/en/api incluye ejemplos en Python, Node y cURL, así que confirma allí los nombres de los campos antes de publicar.

La función 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]

El token viene de una variable de entorno, nunca del frontend. Si va dentro de un paquete de app móvil o de un script del navegador, cualquiera puede leerlo.

Respeta el límite de cinco trabajos

Una cuenta ejecuta 5 predicciones a la vez, compartidas entre todas las credenciales y todas las conexiones MCP. Un pico el día del lanzamiento chocará con ese límite, así que pon los trabajos en cola de tu 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)

Guarda cada trabajo en una tabla con su estado y, después, muestra a los clientes su lugar en la cola. Una cola visible parece rápida. Un indicador de carga congelado parece roto.

Controles de calidad antes de entregar

Primer plano extremo de los ojos y la piel de un hombre mayor en un retrato

Un retrato que parece correcto en un 95 por ciento sigue siendo una solicitud de reembolso. La gente nota los rostros con una sensibilidad casi sobrenatural, así que revisa cada resultado antes de que llegue a un cliente.

Parecido y piel

Repasa esta lista con un conjunto de prueba de cincuenta selfis antes de lanzar:

  • La forma del rostro y el color de los ojos coinciden con el selfi
  • La piel conserva sus poros, las líneas finas y el tono, sin un desenfoque céreo
  • Los bordes del cabello están limpios, sin un halo contra el fondo
  • Los dientes, las orejas y las gafas tienen el número correcto y simetría
  • Las joyas y los cuellos no se funden con el cuello
  • El fondo es lo bastante liso para una miniatura de foto de perfil

Mira el resultado en tamaño miniatura y en tamaño completo. Muchos defectos solo aparecen en uno de los dos.

Crea el conjunto de prueba a propósito. Incluye habitaciones con poca luz, gafas, barbas, pelo largo, sombreros y personas fotografiadas desde ligeramente abajo. Registra la semilla y el prompt de cada ejecución para que, cuando un cliente informe de un retrato extraño, puedas reproducirlo en un minuto y corregir la instrucción en lugar de adivinar.

Filtrado automático

Retocador comparando dos copias impresas de retratos bajo una lámpara de luz de día

Los modelos de lenguaje ayudan de dos formas. Primero, pueden convertir las opciones del formulario (fondo, atuendo, ambiente) en la instrucción final, para que el equipo de producto pueda editar la redacción sin desplegar una nueva versión. Gemini 3.5 Flash es una opción rápida para ese trabajo, y Claude Sonnet 5 encaja con reglamentos internos más largos. Segundo, Llama Guard 4 12B puede revisar el texto libre que los usuarios escriben en los campos de instrucción personalizada.

La API pública expone cuatro modelos, así que para estos pasos llama a tu propio proveedor de LLM o prueba antes los prompts en la aplicación web de PicassoIA.

Mantén también una alternativa humana. Da a cada resultado un botón Intentar de nuevo que ejecute el mismo selfi con una semilla nueva, y un enlace Reportar que permita a un cliente marcar un retrato malo.

Reglas de consentimiento y privacidad

Seis compañeros de trabajo de pie juntos en un vestíbulo de oficina luminoso

Un rostro es un dato personal. Trátalo así desde el primer día, porque una app de retratos que maneja mal las fotos no tiene una segunda oportunidad.

Consentimiento y almacenamiento

  • Pide a los usuarios que confirmen que la foto les muestra a ellos o a alguien que lo haya aceptado
  • Borra el selfi original en cuanto se entregue el retrato final
  • Nunca reutilices fotos de clientes para muestras o marketing sin permiso por escrito
  • Marca el resultado como generado con IA dentro de tu app, ya que a algunas plataformas y empleadores les importa
  • Publica una página de privacidad en lenguaje sencillo que indique cuánto tiempo se conservan los archivos

Límites con los que planificar

LímiteValorQué hacer
Predicciones simultáneas5 por cuentaPon los trabajos en cola y limita los workers a 4
Cuerpo de la petición10 MBRedimensiona los selfis grandes en el navegador
Longitud del prompt4.000 caracteresLimita tu generador de instrucciones
Tiempo de espera de la predicción3 horasCancela tú mismo los trabajos obsoletos
Credenciales de API2 por cuentaUna para producción, otra para pruebas

💡 Comprueba los precios antes de prometer un precio. La página de la API describe las predicciones como gratuitas por ahora, mientras que la página de precios incluye el acceso a la API en los planes Pro+, Elite e Infinite. Lee ambas antes de decidir lo que pagarán tus clientes.

Haz tu primer retrato hoy

Hombre sonriente con traje azul marino de pie en un pasillo de cristal iluminado por el sol

Sáltate los documentos de planificación. Abre PicassoIA Image Editor Pro, sube un selfi y prueba tres versiones del prompt de arriba: un fondo gris, un fondo blanco y un fondo de oficina. Elige la ganadora, copia su redacción en la función de Python y tendrás la base de un producto que funciona.

A partir de ahí, añade una pantalla de subida, una cola, un botón de reintento y una casilla de consentimiento. Esa es toda la lista. Crea tus propias imágenes con Picasso IA, ajusta los prompts hasta que los retratos parezcan fotografías reales y lanza la primera versión esta semana. A tus clientes les importará mucho más un resultado limpio y rápido que cualquier función que puedas añadir después.

Compartir este artículo

Elige tu idioma