ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

快速上手:在 PyTorch 环境中安装与升级 [特殊字符] Diffusers 完整指南

快速上手:在 PyTorch 环境中安装与升级 [特殊字符] Diffusers 完整指南 快速上手在 PyTorch 环境中安装与升级 Diffusers 完整指南【免费下载链接】diffusers Diffusers: State-of-the-art diffusion models for image, video, and audio generation in PyTorch.项目地址: https://gitcode.com/GitHub_Trending/di/diffusers导读本文以 Diffusers 官方安装文档为核心完整讲解在 PyTorch 深度学习环境中安装、升级与调试 Diffusers 的全部途径包括基于 pip 的标准安装、直接从 GitHub 源码安装最新main版本、以及用于二次开发与贡献的可编辑editable安装并深入剖析安装后的 Telemetry 遥测日志机制及其关闭方法。读完本文你将能够根据自身场景稳定复现、尝鲜最新特性、参与贡献选择正确的安装方式并在安装后快速验证环境、排查依赖问题。环境要求Python 与 PyTorch 版本基线官方安装文档给出的兼容基线是Python 3.8 与 PyTorch 1.7.0。不过需要注意本文所基于的当前仓库在 setup.py 中已经将硬性版本要求收紧为python3.10.0torch2.6此外setup.py 中列出的核心运行依赖还包括accelerate0.31.0、huggingface-hub1.26.0,2.0、safetensors0.8.0、transformers4.41.2等。因此在实际安装时建议优先使用较新的 Python 3.10 与 PyTorch 2.x 版本以保证与当前main分支代码完全兼容。使用 pip 安装第一步创建并激活虚拟环境强烈建议在虚拟环境中安装 Diffusers虚拟环境可以隔离不同项目的依赖避免包版本冲突。在项目目录下执行python -m venv .env激活虚拟环境source .env/bin/activate若在 Windows 环境激活命令为.env\Scripts\activatemacOS/Linux 均可使用上面的source命令。第二步安装 PyTorch 与 Diffusers Diffusers 以 PyTorch 为主要后端框架。先按照 PyTorch 官方指引安装适配你硬件CPU/CUDA的torch然后执行pip install diffusers[torch]其中[torch]是仓库在 setup.py 中定义的 extra 依赖组其内容在源码中非常直观extras[torch] deps_list(torch, accelerate)也就是说pip install diffusers[torch]会一次性为你装上torch与accelerate以及install_requires中的基础依赖如huggingface-hub、safetensors、filelock、numpy、regex、requests、Pillow等。accelerate用于简化多设备/多卡推理与训练的资源配置属于运行 Diffusers 的常用配套。按需安装其他可选后端仓库在 setup.py 中还提供了多组可选 extras可按需追加安装bitsandbytes4bit/8bit 低精度量化推理ggufGGUF 格式模型量化支持optimum_quantoQuanto 量化后端torchaoPyTorch 原生量化torchao后端nvidia_modeloptNVIDIA 模型优化工具链sdnqSDNQ 量化后端flashpackFlashPack 加速组件trainingaccelerate、datasets、tensorboard、peft等训练相关依赖dev开发/测试/文档构建全套依赖。例如安装训练依赖可执行pip install diffusers[training]从源代码安装尝鲜最新 main 版本当你想使用尚未发布的新功能或者官方稳定版存在已修复但未发版的 bug 时可以从 GitHub 源码直接安装pip install githttps://github.com/huggingface/diffusers在从源码安装之前请先确保环境中已安装torch与acceleratepip install accelerate需要明确的是这个命令安装的是最新的main分支而非最近的stable稳定版。main分支始终与上游开发进展保持一致——例如某次发布版中暴露的 bug 可能已在main中被修复而新的正式版尚未推出。但与此同时main分支不保证稳定虽然维护团队努力保持其可用绝大多数问题会在几小时到一天内解决但面向生产环境、追求可复现性时仍建议优先使用稳定版。可修改安装Editable Install为贡献与调试而生如果你计划做以下两件事则需要一个可修改的安装方式直接使用main分支的源代码为 Diffusers 贡献代码并希望改动即时生效、便于运行测试。先克隆仓库并进入目录git clone https://github.com/huggingface/diffusers.git cd diffusers然后执行可编辑安装pip install -e .[torch]这里-eeditable是关键该命令会把你克隆的仓库路径连接到 Python 的库搜索路径中。此后 Python 不仅会在常规的 site-packages 目录例如~/anaconda3/envs/main/lib/python3.10/site-packages/查找包还会在你克隆的diffusers/文件夹内查找。也就是说你对克隆仓库中src/diffusers下源码的修改会即时反映到下次运行时无需重新安装。[!WARNING] 使用可修改安装后必须保留diffusers文件夹否则库将无法导入。若误删文件夹需重新执行pip install -e .[torch]恢复。同步到最新版同样简单cd ~/diffusers/ git pullgit pull之后你的 Python 环境将在下次运行时自动使用main分支的最新代码无需重装。与仓库结构的对应关系可编辑安装之所以能即时生效是因为仓库采用src/布局见 setup.py 中的package_dir{: src}真正的包代码位于 src/diffusers包含pipelines/数百条 pipeline 实现、models/、schedulers/、loaders/、utils/等子模块。克隆后你可以直接阅读、修改这些源码并通过仓库根目录的 tests 测试套件验证改动。验证安装检查版本与环境信息安装完成后可以通过 Python 交互式验证导入与版本import diffusers print(diffusers.__version__)仓库还内置了一个diffusers-cli命令行入口在 setup.py 中通过entry_points注册入口实现见 src/diffusers/commands/diffusers_cli.py。其中diffusers-cli env子命令实现于 src/diffusers/commands/env.py会一次性打印 Diffusers 及其关键依赖的版本、平台信息、GPU 情况等非常适合安装后快速自检或为 GitHub Issue 提供环境信息diffusers-cli env输出会包含 Diffusers 版本、Python 版本、PyTorch 版本及 GPU 可用性、Huggingface_hub / Transformers / Accelerate / PEFT 版本、各量化后端版本、xFormers 版本与当前加速器信息等可直接复制粘贴到 Issue 中。理解与关闭 Telemetry 遥测日志遥测收集了什么官方文档明确指出 Diffusers 会在from_pretrained()请求期间收集 telemetry 信息具体包括Diffusers 与 PyTorch 的版本被请求的模型或 pipeline 类预训练检查点的路径当它托管在 HuggingFace Hub 上时。这些使用数据用于帮助维护团队调试问题、确定新功能的开发优先级。重要的是遥测数据仅在从 HuggingFace Hub 加载模型和 pipeline 时发送本地使用期间不会收集。源码级的实现细节遥测的用户代理字符串在 src/diffusers/utils/hub_utils.py 的http_user_agent()函数中组装核心逻辑如下def http_user_agent(user_agent: dict | str | None None) - str: ua fdiffusers/{__version__}; python/{sys.version.split()[0]}; session_id/{SESSION_ID} if HF_HUB_DISABLE_TELEMETRY or HF_HUB_OFFLINE: return ua ; telemetry/off if is_torch_available(): ua f; torch/{_torch_version} ...该函数从huggingface_hub.constants导入HF_HUB_DISABLE_TELEMETRY与HF_HUB_OFFLINE两个常量二者任一为真时UA 中会标记telemetry/off即不再上报使用信息。而from_pretrained()在加载配置时见 src/diffusers/configuration_utils.py 中from_pretrained对http_user_agent(user_agent)的调用便会携带该 UA 发起请求。从源码结构看关闭遥测本质上就是设置huggingface_hub识别的环境变量从而让上述分支生效。如何关闭遥测如果你不希望分享这些信息只需在终端中设置DISABLE_TELEMETRY环境变量Linux/macOSexport DISABLE_TELEMETRYYESWindowsset DISABLE_TELEMETRYYES设置后从 Hub 加载模型时便不再发送遥测数据。此外huggingface_hub 还支持HF_HUB_OFFLINE离线模式完全禁止联网请求本地加载场景常用同样能起到关闭联网遥测的作用。结语安装是使用 Diffusers 的第一步也是参与其生态建设的基础日常使用选择pip install diffusers[torch]即可想要第一时间体验新特性可走源码安装准备贡献代码则使用可编辑安装并配合diffusers-cli env自检环境。理解背后的依赖分组extra与遥测机制能帮助你在不同场景下做出更合理的选择也为后续深入阅读 src/diffusers 源码、跑通 examples 中的训练示例打下坚实基础。【免费下载链接】diffusers Diffusers: State-of-the-art diffusion models for image, video, and audio generation in PyTorch.项目地址: https://gitcode.com/GitHub_Trending/di/diffusers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进