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:
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:

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 comoapplication/json.authorization: la clave para llamar a la API, que se puede seleccionar directamente después de solicitar.
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.

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:
CURL
Python
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, 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.

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 adicionalcallback_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:

El contenido es el siguiente:
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.

