사용 가이드
flux-2 전자상거래 제품 이미지 실전 가이드: hiapi API 활용
hiapi의 flux-2/text-to-image API로 바로 상품 등록에 쓸 수 있는 제품 이미지를 생성하세요——깔끔한 흰 배경 이미지, 프롬프트 제약 준수, 그리고 전체 상품 카탈로그에 적용할 수 있는 배치 루프까지.
TL;DR
- 무엇인가: hiapi의 flux-2/text-to-image로 전자상거래 제품 이미지를 생성하는 실전 가이드입니다. 이 페이지의 모든 이미지는 바로 위에 인쇄된 정확한 프롬프트로 생성되었습니다——어떤 데모 이미지도 빌려오지 않았으므로——모든 이미지를 재현할 수 있습니다.
- 왜 flux-2가 제품 이미지에 적합한가: 이 모델은 프롬프트 준수와 고충실도를 중시하며, 이는 카탈로그 작업에 바로 필요한 특성입니다——정확한 물품 수, 특정 색상, 깔끔하고 이음새 없는 배경, 그리고 빈(텍스트 없는) 라벨이 모두 엄격히 반영됩니다.
- 모델 사실(API에서 검증됨): flux-2는 비동기 작업 엔드포인트(
/v1/tasks)에서 실행됩니다.input.resolution은 메가픽셀 형식을 사용합니다——0.5 MP,1 MP,2 MP또는4 MP——그리고0.5/2K형식이 아닙니다.aspect_ratio는 선택 사항이며3:2,16:9등의 값을 허용합니다. - 가격(이미지당):
0.5 MP는 $0.0375,1 MP는 $0.05,2 MP는 $0.075,4 MP는 $0.125입니다. 실시간 가격은 가격을 참조하세요. - 실행 방법: 작업 API에 POST 요청을 보내고, 상태가
success가 될 때까지 폴링한 후output[0].url에서 이미지를 다운로드하세요(이 URL은 만료됩니다——즉시 바이트를 저장하세요). 전체 복사-붙여넣기 스크립트는 문서 끝에 있으며 배치 루프가 포함되어 있습니다.
왜 flux-2가 제품 사진에 적합한가
대부분의 텍스트-이미지 모델은 예쁜 머그컵을 그릴 수 있습니다. 전자상거래에서 문제는 "예쁘다"가 아니라 정확성입니다. 상품 등록에는 올바른 색상, 올바른 물품 수, 나중에 직접 텍스트를 얹을 수 있도록 깔끔하고 여유 공간이 있는 배경, 그리고 나중에 실제 문구를 넣을 수 있도록 비워 둔 라벨이 필요합니다. 모델이 자유롭게 해석할 때——병을 하나 더 그리거나, 라벨 텍스트를 지어내거나, 흰 배경을 착색할 때——그 이미지는 상품 등록에 쓸 수 없습니다.
flux-2는 프롬프트 준수와 고충실도로 표시되며, 실제로는 프롬프트를 문자 그대로 따르는 경향이 있음을 의미합니다. 이것이 바로 카탈로그 이미지의 핵심입니다. 제약 조건을 작성하면 모델이 "창의적으로 해석"하지 않고 제약을 따릅니다. 아래 레시피는 바로 이 점을 중심으로 구성되었으며, 각 레시피는 특정 제약(수량, 색상, 레이아웃)에 의존하여 준수 효과를 직접 확인할 수 있게 합니다.

