【Mac】ComfyUI 部署

PC:Mac M1

一、ComfyUI 部署

未安装 Homebrew 的移步: 【Mac】Homebrew

未安装 Conda 的移步: 【Mac】安装 Python3 二、2、通过 conda 安装管理 Python

安装 ComfyUI:

bash 复制代码
# 启用虚拟环境
conda create -y -n comfyui python=3.12
conda activate comfyui

# 安装pytorch
conda install pytorch torchvision torchaudio -c pytorch-nightly -y

# 克隆 ComfyUI 项目
git clone https://github.com/comfyanonymous/ComfyUI

# 进入安装目录
cd ComfyUI

# 修改配置文件,使 ComfyUI 与 Stable Diffusion 公用模型文件
# 未安装SD的忽略这两条命令
cp extra_model_paths.yaml.example extra_model_paths.yaml
sed -i '' 's#path/to/stable-diffusion-webui#../stable-diffusion-webui#g' extra_model_paths.yaml

# 安装依赖
pip install -r requirements.txt

# 启动 ComfyUI
python main.py

注意 :ComfyUI不会像Stable Diffusion自动弹出浏览器界面,需手动在浏览器输入终端出现的地址,一般是:http://127.0.0.1:8188

如需安装SD的移步【Mac】 Stable Diffusion 部署

可能出现的警告或报错:

  • Reason: tried: '/opt/miniconda3/envs/comfyui/lib/python3.12/site-packages/torchvision/../../../libjpeg.9.dylib' (no such file), '/opt/miniconda3/envs/comfyui/lib/python3.12/site-packages/torchvision/../../../libjpeg.9.dylib' (no such file), '/opt/miniconda3/envs/comfyui/lib/python3.12/lib-dynload/../../libjpeg.9.dylib' (no such file), '/opt/miniconda3/envs/comfyui/bin/../lib/libjpeg.9.dylib' (no such file)'If you don't plan on using image functionality from torchvision.io, you can ignore this warning. Otherwise, there might be something wrong with your environment. Did you have libjpeg or libpng installed before building torchvision from source?

    先检查是否安装 libjpeg:

    bash 复制代码
    (comfyui) zs@Mac ComfyUI % brew install libjpeg
    Warning: jpeg 9f is already installed and up-to-date.
    To reinstall 9f, run:
      brew reinstall jpeg

    libjpeg 即 jpeg 已安装,并且是最新版本,设置环境变量:

    bash 复制代码
    export DYLD_LIBRARY_PATH=/opt/homebrew/Cellar/jpeg/9f/lib

    此时再去重启 ComfyUI 就没有对应的信息。

二、插件

1、插件安装

  • 方式一:进入 ComfyUI/custom_nodes 目录,使用 git clone 拉取项目代码,启动 ComfyUI 即可,例:

    bash 复制代码
    cd ComfyUI/custom_nodes
    git clone https://github.com/ltdrdata/ComfyUI-Manager.git
    python ../main.py
  • 方式二:在 Github 上下载对应的项目zip压缩包,解压到 ComfyUI/custom_nodes 目录下,记得把后缀分支名称去掉,然后重启ComfyUI。

2、ComfyUI-Manager

项目地址:https://github.com/ltdrdata/ComfyUI-Manager.git

ComfyUI管理器是一个旨在增强ComfyUI可用性的扩展。它提供了安装、删除、禁用和启用ComfyUI各种自定义节点的管理功能。此外,此扩展提供了一个中心功能和便利功能,可以在ComfyUI中访问各种信息。

三、使用 ComfyUI Reactor Node 实现视频换脸

1、项目说明

ComfyUI Reactor Node 是一个快速且简单的面部交换扩展节点,专为 ComfyUI 设计。该项目基于 ReActor SD-WebUI 面部交换扩展,旨在提供一个无需 NSFW 过滤器(未经审查)的面部交换功能。用户可以自行承担使用该节点的责任。

项目地址:https://gitcode.com/gh_mirrors/co/comfyui-reactor-node

关键技术和框架:

  • ComfyUI: 一个用于图像处理和生成的用户界面框架。
  • ReActor SD-WebUI: 一个基于 Stable Diffusion 的面部交换扩展。
  • Insightface: 一个用于面部识别和分析的开源库。
  • ONNX Runtime: 一个用于加速深度学习模型推理的运行时。
  • GPEN: 一个用于面部修复的模型。

2、插件安装

  • 第一步,点击 Manager ⇒ 点击 Custom Nodes Manager

  • 第二步,搜索 reactor ⇒ 安装 comfyui-reactor-node

  • 第三步,重启 ComfyUI,刷新浏览器

  • 第四步,下载模型 inswapper_128.onnx 放到 ComfyUI/models/insightface 目录下

    模型下载地址:Hugging FaceGoogleCloudPlusCSDN百度网盘

