comfyui利用 SkyReels-V2直接生成长视频本地部署问题总结 2 :寻找丢失的model 和工作流中 get set 方法的应用

comfyui利用 SkyReels-V2直接生成长视频本地部署问题总结 2 寻找丢失的model 和工作流中 get set 方法的应用

第一:寻找丢失的model

在上一文章 安装完 自定义节点ComfyUI-WanVideoWrapper 后 我们打开实列 工作流。wanvideo_skyreels_diffusion_forcing_extension_example_01.json

后 点击 运行 会提示,丢失 各种model 和 其他vae 之类的,都是因为 工作流 节点中 用的的nodel or vae 命名和comfyui 中名称不一致导致的 例如:json 中的 model 名称是:"WanVideo\SkyreelslWan2_1-SkyReels-V2-DF-1_38-540P fp32.safetensors 但在我们的comfyUI中确说:wan2.1\Wan2 1-SkyReels-V2-DF-1_3B-540P_fp32.safetensors 需要我们一一纠正过来。基本上都是,模型的名称是对的,但目录前缀不对

根据 json 提示的 链接地址,去 https://huggingface.co/ 下载即可(需要合理上网)

您可以从Kijai 的这个存储库( https://huggingface.co/Kijai/WanVideo_comfy/blob/main/Wan2_1_VAE_bf16.safetensors )下载 VAE

自定义节点:WanVideo_comfy 中需要用到的各种模型地址:
https://huggingface.co/Kijai/WanVideo_comfy/tree/main

第二:工作流中 get 和 set 方法的使用

我们打开 工作流:wanvideo_skyreels_diffusion_forcing_extension_example_01.json 后会发现 很多节点是断掉的,并没有链接向其它节点

在 ComfyUI 的工作流中,getset 方法 主要用于节点间动态传递数据和状态管理。它们通过 Reroute 节点(或自定义节点)实现数据的读取和写入,以下是详细说明:


1. get 方法(获取数据)

  • 作用:从指定节点或全局变量中读取数据。

  • 使用场景

    • 需要复用某个节点的输出数据(如图像、潜变量、条件等)。
    • 避免重复计算,直接从缓存中获取结果。
  • 操作步骤

    1. 添加 Reroute 节点(搜索 "Reroute" 或 "Get")。
    2. Reroute 节点的输入连接到目标节点的输出。
    3. 在其他节点中调用该 Reroute 节点即可获取数据。
    python 复制代码
    # 示例:自定义节点中通过 get 获取数据
    class GetDataNode:
        @classmethod
        def INPUT_TYPES(cls):
            return {"required": {"data_id": ("STRING", {"default": "my_data"})}}
        
        FUNCTION = "get_data"
        RETURN_TYPES = ("IMAGE",)  # 根据数据类型定义
        
        def get_data(self, data_id):
            # 从全局缓存中获取数据
            data = global_cache.get(data_id)
            return (data,)

2. set 方法(存储数据)

  • 作用 :将数据存储到全局变量中,供后续节点通过 get 调用。

  • 使用场景

    • 保存中间结果(如预处理后的图像、文本嵌入)。
    • 跨节点共享复杂数据。
  • 操作步骤

    1. 添加 Reroute 节点(搜索 "Reroute" 或 "Set")。
    2. 将需要存储的数据输入 Reroute 节点。
    3. 为数据分配唯一标识符(ID)。
    python 复制代码
    # 示例:自定义节点中通过 set 存储数据
    global_cache = {}  # 全局缓存
    
    class SetDataNode:
        @classmethod
        def INPUT_TYPES(cls):
            return {"required": {"data": ("IMAGE",), "data_id": ("STRING", {"default": "my_data"})}}
        
        FUNCTION = "set_data"
        RETURN_TYPES = ()  # 无直接输出
        
        def set_data(self, data, data_id):
            global_cache[data_id] = data  # 存储到缓存
            return ()

3. 工作流中的典型应用

  1. 保存中间结果

    • 使用 set 节点存储潜变量 → 后续通过 get 节点调用该变量生成图像。
    • 避免重复运行 VAE 编码等耗时操作。
  2. 动态参数传递

    • 将文本提示通过 set 存储 → 在不同采样步骤中通过 get 动态修改提示词。
  3. 共享数据

    • 多个分支节点需要同一份数据时(如共享的 ControlNet 条件),用 get 统一调用。

4. 注意事项

  • 唯一标识符setgetdata_id 需保持一致才能匹配数据。
  • 作用域:数据通常保存在工作流的一次运行周期内,重启工作流后失效。
  • 性能 :频繁读写小数据时直接连线更高效;大数据复用建议用 set/get
  • 自定义节点 :可通过 Python API 扩展更复杂的 set/get 逻辑(如条件存储)。

5. 可视化示例

通过灵活组合 setget,可以显著提升复杂工作流的可维护性和效率。

相关推荐
池央2 分钟前
CANN oam-tools 诊断体系深度解析:自动化信息采集、AI Core 异常解析与 CI/CD 流水线集成策略
人工智能·ci/cd·自动化
CV@CV6 分钟前
2026自动驾驶商业化提速——从智驾平权到Robotaxi规模化落地
人工智能·机器学习·自动驾驶
财经三剑客7 分钟前
AI元年,春节出行安全有了更好的答案
大数据·人工智能·安全
ZH154558913110 分钟前
Flutter for OpenHarmony Python学习助手实战:自动化脚本开发的实现
python·学习·flutter
艾莉丝努力练剑15 分钟前
图像处理全栈加速:ops-cv算子库在CV领域的应用
图像处理·人工智能
tq108617 分钟前
AI 时代的3类程序员
人工智能
island131418 分钟前
CANN ops-nn 算子库深度解析:核心算子(如激活函数、归一化)的数值精度控制与内存高效实现
开发语言·人工智能·神经网络
xcLeigh27 分钟前
Python入门:Python3 requests模块全面学习教程
开发语言·python·学习·模块·python3·requests
xcLeigh27 分钟前
Python入门:Python3 statistics模块全面学习教程
开发语言·python·学习·模块·python3·statistics
骥龙32 分钟前
第六篇:AI平台篇 - 从Jupyter Notebook到生产级模型服务
ide·人工智能·jupyter