01
경로는 셋이고 실패 방식도 제각각입니다
선언된 이미지 필드는 공개 HTTPS URL, 커밋된 spicy:// 파일 URI, 인라인 data URI를 받습니다. 인라인은 장당 디코딩 후 1 MiB와 8,388,608 픽셀, 본문 전체 2 MiB가 상한입니다. 그보다 크면 업로드 티켓을 써야 합니다.
편집 API 솔루션

해결 과제
프롬프트는 쉬운 쪽입니다. 다른 쪽은 사용자 휴대폰에 있는 파일이고, 비공개 버킷을 노출하지 않은 채 모델에 닿아야 하며, 작업이 생기기도 전에 검사되는 상한을 만족해야 합니다.
01
선언된 이미지 필드는 공개 HTTPS URL, 커밋된 spicy:// 파일 URI, 인라인 data URI를 받습니다. 인라인은 장당 디코딩 후 1 MiB와 8,388,608 픽셀, 본문 전체 2 MiB가 상한입니다. 그보다 크면 업로드 티켓을 써야 합니다.
02
서명 링크로 쿠키나 별도 로그인 없이 파일을 내려받을 수 있으면 비공개 버킷도 참조할 수 있습니다. 처리 중에는 링크가 유효해야 합니다. 사설 IP, 루프백, user:password URL 인증은 거부됩니다.
03
공개 호출 이름은 /edit로 끝나고, 스키마는 보통 image_url이나 image_urls를 요구하며, 일부는 mask_url이나 strength를 더합니다. text-to-image의 model 값을 편집 흐름에 넣으면 완만한 저하가 아니라 검증 실패가 납니다.
구현 방식
사용자 파일은 업로드 티켓을 받아 선언한 바이트 수 그대로를, 돌려받은 헤더를 모두 붙여 PUT하고, 커밋한 뒤 돌아온 spicy:// URI를 모델의 이미지 필드에 넘깁니다. 그러면 그 참조는 계정 소유가 되고 한 번만 검사되며, 다시 올리지 않고 여러 작업에서 쓸 수 있습니다.
티켓, PUT, 커밋, 생성. 이미 공개된 미디어는 앞의 세 단계를 건너뜁니다.
Ticket → PUT → commit → create
POST /api/v1/common/upload-url
{ "contentType": "image/png", "bytes": 482113 }
→ { "fileId": "fil_01k3…", "uploadUrl": "https://…", "method": "PUT", "headers": { … } }
PUT <uploadUrl> # exactly 482113 bytes, every returned header replayed
POST /api/v1/files/fil_01k3…/commit
→ { "status": "ready", "uri": "spicy://f/fil_01k3…", "sha256": "…" }POST /api/v1/jobs/createTask
{
"model": "<publisher>/<model>/edit",
"input": {
"prompt": "Replace the background with an overcast beach at dusk",
"image_urls": ["spicy://f/fil_01k3m8x9q2z4v7n5p6r8s0t1w3"]
}
}계약
| 필드 또는 헤더 | 값 또는 상한 |
|---|---|
| POST /api/v1/common/upload-url | JPEG · PNG · WebP · GIF ≤ 10 MiB |
| POST /api/v1/files/{fileId}/commit | returns spicy://f/fil_… |
| inline data URI | ≤ 1 MiB decoded · ≤ 8192 px per side |
| request body | ≤ 2 MiB · ≤ 16 images |
좌우로 밀어 모든 항목을 확인하세요.
연동
적합성
근거
커밋은 저장된 바이트 수와 미디어 타입을 티켓과 대조하고, 이미지 시그니처를 확인하고, SHA-256을 계산합니다. 그 뒤에야 파일을 참조할 수 있습니다.
data URI는 계정에 묶인 파일로 저장됩니다. recordInfo가 돌려주는 정규화된 입력에는 원본 Base64 바이트가 아니라 파일 URI가 들어갑니다.
올린 소재는 1일, 생성 결과는 14일 보관됩니다. 두 기간 모두 공개 값이며 계정별로 협의하지 않습니다.
출시 전
자주 묻는 질문
모델
각 링크는 해당 모델 계열 페이지로 이동합니다. 입력, 상한, 콘텐츠 방침, 단위당 현재 가격을 그곳에서 확인할 수 있습니다.
다음
가진 사진과 지시문을 보내면 됩니다. 참조가 어떻게 들어가는지, 픽셀 상한은 얼마인지, 편집 엔드포인트는 무엇에 과금하는지.