当前位置: 首页 > news >正文

nVidia Tesla P40使用anaconda本地重编译pytorch3d成功加载ComfyUI-3D-Pack

背景

自己用的是nVidia Tesla P40,垃圾佬专属卡

使用下面的由YanWenKun提供的ComfyUI-3D-Pack预安装环境,但在本地编译pytorch3d这一步出错,后面有出错信息,如果有和我一样的卡一样的问题,参看此文的解决方法

老版本的ComfyUI-3D-Pack预集成包
https://github.com/YanWenKun/ComfyUI-Windows-Portable
2024/12/14后切换到新仓库
https://github.com/YanWenKun/Comfy3D-WinPortable

在这里插入图片描述
我使用的预集成包的版本是2025/1/21
https://github.com/YanWenKun/Comfy3D-WinPortable/releases
在这里插入图片描述
解压后目录结构如下:
在这里插入图片描述
其中的python_standalone目录就是预安装完的库,包括独立的python环境
对于首次需要本地编译的TORCH_CUDA_ARCH_LIST的参数,
在这里插入图片描述
我的Tesla P40查显卡根据架构编号查资料需要设置为6.1,和bat文件内默认的设置相同

set TORCH_CUDA_ARCH_LIST=6.1

架构编号查看链接如下:
https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/

在这里插入图片描述

在我的3070上按下面B站UP主啦啦啦的小黄瓜详细的步骤是可以成功的,但是P40就一直在编译pytorch3d的部分失败
3070的根据架构编译参数是8.6
无奈只能自己用anaconda重新构建一个python环境,这样可以方便的用于不同python环境版本的环境切换

编译pytorch3d时的错误信息如下:
在这里插入图片描述
出错信息
在这里插入图片描述

在这里插入图片描述
最终编译出错,导致comyui-3d-pack import failed,其他几个必须本地编译的库都可以正常

ComfyUI-3D-Pack节点加载失败
在这里插入图片描述
在这里插入图片描述

解决思路

步骤1、获取预安装包的python_standalone里的python环境,确定所需要的每一个python库的版本
方法是在解压后的预安装环境中使用 python -m pip list > requirement.txt 导出只有版本号
在这里插入图片描述
使用 python -m pip freeze > requirement.txt 导出,还带有预安装环境构建时的安装方式
在这里插入图片描述

步骤2、使用anaconda构建一个完全相同的python环境
将所有的python库分成如下几种安装方式,按顺序在conda环境中进行安装:

  1. 直接pip install 库==版本号 方式安装的
  2. 需要添加cuda版本进行选择安装方式 安装命令最后需要加上相应的torch cuda链接的
  3. 使用预构建包 whl文件安装的
  4. 必须本机编译安装的(构造包里extra目录下的除 pytorch3d外的5个)

几个关键的版本号

  1. Python – 3.12.8
  2. Pytorch – 2.5.1
  3. Cuda – 12.4
  4. xformers – 0.0.29.post1
    在这里插入图片描述

本文基础

需要在操作系统中已经成功安装完成如下环境,这部分内容不在本文讨论范围

  1. cuda 12.4

  2. cudnn 复制库函数到上面的cuda目录

  3. VS build环境 包括VC++库 WinSDK

  4. anaconda环境 相当于自动包括了所有的python版本

系统环境需要注意的几点

  1. 显卡驱动cuda版本可以高于用的cuda库的版本

  2. 如果需要安装多个cuda库的版本,从最低版本的开始安装

  3. cudnn需要验证邮箱,B站上有提供百度网盘下载,直接目录覆盖cuda即可
    程序员小袁
    https://www.bilibili.com/video/BV1eBRvYKEXS/

  4. 我使用的是YanWenKun 2025/1/25的版本,git上下载很困难,容易断线还不能续传,使用了B站UP
    啦啦啦的小黄瓜
    https://www.bilibili.com/video/BV1cPPqe6Egb/
    提供的夸克盘
    https://pan.quark.cn/s/ef8c64027412

使用conda创建环境的步骤

我安装的是anacoda
https://www.anaconda.com/download

Anaconda3-2025.06-0-Windows-x86_64.exe


conda环境切换,回到上一个环境

