소개
P-H3-Image 이미지 편집은 첫 번째 사진을 원본으로 삼으며 참조 이미지를 최대 8장 더 받습니다. 텍스트 지시로 유지하거나 교체할 요소를 모델에 전달합니다.
핵심 기능 및 하이라이트
원본은 <Picture 1>, 다음 입력은 <Picture 2>로 지정합니다. 출력 화면비는 기본적으로 첫 번째 사진을 따르며 aspect_ratio를 선택하면 바뀝니다. 편집에서도 5가지 해상도 단계를 모두 이용합니다. 저희 테스트에서 4k 편집 1건은 3360 x 5024픽셀로 반환됐습니다.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
prompt | 예 | 편집 지시는 필수이며 기본값은 없습니다. 바꿀 부분과 유지할 부분을 명시하고, 여러 원본을 합칠 때는 이미지 번호를 지정하십시오. 1자 이상 · 5000자 이하 |
image_urls | 예 | 순서가 있는 이미지 URL 1~9개의 필수 목록이며 기본 원본은 없습니다. Picture 1을 편집하고 나머지 입력은 참조로 사용합니다. 1개 이상 · 9개 이하 |
aspect_ratio | 아니요 | 이 선택 필드를 생략하면 첫 번째 이미지의 화면비를 따릅니다. 1:3부터 3:1까지, 9:21과 21:9를 포함한 15가지 지원 화면비 중 하나로 변경할 수 있으며 화면비 요금은 없습니다. |
resolution | 아니요 | 편집 기본값은 약 100만 화소인 1k입니다. 1.5k(약 2.4 MP), 2k(약 4 MP), 3k(약 9.4 MP), 4k(약 16.8 MP)도 선택할 수 있으며 단계를 바꾸면 이미지 요금이 달라집니다. |
output_format | 아니요 | png나 webp를 요청하지 않으면 편집 결과를 jpeg로 저장합니다. 세 인코딩의 요금은 동일합니다. |
seed | 아니요 | 편집 결과를 비교할 때 난수 소스 값을 지정할 수 있으며 기본적으로 입력이 필수는 아닙니다. 값을 유지하며 지시를 하나씩 바꾸되 동일한 재생성 결과를 기대해서는 안 됩니다. |
요금
편집 결과는 1k, 1.5k, 2k, 3k, 4k 중 선택한 단계에 따라 이미지당 과금합니다. 첫 번째 이후 입력 이미지에는 장당 소액이 추가되며 출력 화면비와 인코딩에는 추가 요금이 없습니다. 상위 서비스 오류에는 과금하지 않습니다.
| 사양 | 요금 |
|---|---|
| $0.03 / 장 |
| $0.048 / 장 |
| $0.066 / 장 |
| $0.138 / 장 |
| $0.21 / 장 |
활용 사례
인물 사진 1장으로 새 의상과 해변 배경을 요청하거나 무대 사진에 교체할 출연자의 사진을 결합합니다. 저희가 진행한 단일 원본 및 원본 2장 테스트에서는 장면이 바뀌어도 요청한 인물의 정체성이 유지됐습니다.
프롬프트 가이드 및 실전 팁
유지할 장면을 첫 번째 입력에 두고 번호별로 가져올 세부 요소를 설명하십시오. 저희 테스트에서는 입력 순서를 뒤집자 다른 쪽 장면에 더 가까운 결과가 나왔습니다. 첫 번째 이후의 참조에는 장마다 소액이 추가됩니다. Pruna AI는 낮은 해상도에서 세부 표현의 아티팩트가 더 나타날 수 있다고 안내합니다.
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": "pruna-ai/p-h3-image/edit",
"input": {
"image_urls": [
"https://example.com/reference.png"
],
"output_format": "jpeg",
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette",
"resolution": "1k"
}
}'
# 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 레퍼런스에서 확인하세요.




