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. 附:我用到的参考

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

相关推荐
绝无仅有1 小时前
腾讯面试文章解析:MySQL慢查询,存储引擎,事务,结构算法等总结与实战
后端·面试·github
逛逛GitHub2 小时前
这个 OCR 开源项目天花板,杀疯了。
github
徐sir(徐慧阳)3 小时前
搭建属于自己的网站HEXO静态页(二)发布网站到gihub
服务器·node.js·github·hexo
哈喽哈喽哈喽~3 小时前
推送文件到github ---服务器关键配置内容
运维·服务器·经验分享·github
技术爬爬虾5 小时前
AI编程新王Codex详细攻略,一期视频精通,附免费使用方法
程序员·github
散峰而望6 小时前
基本魔法语言分支和循环 (二) (C语言)
c语言·开发语言·github·visual studio
期待のcode7 小时前
gitee与github远程仓库
gitee·github
半桔10 小时前
【IO多路转接】IO 多路复用之 select:从接口解析到服务器实战
linux·服务器·c++·github·php
Moment10 小时前
为什么 Electron 项目推荐使用 Monorepo 架构 🚀🚀🚀
前端·javascript·github
掘金安东尼10 小时前
🧭前端周刊第437期(2025年10月20日–10月26日)
前端·javascript·github