사용 가이드
이커머스 제품 이미지를 위한 flux-2/image-to-image: hiapi API 가이드
다중 참조 이미지 편집, 실측으로 검증된 종횡비 동작, 그리고 제품 카탈로그를 바로 일괄 처리할 수 있는 Python 스크립트
이미 어느 정도 괜찮은 상품 사진을 가지고 있다면—배경이 잘못됐거나, 구도가 어색하게 잘린 지저분한 사진이라도—flux-2/image-to-image로 다시 촬영하지 않고도 바로 판매 가능한 이커머스 이미지로 바꿀 수 있습니다. 이것은 텍스트→이미지 모델이 아니라 편집 모델입니다. 참조 이미지 1~8장과 지시문 하나를 입력하면 새 이미지를 반환하는데, 주변의 모든 요소—배경, 조명, 구도, 심지어 상품이 놓인 장면까지—를 바꾸면서도 상품의 형태, 색상, 재질, 비율은 정확히 유지합니다.
우리는 hiapi의 /v1/tasks API 엔드포인트를 통해 두 가지 대표적인 이커머스 작업—스튜디오 배경 교체와 라이프스타일 장면 합성—을 엔드투엔드로 실행했고, 이 글을 쓰기 전에 hiapi 가격 페이지와 대조하여 입력 스키마, 종횡비 동작, 실제 이미지 1장당 가격을 검증했습니다.
- flux-2/image-to-image는 한 번의 호출로 최대 8장의 참조 이미지를 받으므로, 배경 교체(1장)와 장면 합성(2장 이상)이 완전히 동일한 엔드포인트를 사용합니다.
aspect_ratio: "auto"는 실제로 입력 이미지 자체의 종횡비를 따릅니다—세로 9:16 운동화 사진은 덮어쓰지 않는 한 9:16을 유지합니다."1:1"같은 명시적 값은 입력이 무엇이든 해당 형태를 강제합니다.- 가격은 해상도별로 책정됩니다: 1K는 장당 $0.035, 2K는 장당 $0.05—메가픽셀 단위 과금 없는 정액제입니다.
- 재그리기가 아닌 진정한 편집입니다: 상품 자체의 로고, 박음질, 재질 텍스처가 배경/장면이 바뀐 후에도 유지됩니다.
- 배치 스크립트 하나(아래 참조)면 동일한 배경 정리 프롬프트로 전체 제품 카탈로그를 처리하기에 충분합니다.
flux-2/image-to-image가 실제로 하는 일
내부적으로 이는 hiapi의 통합 작업 인터페이스 위에 있는 단일 모델입니다—"배경 제거" 도구와 "합성" 도구 중에서 고르는 것이 아니라, 지시문 하나를 작성하고 해당 작업에 맞는 올바른 참조 이미지를 제공하는 것입니다:
curl -s https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2/image-to-image",
"input": {
"prompt": "Remove the background and place the product on a seamless white studio background with a soft contact shadow. Keep the product'"'"'s shape, color and proportions unchanged.",
"image_urls": ["https://your-cdn.example.com/raw-product-photo.jpg"],
"aspect_ratio": "auto",
"resolution": "1K"
}
}'
필수 필드는 prompt(문자열), image_urls(배열, 최대 8장), aspect_ratio(auto, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2 또는 2:3), resolution(1K 또는 2K)입니다. 응답은 taskId를 반환합니다—GET /v1/tasks/{taskId}를 폴링하여 status가 success가 될 때까지 기다린 후, output[0].url에서 즉시 이미지를 다운로드하세요(링크는 만료되므로 영구 저장소로 취급하지 마세요).
배경 교체에는 참조 이미지가 1장만 필요합니다. 상품을 라이프스타일 장면에 합성하려면 2장을 전달하세요: 상품 이미지를 먼저, 대상 장면을 뒤에 두고, 프롬프트에서 어떤 물체를 어디에 놓을지 설명하세요.
"auto" 종횡비가 실제로 하는 일
파이프라인을 구축하기 전에 먼저 테스트해 볼 가치가 있는 부분입니다. 모델이 항상 고정 정사각형이나 어떤 고정 기본 형태를 출력한다고 당연히 가정하기 쉬우니까요. 하지만 사실이 아닙니다.

이는 aspect_ratio: "auto"로 실행한 세로 운동화 사진입니다—출력은 720×1280으로, 입력 참조 이미지의 정확한 9:16과 일치하며, 다른 형태로 잘리거나 여백이 추가되지 않았습니다. auto는 "기본값을 고른다"가 아니라 "입력을 따른다"를 의미합니다.

