Text2Light 安装案例:从 GPU 可用到 OpenEXR 报错,再到顺利出图(Windows + Conda)

Text2Light 安装案例:从 GPU 可用到 OpenEXR 报错,再到顺利出图(Windows + Conda)

这是一篇基于真实过程的安装案例记录。我按项目的安装手册一步步在 Windows + Conda 环境部署 Text2Light:一开始 GPU 检测一切正常,运行中却遇到了 OpenCV 的 OpenEXR 读写功能被禁用的报错,最终通过设置环境变量搞定并成功生成图片。


1. 环境与准备

  • Windows 10/11(64 位)
  • Conda 环境(Python 3.8)
  • NVIDIA 显卡 + 驱动;已按手册安装了 PyTorch(CUDA 版)

我按照手册创建了 Conda 环境、安装了 PyTorch 2.0+ 和各类依赖,详细步骤见:projects/text2Light/install.md

安装手册要点速览(简版)

  • 获取代码:克隆仓库 Text2Light 并进入目录。
  • 创建环境:conda create -n text2light python=3.8conda activate text2light;建议添加 pytorchnvidiaconda-forge 源并将 channel_priority 设为 flexible
  • 安装 PyTorch(CUDA 12.0 兼容):conda install -y pytorch==2.0.1 torchvision==0.15.2 pytorch-cuda=12.0 -c pytorch -c nvidia;安装 faiss-cpu==1.7.4 及基础包(numpy==1.24.3/pillow==9.5.0/matplotlib==3.7.1)。
  • 安装其他依赖:使用 pip 安装 opencv-python==4.8.1.78pytorch-lightning==2.0.9omegaconf==2.3.0einops==0.7.0transformers==4.35.2tensorboardX==2.6.2.2h5py==3.10.0tqdm==4.66.1protobuf==3.20.3lmdb==1.4.1 等。
  • 准备模型与数据:将权重解压到 logs/(如 logs/global_sampler_clip/logs/local_sampler_outdoor/logs/sritmo.pth);准备 clip_emb.npy 放在仓库根目录或用 --clip 指定路径。
  • 运行前检查:执行 python -c "import torch, torchvision; print(...)",确认 torch.cuda.is_available() 为 True(PyTorch 2.0+ 显示 CUDA 11.8 也可能与 12.0 兼容)。
  • 推理示例:运行 text2light.py,指定 -rg-rl--clip--sritmo--sr_factor--outdir 等参数生成结果。

完整细节请见 projects/text2Light/install.md,本节仅保留关键路径与版本要点。


2. 开局顺利:GPU 能用

先验证 GPU 是否可用(截图如下):

  • 这一步确认了 torch 能看到 CUDA,说明"显卡没问题,驱动没问题,PyTorch 绑定也没问题"。

3. 突然翻车:OpenEXR 被禁用的报错

运行过程中,OpenCV 抛出如下错误:

text 复制代码
cv2.error: OpenCV(4.8.1) D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\grfmt_exr.cpp:103: error: (-213:The function/feature is not implemented) imgcodecs: OpenEXR codec is disabled. You can enable it via 'OPENCV_IO_ENABLE_OPENEXR' option. Refer for details and cautions here: https://github.com/opencv/opencv/issues/21326 in function 'cv::initOpenEXR'

截图(问题出现时):

发生原因(通俗解释):

  • OpenCV 的 EXR 编解码在一些二进制分发中默认是关闭的,目的是出于体积、安全或许可证方面的考虑。
  • Text2Light 在读写 EXR/HDR 等格式时,需要启用对应的编解码支持,否则会直接报错。

4. 一步到位的解决方案:开启 OpenEXR

按照错误提示,启用 OpenEXR 的最直接方法是设置环境变量 OPENCV_IO_ENABLE_OPENEXR=1

  • PowerShell(当前会话生效):
powershell 复制代码
$env:OPENCV_IO_ENABLE_OPENEXR = "1"
# 启动你的 Python/脚本于同一会话中
python text2light.py -h
  • PowerShell(持久化到用户环境,需重新打开终端生效):
powershell 复制代码
setx OPENCV_IO_ENABLE_OPENEXR 1
  • CMD(当前会话):
cmd 复制代码
set OPENCV_IO_ENABLE_OPENEXR=1

设置完成后,重新运行 Text2Light,对应的 EXR 读写就能被打开,错误消失。

温馨提示:

  • setx 会写入用户环境变量,但对"当前已经打开的终端"不会立即生效,请关闭并重新打开终端或重启 IDE。
  • 如果你使用的是 VSCode 的内置终端,同理需要重启终端标签页。

5. 再次出发:生成成功

问题解决后,重新运行推理脚本,成功生成了输出图像(截图如下): 这说明 OpenEXR 读写能力已开启,Text2Light 的流程能够顺利完成。


6. 过程复盘(简易 Checklist)

  • 确认 GPU 可用(torch.cuda.is_available() 为 True)。
  • install.md 安装依赖;确保 PyTorch 使用 CUDA 版本。
  • 遇到 OpenEXR codec is disabled:设置 OPENCV_IO_ENABLE_OPENEXR=1,再重启终端后重试。
  • 观察日志无错误,确认输出目录收到生成结果。

7. 附:我用到的参考

如果你也碰到类似问题,按本文配置环境变量即可快速恢复;若仍然报错,可将报错栈与运行命令贴出来,我们再一起查。

相关推荐
TonyLee0172 小时前
Github使用记录
github
放下华子我只抽RuiKe56 小时前
从零构建高精度 AI Agent Skill:Tech Blog Generator 实战指南
人工智能·prompt·github·ai agent·skills·openclaw·development
2401_884662107 小时前
GitHub镜像站搭建全攻略大纲
github
散峰而望8 小时前
【基础算法】从入门到实战:递归型枚举与回溯剪枝,暴力搜索的初级优化指南
数据结构·c++·后端·算法·机器学习·github·剪枝
Refly9 小时前
【微信接入 OpenClaw 龙虾🦞】10分钟手把手教程完成接入,Claude 模型无限使用
前端·微信·github
老星*11 小时前
Lucide Icons:开源、轻量、设计师友好的现代图标库
ui·开源·github
星霜笔记11 小时前
GitMob — 手机端 GitHub 管理工具
android·kotlin·github·android jetpack
无限进步_12 小时前
【C++】单词反转算法详解:原地操作与边界处理
java·开发语言·c++·git·算法·github·visual studio
老星*12 小时前
Vaultwarden:开源轻量的1Password替代,自托管密码管理方案
开源·github·密码学
饥饿的帕尼尼12 小时前
Claude Code本地安装使用教程
node.js·github·claude