Skip to content

Releases: klfzqxs/ref2va-h3-video-optimizer

v2.0 正式版

Choose a tag to compare

@klfzqxs klfzqxs released this 26 Sep 06:52

v2.0 更新

1. 单次生成长度上限 15 秒 → 60 秒

  • MiniMAX H3的训练集只有15秒,时间长了会发生内容和画质漂移导致可用性大幅降低所以官方限制15秒输出,本次更新通过让更强的LLM模型来参与反馈校准的方式实测可以在60秒内保持相对较好的一致性(但不保证与15秒拥有完全相同的输出质量)。

2. 长视频提示词设计(>15 秒自动生效)

  • 运动铺满全片:强制校准长视频中的动态一致性
  • 新内容均摊到每一拍,避免模型在后段"绕回开头"。
  • 光照与色彩的连续演变,避免模型在未训练的超长视频生成调节下发生光照与色彩漂移
  • 单镜连续;若确需切换,切点所在拍同样要有运动。
  • 声音连续性(长片常见退化是后半段音频变弱)。
  • ≤15 秒的提示词字节不变(仅在 >15 秒时注入)。

3. 长视频检测方法

  • 抽帧修复:旧实现 t = dur/n*i 使最后一帧落在 (n-1)/n 处,永远采不到最后 1/n 段——而尾部正是退化最集中的区域。故采用均匀覆盖全片并强制包含末帧的方法。
  • 抽帧数随时长自适应:60 秒 → 40 帧(短片仍为 32 帧)。
  • 新增 core/video_metrics.py(纯标准库 + ffmpeg,无需 numpy/PIL):逐秒采 32×32 灰度序列 + 首末彩色帧 + 首尾音频电平,按阈值判定并输出:尾部运动比、尾部冻结、近静止占比、对比度下滑、色调恒定、尾部音频变弱。
  • 指标作为"地面真相"注入评审:同时打印到日志,并附长视频评审规则,视觉 LLM 的判断不得与之矛盾。
  • 复读相关降级为辅助证据:该指标基线很高(静态机位/慢速演进的正常长镜头也会很高),而实测真实的"绕回开头"案例只有 0.588——阈值定高会同时误报与漏报,故必须与尾部运动衰减/对比度下滑同时出现才判定。

4. 前端与自检

  • 环境自检(页面「环境自检」按钮):可以一键检测ComfyUI 状态、模板所需节点、所选模型/CLIP/LoRA 是否真实存在、所选模型的权重格式、ffmpeg、LLM 端点。
  • ComfyUI 状态灯:页面常驻显示在线/离线与显存余量,30 秒自动刷新。
  • 参考图持久化:参考图/音频刷新页面自动恢复并显示缩略图。

性能优化

  • weight_dtype 可选:default / fp8_e4m3fn / fp8_e4m3fn_fast / fp8_e5m2;选 GGUF 时自动忽略并提示。
  • 新增 tests/(离线验证脚本,不需要 GPU)与 VERIFICATION.md(机制 → 验证方法 → 实测结果)。
  • ref_image_size 可选:match(默认,按画幅缩放省 token)/ max(参考管线 2048 短边,身份最准,但参考 token 全程参与采样,显存与耗时可能翻几倍);review_frames 也可调(长视频会自动抬到 40)。

5. 前端体验(借鉴参考项目 P1)

  • 逐轮结果卡片:按轮次列出每轮的分数、verdict、视频,可逐轮复制提示词/剧本或直接打开视频。
  • 一键复制:最优提示词 / 剧本 / 任一单轮
  • 折叠卡片:7 个可折叠区块(高级·性能、音频评审、配置、历史等默认收起)
  • 配置导出 / 用示例回填 / 清空表单:导出与页面表单一致的 config.json(可直接给命令行用)

6. 显存预算估计(测试功能)

  • ⚠️ 该功能为测试功能:默认包线系数来自开发者的的实测表,与你的检查点/流式策略未必吻合,估算不准是可能的。页面提供「复制偏差记录」(含环境、模型档案、预测区间、实测峰值、token 数),开 issue 时附上即可定位。

Bug修复

# 修复内容
1 修复了 日志中的emoji表情不能正确显示的问题
2 修复了评审抽帧永远采不到视频最后 1/n 段的问题
3 修复了 I2VA 流程不识别 GGUF 模型的问题
4 修复了 /api/jobs 连续两次 _send 导致重复输出响应体的问题

v1.1 正式版

Choose a tag to compare

@klfzqxs klfzqxs released this 16 Sep 05:51

v1.1 正式版

相对 v1.0,本版新增了 I2VA 流程、重做了快速渲染机制,并做了若干性能与正确性修复。

新增 I2VA 流程(首帧图生视频)

  • 参考图区上方可选 Ref2VA / I2VA 两条流程
  • I2VA:只能选 1 张参考图、强制作为视频第一帧;不吃参考音频;模式 A/B 自动隐藏
  • 按官方 I2VA 规范写英文提示词(首帧声明 + integrated_multimodal_description / overall_soundscape / non_diegetic_music);剧本仍为中文,台词/画面内文字逐字保留原文
  • 接入 SageAttention3(PathchSageAttentionKJ + MiniMaxH3MemoryEfficientSageAttentionPatch):实测采样 ~30.2 → ~22.6 s/it(约 1.26×),采样峰值显存 12.3 → 10.4 GB
  • I2VA 的 sampler / scheduler / steps 也可从页面设置(不再锁定在模板值)

快速渲染机制重做

  • 不再切换工作流、不再依赖任何 turbo LoRA
  • 与精渲使用同一个工作流:模型、采样器、时长、画幅、LoRA 全部相同,只把分辨率(megapixels)与采样步数各乘 0.707 并向下取整 → 耗时约为精渲的一半(实测 2.04×–2.55×;向下取整只会更快,不会更慢)
  • 配置字段 quick_workflow 更名为 quick_render;两条流程都支持
  • 加速 LoRA 完全由你在页面「LoRA」区自行加载

Ref2VA 提示词生成加速(KV 前缀缓存)

  • 官方写作指南(约 6k token)从 user 消息中段移入 system prompt,变化的剧本 JSON 移到 user 末尾
  • 同一轮优化里的多次调用因此共享稳定前缀,服务端前缀复用可整段跳过指南的 prefill:实测单次转译 14.6 s → 2.0 s(省约 12.6 s/次,候选越多越省)

参考编号统一为从 1 开始

  • 给 LLM 的参考清单此前是 0 起编号,而 H3 的引用标签 <Picture N> / <Audio N> 从 1 起,两者语义冲突
  • 现在清单直接标出标签(<Picture 1> = xxx.png · 参考:山峰),并在导演/格式师 system prompt 中明确禁止 0 号、禁止重新编号
  • 同时统一了 CLI 路径的同类写法,避免"最终提示词被规范纠正、但中间产物 0/1 混用"继续向下游与爬山回炉传播

修复的问题

# 修复内容
1 修复了 I2VA 下 sampler / scheduler / steps 无法生效(被锁在模板值)的问题
2 修复了 I2VA 工作流未启用 SageAttention3、渲染显著偏慢的问题
3 修复了参考图像编号从 0 起、与 H3 的 <Picture 1> 不一致的问题
4 修复了快速渲染依赖特定 turbo LoRA、缺失时会静默回退的问题
5 修复了 I2VA 下「快速渲染」选项不可用的问题

完整说明见仓库内 RELEASE_NOTES.md;技术细节见 README.md,面向使用者的简短说明见 使用说明.md。