Difuminar caras
Una foto callejera, una escena de multitud, un fotograma de dashcam: en cuanto aparece la cara de un transeúnte, la imagen lleva consigo a una persona que nunca aceptó ser identificable. Este endpoint encuentra cada rostro de una foto por sí solo y difumina cada uno, para que quede la escena pero no las personas.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Por qué las caras son una categoría aparte
Un rostro no es un detalle más en una foto: en la mayoría de los lugares es un dato personal, y publicar la cara identificable de un desconocido tiene un peso real de consentimiento y privacidad que un logo o una matrícula difuminados no tienen. Por eso la anonimización de caras merece su propio paso de detección en lugar de un cuadro de coordenadas manual: los rostros se mueven, varían de tamaño y aparecen en cantidades que una persona no puede marcar de forma confiable una por una en miles de fotos.
Quién anonimiza caras a gran volumen
Medios de periodismo y documentales que protegen a transeúntes y fuentes en fotografía callejera y de multitudes, procesadores de video de dashcam y seguridad que preparan fotogramas para publicación pública, empresas de cartografía urbana y movilidad que anonimizan a los peatones captados incidentalmente en imágenes a nivel de calle, plataformas de eventos que publican fotos de multitudes sin necesitar el consentimiento de cada asistente que quedó en cuadro.
Qué hace realmente la detección
Envía la imagen, recibe de inmediato un task_id, y la tarea localiza cada rostro que detecta sin importar la cantidad o el tamaño, aplicando un desenfoque lo bastante fuerte para que la persona deje de ser identificable, mientras el resto de la foto —la escena, el entorno, la composición— regresa intacto.
Dónde encaja en un flujo de publicación
Como se ejecuta de forma asíncrona y se cobra por imagen, encaja de forma natural como un paso obligatorio antes de que cualquier foto de calle, evento o multitud se haga pública: una imagen se captura o se sube, este endpoint anonimiza cada rostro en ella, y solo la versión procesada llega a un depósito público o a un artículo publicado.
Una obligación antigua, hecha ahora de forma automática
Difuminar rostros antes de publicar es anterior a la fotografía digital: las redacciones han ocultado identidades en impresos durante décadas, casi siempre a mano, foto por foto. Lo que cambia aquí no es la idea sino el volumen: un trabajo que antes significaba que alguien marcara caras en un editor de imágenes ahora ocurre de forma automática, a la escala que realmente produce un feed de fotos o una cámara en vivo.
Qué puede hacer con ella
Fotografía callejera y documental
Una redacción anonimiza el rostro de cada transeúnte en una foto callejera antes de publicarla, sin marcar cada uno a mano.
Video de dashcam y seguridad
Un operador de flota difumina rostros en fotogramas de dashcam extraídos para un reporte de incidente antes de compartirlos fuera de la empresa.
Imágenes de cartografía urbana
Una empresa de mapas anonimiza a los peatones captados incidentalmente en fotos a nivel de calle antes de publicar el material.
Fotografía de eventos y multitudes
Una plataforma de eventos difumina rostros en fotos de multitudes para poder publicarlas sin pedir consentimiento a cada asistente.
Preguntas frecuentes
¿Cómo funciona la API para difuminar caras?
Envíe un POST a /image/blur-faces con la imagen; el endpoint detecta cada rostro automáticamente y devuelve el resultado difuminado por webhook o enlace firmado, sin necesidad de coordenadas.
¿Tiene prueba gratuita?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cómo se cobra?
$0.010 por solicitud más $0.0625 por imagen, un precio publicado y plano sin importar cuántas caras aparezcan en la foto.
¿Funciona con multitudes con muchas caras?
Sí, la detección no está limitada a un número fijo de rostros; cada cara encontrada en la imagen se difumina en el mismo proceso.
¿Puede pasar por alto una cara?
La calidad de la detección depende de condiciones como el ángulo, la iluminación y la resolución, así que conviene revisar el resultado en publicaciones críticas de alto impacto.
¿El desenfoque se puede revertir?
No, el desenfoque se aplica directamente sobre los píxeles devueltos; los rostros originales no se pueden recuperar a partir de la imagen resultante.
¿En qué se diferencia de Desenfocar Zona?
Desenfocar Zona tapa coordenadas que usted indica manualmente; Difuminar Caras detecta y difumina cada rostro de forma automática, sin necesidad de coordenadas.
¿Se cobra si la solicitud falla?
No. Una tarea fallida se reintenta automáticamente hasta tres veces y nunca se cobra; en su lugar recibe un error claro.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/image/blur-faces \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/blur-faces", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/blur-faces",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/blur-faces", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/blur-faces", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"image": "https://ejemplo.com/imagen.jpg"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.blur_faces",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 15 |
max_megapixels | 12 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |