Введение
Модель переносит черты лица с одного изображения на человека на другом. Переносятся только черты: причёска, линия роста волос, силуэт головы, поза, одежда, свет и фон целевого кадра остаются прежними. Именно поэтому результат встраивается в исходную фотографию, а не лежит поверх неё.
Face Swap Pro — прецизионный уровень линейки Face Swap. Движок сам находит ключевые точки лица на обеих фотографиях и накладывает один набор на другой, а после этого к результату ничего не применяется. Весь запрос — два URL изображений: image_url для фотографии, которую меняют, и reference_image_url для лица, отправленные на spicyapi/face-swap-pro-v1/edit. Вызов асинхронный: он возвращает id задачи, вы опрашиваете эту задачу, а каждый запрос возвращает одно изображение с оплатой за каждое выходное изображение.
Ключевые возможности и особенности
Движок совмещает лицо по ключевым точкам
Pro создан для точной работы. Вместо того чтобы переклеивать область, он находит ключевые точки лица на обеих фотографиях и накладывает один набор на другой, поэтому глаза, нос и рот оказываются там, где их располагает геометрия целевого лица. На этом эндпоинте обнаружение автоматическое: вы отправляете два изображения, и больше ничего. Последующего улучшения тоже нет, так что поры, тонкие морщинки и зерно сохраняются, а лицо такое же резкое, как всё вокруг. По той же причине результат может выглядеть менее льстиво, чем замена с фильтром: точность и лесть — разные цели.
Два URL изображений — и больше нечему ломаться
Это единственный эндпоинт замены лица в каталоге, который принимает только два изображения: ни промпта, ни области для маски, ни силы, ни seed. Это убирает целый класс ошибок из-за двусмысленных инструкций и делает пакетную обработку тривиальной: список пар проходит без решений по каждому элементу. Неизвестные ключи отклоняются, а не игнорируются, поэтому опечатка в имени поля даёт ошибку при отправке, а не тихий откат к значению по умолчанию. Действительно важно только одно — какой URL в какое поле: поля несимметричны, и если их поменять местами, запрос останется корректным, но результат будет совсем другим.
Целевая фотография переживает замену
| Берётся из референса | Остаётся от целевого кадра |
|---|---|
| Глаза, нос, рот, брови | Причёска, линия роста волос, силуэт головы |
| Пропорции самого лица | Поза, взгляд, тело, одежда |
| Детали кожи в области лица | Фон, кадрирование, свет, зерно |
Здесь нет ни соотношения сторон, ни разрешения, потому что кадр не генерируется заново — заменяется одна область существующей фотографии. Поэтому эндпоинт подходит для кадра, который уже утверждён: всё, что вне лица, остаётся нетронутым.
Параметры запроса
| Параметр | Обязательно | Описание |
|---|---|---|
image_url | Да | Изображение, которое меняют. Форма головы, волосы, линия роста волос, поза, направление взгляда, костюм и фон этого человека сохраняются — заменяются только черты его лица. Не менее 1 символов |
reference_image_url | Да | Изображение, которое даёт черты лица. Берётся только лицо, не форма головы и не волосы, поэтому кадрирование, фон и костюм этого снимка не учитываются. Не менее 1 символов |
face_enhance | Нет | Прогоняет заменённое лицо через улучшение, чтобы получить его в более высоком разрешении. По умолчанию выключено. По умолчанию: |
Стоимость
$0.16 / изображение
Сценарии использования
Редакционные и рекламные кадры для печати
Сглаженное лицо разваливается в печатном размере: рядом с резкой одеждой и резким фоном кожа выглядит пластиковой. Сохранённая исходная текстура позволяет кадру держаться, когда на него смотрят вблизи, а не на превью.
Замена человека в уже утверждённом кадре
Свет, поза и декорации уже работают, а генерация кадра целиком снова поставила бы всё это под вопрос. Перенесите в кадр только лицо — и всё, что вы утвердили, останется ровно на своих местах.
Единый персонаж в серии
Сгенерируйте сцены любой моделью, а затем перенесите одно лицо во все, чтобы серия читалась как один и тот же человек. Волосы и одежда остаются от каждого целевого кадра, так что сгенерированное разнообразие сохраняется.
Кадры без цензуры: граница — согласие, а не тема
SpicyAPI не добавляет собственного контентного фильтра и не требует контентной отметки, поэтому тело запроса всегда состоит из тех же двух полей, что бы ни показывал кадр. Не смягчается разрешение: нужно явное и информированное согласие изображённого человека на именно это сходство в именно этом материале, и согласие никогда не подразумевается из-за того, что фотография публичная.
Руководство по промптам и практические советы
Промпта нет, поэтому настройка происходит до вызова
В большинстве эндпоинтов изображений при неудачном результате вы переписываете фразу. Здесь нет: запрос — это два URL, и единственные переменные — отправляемые фотографии. Итерации легко анализировать: меняете одно изображение, другое оставляете и точно знаете, что сдвинулось. Но и неудачную пару лучшей инструкцией не спасти.
Выбор целевого кадра и референса
image_url — фотография, которую меняют; reference_image_url — источник лица. На обеих должно быть одно хорошо видимое лицо, примерно анфас, в фокусе и достаточно крупно, чтобы черты читались, в формате JPEG, PNG или WebP. Групповой снимок сначала обрежьте до одного человека. Сильнее всего влияет направление света: выберите референс, освещённый примерно с той же стороны, что и целевой кадр, потому что замена не меняет свет целевого кадра, а расхождение видно как шов вдоль линии челюсти.
Если результат не тот, что нужен
| Что вы видите | Что изменить в первую очередь |
|---|---|
| Шов вдоль челюсти или шеи | Взять референс, освещённый с той же стороны |
| Черты мягкие или приблизительные | Взять референс, где лицо крупнее и резче |
| Изменился не тот человек | Обрезать целевой кадр до одного человека |
| Запрос завершился ошибкой | Проверить, что оба URL всё ещё отдают файл изображения |
| Менее глянцево, чем в другом сервисе замены | Так и задумано: ретуши нет, добавьте свою после |
Выбор подходящего эндпоинта
| Что вам нужно | Эндпоинт |
|---|---|
| Точность по ключевым точкам и исходная текстура, без настроек | Этот эндпоинт |
| Подбор тона кожи и выбор формата файла | Face Swap Plus |
| Простая замена с seed, волосы никогда не затрагиваются | Face Swap |
| Голова целиком, вместе с волосами | Head Swap |
| Одно лицо на протяжении всего движущегося клипа | Video Face Swap |
Пакетный запуск
Раз по отдельным элементам ничего не решается, пакет — это цикл по парам. Отправляйте каждый вызов создания с Idempotency-Key и храните id задачи рядом с записью, которая её запустила; если соединение оборвётся, повтор запроса с тем же ключом вернёт исходную задачу, а не запустит вторую со второй оплатой. Опрашивайте каждые несколько секунд и копируйте каждый результат в собственное хранилище: сгенерированные файлы удаляются через 14 дней, а загруженные исходные изображения — через один.
Быстрый старт API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "spicyapi/face-swap-pro-v1/edit",
"input": {
"image_url": "https://example.com/reference.png",
"reference_image_url": "https://example.com/reference.png"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Аутентификация, полная схема, опрос статуса и обработка ошибок описаны в справочнике API.









