用途
本技能用于从一份配置(config.json)渲染“手滑过口味清单”格式的短视频:竖屏 1080×1920、30fps、约 7.5 秒,展示“N 种口味”的清单式视频。每个口味是一张卡片,卡片由纯色饱和背景、常驻标题、品牌真实产品抠图及柔和接触阴影组成。卡片以自右向左滑动的方式切换(类似手机信息流滚动),同时画面底部有一只看起来真实的手横向扫过。成片只有音乐,没有旁白。
该能力属于免费、确定性的合成装配过程,不发起付费调用,也不需要密钥。它不会生成或编辑产品,抠图按原样合成,因此标签保持清晰。
主要能力
- 按配置中的口味顺序生成卡片,每个口味对应 { "bg": "#hex", "can": "cutout.png" }。
- 支持配置标题文本、字体、字号、纵向位置、颜色与下划线;标题过宽时会自动缩小(并给出警告)以适配画面宽度的 88%,下划线跟随文字。
- 支持配置产品尺寸与纵向中心(can_height、can_center_y)。
- 支持配置每张幻灯片的帧数(slide.frames);滑动方向固定为从右到左,其他方向会被忽略并警告。
- 支持可选片尾卡片 PNG(1080×1920),在最后一个口味之后滑入,并可配置停留帧数。
- 支持可选音乐:可给对象(路径、开头裁剪秒数、音量),也可给纯路径字符串,或 null 表示静音版本。
- 提供 --stills 模式,可只导出每张卡片的 PNG 而不渲染视频;建议先运行它检查标题、颜色与抠图。
- 绿幕抠像采用“绿色占优”判定,仅当 g > green_margin × max(r, b) 时 alpha 为 0,对亮度不敏感;保留像素会做去绿边处理。
使用方式
- 获取脚本后执行渲染:
S=/tmp/gooseworks-scripts/render-hand-swipe-flavor-listicle/scripts # after `gooseworks fetch render-hand-swipe-flavor-listicle`
python3 $S/build_hand_swipe_listicle.py config.json # writes config "output"
python3 $S/build_hand_swipe_listicle.py config.json --out final.mp4 # override the output
python3 $S/build_hand_swipe_listicle.py config.json --stills cards/ # one PNG per card, no video
python3 $S/build_hand_swipe_listicle.py config.json --work work/ # keep the intermediates in work/
config.json 中的相对路径以配置文件所在目录为基准解析。
- 准备输入:
- 产品抠图:使用品牌的透明 PNG(产品详情页/媒体资料包)。品牌网站上的照片通常不是抠图;也可通过 create-image-fal(模型 fal-ai/birefnet/v2)去背景,这是付费且需审批的步骤。若图片没有透明像素,渲染器会警告,并渲染成带矩形阴影的白框;此时应先修正,而不是用 AI 重新生成产品。
- 标题字体:始终传入 title_font。缺省时会回退到机器自带字体(macOS 为 Brush Script,Linux 为 DejaVu Sans Bold),导致同一配置在不同机器上标题风格不同。Google Fonts 免费 TTF 示例:cursive/script 用 Pacifico,bold condensed sans 用 Anton,elegant serif 用 DM Serif Display,hand-drawn marker 用 Permanent Marker。
- 手部片段:可用捆绑片段(一个人女性的手),也可通过 create-video-fal 生成新片段(付费)。
- 音乐:可为空(静音版本),也可通过 create-music-elevenlabs 生成(付费)。
-
配置字段:title、title_font、title_size(默认 118,为最大值)、title_y(默认 200)、title_color(默认白色)、title_underline(默认 true)、flavors[](必填,至少 2 项,image 可作为 can 的别名)、can_height(默认 950)、can_center_y(默认 940)、slide.frames(默认 12)、hand_clip(渲染必需)、hand(trim_start、trim_end 默认 0–1 秒、speed、scale 默认 0.45、green_margin 默认 1.12)、end_card 与 end_card_hold_frames(默认 60 帧)、music、output(默认配置文件旁的 hand-swipe-listicle.mp4)。
-
硬性错误(退出码 1)包括:必填字段中存在未填写的 input:… 或 brand:… 占位符;文件缺失;music 对象的路径为空或为占位符(若需静音应设 "music": null);hand.trim_start 等于或超过片段结尾。
-
时长:每个口味持续一个手部循环(裁剪后的片段长度)。例如 5 个口味、1 秒裁剪、12 帧片尾卡片滑入与 60 帧停留,成片约 7.4 秒。音乐需覆盖 trim_intro_sec 加成片长度;过短时会减少开头裁剪(并警告),若仍短于成片则尾部静音(并警告)。
适用场景
- 需要快速产出品牌产品多口味/多 SKU 的竖屏清单式短视频。
- 希望使用真实产品图而非 AI 生成产品、保证标签清晰的营销素材。
- 需要统一标题风格、可重复确定性渲染的批量内容制作。
限制
- 不生成或编辑产品本身;产品必须是透明 PNG 抠图。
- 滑动方向固定为从右到左。
- 仅支持音乐,不支持配音。
- 付费环节(去背景、生成手部视频、生成音乐)不属于本能力本身,需单独执行并审批。
- 手部片段必须裁剪到“手指竖起”的干净窗口;片段可能周期性卷指。
- 若抠图缺少透明像素,成片会出现白框与矩形阴影。
- 字体不传入时风格因机器而异。
- 具体收费、价格与平台兼容性资料暂未提供。