谷桐羽 2026-02-27 08:05 采纳率: 98.8%
浏览 0
已采纳

ComfyUI-Photoshop JSON导入后节点丢失或报错?

常见问题:ComfyUI 导入 Photoshop 生成的 JSON 工作流时,常出现节点丢失或报错(如“Node not found”“Invalid node type”)。根本原因在于:Photoshop 插件导出的 JSON 并非标准 ComfyUI 格式——它可能包含未注册的自定义节点(如 Adobe 特有封装节点)、缺失 required_inputs 字段、使用了 ComfyUI 未启用的 Manager 插件(如 WAS Suite、Impact Pack)所定义的节点类型,或 JSON 中节点 ID 引用错乱、version 不兼容(如导出基于 ComfyUI v0.3.x 而本地运行 v0.4+)。此外,部分插件导出时未做节点依赖校验,导致关键 CLIP/Vae/CheckpointLoaderSimple 等基础节点被省略。临时规避方式包括手动补全缺失节点、检查 console 报错定位具体 node type、比对 nodes.json 注册表,但治本之策是统一使用 ComfyUI 官方推荐导出插件(如 ComfyUI-Photoshop Bridge v2.1+),并确保两端插件版本与 Python 环境完全一致。
  • 写回答

1条回答 默认 最新

  • 高级鱼 2026-02-27 08:06
    关注
    ```html

    一、现象层:典型报错与用户感知问题

    • 导入 Photoshop 导出的 JSON 后,ComfyUI 控制台持续输出 "Node not found: adobe.image.process.v1""Invalid node type: impact.impact_segs_mask_to_image"
    • 画布仅显示零星几个节点(如仅剩 LoadImage、SaveImage),其余全部消失,且无任何错误提示(静默丢弃)
    • 工作流加载后可运行,但输出图像为空白/黑图——实为 CLIPTextEncode 节点缺失导致 prompt 未注入
    • 右键导出的 JSON 文件在 VS Code 中可见 "version": "0.3.15",而本地 ComfyUI git log -1 --oneline 显示已升级至 v0.4.12

    二、结构层:JSON 格式差异深度剖析

    Photoshop 插件导出的 JSON 并非 ComfyUI 原生序列化产物,其 schema 存在三类结构性偏差:

    字段ComfyUI 官方格式要求PS 插件常见偏差
    required_inputs必含,声明节点输入端口元信息(类型、默认值、是否必需)完全缺失;或写为 "inputs": {} 空对象
    _meta 节点ID引用所有 inputs.*.node 引用必须指向已定义节点 ID存在悬空引用(如引用 ID "1234",但 JSON 中无该节点)
    自定义节点命名空间遵循 package_name.node_class_name(如 comfyui_controlnet_aux.edge_lineart使用 Adobe 封装前缀(如 adobe.generative.fill),未映射到实际 Python 类

    三、依赖层:插件生态与运行时注册机制

    ComfyUI 的节点加载本质是 Python 模块动态注册过程。以下为关键依赖链验证路径:

    # 在 Python 终端执行,验证节点是否被正确注册
    import folder_paths
    print("已加载节点包:", [p for p in folder_paths.get_folder_paths("custom_nodes") if "impact" in p.lower()])
    # 输出应包含 /custom_nodes/ComfyUI-Impact-Pack/
    

    若输出为空,则 impact.segs_to_mask 类型必然触发 Node not found。同理,WAS_Suite 需启用 was-node-suite-comfyui 包且其 __init__.py 中调用 NODE_CLASS_MAPPINGS.update(...)

    四、版本层:语义化版本(SemVer)兼容性断点

    ComfyUI v0.4+ 引入了重大变更:

    • 节点序列化协议从 workflow_v1 升级为 workflow_v2,新增 extra 字段支持元数据扩展
    • CheckpointLoaderSimple 的输出端口由 ["model", "clip", "vae"] 改为 ["MODEL", "CLIP", "VAE"](全大写),旧 JSON 中小写引用将导致连接断裂
    • v0.3.x 的 SaveImage 不校验 filename_prefix 类型,v0.4.x 则强制要求为字符串——若 PS 插件导出 "filename_prefix": null,则整个节点初始化失败

    五、工程层:治本方案与跨平台协作规范

    建立企业级 AI 工作流交付标准,需同步约束三方:

    1. 设计侧:Photoshop 团队必须安装 ComfyUI-Photoshop Bridge v2.1.3+(GitHub Release SHA256 校验:a8f7e1d...),禁用旧版 Adobe Generative Fill Plugin
    2. 开发侧:CI 流水线中增加 comfy_check_workflow.py 脚本,自动检测 JSON 中所有 class_type 是否存在于 nodes.json(通过 python main.py --dump-node-list > nodes.json 生成)
    3. 运维侧:Dockerfile 强制指定 Python 3.10.12 + ComfyUI commit 9a2b3c4d + 插件 commit 锁定(如 Impact Pack v0.14.2

    六、诊断层:Mermaid 可视化排错流程

    flowchart TD A[导入 JSON] --> B{控制台是否有报错?} B -->|是| C[提取报错中的 class_type] B -->|否| D[检查画布节点数量是否匹配 JSON 中 nodes.length] C --> E[grep -r \"class_type: .*\" custom_nodes/] E -->|找到匹配| F[确认插件已启用且无 import error] E -->|未找到| G[该节点为 Adobe 封装,需手动映射或替换] D -->|不匹配| H[解析 JSON 查找悬空 ID 或 missing required_inputs] D -->|匹配| I[检查 version 字段与本地 ComfyUI --version]
    ```
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 2月28日
  • 创建了问题 2月27日