使用指南
通过 hiapi API 使用 seedream-4.5/image-to-image 生成电商产品图
产品目录并非一张照片——而是同一个 SKU 在十几种情境下的呈现:白底商品图、生活场景图、供应商更换组件后的修图,以及匹配当季品牌背景的版本。重新拍摄或从零重新生成每次都会破坏一致性,因为全新的提示词会画出略微不同的产品。
seedream-4.5/image-to-image 正是为此而生。它接收你的真实产品照片——或同时多张参考图——加上一句自然语言编辑指令,返回一张编辑后的图片,保留产品实际的几何形状、材质和品牌标识不变,只改变你要求的部分:背景、磨损细节,或匹配统一视觉识别所需的调色。在 hiapi 上,它与其他所有模型一样通过相同的异步 /v1/tasks 端点运行,每张图片 $0.045。
下面两个示例都是真实的 API 调用,展示了确切的提示词和生成的图片。

为什么选择编辑而不是重新生成
文生图和图生图解决的是不同的问题:
- 文生图根据描述凭空创造产品。适合概念设计,不适合产品目录——问两次就会得到两个不同的马克杯。
- 图生图编辑以你的真实产品照片为起点。模型将参考图视为形状、比例和品牌标识的基准真相,只改变提示词指定的内容。这正是它对真实商品列表安全的原因:输出中的产品仍然是你的产品。
实际的工作流程是:为每个 SKU 保留一张干净的基础照片(普通的影棚照作为参考即可),然后针对你需要的每个情境运行一次 seedream-4.5/image-to-image——生活场景、背景替换、品牌一致的背景、细节修复——而不是每次都重新拍摄或从零重新提示。
示例 1:背景替换为生活场景
基础参考:一张陶瓷手冲滤杯在白底上的普通影棚照片。
发送给模型的编辑提示词:
Keep the ceramic pour-over dripper's exact shape, glaze color, and proportions
unchanged. Place it on a warm wood kitchen counter next to a steaming ceramic
mug and an open burlap coffee bag. Warm golden-hour side lighting, shallow
depth of field, soft shadows. Do not alter the dripper itself in any way —
only change the surrounding scene.
结果保留了滤杯的轮廓和釉色,像素级可辨识,同时将它置于普通产品照无法独自产生的生生活场景中——无需重拍,无需单独的合成步骤。
示例 2:在品牌背景上统一产品
基础参考:一张白色帆布运动鞋的普通影棚照片。
发送给模型的编辑提示词:
Keep the sneaker's stitching, eyelets, laces, and canvas texture exactly as
shown. Replace the background with a solid terracotta studio backdrop and
place the sneaker on a matching terracotta pedestal. Even, soft studio
lighting from the upper left, subtle contact shadow. Do not change the
sneaker's shape, color, or any printed details.