上述第二步,reactor 安装失败的,参照以下步骤:

  • 第一步,Github上边下载 项目代码 放到 ComfyUI/custom_nodes 目录下

  • 第二步,下载模型 codeformer-v0.1.0.pth 和 GFPGANv1.4.pth 放到 ComfyUI/facerestore_models 目录下

  • 第三步,重启ComfyUI,再次来到这个界面,点击 Fix,修复终端报错,可能出现的报错:

    • ModuleNotFoundError: No module named 'torch'

      通过 pip list | grep torch 发现是有 torch的,怀疑是版本不匹配,直接升级:

      bash 复制代码
      pip install --upgrade torch torchvision torchvision
    • ModuleNotFoundError: No module named 'insightface'

      通过 pip list | grep insightface 发现确实没有,直接用pip安装:

      bash 复制代码
      pip install insightface
    • fastapi 0.94.0 requires pydantic!=1.7,!=1.7.1,!=1.7.2,!=1.7.3,!=1.8,!=1.8.1,<2.0.0,>=1.6.2, but you have pydantic 2.10.5 which is incompatible.

      fastapi 0.94.0 需要 pydantic 的版本在 1.6.2 到 2.0.0 之间,但不包括 1.7.x 和 1.8.x 的任何版本。然而,你安装的是 pydantic 2.10.5,这超出了 fastapi 所要求的版本范围。

      要么降低 pydantic 版本,要么升级 fastapi 版本,以下命令选择一条执行即可:

      bash 复制代码
      pip install pydantic==1.6.2  # 选择一个与 fastapi 兼容的 1.6.x 版本
      pip install --upgrade fastapi
    • open-clip-torch 2.20.0 requires protobuf<4, but you have protobuf 5.29.3 which is incompatible.

      open-clip-torch 2.20.0 需要 protobuf 的版本小于 4.0.0,但你安装的是 protobuf 5.29.3,这同样超出了 open-clip-torch 所要求的版本范围。

      要么降低 protobuf 版本,要么升级 open-clip-torch 版本,以下命令选择一条执行即可:

      bash 复制代码
      pip install protobuf==3.19.4  # 选择一个与 open-clip-torch 兼容的 3.x 版本
      pip install --upgrade open-clip-torch
    • A new version of Albumentations is available: 2.0.0 (you have 1.4.10). Upgrade using: pip install --upgrade albumentations

      升级即可:

      bash 复制代码
      pip install --upgrade albumentations

3、视频换脸

  • 第一步,下载工作流,将 json 文件拉入ComfyUI

  • 第二步,安装缺失的插件:

    • 关掉提示窗口

    • 点击 Manager,点击 Install Missing Custom Nodes

    • 勾选全部,点击 install
      如果有节点安装失败的,就到 ComfyUI/custom_nodes 目录下手动 git clone,例:

      bash 复制代码
      git clone -v --recursive --progress -- https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes /Users/zs/App/ComfyUI/custom_nodes/ComfyUI_Comfyroll_CustomNodes

      因为网络问题可能会出现拉取失败,多试几次就好。

  • 第三步,重启 ComfyUI

    终端 ctrl + c 终止程序,再重新启动程序:

    bash 复制代码
    python main.py
  • 第四步,上传图片与视频,点击执行

    可能出现的报错:

    • onnxruntime.capi.onnxruntime_pybind11_state.Fail: 【ONNXRuntimeError】 : 1 : FAIL : Non-zero status code returned while running CoreML_13099565872608237799_6 node. Name:'CoreMLExecutionProvider_CoreML_13099565872608237799_6_6' Status Message: Exception: /Users/runner/work/1/s/onnxruntime/core/providers/coreml/model/model.mm:71 InlinedVector<int64_t> (anonymous namespace)::GetStaticOutputShape(gsl::span<const int64_t>, gsl::span<const int64_t>, const logging::Logger &) inferred_shape.size() == coreml_static_shape.size() was false. CoreML static output shape ({1,1,1,800,1}) and inferred shape ({3200,1}) have different ranks.

四、说明

若有其他更好用的工作流,求分享!

相关推荐
Ladeng_uncle4 小时前
MacBook安装手动openssl@3
python·macos·rabbitmq
小画家~7 小时前
mac homebrew 安装
macos
真想骂*7 小时前
iOS页面设计:UIScrollView布局问题与应对策略
macos·ios·cocoa
Batac_蝠猫7 小时前
iOS - 关联对象的实现
macos·ios·cocoa
Johnny_Hu20169 小时前
在Mac mini上实现本地话部署AI和知识库
人工智能·macos
网络安全(king)9 小时前
Ettercap 入门
macos
python_tty9 小时前
mac 安装mongodb
数据库·mongodb·macos
@comefly9 小时前
如何在Mac上优雅的使用nvm管理Node.js
macos·node.js
水车30611 小时前
【Mac】MacOS如何显示隐藏的文件或文件夹
macos