레시피 읽는 방법
각 레시피는 세 부분으로 구성됩니다: 한 줄의 목표, 정확한 프롬프트(그대로 복사), 그리고 생성된 이미지. 모든 프롬프트는 제가 직접 작성했으며 실제 작업 API를 통해 flux-2에서 실행했습니다. 이 모델에서 일관되게 효과가 있었던 몇 가지 습관:
- 배경을 명시하세요. "이음새 없는 연한 회색 스튜디오 배경"이 운에 맡기는 것보다 낫고, 이미지를 상품 상세 페이지(PDP)에 바로 사용할 수 있게 합니다.
- 빈 라벨을 원할 때는 "텍스트 없음, 로고 없음"이라고 작성하세요. flux-2는 이를 준수하므로, 다운스트림에서 실제 브랜드를 추가할 수 있습니다.
- 셀 수 있고 검증 가능한 제약을 주세요. "정확히 세 개의 병", "왼쪽은 호박색, 가운데는 투명, 오른쪽은 청록색"——구체적인 지시가 바로 준수성이 발휘되는 지점입니다.
- 프롬프트에 여백을 확보하세요("상단에 제목용 여유 공간을 충분히"), 특히 이미지가 오버레이 문구 아래에 배치될 때 중요합니다.
레시피 1——깔끔한 흰 배경 이미지
목표: 가장 기본적인 상품 등록 이미지——하나의 제품, 이음새 없는 배경, 균일한 여백으로 제품 페이지에 바로 배치 가능.
흰색 무광 세라믹 커피 머그컵 하나가 이음새 없는 연한 회색 스튜디오 배경 중앙에 놓여 있고, 3/4 전면 각도, 비어 있고 브랜드 없는 상태. 부드럽고 균일한 상단 조명과 왼쪽 가장자리를 따라 은은한 림 하이라이트, 아래에 부드럽게 접지된 접촉 그림자. 스튜디오 전자상거래 팩샷, 완벽한 중앙 정렬, 사방에 넓고 균일한 여백, 사실적, 높은 디테일, 텍스트 없음, 로고 없음.

여백과 중앙 정렬은 프롬프트에서 직접 나옵니다——명시적으로 요청해야 크롭 결과가 목록 그리드에서 사용 가능합니다.
레시피 2——프롬프트 준수 테스트
목표: 모델이 정확하고 셀 수 있는 지시를 따르는지 증명——이것이 바로 제품 작업에서 flux-2를 선택하는 이유입니다.
정확히 세 개의 유리 스프레이 병이 흰색 아크릴 표면 위에 일렬로 서 있는 제품 사진: 왼쪽 병에는 연한 호박색 액체, 가운데 병에는 투명한 액체, 오른쪽 병에는 부드러운 청록색 액체가 채워져 있음. 세 병 모두 무광 검정 미세 분사 펌프 상단과 글씨 없는 빈 라벨이 있음. 균일한 정면 스튜디오 조명, 아크릴 위의 부드러운 반사, 이음새 없는 흰색 배경. 사실적 상업 제품 사진, 선명한 초점, 이미지 어디에도 텍스트 없음.

세어 보세요: 병 세 개, 네 개가 아닙니다. 왼쪽에서 오른쪽으로 채워진 액체는 호박색, 투명, 청록색——순서가 맞습니다. 펌프 상단은 무광 검정입니다. 라벨은 비어 있어 나중에 실제 문구를 추가할 수 있습니다. 이것이 보상입니다——지정하면 따르고, 이미지는 바로 사용 가능합니다.
레시피 3——라이프스타일/장면 이미지
목표: 제품을 장면에 배치하되 제품이 묻히지 않게——흰 배경 이미지와 나란히 상품 목록에 배치되는 "사용 중" 이미지.
황갈색 가죽 크로스바디 백이 연한 참나무 카페 테이블 위에 놓여 있고, 접힌 신문과 에스프레소 한 잔이 옆에 있음. 왼쪽에서 들어오는 부드러운 아침 창가 빛, 배경에는 크림색 보케가 있는 따뜻하고 초점이 흐린 카페 내부. 가방이 명확한 주인공이며, 선명하고 잘 조명되었고, 자연스럽게 연출되었지만 어수선하지 않음. 사실적, 에디토리얼 제품 사용 사진, 따뜻한 뉴트럴 팔레트, 얕은 피사계 심도, 보이는 브랜드 표시나 텍스트 없음.