这就是在视觉上统一产品目录的模式:选定一种背景处理方式,然后将每个 SKU 的基础照片通过相同的编辑指令运行。产品因图而异;背景、光线方向和色调保持一致,因为控制它们的是提示词——而非产品本身。
直接调用 API
seedream-4.5/image-to-image 通过 hiapi 的异步任务端点运行。提交任务,轮询直到完成,然后下载结果。
curl:
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-4.5/image-to-image",
"input": {
"prompt": "Keep the product exactly as shown. Replace the background with a solid terracotta studio backdrop and matching pedestal. Even soft studio lighting from the upper left.",
"image_urls": ["https://your-storage.example.com/base-product-photo.jpg"],
"aspect_ratio": "1:1",
"resolution": "2K"
}
}'
响应返回一个 task_id。轮询 GET /v1/tasks/{task_id} 直到 status 为 succeeded,然后从 output[0].url 读取图片 URL。该 URL 有时限——请立即下载。
Python(提交任务 + 轮询 + 下载):
import os
import time
import requests
API_BASE = "https://api.hiapi.ai/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}
def edit_product_image(prompt: str, image_urls: list[str],
aspect_ratio: str = "1:1", resolution: str = "2K") -> bytes:
resp = requests.post(
f"{API_BASE}/tasks",
headers=HEADERS,
json={
"model": "seedream-4.5/image-to-image",
"input": {
"prompt": prompt,
"image_urls": image_urls,
"aspect_ratio": aspect_ratio,
"resolution": resolution,
},
},
timeout=30,
)
resp.raise_for_status()
task_id = resp.json()["task_id"]
while True:
poll = requests.get(f"{API_BASE}/tasks/{task_id}", headers=HEADERS, timeout=30)
poll.raise_for_status()
data = poll.json()
if data["status"] == "succeeded":
image_url = data["output"][0]["url"]
return requests.get(image_url, timeout=30).content
if data["status"] == "failed":
raise RuntimeError(f"task {task_id} failed: {data.get('error')}")
time.sleep(3)
批量编辑产品目录
上面的模式可直接推广到产品目录:维护一个 (sku, base_photo_url) 列表,对每个条目应用相同的编辑指令——或针对每个 SKU 的变体——并以 SKU 为键写出结果。
CATALOG = [
{"sku": "dripper-ceramic-01", "base_url": "https://your-storage.example.com/dripper-01.jpg"},
{"sku": "sneaker-canvas-white", "base_url": "https://your-storage.example.com/sneaker-white.jpg"},
{"sku": "mug-stoneware-02", "base_url": "https://your-storage.example.com/mug-02.jpg"},
]
BACKDROP_PROMPT = (
"Keep the product's exact shape, materials, and any printed branding "
"unchanged. Replace the background with a solid terracotta studio "
"backdrop and matching pedestal. Even soft studio lighting from the "
"upper left, subtle contact shadow. Do not alter the product itself."
)
for item in CATALOG:
image_bytes = edit_product_image(
prompt=BACKDROP_PROMPT,
image_urls=[item["base_url"]],
aspect_ratio="1:1",
resolution="2K",
)
with open(f"{item['sku']}-branded.jpg", "wb") as f:
f.write(image_bytes)
print(f"{item['sku']}: done")
以每张图片 $0.045 计算,对 50 个 SKU 的目录进行一次背景处理约需 $2.25——且由于每个任务独立运行,可以跨线程池或任务队列并行化,而不是顺序执行。
image_urls 单次调用最多接受 14 张参考图,因此更高级的变体可以在单张参考图不足以支持复杂编辑时,一次性将同一产品的多个角度(正面、侧面、细节)交给模型。
常见问题
seedream-4.5/image-to-image 会改变产品本身,还是只改变场景? 它会严格按照编辑指令执行。如果提示词只描述背景、光线或情境变化,并明确要求保留产品,则产品的形状、颜色和印刷细节在多次编辑中保持一致——这正是它可用于真实产品目录而非一次性概念图的原因。
单次调用可以发送多少张参考图?
image_urls 中最多 14 个公开图片 URL。大多数单产品编辑只需要一张(基础照片);当你希望模型协调同一物品多个角度的细节时,多张参考图会有所帮助。
支持哪些分辨率?
resolution 接受 2K 或 4K。此模型没有 1K 档位。
批量编辑整个目录需要多少费用? 无论分辨率档位如何,每张图片 $0.045。100 个 SKU 的目录进行一次编辑约需 $4.50。
可以并行运行编辑以加速批量任务吗?
可以——每个任务相互独立,因此并发提交多个 /v1/tasks 调用(遵守你账户的速率限制)并并行轮询它们,是处理大型目录的最快方式。
亲自尝试
完整的参数参考和实时价格请见模型页面和价格页面。关于上述任务端点确切的请求/响应格式,请参阅任务创建文档。如果你正在用不同的模型层级设置类似的工作流程,seedream-5.0-lite 电商指南更深入地介绍了单 SKU 锚定再编辑的模式。
获取一个 API 密钥,对真实产品照片运行你的第一次编辑——上面的代码今天就可以复制粘贴,在 hiapi API 上运行。