/create
Рассмотрим пример, где мы хотим заменить лицо на фотографии sourceImage лицом с фотографии faceImage. Обратите внимание: лицо должно быть хорошо видимым, повернуто в сторону камеры и не должно быть слишком близко (голова не должна быть обрезана), иначе возможны ошибки.

sourceImage 
faceImage
Создать задачу на замену лица
POST
https://gptunnel.ru/v1/faceswap/create Замена лица на фото может занимать от 1 до 30 секунд в зависимости от загрузки сервера, поэтому создается асинхронная задача. Результат можно получить через webhook или через метод /result.
Headers
| Параметр | Тип | Описание |
|---|---|---|
Authorization* | string | API ключ |
Request Body
| Параметр | Тип | Описание |
|---|---|---|
sourceImage* | string | Исходное изображение (URL или base64), PNG/JPEG |
faceImage* | string | Изображение с лицом для замены (URL или base64), PNG/JPEG |
useWalletBalance | boolean | Использовать личный счет |
enhanceFace | boolean | Улучшить качество лица |
enhanceBackground | boolean | Улучшить качество фона |
webhook | string | URL для отправки результата |
Пример запроса
curl --request POST \ --url https://gptunnel.ru/v1/faceswap/create \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "sourceImage": "https://storage.yandexcloud.net/timenote/fs_source.jpg", "faceImage": "https://storage.yandexcloud.net/timenote/fs_face.jpg", "webhook": null, "useWalletBalance": false}'import axios from 'axios'
const response = await axios({ method: 'POST', url: 'https://gptunnel.ru/v1/faceswap/create', headers: { Authorization: 'YOUR_API_KEY', }, data: { sourceImage: 'https://storage.yandexcloud.net/timenote/fs_source.jpg', faceImage: 'https://storage.yandexcloud.net/timenote/fs_face.jpg', webhook: null, useWalletBalance: false, },})
console.log(response.data)import requests
response = requests.post( 'https://gptunnel.ru/v1/faceswap/create', headers={'Authorization': 'YOUR_API_KEY'}, json={ 'sourceImage': 'https://storage.yandexcloud.net/timenote/fs_source.jpg', 'faceImage': 'https://storage.yandexcloud.net/timenote/fs_face.jpg', 'webhook': None, 'useWalletBalance': False, },)
print(response.json())Пример ответа
{ "id": "65819c485337280001a609e7", "parentId": null, "object": "task", "type": "@FaceSwap", "percent": 0, "status": "idle", "error": null, "usage": { "prompt_tokens": 0, "completion_tokens": 1, "total_tokens": 1, "prompt_cost": 0, "completion_cost": 15, "total_cost": 15 }}{ "error": { "message": "'sourceImage' is a required property", "type": "invalid_request_error", "param": null, "code": null }}{ "error": { "message": "Unauthorized", "type": "unauthorized_request_error", "param": null, "code": null }}{ "error": { "message": "Organization balance is too low to use API", "type": "insufficient_balance_error", "param": null, "code": null }}Результат будет получен через webhook, который был указан в запросе, или через метод /result.