소개
Object Eraser는 사진 속 원하지 않는 물건을 지우고, 그것이 남긴 빈자리를 장면의 나머지와 어울리는 배경으로 채웁니다. 대상을 가리키는 방법은 두 가지로, 짧은 말로 설명하거나 검은 마스크 위에 흰색으로 칠하면 됩니다. 원본 크기 그대로, 그 물건만 빠진 같은 사진이 돌아옵니다.
핵심 기능 및 하이라이트
말로도, 마스크로도 지정
가장 빠른 방법은 짧은 설명입니다. ‘왼쪽의 나무 벤치’, ‘문 위의 간판’, ‘오른쪽에서 두 번째 사람’처럼 쓰면 됩니다. 주변에 여백이 있는 뚜렷한 물건에는 잘 통하지만, 가느다란 물건이나 화면 가장자리의 물건은 놓치기 쉬우며 사진이 그대로 돌아온다면 그 신호입니다. 마스크는 픽셀을 정밀하게 표시하므로 그런 경우나 비슷한 컵 두 개 중 하나, 울타리의 일부만 지울 때 확실한 방법입니다. 같은 요청에 둘 다 보낼 수도 있습니다.
장면을 따라가는 채우기
지운 부분은 흐리게 번지는 것이 아니라 주변을 바탕으로 다시 만들어집니다. 마룻바닥은 이어지고 벽은 질감을 유지하며 빛은 같은 방향에서 계속 떨어지기 때문에, 손대지 않은 사진처럼 보입니다.
사진의 나머지는 그대로
바뀌는 것은 지정한 물건뿐입니다. 구도, 해상도, 지정 범위 밖의 모든 것이 보낸 그대로 돌아오므로 편집한 사진을 곧바로 레이아웃, 상품 페이지, 연재물에 되돌려 놓을 수 있습니다.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
image_url | 예 | 정리할 사진입니다. JPEG, PNG, WebP를 받습니다. 1자 이상 |
prompt | 아니요 | 지울 대상을 짧은 말로 쓰고, 여러 개라면 위치도 덧붙입니다(예: ‘왼쪽의 빨간 차’). 실제로 찍혀 있는 대상을 지정해야 하며, 그렇지 않으면 사진이 바뀌지 않은 채 돌아옵니다. 1자 이상 · 1000자 이하 |
mask_url | 아니요 | 사진과 같은 크기의 흑백 이미지로, 선택 사항입니다. 흰색은 지울 부분, 검은색은 남길 부분입니다. 1자 이상 |
output_format | 아니요 | 기본값인 PNG는 모든 경계를 손실 없이 유지합니다. JPEG와 WebP는 파일이 더 작습니다. |
요금
$0.03 / 이미지
출력 이미지 한 장 단위로 과금되며, 한 요청에서 지우는 물건 수는 가격에 영향을 주지 않습니다.
활용 사례
상품 사진과 부동산 사진 정리
거의 완성된 사진에서 케이블, 가격표, 널브러진 포장재, 행인을 지워 재촬영 예약 없이 끝냅니다. 거슬리는 물건 하나가 프레임을 망친 등록 사진, 인테리어 사진, 부동산 갤러리를 가장 빨리 고치는 방법입니다.
여행과 행사 사진 다듬기
인물 사진이나 명소 배경에서 관광객, 쓰레기통, 비계, 다른 촬영자를 치워 비로소 주인공이 프레임을 독차지하게 합니다.
후속 편집을 위한 바탕 준비
먼저 자리를 비운 다음, 나중에 Image Expander로 장면 전체를 넓힙니다.
프롬프트 가이드 및 실전 팁
보이는 것을 위치와 함께 설명하십시오
동료에게 가리켜 보이듯이 쓰십시오. 명사, 색이나 재질, 그리고 위치입니다. ‘벤치’도 통하지만 장면에 여러 개가 있다면 ‘왼쪽의 나무 벤치’가 더 확실합니다. 사진에 없는 것을 지정해도 오류가 나지 않고 사진이 그대로 돌아오기만 하므로, 입력과 똑같은 결과가 오면 설명이 빗나갔을 가능성이 큽니다.
마스크는 넉넉하게 칠하십시오
mask_url을 쓸 때는 사진과 같은 크기로 만들고, 물건 위는 흰색, 나머지는 모두 검은색으로 칠합니다. 윤곽선과 그림자도 사라지도록 흰색을 물건 가장자리보다 조금 더 넓히십시오. 실루엣에 딱 맞춘 마스크는 희미한 잔상을 남기기 쉽습니다.
큰 물건은 한 번에 하나씩
작은 물건은 한 번의 요청으로 여러 개를 지울 수 있지만, 크거나 겹친 물건은 나눠서 처리하고 매번 결과를 확인하십시오. 매 요청이 완성된 사진을 돌려주므로 한 요청의 출력을 그대로 다음 요청에 넣을 수 있습니다.
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/object-eraser-v1/edit",
"input": {
"image_url": "https://example.com/reference.png",
"output_format": "png",
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette"
}
}'
# 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 레퍼런스에서 확인하세요.








