Communitygithub.com

产品视频

使用Makernice规划和生成简短的产品与电商视频,如产品展示、广告片段及市场列表视频。涵盖选择模式、编写提示词、挑选宽高比与分辨率、查看价格及执行任务。

产品视频 是什么?

该技能旨在帮助用户通过Makernice平台将产品(最好附带照片)转化为短视频片段。它支持多种视频模式:当有产品照片时,使用i2v模式可保留产品的真实形状、标签和颜色;若有多张不同角度参考照片,可选择r2v模式;无照片时则使用t2v模式并用文字精确描述。技能覆盖从收集需求(产品信息、照片链接、使用平台)到选择模型与模式、编写高质量提示词、确定分辨率(720p用于草稿,1080p用于最终版)与成本估算的完整流程。用户确认价格后,技能会调用生成接口,并处理重试、检查作业状态、处理拒绝和退款情况,最终提供视频链接和控制台URL。整个流程严格遵循预算控制(max_cost_usd)和唯一请求ID要求,适合在Claude Code、Cursor等AI Agent环境中使用。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/makernice/makernice-plugin/tree/HEAD/skills/product-video

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

产品视频 是做什么的?

将产品(最好附带照片)转化为短视频片段。以用户使用的语言回复。所有价格均以美元(USD)计价。

1. 收集需求

仅询问缺失的信息:

  • 产品:是什么、材质、颜色、尺寸、需要展示的一个特点。
  • 产品照片:一个公开的 https 链接指向一张清晰的照片。本地文件和私有链接不可用;用户需要先将图片托管在公开的 HTTPS URL 上。
  • 使用平台:这决定了宽高比。
    • TikTok、Reels、Shorts、Stories:9:16
    • 网站主图、YouTube、着陆页:16:9
    • 市场列表、信息流帖子:1:1(如果模型支持)
  • 时长与预算:大多数片段为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. 编写提示词

一个片段,一个镜头。按以下顺序构建提示词:

  1. 主体:具体产品,包含材质和颜色(例如“一个哑光黑色陶瓷咖啡杯,带软木底座”)。
  2. 动作或镜头运动:仅一个动作,例如慢推、平滑360度环绕、俯视揭示、微距纹理平移、手拿起等。
  3. 场景与光线:表面、背景、灯光(例如“在浅橡木桌子上,柔和的晨光,浅景深”)。
  4. 风格与节奏:例如“干净商业风格,平稳节奏”。

提示:

  • 不要要求模型渲染文字、价格或标志,因为它们通常会出现乱码。可在后期编辑中添加文字。
  • 使用 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 以全额释放已扣金额。

相关技能