conda deactivate

–如果需要删除旧的conda env

conda env remove -n pytorch3d_replica -y

创建conda env 指定python版本为3.12.8,按照ComfyUI-3D-Pack对python版本的要求一致

python 3.12.8 torch2.5.1 cuda12.4

conda create -n ComfyUI-3D-Pack python=3.12.8 -y
conda activate ComfyUI-3D-Pack
E:
cd E:\ComfyUI-ommh\env\

–安装可以直接pip install的包,限定特定版本,会冲突的后面再用单独的命令安装,两个命令选一个
pre_requirement.txt 文件是我导出的所有可以直接用pip install 方式安装的python包

从原始导出包中去掉了含cuda的,使用wheel的,通过git+http://下载的,需要编译的(尤其是pytorch3d)

pip install -r pre_requirement.txt --force-reinstall -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install -r pre_requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

由预编译WHL包安装的 全部共6个 文末有提供下载

其中4个从github下载的whl
dlib @ https://github.com/eddiehe99/dlib-whl/releases/download/v19.24.6-alpha/dlib-19.24.6-cp312-cp312-win_amd64.whl#sha256=69f7cad674c25ab6784d76225a5d3f2f0827528ca228ec3eb3da8f7b8c8e3fd1

texture_baker @ https://github.com/YanWenKun/Comfy3D-WinPortable/releases/download/r7-wheels/texture_baker-0.0.1-cp312-cp312-win_amd64.whl#sha256=e5fe916b25281ec0ef9f8016339bfa32358772253c7b17344b8f38f193afece8

triton @ https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post7/triton-3.1.0-cp312-cp312-win_amd64.whl#sha256=d713dfad3672f0ff36bcbe37e73019f95be70de61056b9d178419dba6886f90c

uv_unwrapper @ https://github.com/YanWenKun/Comfy3D-WinPortable/releases/download/r7-wheels/uv_unwrapper-0.0.1-cp312-cp312-win_amd64.whl#sha256=36135e16d051ec44efb1be39f60e1b767faf4550c98848513635410790292519

其中2个从Comfy3D-WinPortable下载预编译wheel 需要根据python版本 torch版本 cuda版本进行选择
下载地址
https://github.com/MrForExample/Comfy3D_Pre_Builds/tree/main/_Build_Wheels/_Wheels_win_py312_torch2.5.1_cu124

kiui @ file:///D:/a/Comfy3D-WinPortable/Comfy3D-WinPortable/pt25-cu124/Comfy3D_Pre_Builds/_Build_Wheels/_Wheels_win_py312_torch2.5.1_cu124/kiui-0.2.14-py3-none-any.whl#sha256=6276853933b6f47e0fd3d0c80b3108357dcbd373a3f14766c5485963302825c8

nvdiffrast @ file:///D:/a/Comfy3D-WinPortable/Comfy3D-WinPortable/pt25-cu124/Comfy3D_Pre_Builds/_Build_Wheels/_Wheels_win_py312_torch2.5.1_cu124/nvdiffrast-0.3.3-py3-none-any.whl#sha256=245c0cb214c2502841f5c6f8f269b7850c07b535231e7b23de67ed3ddfe1e395

首先安装nvdiffrast

nvdiffrast需要的numpy等级高需要先安装 然后降回1.26.4 重装别的包

cd .\wheel
pip install --force-reinstall nvdiffrast-0.3.3-py3-none-any.whl

装完nvdiffrast会报错,因为0.3.3的nvdiffrast会导致numpy版本升级到2,报错的信息为部分lib需要numpy版本为1

其次重装对numpy版本要求为1.26.4的包

pip install --force-reinstall numpy==1.26.4
pip install gpytoolbox==0.3.3
pip install numba==0.61.0

最后安装剩下的5个预安装包,通过在预安装的环境下使用python -m pip freeze > requirements.txt导出

pip install --force-reinstall dlib-19.24.6-cp312-cp312-win_amd64.whl
pip install --force-reinstall kiui-0.2.14-py3-none-any.whl
pip install --force-reinstall texture_baker-0.0.1-cp312-cp312-win_amd64.whl
pip install --force-reinstall triton-3.1.0-cp312-cp312-win_amd64.whl
pip install --force-reinstall uv_unwrapper-0.0.1-cp312-cp312-win_amd64.whl