주인공을 명확히 하고("가방이 명확한 주인공이며, 선명하게") 다른 모든 것을 흐림 처리하면 제품이 명확히 보이면서도 이야기를 전달할 수 있습니다——이것이 바로 라이프스타일 이미지에 필요한 균형입니다.
레시피 4——다각도 PDP 그룹 이미지
목표: 상품 상세 페이지용 각도 그룹 이미지——동일한 물품의 여러 일관된 뷰로, 조명과 비율이 일치.
오프화이트 색상의 로우탑 캔버스 스니커즈 한 켤레를 이음새 없는 연한 회색 배경 위에 왼쪽에서 오른쪽으로 배열된 세 개의 별도 뷰로 보여주는 깔끔한 상품 상세 페이지 각도 세트: 정측면 프로필, 3/4 전면 각도, 위에서 내려다보는 오버헤드 뷰. 세 뷰 모두 일관된 부드러운 스튜디오 조명과 동일한 비율, 균일한 간격, 부드러운 접촉 그림자. 카탈로그급 전자상거래 사진, 사실적, 선명함, 브랜드 없음, 텍스트나 라벨 없음.

"세 뷰의 일관된 조명과 동일한 비율"을 요구해야 이 그룹이 세 개의 느슨한 렌더링이 아닌 동일한 제품처럼 보입니다. 실제 360도 촬영 장비를 대체할 수는 없지만, 정식 촬영 전 PDP 레이아웃을 빠르게 구성하는 지름길입니다.
작업 API에서 flux-2 실행하기
flux-2는 hiapi의 비동기 작업 프로토콜을 사용합니다——작업을 생성하고, 폴링한 다음 결과를 다운로드합니다. 유일하게 정확히 해야 할 점: resolution은 메가픽셀 형식입니다. "1 MP"를 보내세요, "1K"가 아니라, 그렇지 않으면 API가 400을 반환하며 값이 0.5 MP / 1 MP / 2 MP / 4 MP 중 하나여야 한다고 알려줍니다.
1. 작업 생성
curl -s https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2/text-to-image",
"input": {
"prompt": "A single matte-white ceramic coffee mug centered on a seamless light-grey studio background, three-quarter front angle, soft even top-light, photoreal e-commerce packshot, no text, no logo",
"aspect_ratio": "1:1",
"resolution": "1 MP"
}
}'
# -> {"code":200,"data":{"taskId":"tk-hiapi-..."},"message":"success"}
2. 완료될 때까지 폴링한 후 다운로드
import os, time, requests
TOKEN = os.environ["HIAPI_TOKEN"]
BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {TOKEN}"}
def generate(prompt, aspect_ratio="1:1", resolution="1 MP"):
# create
r = requests.post(BASE, headers=HEADERS, json={
"model": "flux-2/text-to-image",
"input": {"prompt": prompt, "aspect_ratio": aspect_ratio, "resolution": resolution},
}).json()
task_id = r["data"]["taskId"]
# poll (a single image usually lands well under two minutes)
deadline = time.time() + 600
while time.time() < deadline:
task = requests.get(f"{BASE}/{task_id}", headers=HEADERS).json()["data"]
if task["status"] == "success":
# output[0].url is a temporary link — download the bytes now
url = task["output"][0]["url"]
return requests.get(url, timeout=120).content
if task["status"] == "fail":
raise RuntimeError(task.get("error"))
time.sleep(5)
raise TimeoutError(task_id)
img = generate("A single matte-white ceramic coffee mug on a seamless light-grey background, photoreal e-commerce packshot, no text")
open("mug.jpg", "wb").write(img)
output[0].url의 URL에는expireAt타임스탬프가 있습니다——단기 링크입니다. 즉시 바이트를 다운로드하여 자체 스토리지로 푸시하세요. 라이브 상품 목록에 핫링크하지 마세요.
전체 카탈로그 배치 생성
실제 쇼핑몰에서는 이미지를 하나만 만드는 것이 아니라 SKU마다 하나씩 만듭니다. 프롬프트 목록을 유지하고 위의 generate() 함수를 재사용하며 각 결과를 SKU 이름으로 저장하세요:
catalog = {
"SKU-1001": "A single matte-white ceramic coffee mug on a seamless light-grey studio background, three-quarter angle, soft even top-light, photoreal e-commerce packshot, no text, no logo",
"SKU-1002": "A tan leather crossbody bag on a seamless light-grey studio background, front-on, soft studio light, grounded contact shadow, photoreal packshot, no visible brand marks",
"SKU-1003": "A pair of off-white low-top canvas sneakers, side profile, seamless light-grey background, crisp catalog lighting, photoreal, unbranded, no text",
}
for sku, prompt in catalog.items():
img = generate(prompt, aspect_ratio="1:1", resolution="1 MP")
open(f"{sku}.jpg", "wb").write(img)
print(f"{sku} done")
규모를 확장하기 전에 알아 둘 만한 몇 가지:
- 해상도가 비용을 결정합니다.
1 MP에서 이미지당 $0.05; 추가 디테일이 가치 있는 플래그십 이미지에만2 MP($0.075) 또는4 MP($0.125)로 업그레이드하세요. 200개 SKU 카탈로그는1 MP에서 약 $10입니다. 예산을 세우기 전에 가격에서 현재 수치를 확인하세요. - 작업을 동시에 실행하세요. 각 SKU는 독립 작업입니다——여러 작업을 생성한 다음 하나씩이 아니라 병렬로 폴링하면 대량 배치도 매우 짧은 실제 시간에 완료할 수 있습니다.
- 일관된 "스타일" 절을 유지하세요. 위의 각 프롬프트에 공유된 꼬리 부분("이음새 없는 연한 회색 스튜디오 배경……사실적 팩샷, 텍스트 없음")에 주목하세요. 이 문구를 고정해야 한 배치의 이미지가 잡탕이 아닌 하나의 카탈로그처럼 보입니다.
핵심 요점
- flux-2의 제품 작업에서의 강점은 문자 그대로의 요구 사항을 엄격히 실행한다는 것입니다——정확한 수량, 정확한 색상, 빈 라벨——그러므로 제약을 명확히 작성하여 따르게 하세요.
- 항상 프롬프트에 배경을 명시하고 여백을 확보하세요. 그래야 렌더링이 상품 목록에 바로 사용 가능합니다.
- 작업 API에서는 메가픽셀(
1 MP)로resolution을 보내고,/v1/tasks/{id}를success가 될 때까지 폴링하며,output[0].url이 만료되기 전에 다운로드하세요. - 가격은 해상도에 따라 상승합니다——카탈로그 배치에는
1 MP,2 MP/4 MP는 플래그십 이미지에 남겨 두세요.
시도해 볼 준비가 되셨나요? 키를 발급받고 model을 flux-2/text-to-image로 지정한 뒤, 카탈로그를 배치 생성하기 전에 가격 페이지에서 실시간 요금을 확인하세요.
관련 글
모든 아티클 보기 →-
사용 가이드
seedream-5.0-pro/image-to-image 시작 가이드: 기능, 가격 및 연동 핵심 포인트
ByteDance 이미지 편집 모델의 기능 경계, 과금 방식 및 엔지니어링 연동 실무
-
사용 가이드
seedream-5.0-pro 텍스트-이미지 생성 입문 가이드: 능력 경계, API 연동 및 비용 관리
개발자를 위한 실무 관점: 파라미터 핵심부터 장당 $0.05 비용 추정까지
-
사용 가이드
Hailuo 2.3 Fast 이미지-투-비디오 입문 가이드: 성능 범위, 가격 및 연동 실무
개발자를 위한 MiniMax 이미지-투-비디오 모델 선택과 연동 핵심 포인트