yl 短视频封面
先辨认用户选择的模式。若没有指定,简要展示两种区别并让用户选择;若已说“黑底白字”或“半透明无头像”,直接进入对应模式。不要把两套字数、构图规则混用。
| 模式 | 画面与标题 | 读取规则 |
|---|---|---|
| 黑底白字大字 | 默认纯黑底、白色大字,3—5 行,可选黄字强调。仅在用户要求并提供合法素材时叠加头像 | 完整大字模式方法、构图规范 |
| 半透明原帧 | 保留真实画面,整幅加均匀黑色半透明遮罩,白色衬线字,通常两行、6—10 字,不叠加头像 | 完整半透明模式方法 |
“无头像”指不加独立抠图头像;原视频里的自然出镜人物可以保留。若用户明确要求画面中也不能出现人物,应选择其提供的无人原帧。
分类入口使用 black-white 和 translucent 分别表示上述两种模式;它们是路由标识,不是通用脚本的 --mode 参数。实际执行使用对应的独立渲染脚本。
共同流程
- 读取完整素材。截图标题逐字核对;低清截图用
scripts/prepare_title_crop.py放大。已有用户标题保留原字句。文案/视频提炼的新标题必须有原文依据。 - 视频输入用
scripts/prepare_video_input.py转写并抽帧;读完整转写,查看开头及至少三个代表帧。已有转写可用--reuse-transcript,无需安装 Whisper 也能复用。 - 按所选模式排版和渲染。大字模式允许有依据的补充钩子;极简半透明模式保留留白,不为了填版而加字。
- 使用对应校验器检查尺寸、文字与清单哈希;查看原尺寸和 270×360 缩略图,核对字形、留白、头像遮挡和原画面文字冲突。几何检查不能证明事实依据或替代目视检查。
- 输出请求的 PNG。原视频、转写、帧图、缩略图、JSON 清单留在使用者指定的工作目录,默认不随最终封面交付。修订使用新文件名,保留已交付版本。
运行依赖与素材
- Python 3.10+、Pillow 10+。可由安装者运行
python -m pip install "Pillow>=10"。 - 字体由安装者自行提供,优先思源黑体/Noto Sans CJK(大字)和思源宋体/Noto Serif CJK(半透明);可用
--font明确指定。脚本尝试查找本机字体,不联网下载、不分发字体文件。 - 视频抽帧需要 PATH 中的
ffmpeg、ffprobe;自动转写另需openai-whisper及其模型。首次使用模型可能联网下载;已有转写可绕过模型安装。依赖许可见 来源与依赖。 - 不依赖作者机器的账户、头像、视频文件夹、私有 Skill 或凭证。默认黑色背景由脚本生成;头像、图片和视频仅使用本次用户提供或已授权的文件。
- 需要生成/编辑新素材时按本环境可用图像工具处理,参考 素材提示词。半透明模式直接使用原帧。
- 所有输入、输出和运行缓存必须位于 Skill 目录之外。命令在 Skill 根目录执行,示例路径换成使用者的外部工作目录。
脚本入口
- 大字渲染:
scripts/render_bold_cover.py;校验:scripts/validate_bold_cover.py。 - 半透明渲染:
scripts/render_translucent_cover.py;校验:scripts/validate_translucent_cover.py。 - 头像遮挡估算:
scripts/check_portrait_overlap.py,只在叠加头像时有意义。 - 通用输入准备:
scripts/prepare_video_input.py、scripts/prepare_title_crop.py。
除内部字体辅助模块外,各入口脚本都支持 --help。公开维护时参照 来源快照 核对来源升级,并逐文件复核公开差异;不反向覆盖日常使用版。
人像模式补充检查
人像位于文字上方,不能让文字盖住脸部;检查完整头部和抠图边缘。逐字遮挡以不超过约 25% 为目标,达到 50% 为失败,优先重排文字,再移动或缩小人像。短标题补充仍单独传入 --supplement,不合入 --title。已有 大字模式 内的绿幕检查、避免误抠除深色衣服和缩略图验收继续适用。