Saltar al contenido principal
La función principal de la API de Face Swap es intercambiar la cara de la imagen objetivo con la cara de la imagen fuente al ingresar una imagen fuente y una imagen objetivo. Este documento detallará las instrucciones de integración de la API de Face Swap, ayudándole a integrar y aprovechar al máximo las potentes funciones de esta API. A través de la API de Face Swap, puede lograr fácilmente intercambiar la cara de la imagen objetivo con la cara de la imagen fuente.

Proceso de solicitud

Para usar la API de Face Swap, primero debe ir a la página de solicitud Face Swap API para solicitar el servicio correspondiente. Una vez en la página, haga clic en el botón “Acquire”, como se muestra en la imagen: Página de solicitud Si aún no ha iniciado sesión o registrado, será redirigido automáticamente a la página de inicio de sesión para invitarlo a registrarse e iniciar sesión. Después de iniciar sesión o registrarse, será redirigido automáticamente a la página actual. En la primera solicitud, se le otorgará un crédito gratuito, lo que le permitirá usar esta API de forma gratuita.

Ejemplo de solicitud

Tomaremos dos imágenes como ejemplo para demostrar cómo usar esta API. Supongamos que la imagen fuente es la siguiente:

La imagen objetivo es:

A continuación, demostraremos cómo intercambiar la cara de la imagen objetivo con la cara de la imagen fuente.

Configuración de los encabezados y el cuerpo de la solicitud

Request Headers incluye:
  • accept: especifica que se aceptan respuestas en formato JSON, aquí se debe llenar como application/json.
  • authorization: la clave para llamar a la API, que se puede seleccionar directamente después de solicitar.
Request Body incluye:
  • source_image_url: enlace de la imagen fuente cargada.
  • target_image_url: enlace de la imagen objetivo cargada.
  • timeout: opcional, tiempo de espera para el procesamiento (segundos), si se agota el tiempo, se devolverá directamente.
La configuración es como se muestra en la imagen:

Ejemplo de código

Se puede observar que en el lado derecho de la página se han generado automáticamente códigos en varios lenguajes, como se muestra en la imagen:

Algunos ejemplos de código son los siguientes:

CURL

curl -X POST 'https://api.acedata.cloud/face/swap' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "source_image_url": "https://cdn.acedata.cloud/n1lmd8.png",
  "target_image_url": "https://cdn.acedata.cloud/3np95r.png"
}'

Python

import requests

url = "https://api.acedata.cloud/face/swap"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "source_image_url": "https://cdn.acedata.cloud/n1lmd8.png",
    "target_image_url": "https://cdn.acedata.cloud/3np95r.png"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

Ejemplo de respuesta

Después de una solicitud exitosa, la API devolverá información sobre el resultado de la imagen intercambiada. Por ejemplo:
{
  "image_url": "https://platform.cdn.acedata.cloud/face/4b13bdeb-1b19-4ea5-bddf-c2da14ba72e3.png",
  "image_width": 2008,
  "image_height": 1942,
  "image_size": 4006213,
  "task_id": "4b13bdeb-1b19-4ea5-bddf-c2da14ba72e3"
}
Se puede ver que en el resultado hay un campo image_url, que contiene el enlace de la imagen después de intercambiar la cara de la imagen objetivo con la cara de la imagen original. La otra información es como se muestra en la imagen:
  • image_url, enlace de la imagen generada.
  • image_width, ancho de la imagen generada.
  • image_height, longitud de la imagen generada.
  • image_size, tamaño de la imagen generada.
  • task_id, ID de la tarea de generación.
El resultado de la imagen generada es:

Se puede ver claramente que esta imagen ha intercambiado con éxito la cara de la imagen objetivo con la cara de la imagen fuente.

Callback asíncrono

Dado que el tiempo de generación de Face Swap es relativamente largo, aproximadamente de 1 a 2 minutos, si la API no responde durante mucho tiempo, la solicitud HTTP mantendrá la conexión, lo que provocará un consumo adicional de recursos del sistema. Por lo tanto, esta API también ofrece soporte para callbacks asíncronos. El flujo general es: cuando el cliente inicia la solicitud, se especifica un campo adicional callback_url. Después de que el cliente inicia la solicitud a la API, la API devolverá inmediatamente un resultado que incluye un campo task_id, que representa el ID de la tarea actual. Cuando la tarea se complete, el resultado de la generación de Face Swap se enviará al callback_url especificado por el cliente en formato JSON POST, que también incluirá el campo task_id, de modo que el resultado de la tarea se pueda asociar mediante el ID. A continuación, entenderemos cómo operar específicamente a través de un ejemplo. Primero, el callback de Webhook es un servicio que puede recibir solicitudes HTTP, y el desarrollador debe reemplazarlo con la URL de su propio servidor HTTP. Aquí, para facilitar la demostración, se utiliza un sitio web de muestra de Webhook público https://webhook.site/, al abrir este sitio se obtiene una URL de Webhook, como se muestra en la imagen: Copie esta URL y podrá usarla como Webhook. El ejemplo aquí es https://webhook.site/3b76eba5-4573-432a-b607-3000b87afc06. A continuación, podemos configurar el campo callback_url con la URL de Webhook mencionada anteriormente, al mismo tiempo que llenamos los parámetros correspondientes, como se muestra en la imagen:

Al hacer clic en ejecutar, se puede observar que se obtiene inmediatamente un resultado, como el siguiente:
{
  "task_id": "9cba9d36-3b14-43c9-85b6-86f6dfc3b096"
}
Después de un momento, podemos observar el resultado de la generación de Face Swap en https://webhook.site/3b76eba5-4573-432a-b607-3000b87afc06, como se muestra en la imagen: El contenido es el siguiente:
{
  "success": true,
  "task_id": "9cba9d36-3b14-43c9-85b6-86f6dfc3b096",
  "image_url": "https://platform.cdn.acedata.cloud/face/9cba9d36-3b14-43c9-85b6-86f6dfc3b096.png",
  "image_width": 2008,
  "image_height": 1942,
  "image_size": 4006481
}
Se puede ver que en el resultado hay un campo task_id, y los otros campos son similares a los mencionados anteriormente, a través de este campo se puede realizar la asociación de tareas.

Manejo de errores

Al llamar a la API, si se encuentra con un error, la API devolverá el código de error correspondiente y la información. Por ejemplo:
  • 400 token_mismatched:Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
  • 400 api_not_implemented:Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
  • 401 invalid_token:No autorizado, token de autorización inválido o faltante.
  • 429 too_many_requests:Demasiadas solicitudes, ha superado el límite de tasa.
  • 500 api_error:Error interno del servidor, algo salió mal en el servidor.

Ejemplo de respuesta de error

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "la recuperación falló"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusión

A través de este documento, ha aprendido cómo utilizar la API de Face Swap para intercambiar la cara de la imagen objetivo con la cara de la imagen fuente. Esperamos que este documento le ayude a integrar y utilizar mejor esta API. Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de soporte técnico.