ComfyUI-FramePack-HY F1
ComfyUI-FramePack-HY F1
ComfyUI FramePack HY F1 ComfyUI FramePack HY F1 Modified May 7, 2025 No access CY 00335 00:00 No access CY 00334 00:00 No access CY 00340 00:00 No access CY 00341 00:00 • FramePack 如何解决: FramePack 通过扩展有效的上下文长度,为模型提供了更强的时间锚定 (Temporal Anchoring)。由于模型可以同时“看到”来自更广泛时间范围内的关键信息(打包后的令牌),它能更好地维持对全局指令(如文本提示)和早期视觉状态(如果使用参考帧)的遵循。这种更长程的依赖关系有助于抑制误差累积,使生成过程更稳定地保持在预期的轨道上,减少了内容和风格随时间“漂移”的可能性。 总结来说: FramePack 通过其核心的冗余信息移除和有效信息打包机制,实现了在不增加计算负担的前提下扩展模型的有效时间上下文窗口。这个扩展的上下文窗口使得模型能够: 1. “记住”更久远的信息: 通过保留早期关键帧的非冗余令牌,缓解了遗忘问题。 2. 维持更强的全局一致性: 通过提供更长程的时间依赖作为锚定,抑制了误差累积,减少了内容和风格的漂移。 最终目标是生成计算高效、内存友好且时间上更连贯、更忠实于初始设定的长视频。 工作流 模型与节点 FramePack https://github.com/lllyasviel/FramePack 节点仓库 https://github.com/CY CHENYUE/ComfyUI FramePack HY(参数作用请查看github) 论文地址 https://arxiv.org/html/2504.12626v2 模型地址:下载不方便可以在网盘里面,已经整理归类好了。 1. vae放入models\vae 目录: hunyuan video vae bf16.safetensors https://huggingface.co/Comfy Org/HunyuanVideo repackaged/tree/main/split files/vae 2. clip 放入models\clip 目录: clip l.safetensors 与 llava llama3 fp8 scaled.safetensors https://huggingface.co/Comfy Org/HunyuanVideo repackaged/tree/main/split files/text encoders https://huggingface.co/Comfy Org/HunyuanVideo repackaged/tree/main/split files 3. FramePackI2V HY 放入 models\diffusers\lllyasviel\FramePackI2V HY 目录: https://huggingface.co/lllyasviel/FramePackI2V HY/tree/main (整个目录文件) 4. ComfyUI Advanced Vision 512版本 放入 models\clip vision\google siglip2 so400m patch16 512 目录: google siglip2 so400m patch16 512,这里也可以用384的,512的效果会更好点。 https://huggingface.co/ostris/ComfyUI Advanced Vision/blob/main/clip vision/siglip2 so400m patch16 512.safetensors 论文核心思想 FramePack 的新框架,旨在解决现有视频扩散模型在生成长视频时遇到的核心挑战:显存消耗巨大、推理速度慢、生成质量受限以及难以集成多种控制信号。FramePack 的核心创新在于引入了 “动态上下文交换” (Dynamic Context Swapping) 机制,并作为一个灵活的框架来整合多种先进的视频生成和控制技术。 主要内容和技术点: 1. 问题定义: ◦ 传统的视频生成模型通常需要将整个视频序列(或其上下文信息,如注意力机制的 K/V 缓存)保留在显存 (VRAM) 中,导致生成长视频时显存需求急剧增长,超出普通硬件承受范围。 ◦ 长序列处理也使得推理速度变慢。 ◦ 简单地截断上下文会损害视频的时间一致性和质量。 ◦ 整合如 ControlNet、AnimateDiff、IP Adapter、Motion Brush 等多种控制技术到一个统一流程中存在困难。 2. 核心方法:动态上下文交换 (Dynamic Context Swapping): ◦ 分块处理: FramePack 不一次性处理整个长视频,而是将其分成多个有重叠的块 (Chunks / Sections) 进行顺序处理。 ◦ 有限上下文: 在处理当前块时,只在显存中保留一个有限大小的时间上下文窗口 (Temporal Context Window)。这个窗口包含了对当前块生成最重要的先前帧的信息(例如 K/V 缓存)。 ◦ 动态交换: 当处理进程移动到下一个块时,系统会动态地将不再需要的旧上下文信息从显存中换出(可能移到 CPU内存 或丢弃),并将与新块相关的上下文信息换入显存。 ◦ 效果: 这种机制使得峰值显存占用不再随着视频总长度线性增长,而是大致由上下文窗口的大小决定,从而能在有限显存下生成显著更长的视频。 3. 内存管理优化: ◦ 论文提到了实现高效上下文交换的内存管理策略,例如使用 Pinned Memory 来加速 GPU 和 CPU 之间的数据传输。 4. 集成框架 (Integration Framework): ◦ FramePack 不仅仅是内存优化技术,它被设计为一个框架,可以无缝集成多种现有的图像/视频生成和控制模块。 ◦ 它可以同时管理和应用来自文本提示 (Text Prompts)、ControlNet、AnimateDiff (运动模块)、IP Adapter (图像提示)、Motion Brush (运动笔刷) 等的控制信号。 ◦ 通过统一的 Pipeline 结构,FramePack 使得这些不同的技术能够协同工作,在动态交换的流程中保持有效,实现复杂、精细的视频内容和运动控制。 5. 运动一致性: ◦ 通过块之间的重叠以及整合 AnimateDiff 等运动模块,FramePack 致力于在动态交换过程中保持视频的运动连贯性和时间一致性。 实验与结论: • 论文通过实验证明,与不使用动态交换的基线方法相比,FramePack 能够: ◦ 在相同的硬件上生成显著更长的视频。 ◦ 大幅降低峰值显存需求。 ◦ 保持或提升生成视频的质量和时间一致性。 ◦ 成功展示了多种控制方法(文本、结构、图像、运动)的集成效果。 • 结论: FramePack 是一个有效的视频扩散框架,它通过核心的“动态上下文交换”技术解决了长视频生成的显存瓶颈,并提供了一个强大的平台来集成和利用多种控制工具,最终实现高效、可控的高质量长视频生成。 简单来说,FramePack 通过“用时间换空间”的思路(动态加载/卸载上下文),解决了长视频生成爆显存的问题,并且做成了一个“大集成平台”,可以把各种流行的控制工具(ControlNet, AnimateDiff 等)一起用起来,生成更可控的视频。 cfg与guidance scale 两个参数的具体区别解释 这两个参数确实容易混淆,让我用更简单的方式解释它们的区别: 1. cfg (real guidance scale) 这是传统的条件引导缩放参数 控制正向提示词与负向提示词之间的平衡 当值为1.0时,代码会完全忽略负向提示,使用全零向量 值越高,生成结果越接近正向提示词的描述,但可能过度强调某些特征 2. guidance scale (distilled guidance scale) 这是Hunyuan模型专有的引导参数 控制模型内部蒸馏知识的应用强度 默认值更高(6.0),因为它使用了不同的调整机制 影响生成内容与文本描述的匹配度,但工作机制与传统CFG不同 比喻解释 想象你在制作一段视频: cfg就像是给你的团队的整体创意方向指导 告诉他们"做这个,不要做那个" guidance scale则像是调整AI主管的决策权重 这个主管已经被训练(蒸馏)知道如何处理各种创意 实际使用建议 保持cfg在1.0附近,它控制基础引导 调整guidance scale(通常在2.0 10.0之间)来影响文本和图像的匹配度 两者协同工作,但调整guidance scale通常会产生更明显的效果 您需要根据实际生成效果来微调这两个值,找到最适合您特定任务的组合。 资料链接 ComfyUI FramePack HY节点 https://github.com/CY CHENYUE/ComfyUI FramePack HY 说明文档 https://www.xiaobot.net/post/9210d56f f9c0 4df5 ae89 9ed118f1c46a 由于AI技术更新迭代,请以文档更新为准 更多内容收录在⬇️ https://xiaobot.net/p/GoToComfyUI 网盘 https://pan.quark.cn/s/ee8ef3693018 工作流 https://www.liblib.art/modelinfo/5536b5a6a12643e186ec55f2eb3ca2da?from=personal page&versionUuid=9ee24bd0dd8042b486f568f8bef621e9 视频 https://www.bilibili.com/video/BV1TwV1zdEZi/ workflow https://openart.ai/workflows/cychenyue/framepack f1 in comfyui/cghycYuY9sTusz91a4fc video https://youtu.be/s BmnV8czR8 • X (Twitter): @cychenyue • TikTok: @cychenyue • YouTube: @CY CHENYUE • BiliBili: @CY CHENYUE • 小红书: @CY CHENYUE @cychenyue @cychenyue @CY CHENYUE @CY CHENYUE @CY CHENYUE No access CY 00335 00:00 No access CY 00334 00:00 No access CY 00335 00:00 No access CY 00335 00:00 No access CY 00335 00:00 No access CY 00334 00:00 No access CY 00334 00:00 No access CY 00334 00:00 No access CY 00340 00:00 No access CY 00341 00:00 No access CY 00340 00:00 No access CY 00340 00:00 No access CY 00340 00:00 No access CY 00341 00:00 No access CY 00341 00:00 No access CY 00341 00:00 • FramePack 如何解决: FramePack 通过扩展有效的上下文长度,为模型提供了更强的时间锚定 (Temporal Anchoring)。由于模型可以同时“看到”来自更广泛时间范围内的关键信息(打包后的令牌),它能更好地维持对全局指令(如文本提示)和早期视觉状态(如果使用参考帧)的遵循。这种更长程的依赖关系有助于抑制误差累积,使生成过程更稳定地保持在预期的轨道上,减少了内容和风格随时间“漂移”的可能性。 总结来说: FramePack 通过其核心的冗余信息移除和有效信息打包机制,实现了在不增加计算负担的前提下扩展模型的有效时间上下文窗口。这个扩展的上下文窗口使得模型能够: 1. “记住”更久远的信息: 通过保留早期关键帧的非冗余令牌,缓解了遗忘问题。 2. 维持更强的全局一致性: 通过提供更长程的时间依赖作为锚定,抑制了误差累积,减少了内容和风格的漂移。 最终目标是生成计算高效、内存友好且时间上更连贯、更忠实于初始设定的长视频。 工作流 模型与节点 FramePack https://github.com/lllyasviel/FramePack 节点仓库 https://github.com/CY CHENYUE/ComfyUI FramePack HY(参数作用请查看github) 论文地址 https://arxiv.org/html/2504.12626v2 模型地址:下载不方便可以在网盘里面,已经整理归类好了。 1. vae放入models\vae 目录: hunyuan video vae bf16.safetensors https://huggingface.co/Comfy Org/HunyuanVideo repackaged/tree/main/split files/vae 2. clip 放入models\clip 目录: clip l.safetensors 与 llava llama3 fp8 scaled.safetensors https://huggingface.co/Comfy Org/HunyuanVideo repackaged/tree/main/split files/text encoders https://huggingface.co/Comfy Org/HunyuanVideo repackaged/tree/main/split files 3. FramePackI2V HY 放入 models\diffusers\lllyasviel\FramePackI2V HY 目录: https://huggingface.co/lllyasviel/FramePackI2V HY/tree/main (整个目录文件) 4. ComfyUI Advanced Vision 512版本 放入 models\clip vision\google siglip2 so400m patch16 512 目录: google siglip2 so400m patch16 512,这里也可以用384的,512的效果会更好点。 https://huggingface.co/ostris/ComfyUI Advanced Vision/blob/main/clip vision/siglip2 so400m patch16 512.safetensors 论文核心思想 FramePack 的新框架,旨在解决现有视频扩散模型在生成长视频时遇到的核心挑战:显存消耗巨大、推理速度慢、生成质量受限以及难以集成多种控制信号。FramePack 的核心创新在于引入了 “动态上下文交换” (Dynamic Context Swapping) 机制,并作为一个灵活的框架来整合多种先进的视频生成和控制技术。 主要内容和技术点: 1. 问题定义: ◦ 传统的视频生成模型通常需要将整个视频序列(或其上下文信息,如注意力机制的 K/V 缓存)保留在显存 (VRAM) 中,导致生成长视频时显存需求急剧增长,超出普通硬件承受范围。 ◦ 长序列处理也使得推理速度变慢。 ◦ 简单地截断上下文会损害视频的时间一致性和质量。 ◦ 整合如 ControlNet、AnimateDiff、IP Adapter、Motion Brush 等多种控制技术到一个统一流程中存在困难。 ◦ 传统的视频生成模型通常需要将整个视频序列(或其上下文信息,如注意力机制的 K/V 缓存)保留在显存 (VRAM) 中,导致生成长视频时显存需求急剧增长,超出普通硬件承受范围。 ◦ 长序列处理也使得推理速度变慢。 ◦ 简单地截断上下文会损害视频的时间一致性和质量。 ◦ 整合如 ControlNet、AnimateDiff、IP Adapter、Motion Brush 等多种控制技术到一个统一流程中存在困难。 2. 核心方法:动态上下文交换 (Dynamic Context Swapping): ◦ 分块处理: FramePack 不一次性处理整个长视频,而是将其分成多个有重叠的块 (Chunks / Sections) 进行顺序处理。 ◦ 有限上下文: 在处理当前块时,只在显存中保留一个有限大小的时间上下文窗口 (Temporal Context Window)。这个窗口包含了对当前块生成最重要的先前帧的信息(例如 K/V 缓存)。 ◦ 动态交换: 当处理进程移动到下一个块时,系统会动态地将不再需要的旧上下文信息从显存中换出(可能移到 CPU内存 或丢弃),并将与新块相关的上下文信息换入显存。 ◦ 效果: 这种机制使得峰值显存占用不再随着视频总长度线性增长,而是大致由上下文窗口的大小决定,从而能在有限显存下生成显著更长的视频。 ◦ 分块处理: FramePack 不一次性处理整个长视频,而是将其分成多个有重叠的块 (Chunks / Sections) 进行顺序处理。 ◦ 有限上下文: 在处理当前块时,只在显存中保留一个有限大小的时间上下文窗口 (Temporal Context Window)。这个窗口包含了对当前块生成最重要的先前帧的信息(例如 K/V 缓存)。 ◦ 动态交换: 当处理进程移动到下一个块时,系统会动态地将不再需要的旧上下文信息从显存中换出(可能移到 CPU内存 或丢弃),并将与新块相关的上下文信息换入显存。 ◦ 效果: 这种机制使得峰值显存占用不再随着视频总长度线性增长,而是大致由上下文窗口的大小决定,从而能在有限显存下生成显著更长的视频。 3. 内存管理优化: ◦ 论文提到了实现高效上下文交换的内存管理策略,例如使用 Pinned Memory 来加速 GPU 和 CPU 之间的数据传输。 ◦ 论文提到了实现高效上下文交换的内存管理策略,例如使用 Pinned Memory 来加速 GPU 和 CPU 之间的数据传输。 4. 集成框架 (Integration Framework): ◦ FramePack 不仅仅是内存优化技术,它被设计为一个框架,可以无缝集成多种现有的图像/视频生成和控制模块。 ◦ 它可以同时管理和应用来自文本提示 (Text Prompts)、ControlNet、AnimateDiff (运动模块)、IP Adapter (图像提示)、Motion Brush (运动笔刷) 等的控制信号。 ◦ 通过统一的 Pipeline 结构,FramePack 使得这些不同的技术能够协同工作,在动态交换的流程中保持有效,实现复杂、精细的视频内容和运动控制。 ◦ FramePack 不仅仅是内存优化技术,它被设计为一个框架,可以无缝集成多种现有的图像/视频生成和控制模块。 ◦ 它可以同时管理和应用来自文本提示 (Text Prompts)、ControlNet、AnimateDiff (运动模块)、IP Adapter (图像提示)、Motion Brush (运动笔刷) 等的控制信号。 ◦ 通过统一的 Pipeline 结构,FramePack 使得这些不同的技术能够协同工作,在动态交换的流程中保持有效,实现复杂、精细的视频内容和运动控制。 5. 运动一致性: ◦ 通过块之间的重叠以及整合 AnimateDiff 等运动模块,FramePack 致力于在动态交换过程中保持视频的运动连贯性和时间一致性。 ◦ 通过块之间的重叠以及整合 AnimateDiff 等运动模块,FramePack 致力于在动态交换过程中保持视频的运动连贯性和时间一致性。 实验与结论: • 论文通过实验证明,与不使用动态交换的基线方法相比,FramePack 能够: ◦ 在相同的硬件上生成显著更长的视频。 ◦ 大幅降低峰值显存需求。 ◦ 保持或提升生成视频的质量和时间一致性。 ◦ 成功展示了多种控制方法(文本、结构、图像、运动)的集成效果。 ◦ 在相同的硬件上生成显著更长的视频。 ◦ 大幅降低峰值显存需求。 ◦ 保持或提升生成视频的质量和时间一致性。 ◦ 成功展示了多种控制方法(文本、结构、图像、运动)的集成效果。 • 结论: FramePack 是一个有效的视频扩散框架,它通过核心的“动态上下文交换”技术解决了长视频生成的显存瓶颈,并提供了一个强大的平台来集成和利用多种控制工具,最终实现高效、可控的高质量长视频生成。 简单来说,FramePack 通过“用时间换空间”的思路(动态加载/卸载上下文),解决了长视频生成爆显存的问题,并且做成了一个“大集成平台”,可以把各种流行的控制工具(ControlNet, AnimateDiff 等)一起用起来,生成更可控的视频。 cfg与guidance scale 两个参数的具体区别解释 这两个参数确实容易混淆,让我用更简单的方式解释它们的区别: 1. cfg (real guidance scale) 这是传统的条件引导缩放参数 控制正向提示词与负向提示词之间的平衡 当值为1.0时,代码会完全忽略负向提示,使用全零向量 值越高,生成结果越接近正向提示词的描述,但可能过度强调某些特征 2. guidance scale (distilled guidance scale) 这是Hunyuan模型专有的引导参数 控制模型内部蒸馏知识的应用强度 默认值更高(6.0),因为它使用了不同的调整机制 影响生成内容与文本描述的匹配度,但工作机制与传统CFG不同 比喻解释 想象你在制作一段视频: cfg就像是给你的团队的整体创意方向指导 告诉他们"做这个,不要做那个" guidance scale则像是调整AI主管的决策权重 这个主管已经被训练(蒸馏)知道如何处理各种创意 实际使用建议 保持cfg在1.0附近,它控制基础引导 调整guidance scale(通常在2.0 10.0之间)来影响文本和图像的匹配度 两者协同工作,但调整guidance scale通常会产生更明显的效果 您需要根据实际生成效果来微调这两个值,找到最适合您特定任务的组合。 资料链接 ComfyUI FramePack HY节点 https://github.com/CY CHENYUE/ComfyUI FramePack HY 说明文档 https://www.xiaobot.net/post/9210d56f f9c0 4df5 ae89 9ed118f1c46a 由于AI技术更新迭代,请以文档更新为准 更多内容收录在⬇️ https://xiaobot.net/p/GoToComfyUI 网盘 https://pan.quark.cn/s/ee8ef3693018 工作流 https://www.liblib.art/modelinfo/5536b5a6a12643e186ec55f2eb3ca2da?from=personal page&versionUuid=9ee24bd0dd8042b486f568f8bef621e9 视频 https://www.bilibili.com/video/BV1TwV1zdEZi/ workflow https://openart.ai/workflows/cychenyue/framepack f1 in comfyui/cghycYuY9sTusz91a4fc video https://youtu.be/s BmnV8czR8 • X (Twitter): @cychenyue @cychenyue • TikTok: @cychenyue @cychenyue • YouTube: @CY CHENYUE @CY CHENYUE • BiliBili: @CY CHENYUE @CY CHENYUE • 小红书: @CY CHENYUE @CY CHENYUE 发现敏神的FramePack更新了对 FramePack F1的支持, 把参考图像作为视频的开头,这更符合习惯。另外也方便后续做插帧的操作 更新了一下ComfyUI节点。 先看一下生成的例子: FramePack 是什么?目标是什么? FramePack 是一种为视频扩散模型 (Video Diffusion Models) 设计的优化算法。其核心目标是显著提高生成长视频时的计算效率和内存效率,同时改善生成视频的时间连贯性 (Temporal Coherence),解决长视频生成中常见的遗忘 (Forgetting) 和漂移 (Drifting) 问题。最关键的是,它旨在实现这些优化,同时做到 “计算上无损 (Computationally Lossless)” ,即理论上不牺牲最终的生成质量。 FramePack 要解决的关键痛点 (The Problems): 1. 注意力机制的瓶颈 (The Attention Bottleneck): ◦ 现代扩散模型(尤其是基于 Transformer 架构的)严重依赖自注意力 (Self Attention) 机制来捕捉数据中的依赖关系。 ◦ 在视频中,这意味着模型需要理解一帧内部像素之间(空间关系)以及不同帧之间对应像素或区域(时间关系)的联系。 ◦ 自注意力机制的计算量和内存占用会随着输入序列长度(对于视频来说,主要是时间长度/帧数)呈二次方增长 (O(n²))。 ◦ 结果: 直接将大量帧输入注意力层,计算成本会爆炸式增长,很快就会超出当前硬件(GPU 内存和算力)的承受能力。 ◦ 现代扩散模型(尤其是基于 Transformer 架构的)严重依赖自注意力 (Self Attention) 机制来捕捉数据中的依赖关系。 ◦ 在视频中,这意味着模型需要理解一帧内部像素之间(空间关系)以及不同帧之间对应像素或区域(时间关系)的联系。 ◦ 自注意力机制的计算量和内存占用会随着输入序列长度(对于视频来说,主要是时间长度/帧数)呈二次方增长 (O(n²))。 ◦ 结果: 直接将大量帧输入注意力层,计算成本会爆炸式增长,很快就会超出当前硬件(GPU 内存和算力)的承受能力。 2. 有限上下文导致的质量下降 (Limited Context Degrades Quality): ◦ 为了应对注意力瓶颈,现有方法通常采用分块处理 (Chunking) 或限制注意力窗口,即模型一次只能处理或关注一小段视频(例如 8 帧、16 帧)。 ◦ 后果 1: 遗忘 (Forgetting): 当生成过程进行到后面时,模型无法再“看到”或“记住”视频最开始的帧或关键信息(因为它们已经超出了处理窗口)。这会导致早期设定的物体特征、颜色、风格或场景布局在视频后期丢失或被不一致地改变。就像一个人写长篇故事,写到后面忘了开头的设定。 ◦ 后果 2: 漂移 (Drifting): 即使没有完全忘记,由于缺乏对全局目标(如初始提示或参考图)的持续“锚定”,每一帧或每一块的生成都可能引入微小的误差。这些误差会随着时间累积,导致视频内容逐渐偏离(漂移)最初的意图,比如角色外观慢慢变化,运动轨迹偏离,整体风格不一致。 ◦ 后果 3: 时间不连贯 (Temporal Inconsistency): 综合来看,有限上下文是导致视频闪烁、跳变、动作不流畅等时间连贯性问题的根本原因之一。 ◦ 为了应对注意力瓶颈,现有方法通常采用分块处理 (Chunking) 或限制注意力窗口,即模型一次只能处理或关注一小段视频(例如 8 帧、16 帧)。 ◦ 后果 1: 遗忘 (Forgetting): 当生成过程进行到后面时,模型无法再“看到”或“记住”视频最开始的帧或关键信息(因为它们已经超出了处理窗口)。这会导致早期设定的物体特征、颜色、风格或场景布局在视频后期丢失或被不一致地改变。就像一个人写长篇故事,写到后面忘了开头的设定。 ◦ 后果 2: 漂移 (Drifting): 即使没有完全忘记,由于缺乏对全局目标(如初始提示或参考图)的持续“锚定”,每一帧或每一块的生成都可能引入微小的误差。这些误差会随着时间累积,导致视频内容逐渐偏离(漂移)最初的意图,比如角色外观慢慢变化,运动轨迹偏离,整体风格不一致。 ◦ 后果 3: 时间不连贯 (Temporal Inconsistency): 综合来看,有限上下文是导致视频闪烁、跳变、动作不流畅等时间连贯性问题的根本原因之一。 3. 视频数据的固有冗余 (Inherent Redundancy in Video): ◦ 视频相邻帧之间通常包含大量重复信息(比如静止的背景、缓慢移动的物体)。 ◦ 传统方法对所有这些冗余信息进行同样的计算(尤其是在注意力层),造成了大量的计算资源浪费。 ◦ 视频相邻帧之间通常包含大量重复信息(比如静止的背景、缓慢移动的物体)。 ◦ 传统方法对所有这些冗余信息进行同样的计算(尤其是在注意力层),造成了大量的计算资源浪费。 FramePack 的解决方案 (The "How"): FramePack 巧妙地借鉴了大型语言模型 (LLM) 处理长文本的令牌打包 (Token Packing) 技术,并将其适配到视频领域。其核心步骤如下: 1. 视频分词/令牌化 (Video Tokenization): 首先,视频帧被转换成一系列时空令牌 (Spatio temporal Tokens)。可以想象成将视频分解成很多小的时空“积木块”。 2. 识别冗余令牌 (Redundancy Identification): 这是 FramePack 的关键创新。算法需要识别出那些在时间维度上(甚至可能在空间维度上)变化很小、信息量低的冗余令牌。这些令牌对于预测下一帧的内容贡献不大。(论文中可能未详述具体识别方法,但可以理解为基于令牌间的相似度或变化率等指标)。 3. 移除并打包 (Remove & Pack): ◦ 将识别出的冗余令牌丢弃掉。 ◦ 将来自一个较长时间窗口内(这个窗口可以比传统方法处理的窗口长得多)的所有非冗余令牌收集起来。 ◦ 将这些筛选后的、信息密度更高的令牌紧密地排列或打包 (Pack) 成一个更短的新序列。 ◦ 将识别出的冗余令牌丢弃掉。 ◦ 将来自一个较长时间窗口内(这个窗口可以比传统方法处理的窗口长得多)的所有非冗余令牌收集起来。 ◦ 将这些筛选后的、信息密度更高的令牌紧密地排列或打包 (Pack) 成一个更短的新序列。 4. 打包注意力 (Packed Attention): ◦ 将这个短而精悍的打包序列输入到计算昂贵的自注意力层。 ◦ 由于序列长度 n 大大缩短,注意力计算的成本 O(n²) 显著降低。 ◦ 将这个短而精悍的打包序列输入到计算昂贵的自注意力层。 ◦ 由于序列长度 n 大大缩短,注意力计算的成本 O(n²) 显著降低。 5. 掩码与解包 (Masking & Unpacking): ◦ 为了保证计算的正确性(即每个令牌只关注其在原始时空结构中应该关注的有效上下文,即使在打包后也是如此),需要配合使用注意力掩码 (Attention Masks)。 ◦ 注意力计算完成后,得到的结果是针对打包序列的。需要一个解包 (Unpacking) 的过程,将处理后的令牌特征信息“放回”到它们原始的时空位置上,恢复成完整的视频帧表示。 ◦ 为了保证计算的正确性(即每个令牌只关注其在原始时空结构中应该关注的有效上下文,即使在打包后也是如此),需要配合使用注意力掩码 (Attention Masks)。 ◦ 注意力计算完成后,得到的结果是针对打包序列的。需要一个解包 (Unpacking) 的过程,将处理后的令牌特征信息“放回”到它们原始的时空位置上,恢复成完整的视频帧表示。 “计算上无损”的含义: FramePack 声称其方法是“计算上无损”的,这意味着算法在设计上保留了所有对扩散模型去噪过程至关重要的信息,而移除的主要是对最终结果影响甚微的冗余信息。因此,理论上可以在大幅提升效率的同时,几乎不降低生成视频的视觉质量和内容准确性。 FramePack 带来的好处 (The Benefits): 1. 显著提升计算效率: 大幅减少注意力计算量,加快视频生成速度。 2. 大幅降低内存消耗: 使得在有限的 GPU 显存下处理更长的视频或使用更大的模型成为可能。 3. 扩展有效上下文长度: 模型能够“看到”更长时间范围内的信息,这是解决后续问题的基础。 4. 改善时间连贯性: ◦ 缓解遗忘: 通过保留早期关键信息(非冗余令牌),让模型“记忆”更长久。 ◦ 减少漂移: 通过更强的全局时间锚定,抑制误差累积,使生成更稳定。 ◦ 最终生成更流畅、内容更一致的长视频。 ◦ 缓解遗忘: 通过保留早期关键信息(非冗余令牌),让模型“记忆”更长久。 ◦ 减少漂移: 通过更强的全局时间锚定,抑制误差累积,使生成更稳定。 ◦ 最终生成更流畅、内容更一致的长视频。 简单类比: 想象一下你在整理一个很长的会议记录。传统方法是逐字逐句阅读并处理。FramePack 就像是你先快速浏览,划掉所有重复的、不重要的口头语(识别冗余),然后把剩下的关键句子和要点重新抄写在一张更短的纸上(打包),接着你只需要仔细分析这张精简版的笔记(打包注意力),最后再根据需要把分析结果对应回原始记录的段落(解包)。这样做效率更高,也更容易抓住核心内容,避免遗漏关键信息。 总结: FramePack 是一种针对视频扩散模型的创新优化技术,它通过智能地识别和移除视频数据中的时空冗余,将有效信息打包处理,从而在计算上无损(或近似无损)的前提下,大幅降低了长视频生成的计算和内存成本,并显著提升了生成视频的时间连贯性,有效缓解了遗忘和漂移等核心痛点。 遗忘 (Forgetting) 问题: • 问题描述: 在生成长视频时,特别是使用分块 (chunk based) 或自回归 (autoregressive) 的方法时,模型在处理后续帧或片段时,往往会逐渐丢失或“忘记”视频早期(例如第一帧、关键设定或初始提示)的信息。这会导致视频前后内容脱节,早期设定的物体、风格或场景特征在后面消失或被错误地改变。 • 产生原因: 这主要是由于有限的计算上下文窗口。为了控制计算成本,模型一次只能关注(attend to)有限数量的历史帧。当生成超出这个窗口时,最早期的信息就不再直接参与计算,模型也就“忘记”了它们。 • FramePack 如何解决: 通过打包算法,FramePack 能够在相同的计算成本下,将更长时间跨度内的关键(非冗余)信息压缩到注意力机制能够处理的序列长度内。这意味着,即使在生成视频的较后部分,模型仍然可以通过打包后的令牌间接或直接地访问到来自更早时间点的重要特征。它保留了那些对维持一致性至关重要的“记忆碎片”(非冗余令牌),减少了信息的丢失,从而缓解了“遗忘”问题。 漂移 (Drifting) 问题: • 问题描述: 在长视频生成中,即使没有完全忘记早期信息,生成的内容也可能随着时间的推移逐渐偏离(drift away from)初始的提示、风格或参考图像。小的误差或偏差会随着逐帧或逐块生成而累积,导致视频后期与预期目标(如特定的物体外观、运动模式或整体氛围)产生越来越大的差异。 • 产生原因: 这同样与有限上下文有关。缺乏对全局或长期目标的持续“锚定”,使得模型在每一步的生成中容易受到局部噪声或微小预测偏差的影响,这些偏差累积起来就形成了“漂移”。