메인 콘텐츠로 건너뛰기
Venice의 이미지 편집은 동기 방식입니다. 원본 이미지를 /image/edit 또는 /image/multi-edit로 보내면 편집된 결과가 같은 응답에 이미지 파일로 돌아옵니다. 누끼 작업에는 /image/background-remove가 투명한 PNG를 반환합니다.
이미지 편집 endpoint는 실험적이며 모델별 동작은 시간이 지남에 따라 변경될 수 있습니다.

Endpoint

Venice에는 OpenAI 호환 /images/edits 엔드포인트가 없으므로 client.images.edit() 같은 OpenAI SDK 호출은 404를 반환합니다. 대신 /image/edit로 편집 요청을 보내세요.

어떤 endpoint를 언제 사용하나요

  • 원본 이미지가 하나이고 prompt로 일부를 변경, 제거, 재스타일링하고 싶다면 /image/edit를 사용하세요.
  • 추가 참조 이미지를 기반으로 편집을 조정해야 하면 /image/multi-edit를 사용하세요.
  • 깔끔한 전경 피사체와 투명도만 원한다면 /image/background-remove를 사용하세요.
Inpainting에는 /image/edit 또는 /image/multi-edit를 사용하세요. /image/generate의 기존 inpaint 파라미터는 deprecated입니다.
편집 endpoint에서 enhance_prompt: true로 설정하면, 비전 인식 enhancer가 입력 이미지 하나 또는 여러 개를 분석해 편집 전에 지시를 다시 작성합니다. 동작 방식, 가격, 응답 헤더 관련 세부 정보는 Prompt Enhancement를 참조하세요.

1단계: 단일 이미지 편집

단일 이미지 편집은 가장 단순한 inpainting 흐름입니다. 이미지 한 장과 “remove the sign”, “change the sky to sunrise”, “replace the background with a studio backdrop” 같은 짧은 prompt를 함께 보내세요. 요청:
응답(200): 응답 본문은 raw 이미지 바이너리 데이터입니다. 그대로 파일에 저장하세요. 포맷은 1K 편집에서는 PNG, 2K 및 4K 편집에서는 JPEG이며, transparent_background가 true이면 해상도와 관계없이 PNG입니다. 포맷을 명시적으로 선택하려면 output_format을 jpeg, png, webp 중 하나로 설정하세요. 편집 엔드포인트에는 response_format 파라미터가 없으므로 이미지를 base64 JSON으로 반환할 수 없습니다. base64가 필요하면 응답 바이트를 직접 인코딩하세요.

2단계: 참조 이미지와 함께 multi-edit 사용

/image/multi-edit는 여러 장의 이미지를 받으며, 상한은 모델별로 다릅니다. GET /models?type=inpaint의 model_spec.constraints.maxInputImages를 읽어 특정 모델의 상한을 확인하세요. 이 필드가 없으면 상한은 3이며, combineImages가 false이면 1입니다. 첫 번째 이미지가 base 이미지입니다. 나머지 이미지는 편집을 조건화하는 추가 참조입니다.
공개 엔드포인트에는 마스크 채널이 없습니다. 추가 이미지는 영역 맵이 아니라 이미지 전체에 걸친 참조로 작동합니다. mask 파라미터는 존재하지 않으며, 전송하면 400이 반환됩니다. 편집이 적용될 위치를 제한하려면 prompt를 정밀하게 작성하세요.
다음과 같은 경우에 더 나은 선택입니다:
  • 기존 구도에 추가 참조 이미지를 결합하고 싶을 때
  • 적용할 스타일, 객체, 텍스처의 예시를 모델에 제공하고 싶을 때
  • 단일 이미지 prompt가 할 수 있는 것보다 더 엄격하게 편집을 제약하고 싶을 때
JSON 요청:
Multipart 요청:
/image/edit와 마찬가지로 응답 본문은 raw 이미지 데이터이며, 출력 포맷도 같은 규칙을 따릅니다.
/image/multi-edit는 현재 요청 스키마에서 model이 아닌 modelId 필드를 사용합니다.

Inpainting 팁

Prompt 기반 inpainting은 지시가 짧고 국소적일 때 가장 잘 동작합니다:
  • remove the tree
  • change the sky to sunset
  • replace the logo with a blank sign
  • restore the torn corner of the photo
더 넓은 장면 변경의 경우, 유지되어야 할 부분을 함께 설명하세요:
편집이 계속 잘못된 영역에 영향을 준다면 /image/edit에서 /image/multi-edit로 전환해 원하는 결과를 보여주는 추가 참조 이미지를 제공한 다음, prompt에서 의도한 변경 사항을 정밀하게 설명하세요.

3단계: 배경 제거

전경 피사체를 투명 배경에 격리하고 싶다면 /image/background-remove를 사용하세요. 이 endpoint는 알파 투명도가 있는 PNG를 반환합니다. 이미지 URL 사용:
로컬 파일 업로드 사용:
배경 제거의 활용처:
  • 이커머스 제품 사진
  • 프로필 사진 및 인물 사진
  • 새 배경 위에 배치할 자산
어차피 이미지를 생성하거나 편집할 예정이라면 이 두 번째 호출을 생략할 수 있습니다. /image/generate, /image/edit, /image/multi-edit는 지원 모델에서 transparent_background: true를 받아 알파 채널을 바로 반환합니다. 비교 내용은 투명 배경 이미지를 참조하세요.

요청 파라미터

/image/edit

/image/multi-edit

/image/background-remove

/image/background-remove는 고정된 내부 모델을 사용합니다. model 필드를 받지 않습니다. 필드를 함께 보내면(예: "model": "bria-bg-remover") model이 인식되지 않는 필드이므로 400이 반환됩니다.

성인 콘텐츠 및 safe mode

/image/edit와 /image/multi-edit 모두 safe_mode를 받습니다(기본값: true). 활성화되면 편집된 output의 성인 콘텐츠가 블러 처리됩니다. 블러 처리되지 않은 output을 받으려면 safe_mode: false로 설정하세요:
블러 처리되지 않은 성인(NSFW) output은 모든 API 사용자가 이용할 수 있습니다. Pro 구독이 필요하지 않으며, Venice 앱의 성인 콘텐츠 필터 설정은 API를 통한 이미지 요청에 영향을 주지 않습니다. 콘텐츠 정책은 편집 모델에 따라 다르며 safe_mode와 무관하게 적용됩니다. 무검열 편집을 원한다면 qwen-edit-uncensored를 사용하세요. Endpoint 간 모더레이션 이름 차이는 사람들을 헷갈리게 만드는 지점입니다: /images/generations에 safe_mode를 전달하면 Unrecognized key(s) in object: 'safe_mode'와 함께 400이 반환됩니다.

지원 input 포맷

편집 endpoint의 경우 이미지는 최소 256×256 픽셀이어야 하며, 총 픽셀 수는 33,177,600(8K 해상도)을 넘을 수 없습니다. 업로드 파일은 25MB 미만이어야 합니다.

모델 및 가격

기본 편집 모델은 firered-image-edit이며 편집당 $0.04** 입니다. 편집 가능한 다른 모델은 가격과 제약이 다를 수 있습니다. Prompt enhancement는 편집 가격에 **적용된 재작성당 $0.04를 추가합니다. 참고:

에러

일부 편집 모델은 이미지 생성 모델보다 엄격한 콘텐츠 정책을 가집니다. 선택한 모델의 정책을 위반하는 요청은 422로 거부됩니다.

관련 워크플로