character-showcase-editing · git:20260911.150af77 · 2026-09-11 · sha256 9a07cfa1d37b7290
character-showcase-editing git:20260911.150af77A
Immutable. This exact content is served forever at /api/v1/blob/9a07cfa1d37b7290.
--- name: character-showcase-editing description: 将角色图片、图与对应视频、或已有视频剪成角色展示合集。保留原始缩放曲线与四种时间线,支持连续音乐、原声及混音;默认只生成计划,明确执行后才渲染。 --- # 角色合集剪辑 输入一个有序素材清单,输出角色合集 MP4。上游先完成 ComfyUI 生图和所需 H3 图生视频;本 Skill 负责后期,不会自行启动这些模型。 | 模式 | 画面 | 时长规则 | | --- | --- | --- | | A | 图片缩放、由糊变清;仅前景溶解,背景稍后硬切 | `total_frames` 固定总长 | | B | 静态合成图,整画面交叉溶解;无缩放或动态模糊 | `total_frames` 固定总长,输入自动补重叠 | | C | 图 1 → 视频 1 → 图 2 → 视频 2 | 各段时长之和减去边界重叠 | | D | 视频 1 → 视频 2 | 各段时长之和减去边界重叠 | ## 执行顺序 1. 从用户选择的模板读取默认参数;用户只给一句话时,沿用这些公开默认值。明确“纯溶解”用 B;明确“原图再动起来”用 C;只要动态合集用 D。不要把某次项目特例扩成全局默认。 2. 没有图片时转到 [ComfyUI 参考图 Skill](../comfyui-reference-images/SKILL.md),完成模型/工作流解析、角色与场景图生成。C 将每张图绑定其实际 H3 输出,不凭相似文件名自动替换失败版本。 3. 新建工作目录,按模板的生成清单写 `edit.json`。路径相对该 JSON;显式列出每个文件、顺序、版本和配对。排除临时图、弃用版本及封面;勿自动按名称排序。 4. 执行 `--plan`。检查模式、片数、顺序、帧数、音乐源起点与输出起点;缺少待生成素材仍可算计划。这里不打开图片、不探测媒体、不运行 FFmpeg。 5. 素材完成后执行 `--check`,只校验文件存在性和输出路径。它不证明媒体可解码、画质良好或角色正确。 6. 用户的创作任务授权包含剪辑时执行 `--render`。只有明确请求渲染的命令才进入 Pillow/FFmpeg;若本轮只要求检查文件,停在第 5 步。 7. 成功交付输出 MP4 与同名 `.render.json`。渲染器核对实际视频帧数和音轨存在性,写 `rendered_awaiting_user_review`。没有播放/视觉检查就不写“画质验收通过”。 在仓库根目录运行,`job/edit.json` 换成当前任务文件: ```bash python3 skills/character-showcase-editing/scripts/showcase.py job/edit.json --plan python3 skills/character-showcase-editing/scripts/showcase.py job/edit.json --check # 仅在实际制作视频时: python3 skills/character-showcase-editing/scripts/showcase.py job/edit.json --render ``` 完整字段、四份可复制配置与限制见 [配置说明](README.md)。没有参数开关时默认 `--plan`,不会生成任何媒体。 ## 不可混淆的规则 - A 保留历史 Python 的 Hermite 曲线:312 → 222 → 222 → 104%,60 fps 相对关键帧为 0、123、186.268、310.733;归一化切线不能再乘帧间距。模糊 45 → 0 到 91.117 帧结束。别换成 smoothstep。 - A 的 25 帧前景转场位于边界前 12 帧到后 13 帧,背景在边界后 14 帧切换。它不会让总片长每次减少 25 帧。不同帧率按秒换算并取整。 - B 每张图只预合成一次,整画面溶解;不要给它加入 A 的动效。 - C 中 `scale_speed` 仅加速图片缩放,模糊时间独立。视频只播放自身运动;不附加图片缩放曲线。 - C/D 的视频先裁源区间再变速,输出帧数取 `round(source_take_seconds / speed × fps)`。硬切用零重叠;不保留溶解的减时公式。 - `layout.mode=blurred` 对应旧方形前景布局;`blurred-fill` 对应画布内完整主体加同帧模糊背景;`plain` 适合已完成构图的视频。三者均保持比例。输入不能被强制拉伸成正方形。 - `audio.mode` 必须明确:`silent`、`bgm`、`source`、`source+bgm`。原声音视频变速同步,缺音轨补静音,跨段音频使用相同重叠。只换背景音乐不代表获准丢弃要求保留的自然声。 - `source_start_seconds=1` 是从音乐第 1 秒取样;`output_start_seconds=0` 是成片立刻播放。两者独立。 - 不使用同名旧片充当新成片。输出和成功记录均拒绝覆盖;临时文件放在独占目录,失败不留下成功记录。 ## 验证范围 已做配置、曲线、配对、时间线、命令构造与失败路径的纯数据测试。本实现没有重新渲染或观看历史媒体,新环境的 FFmpeg 滤镜兼容性、内存占用与成片质量待实际制作时验证。A 保留历史程序的数值曲线,不保证与 Premiere 像素一致;历史全白蒙版的羽化并无有效边缘效果,本实现不冒称恢复了真正的 PR 羽化。 整理与配方:**Shenrui Ma(四倍体果蝇)**。