SuperAPI AI 工具集

brutalist-product-promo

设计与创作

查看项目

更新于 10-26 23:51

技能介绍

用途

该模板用于为硬件、设备、机器人、无人机、车辆或科技产品制作粗野主义/工业风格的宣传视频,画面采用规格表式动态图形。成片为 22.64 秒、25 fps、720×1280,由 21 个硬切场景组成。

主要能力与结构

视频完全由一份 JSON brief 驱动,包括文案、色彩、图像提示词与场景时长。每一帧都是时间的纯函数,因此可以在渲染完整视频前单独审查任意一帧。模板提供 examples/arc/ 示例与预览图 examples/arc/contact_sheet.png;另一个示例 examples/prismor/ 把该风格应用于软件产品,展示了通过 meta.logo 在字标旁显示真实品牌 logo 的做法。逐场景时长与用途的分镜说明见 references/storyboard.md。

图像槽位共有六个:hero(产品名场景,顶部 64%,建议工作室渲染、四分之三视角、平灰背景、主体居中)、closeup(故障场景与阈值化“已连接”场景,建议微距细节、从左进入、纯黑背景、明亮主体)、cutout(棋盘格场景,建议侧视图、背景透明、主体占满宽度)、environment(条纹与 ASCII 场景,建议产品所在环境的俯视黑白照片、强垂直线、低质量即可)、lineart(概览页与染色网格场景,建议纯黑底白色轮廓、无填充、主体填满画面)、sprite(型号与参数场景及循环,建议精灵图网格、白底黑色线稿、每格构图一致、仅一个部件运动)。提示词应写完整句子,说明材质、光线、镜头与背景;图内文字加引号,其中“{brand}”会从文案替换。文字排版由引擎渲染,不依赖图像模型。

使用方式

环境要求:Python 3.9+ 及 numpy、Pillow,PATH 中需有 ffmpeg,字体已内置。可选:设置 OPENAI_API_KEY 以使用 gpt-image-2 生成六张产品图像;未设置时使用占位图,流程仍可运行。

流程:

  1. 将 examples/arc/brief.json 复制到新工作文件夹作为 brief.json,改写文案、主题与素材提示词。文案保持简短(标签而非句子),字段规则见 references/brief.md。只向用户询问无法推断的信息(品牌名、产品、强调色);若未提供规格行,可编造合理内容并说明是编造的。
  2. 运行 python3 scripts/promo.py check --brief path/to/brief.json,检查缺失文案键、缺失素材和弱对比度。
  3. 运行 python3 scripts/promo.py assets --brief path/to/brief.json,用 gpt-image-2 把缺失槽位生成到 <brief dir>/assets/。质量保持 low 或 medium,因为帧尺寸为 720 像素且经过重度处理,high 会浪费开销。用 assets <name> --force 重新生成单个槽位。
  4. 审查静帧:运行 python3 scripts/promo.py still --brief … 3.4 7.9 11.3 16.9,查看 <brief dir>/out/ 中的 PNG;整片可用 sheet。检查 hero 目标框,通过调整 meta.hero_target(hero 图像的比例)使其对准产品关键细节。
  5. 渲染:运行 python3 scripts/promo.py render --brief … [--audio track.mp3] 生成 <brief dir>/out/promo.mp4。双核约需 1 分钟。

自定义

时间:"scenes": {"hero": 1.4, "smear": 0} 设置每个场景的秒数(0 表示删除该场景);"speed": 1.2 缩放整段视频。 主题:accent、ink、paper、tint(十六进制)。强调色上的文字会自动在 ink 与 paper 之间切换以保证对比度。 格式:"size": [720, 1280] 是设计版式,该模板不支持其他尺寸。 音频:通过 --audio 传入;切点落在约 0.25 秒的网格上,因此 120–130 BPM 的曲目较合适。

限制与注意事项

不要在文案或提示词中使用真实公司的商标,除非用户拥有它们或明确要求。切勿让 gpt-image-2 绘制品牌 logo;应通过 meta.logo 指定真实 logo 文件,引擎会在 logo、十字与结尾场景中把它放在字标旁(深色底上带细线,使深色标志保持可见)。需如实说明哪些槽位是占位图、哪些是生成的。若要改变运动本身,请编辑 scripts/promo.py(每个场景一个函数),不要编辑 scripts/framesmith/,它来自仓库 core/ 且会被覆盖。