동일한 원본 이미지, 동일한 프롬프트—유일한 차이는 aspect_ratio: "1:1"을 명시적으로 설정한 것입니다. 출력은 정확히 1024×1024 정사각형이며, 모델이 단순히 자르는 것이 아니라 해당 형태에 맞게 재구성했습니다. 제품 카탈로그가 목록 페이지용 일관된 정사각형 그리드를 필요로 한다면 해당 비율을 강제하고, 각 이미지가 고유한 구도를 유지하길 원한다면 auto를 유지하세요.
두 가지 장면 합성 예시
배경 교체는 간단한 경우입니다. 이커머스 콘텐츠에 더 유용한 기법은 깨끗한 상품 이미지를 라이프스타일 장면에 합성하는 것입니다—실제 촬영 없이도 메인 이미지, 소셜 게시물, 또는 "스타일링 연출" 보조 사진에 활용할 수 있습니다.

여기서는 참조 이미지 2장을 입력했습니다: 헤드폰의 깨끗한 제품 사진과 별도의 햇빛 비치는 오크 테이블 장면입니다. 프롬프트에서 어떤 물체를 어디에 놓을지("식물 옆에 자연스럽게 기대어") 명시하고, 모델이 장면의 기존 조명 방향과 일치하면서 그럴듯한 그림자를 드리우도록 요구했습니다—바로 이 디테일이 합성 이미지를 붙여넣은 듯하지 않고 진짜처럼 보이게 만듭니다.