不需要本地重新编译的,可以直接从git通过pip install进行安装

pip install git+https://github.com/WASasquatch/cstr.git@0520c29a18a7a869a6e5983861d6f7a4c86f8e9b
pip install git+https://github.com/WASasquatch/ffmpy.git@f000737698b387ffaeab7cd871b0e9185811230d
pip install git+https://github.com/WASasquatch/img2texture.git@d6159abea44a0b2cf77454d3d46962c8b21eb9d3
pip install git+https://github.com/EasternJournalist/utils3d.git@3e124377f4adde34e443804cd44fb1d4bbb88ac0

–安装完成后的版本号

cstr 0.1.0 @ git+https://github.com/WASasquatch/cstr@0520c29a18a7a869a6e5983861d6f7a4c86f8e9b
ffmpy 0.3.0 @ git+https://github.com/WASasquatch/ffmpy.git@f000737698b387ffaeab7cd871b0e9185811230d
img2texture 1.0.6 @ git+https://github.com/WASasquatch/img2texture.git@d6159abea44a0b2cf77454d3d46962c8b21eb9d3
utils3d 0.0.2 @ git+https://github.com/EasternJournalist/utils3d.git@3e124377f4adde34e443804cd44fb1d4bbb88ac0


需要命令行选择CUDA版本进行安装的 在这里会把torch版本降下来 前面安装完后 torch是2.8

pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 xformers==0.0.29.post1 -f https://mirrors.aliyun.com/pytorch-wheels/cu124pip install torch-scatter -f https://data.pyg.org/whl/torch-2.5.1+cu124.html
pip install torch-scatter -f https://mirrors.tuna.tsinghua.edu.cn/pytorch-geometric/whl/torch-2.5.1+cu124.htmlpip install kaolin==0.17.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.5.1_cu124.html

pytorch3d库

这个库必须进行编译安装的,安装顺序在最后必须在上面2项的torch安装完成后才能进行,关键步骤在此,至少我的P40只能通过这种方式才能顺利编译成功,环境参数里是使用的wheel库安装的,但批处理里是最后重编译安装的,这里我是通过git clone拉取的pytorch3d包,没有使用压缩包里的extra目录下的

pytorch3d @ file:///D:/a/Comfy3D-WinPortable/Comfy3D-WinPortable/pt25-cu124/Comfy3D_Pre_Builds/_Build_Wheels/_Wheels_win_py312_torch2.5.1_cu124/pytorch3d-0.7.8-cp312-cp312-win_amd64.whl#sha256=656bcf0cb666301b06e1ee9ef52542fea2907b06f711858ba6b974729e4640a5

必须用下面的方法编译安装 checkout出的是0.7.8的版本

git clone https://github.com/facebookresearch/pytorch3d.git
cd ..\pytorch3d
git checkout 50f8efaset TORCH_CUDA_ARCH_LIST=6.1
set FORCE_CUDA=1
set CMAKE_ARGS=-DBUILD_opencv_world=ON -DWITH_CUDA=ON -DCUDA_FAST_MATH=ON -DWITH_CUBLAS=ON -DWITH_NVCUVID=ONpip install -e .

– 编译安装耗时极长,10几分钟

  Running setup.py develop for pytorch3d-------------------------- ------------- 2/3 [pytorch3d]

其他5个包必须通过本地编译安装,最后安装,这5个extras的包在extra目录里直接复制出来使用

在这里插入图片描述

cd..
pip install --force-reinstall .\extras\pointnet2_ops
pip install --force-reinstall .\extras\simple-knn
pip install --force-reinstall .\extras\diff-gaussian-rasterization
pip install --force-reinstall .\extras\vox2seq
pip install .\extras\diffoctreerast

该组件用于 Triplane Gaussian
pointnet2_ops 3.0.0 @ file:///E:/ComfyUI-ommh/Comfy3D-WinPortable/20250121/Comfy3D_WinPortable/extras/pointnet2_ops

该组件用于 Gaussian Splatting
simple_knn 0.0.0 @ file:///E:/ComfyUI-ommh/Comfy3D-WinPortable/20250121/Comfy3D_WinPortable/extras/simple-knn

