소개
Face Swap은 한 이미지의 얼굴 특징을 다른 이미지 속 인물에게 옮깁니다. 옮겨지는 것은 얼굴 특징뿐입니다. 대상 이미지의 헤어스타일, 헤어라인, 머리 윤곽, 자세, 의상, 조명, 배경은 그대로 남습니다. 그래서 결과가 원본 사진 위에 얹힌 것이 아니라 사진 안에 자연스럽게 자리 잡습니다.
요청은 이미지 URL 두 개와 선택 항목인 seed가 전부입니다. 바꿀 사진은 image_url, 얼굴은 reference_image_url에 넣습니다. 작성할 프롬프트 필드는 없으며 요청당 이미지 한 장이 돌아옵니다.
핵심 기능 및 하이라이트
컷은 그대로, 인물만 바꿉니다
대상 사진의 머리, 자세, 의상, 프레이밍, 배경이 이미 맞춰져 있을 때 고르는 범위가 좁은 선택지입니다. 얼굴의 정체성만 옮기고 승인된 구도의 나머지는 지키므로, 인물 교체가 이미지 전체를 다시 생성하는 일이 되지 않습니다.
반복해서 쓰는 이미지 쌍을 위해
흐름은 일부러 단순하게 만들었습니다. 권리가 정리된 대상 이미지와 레퍼런스를 각도와 조명이 맞도록 준비한 뒤, 턱선과 눈과 피부 경계를 검토합니다. 컷이 알아볼 수 있는 상태로 남아야 하는 아바타, 카탈로그, 캠페인 변형을 관리하며 만드는 데 알맞습니다.
합성 범위를 먼저 정하십시오
대상 이미지의 헤어스타일과 머리 윤곽이 구도의 일부라면 Face Swap을 쓰십시오. 새 인물의 머리카락과 머리 전체 형태까지 가져와야 한다면 Head Swap으로 보내십시오. 범위를 제대로 고르면 피할 수 있었던 재실행을 줄일 수 있습니다.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
image_url | 예 | 바뀌는 이미지입니다. 이 인물의 두상과 헤어, 포즈, 의상, 배경은 보존되고 이목구비만 교체됩니다. 1자 이상 |
reference_image_url | 예 | 이목구비를 주는 이미지입니다. 가져오는 건 얼굴뿐이고 두상이나 헤어는 아닙니다. 1자 이상 |
face_mapping | 아니요 | 단체 사진용입니다. 레퍼런스의 어느 얼굴을 대상의 어느 얼굴에 넣을지 항목마다 한 쌍씩 적으며, 얼굴 번호는 검출 순서대로 0부터 셉니다. 10개 이하 |
style | 아니요 | 바꾼 얼굴의 마감 방식입니다. realistic(기본값)은 자연스러운 피부 톤과 질감을 유지하고, beautify는 피부를 매끈하고 밝게 하며, lossless는 얼굴 디테일을 가장 많이 보존합니다. |
face_enhance | 아니요 | 바꾼 얼굴에 얼굴 보정 단계를 한 번 더 적용해 더 높은 해상도로 만듭니다. 기본값은 꺼짐입니다. 기본값: |
seed | 아니요 | 같은 seed를 다시 쓰면 같은 이미지 쌍에서 돌린 두 실행을 같은 뽑기 위에서 견줄 수 있습니다. 비워 두거나 0으로 두면 매번 무작위로 뽑습니다. |
요금
$0.013 / 장
활용 사례
헤어가 이미 맞는 인물 사진에 새 얼굴 넣기
대상 사진의 헤어스타일, 헤어라인, 머리 윤곽이 구도의 일부이고 이목구비만 바꾸고 싶을 때 이 엔드포인트를 씁니다. 대상은 image_url, 얼굴은 reference_image_url로 보내고, 결과를 받아들이기 전에 눈과 턱선을 원본과 원래 크기로 비교하십시오.
스톡 또는 생성 이미지의 인물 바꾸기
조명, 자세, 세트가 이미 맞는 컷을 가져와 다른 얼굴을 넣습니다. 이미지 전체를 다시 생성해 이미 승인한 구도를 잃을 필요가 없습니다.
아바타·프로필 이미지 대량 처리
작성할 프롬프트가 없으므로 대상-레퍼런스 쌍 목록을 프로그램으로 그대로 흘려보낼 수 있습니다. 재시도를 첫 실행과 비교할 수 있어야 한다면 쌍마다 seed를 고정하십시오.
촬영 전체에서 같은 인물 유지하기
어떤 모델로든 장면들을 생성한 뒤 같은 얼굴을 모든 장면에 옮기면 시리즈가 같은 사람으로 읽힙니다. 머리와 의상은 각 대상 이미지의 것이 남으므로 생성한 다양성도 사라지지 않습니다.
프롬프트 가이드 및 실전 팁
두 얼굴에 대한 권리부터 확인하십시오
기술적인 작업보다 먼저 확인할 것이 있습니다. 대상 이미지와 레퍼런스 모두 사람이 나오므로, 옮기는 얼굴과 그 얼굴을 넣을 이미지 모두에 대한 권한이 필요합니다. 동의서는 작업 기록과 함께 보관하십시오.
두 이미지를 호스팅하고 쌍으로 보내기
image_url은 바꿀 이미지이고 reference_image_url은 얼굴을 제공합니다. 프롬프트는 쓰이지 않습니다. 범용 이미지 편집기라면 다음과 같은 지시가 필요합니다. ‘Face swap: take the face and hairline of the woman in the second image and place it onto the woman in the first image. Keep the first image's pose, outfit, magazine layout, lighting, framing and colour grade completely unchanged. Match skin tone and lighting so the result reads as one photograph.’ 이 엔드포인트에는 둘 다 필요하지 않습니다.
반복하기 전에 결과 확인하기
두 이미지 모두 잘 보이고, 대체로 정면을 향하며, 조명이 잘 든 얼굴이어야 합니다. 옆모습에 가까운 각도, 흔들림, 많이 가려진 얼굴, 아주 작은 얼굴에서는 옮기는 품질이 떨어지거나 아예 실패합니다. 두 이미지 사이의 조명 방향이나 피부 톤 차이가 크면 턱선에 드러나므로, 대상과 빛이 대체로 비슷한 레퍼런스를 고르십시오. 기본적으로 이미지마다 얼굴 하나를 바꿉니다. 단체 사진에서는 face_mapping에 짝(레퍼런스의 어느 얼굴을 대상의 어느 얼굴에 넣을지, 0부터 센 번호)을 적으십시오. 프롬프트도 마스크도 강도 조절도 없으므로, 결과가 틀렸다면 해결책은 다른 이미지 쌍이지 다시 쓴 요청이 아닙니다.
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-v1/edit",
"input": {
"image_url": "https://example.com/reference.png",
"reference_image_url": "https://example.com/reference.png",
"style": "realistic"
}
}'
# 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 레퍼런스에서 확인하세요.