동일한 대상 장면, 다른 상품, 역시 aspect_ratio: "auto" 사용(장면 참조 이미지의 정사각형 구도를 상속받음). 드리퍼의 형태와 세라믹 재질은 자체 참조 사진에서 그대로 유지되었고, 주변 환경만 바뀌었습니다.
제품 카탈로그 일괄 처리
장당 $0.035(1K 해상도) 기준으로—상품 하나를 다시 세팅해 재촬영하는 것보다 저렴한—flux-2/image-to-image로 전체 제품 카탈로그를 처리하는 것은 쉽게 설득력이 있습니다. 프롬프트를 먼저 저렴하게 테스트해 보고 싶다면, 전체 모델을 대규모로 사용하기 전에 더 가벼운 flux-2-klein-4b/image-to-image 티어를 살펴볼 만합니다; 두 모델의 현재 가격은 모두 hiapi 가격 페이지에서 확인할 수 있습니다.
한 상품에 대해 프롬프트를 잘 조정해 두면, 전체 카탈로그에 실행하는 것은 동일한 요청의 반복에 불과합니다. 이 예시는 원본 상품 사진 세트를 순회하며, 각 사진에 동일한 배경 정리 지시문을 실행하고 결과 호스팅 URL을 출력합니다:
import os
import time
import requests
API_BASE = "https://api.hiapi.ai/v1/tasks"
TOKEN = os.environ["HIAPI_API_KEY"]
HEADERS = {
"Authorization": f"Bearer {TOKEN}",
"Content-Type": "application/json",
}
BACKGROUND_PROMPT = (
"Remove the existing background and place the product on a seamless pure white "
"studio background with a soft, realistic contact shadow and even diffused catalog "
"lighting. Keep the product's exact shape, color, material and proportions unchanged."
)
def edit_product_image(prompt, image_urls, aspect_ratio="auto", resolution="1K"):
payload = {
"model": "flux-2/image-to-image",
"input": {
"prompt": prompt,
"image_urls": image_urls,
"aspect_ratio": aspect_ratio,
"resolution": resolution,
},
}
resp = requests.post(API_BASE, headers=HEADERS, json=payload, timeout=60)
resp.raise_for_status()
task_id = resp.json()["data"]["taskId"]
while True:
time.sleep(3)
status = requests.get(f"{API_BASE}/{task_id}", headers=HEADERS, timeout=30).json()
state = status["data"]["status"]
if state == "success":
return status["data"]["output"][0]["url"]
if state == "fail":
raise RuntimeError(f"task {task_id} failed: {status}")
CATALOG = [
{"sku": "SNK-001", "image_url": "https://cdn.example.com/raw/snk-001.jpg"},
{"sku": "HDP-014", "image_url": "https://cdn.example.com/raw/hdp-014.jpg"},
{"sku": "DRP-022", "image_url": "https://cdn.example.com/raw/drp-022.jpg"},
]
for item in CATALOG:
out_url = edit_product_image(BACKGROUND_PROMPT, [item["image_url"]])
print(item["sku"], "->", out_url)
각 output[0].url은 기한이 있는 링크입니다—루프 안에서 다운로드하여 재호스팅하세요(자체 스토리지 버킷, CDN, 또는 상점 백엔드를 지원하는 어떤 서비스든). 원본 링크를 저장하지 마세요. 작업/폴링/다운로드 루프에 대한 전체 설명(에러 처리 포함)은 hiapi API로 flux-2/image-to-image 사용하는 방법을 참조하세요.
자주 묻는 질문
flux-2/image-to-image는 상품 자체를 바꾸나요, 아니면 배경만 바꾸나요? 프롬프트를 적절히 작성하면, 변경하라고 지시한 내용—배경, 장면, 조명—만 바뀌고 상품은 참조 이미지의 형태, 색상, 재질을 유지합니다. 모든 시도가 완벽하지는 않으니, 게시 전에 특히 포장의 작은 글씨나 로고를 중심으로 출력을 원본과 대조하세요.
한 번의 호출로 최대 몇 장의 참조 이미지를 사용할 수 있나요? 최대 8장입니다. 배경 교체에는 1장이면 충분합니다. 장면 합성에는 보통 2장(상품 + 대상 장면)이 필요합니다—여러 사진에서 특정 기존 캐릭터, 소품, 브랜드 요소를 일치시키고 싶을 때 더 많은 참조 이미지가 유용합니다.
1K와 2K 해상도 중 무엇을 써야 하나요? 1K(장당 $0.035)는 대부분의 제품 카탈로그 및 웹 목록 용도에 충분합니다—위의 헤드폰과 드리퍼 합성 이미지는 모두 1K로 생성되었습니다. 메인 비주얼 배너나 이후에 잘리거나 확대될 콘텐츠에는 2K(장당 $0.05)를 선택하세요.
flux-2/image-to-image와 Klein 티어의 차이는 무엇인가요? Klein(9b 및 4b)은 일부 편집 충실도를 낮추는 대신 더 저렴한 가격을 제공합니다—전체 모델을 카탈로그에 적용하기 전에 프롬프트를 저렴하게 테스트하는 데 적합합니다. 현재 가격은 위의 가격표를 참조하세요.
모델이 결정하게 두지 않고 출력 크기를 강제 지정할 수 있나요?
네—aspect_ratio를 auto 대신 명시적 값(1:1, 4:3, 16:9 등)으로 설정하세요. 모델은 자동 매칭된 출력을 단순히 자르는 것이 아니라 해당 형태에 맞게 재구성합니다.
핵심 요점
- flux-2/image-to-image는 기존 상품 사진을 편집하며, 처음부터 생성하지 않습니다—참조 이미지 입력, 편집된 이미지 출력, 상품 정체성 유지.
aspect_ratio: "auto"는 입력 이미지 자체의 형태를 따릅니다; 전체 카탈로그 그리드에 일관된 출력 비율이 필요할 때는 명시적으로 설정하세요.- 1K 해상도(장당 $0.035)는 대부분의 이커머스 용도를 커버하며; 2K(장당 $0.05)는 메인 비주얼 크기나 과도하게 잘리는 출력에 사용합니다.
- 동일한 엔드포인트가 단일 이미지 배경 교체와 다중 이미지 장면 합성을 모두 처리합니다—차이는
image_urls를 몇 장 전달했는지뿐입니다. - 일괄 처리는 작업/폴링/다운로드 루프 위에 일반 루프를 씌우는 것에 불과하며, 별도의 일괄 엔드포인트가 필요하지 않습니다.
자체 제품 카탈로그에 적용할 준비가 되었다면, flux-2/image-to-image 모델 페이지에서 실시간 스키마와 빠른 시작 요청을 확인할 수 있고, flux-2/image-to-image 프롬프트 레시피에는 배경 교체와 장면 합성 외에 추가로 테스트된 프롬프트 패턴이 수록되어 있습니다.
관련 글
모든 아티클 보기 →-
사용 가이드
seedream-5.0-pro/image-to-image 시작 가이드: 기능, 가격 및 연동 핵심 포인트
ByteDance 이미지 편집 모델의 기능 경계, 과금 방식 및 엔지니어링 연동 실무
-
사용 가이드
seedream-5.0-pro 텍스트-이미지 생성 입문 가이드: 능력 경계, API 연동 및 비용 관리
개발자를 위한 실무 관점: 파라미터 핵심부터 장당 $0.05 비용 추정까지
-
사용 가이드
Hailuo 2.3 Fast 이미지-투-비디오 입문 가이드: 성능 범위, 가격 및 연동 실무
개발자를 위한 MiniMax 이미지-투-비디오 모델 선택과 연동 핵심 포인트