Differential Gaussian Rasterization
diff_gaussian_rasterization 0.0.0 @ file:///E:/ComfyUI-ommh/Comfy3D-WinPortable/20250121/Comfy3D_WinPortable/extras/diff-gaussian-rasterization

vox2seq
vox2seq 0.0.0 @ file:///E:/ComfyUI-ommh/Comfy3D-WinPortable/20250121/Comfy3D_WinPortable/extras/vox2seq

Differential Octree Rasterization
diffoctreerast 0.0.0 @ file:///E:/ComfyUI-ommh/Comfy3D-WinPortable/20250121/Comfy3D_WinPortable/extras/diffoctreerast


确保使用 NumPy 1.26.4的版本

pip install --force-reinstall numpy==1.26.4

修改启动批处理程序的内容

在原来的启动bat文件前增加如下:

@echo off
:: 替换为你的 Anaconda 安装路径
set ANACONDA_PATH=C:\ProgramData\anaconda3\condabin:: 调用 conda.bat 激活环境
call "%ANACONDA_PATH%\conda.bat" activate ComfyUI-3D-Pack

这里的ComfyUI-3D-Pack是我设置的conda环境的名字

在这里插入图片描述
由于使用了anaconda的环境,因此原始目录里的 python_standalone目录也可以删除了

批处理里相应的部分也需要对应修改

还需要在原来的comfyui里增加运行参数:

--disable-cuda-malloc

这个必须增加,不然ComfyUI-3D-Pack依然导入失败,其他参数看个人
在这里插入图片描述

成功加载了ComfyUI-3D-Pack的custom_nodes, 不再是imported failed
在这里插入图片描述

复制一个环境

命令行

conda create --name 新环境名称 --clone 被复制环境名称

即可,这样一台电脑上就可以共存多个python环境了,用于运行不同的需求的工作流变得很方便,可以在不同的端口上启用对环境要求不相同的工作流

相关下载

文件下载
https://download.csdn.net/download/coldwind811201/91681082

http://www.xdnf.cn/news/1304191.html

相关文章:

  • 前端动画库之gsap
  • 深入解析五大通信协议:TCP、UDP、HTTP_HTTPS、WebSocket与GRPC
  • Al大模型-本地私有化部署大模型-大模型微调
  • 腾讯位置商业授权微信小程序逆地址解析(坐标位置描述)
  • day29-进程和线程(2)
  • C语言:指针(5)
  • lcm通信库介绍与使用指南
  • 使用Docker容器化Python测试Pytest项目并配置GitHub Actions CI/CD流程
  • Pytest项目_day16(yaml和parametrize结合)
  • week1-[循环嵌套]蛇
  • Vue2与Vue3生命周期函数全面解析:从入门到精通
  • Linux操作系统--多线程(锁、线程同步)
  • 基本电子元件:贴片电阻器的种类
  • 达梦数据库使用控制台disql执行脚本
  • Mac(二)Homebrew 的安装和使用
  • HDFS数据倾斜导致MapReduce作业失败的排查与优化实践
  • 一个集成多源威胁情报的聚合平台,提供实时威胁情报查询和播报服务、主动拦截威胁IP,集成AI等多项常用安全类工具
  • mac 通过homebrew 安装和使用nvm
  • 16进制pcm数据转py波形脚本
  • 超越模型中心:AI智能体(Agent)革命来临,AgenticOps将如何颠覆你的工作流?
  • Java-JVM是什么JVM的类加载机制
  • PAT 1064 Complete Binary Search Tree
  • 计算机网络:(十五)TCP拥塞控制与TCP拥塞控制算法
  • 【161页PPT】智慧方案企业数字化转型概述(课件)(附下载方式)
  • AutoSar AP平台功能组并行运行原理
  • [论文阅读] 人工智能 | 当Hugging Face遇上GitHub:预训练语言模型的跨平台同步难题与解决方案
  • JVM执行引擎深入理解
  • 剧本杀小程序系统开发:重构推理娱乐生态
  • 大模型幻觉涉及的违约责任探讨
  • 回路自感和回路互感