产品视频 是做什么的?
将产品(最好附带照片)转化为短视频片段。以用户使用的语言回复。所有价格均以美元(USD)计价。
1. 收集需求
仅询问缺失的信息:
- 产品:是什么、材质、颜色、尺寸、需要展示的一个特点。
- 产品照片:一个公开的
https链接指向一张清晰的照片。本地文件和私有链接不可用;用户需要先将图片托管在公开的 HTTPS URL 上。 - 使用平台:这决定了宽高比。
- TikTok、Reels、Shorts、Stories:
9:16 - 网站主图、YouTube、着陆页:
16:9 - 市场列表、信息流帖子:
1:1(如果模型支持)
- TikTok、Reels、Shorts、Stories:
- 时长与预算:大多数片段为5到10秒。对于更长的视频,建议规划多个短片段而非一个长视频。
2. 选择模型和模式
调用 list_models,然后再次以候选模型ID调用 model 以查看其 modes、aspect_ratios、durations、options 和 max_prompt_chars。
- 有照片:使用带有照片作为
image_url的i2v模式。这能保留产品的真实形状、标签和颜色。 - 多张参考照片(产品不同角度):如果模型支持,使用
r2v模式并传入reference_images,注意max_references限制。 - 无照片:使用
t2v模式并精确描述产品。 - 如果模型在
options中列出了negative_prompt,可以用于类似“扭曲标签、多余部件、模糊”等负面描述。
3. 编写提示词
一个片段,一个镜头。按以下顺序构建提示词:
- 主体:具体产品,包含材质和颜色(例如“一个哑光黑色陶瓷咖啡杯,带软木底座”)。
- 动作或镜头运动:仅一个动作,例如慢推、平滑360度环绕、俯视揭示、微距纹理平移、手拿起等。
- 场景与光线:表面、背景、灯光(例如“在浅橡木桌子上,柔和的晨光,浅景深”)。
- 风格与节奏:例如“干净商业风格,平稳节奏”。
提示:
- 不要要求模型渲染文字、价格或标志,因为它们通常会出现乱码。可在后期编辑中添加文字。
- 使用
i2v时,描述运动与场景,无需再次描述产品外观;照片已定义了外观。 - 确保不超过
max_prompt_chars。
示例:
一个哑光黑色陶瓷咖啡杯,带软木底座,放在浅橡木桌上,蒸汽升起,镜头慢慢推近,柔和的晨光,浅景深,干净商业风格,平稳节奏。
4. 分辨率与价格
-
先用
720p制作草稿以检查运动和构图,成本较低。最终版本使用1080p用于网站、广告或大屏。对于手机信息流,720p通常已足够。 -
调用
estimate_cost获取草稿和最终选项的价格,并在执行前向用户展示两者:{"input": {"model": "<model id>", "mode": "i2v", "prompt": "A matte black ceramic coffee mug on a light oak table, steam rising, the camera slowly pushes in, soft morning light", "image_url": "https://example.com/mug.jpg", "duration": 5, "resolution": "720p", "aspect_ratio": "9:16"}}
5. 用户同意后生成
仅在用户看到价格并同意后才调用 generate。如果用户已设定预算并指示你继续,且 amount_usd 在预算内,则无需再次询问;但仍需使用 amount_usd 作为 max_cost_usd,而非预算金额。
max_cost_usd:必填。使用estimate_cost返回的已批准amount_usd,精确一致。如果价格更高,任务将被拒绝。request_id:必填且每次新任务唯一,可打印ASCII字符,无空格,最多64字符,例如mug-orbit-720p-1。已使用的ID不可重复用于不同任务。- 如果
generate因网络错误、超时、系统错误或“请求过多”而失败,等待几秒后使用相同的input、相同的max_cost_usd和相同的request_id重试。相同的ID将返回相同任务,且不会重复收费。
{"input": {"model": "<model id>", "mode": "i2v", "prompt": "A matte black ceramic coffee mug on a light oak table, steam rising, the camera slowly pushes in, soft morning light", "image_url": "https://example.com/mug.jpg", "duration": 5, "resolution": "720p", "aspect_ratio": "9:16"}, "max_cost_usd": "<amount_usd from estimate_cost>", "request_id": "mug-orbit-720p-1"}
使用 check_job 等待,传入 job_id 和 wait_s 设为55;如果任务仍在运行,按照 next_step 再次调用,wait_s 仍设为55。不要密集轮询。
成功后,提供 outputs 中的结果链接和 console_url。链接24小时后过期;check_job 会返回新的链接。如果某个输出的 state 为 blocked 且无 url,说明安全审核在生成后隐藏了结果;该任务仍会收费,用户可以联系Makernice请求审核。失败的任务不会收费;请告知用户 error 中的原因。
对于多片段视频,每个片段单独运行一个任务,每个任务有自己的 estimate_cost、max_cost_usd 和新 request_id,并向用户提供累计总价。
处理拒绝
- 价格高于
max_cost_usd:显示新价格,并在使用新的max_cost_usd和request_id重试前征得同意。 - 超出单任务上限:建议使用
720p或更短时长,或用户可在Makernice上提高单任务上限。 - 余额不足或达到日限额:调用
get_balance并说明情况。如果get_topup_link工具可用且用户询问如何充值,则提供一次链接。 - 已排队任务设置错误:使用
job_id调用cancel_job以全额释放已扣金额。