Процесс подачи заявки
Чтобы использовать Face Swap API, сначала необходимо перейти на страницу заявки Face Swap API и подать соответствующую заявку. После перехода на страницу нажмите кнопку «Acquire», как показано на изображении:
Если вы еще не вошли в систему или не зарегистрированы, вы будете автоматически перенаправлены на страницу входа, где вам будет предложено зарегистрироваться и войти в систему. После входа или регистрации вы будете автоматически возвращены на текущую страницу.
При первой подаче заявки предоставляется бесплатный лимит, который позволяет бесплатно использовать этот API.
Примеры запросов
Мы используем два изображения в качестве примера, чтобы продемонстрировать, как использовать этот API. Предположим, что исходное изображение выглядит следующим образом:

Установка заголовков запроса и тела запроса
Request Headers включает:accept: указывает на прием ответа в формате JSON, здесь указываетсяapplication/json.authorization: ключ для вызова API, который можно выбрать из выпадающего списка после подачи заявки.
source_image_url: ссылка на загруженное исходное изображение.target_image_url: ссылка на загруженное целевое изображение.timeout: необязательный, время ожидания обработки (в секундах), по истечении которого будет возвращен ответ.

Пример кода
Можно заметить, что на правой стороне страницы автоматически сгенерирован код на различных языках, как показано на изображении:
CURL
Python
Пример ответа
После успешного запроса API вернет информацию о результате замены лиц. Например:image_url, которое содержит ссылку на изображение с замененным лицом, а также другая информация, как показано на изображении:
image_url: ссылка на сгенерированное изображение.image_width: ширина сгенерированного изображения.image_height: высота сгенерированного изображения.image_size: размер сгенерированного изображения.task_id: ID текущей задачи генерации.

Асинхронный обратный вызов
Поскольку время генерации Face Swap относительно долгое, примерно 1-2 минуты, если API долго не отвечает, HTTP-запрос будет поддерживать соединение, что приведет к дополнительным затратам системных ресурсов. Поэтому этот API также поддерживает асинхронные обратные вызовы. Общий процесс таков: когда клиент инициирует запрос, дополнительно указывается полеcallback_url. После того как клиент инициирует запрос API, API немедленно возвращает результат, содержащий поле task_id, представляющее текущий ID задачи. Когда задача завершена, результат генерации Face Swap будет отправлен на указанный клиентом callback_url в формате POST JSON, который также включает поле task_id, что позволяет связать результаты задачи по ID.
Давайте рассмотрим, как это работает на примере.
Во-первых, обратный вызов Webhook — это служба, которая может принимать HTTP-запросы, разработчик должен заменить ее на URL своего HTTP-сервера. Для удобства демонстрации мы используем публичный сайт примера Webhook https://webhook.site/, открыв который, вы получите URL Webhook, как показано на изображении:
Скопируйте этот URL, и вы сможете использовать его в качестве Webhook. Пример здесь: https://webhook.site/3b76eba5-4573-432a-b607-3000b87afc06.
Далее мы можем установить поле callback_url на указанный URL Webhook и заполнить соответствующие параметры, как показано на изображении:

Содержимое следующее:
task_id, остальные поля аналогичны вышеупомянутым, и с помощью этого поля можно связать задачи.
Обработка ошибок
При вызове API, если возникает ошибка, API вернет соответствующий код ошибки и информацию. Например:400 token_mismatched:Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.400 api_not_implemented:Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.401 invalid_token:Неавторизован, недействительный или отсутствующий токен авторизации.429 too_many_requests:Слишком много запросов, вы превысили лимит частоты.500 api_error:Внутренняя ошибка сервера, что-то пошло не так на сервере.

