Radiata
基于 Diffusers 的 Stable Diffusion WebUI,支持 TensorRT GPU 加速与 LoRA/ControlNet 插件扩展
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 Diffusers 的 Stable Diffusion WebUI,支持 TensorRT GPU 加速与 LoRA/ControlNet 插件扩展
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象这样一个场景:深夜灵感想画一张赛博朋克风格的城市夜景,在 Midjourney 排队等渲染时,你打开 Radiata,在自己的 RTX 3080 上用 6 秒生成了第一张草图,然后一边调整 prompt 一边迭代——整个过程不到 3 分钟。这就是 Radiata 想要解决的问题:把 Stable Diffusion 的能力交还给本地用户,让 AI 绘图真正成为设计师口袋里的工具。
Radiata 最初由日本独立开发者 ddPn08 创建,彼时 AUTOMATIC1111 的 WebUI 已经在社区广泛流行,但它的底层基于原始 Stable Diffusion 权重库,在扩展性和性能优化上存在天然瓶颈。ddPn08 选择了一条更轻量的路径:基于 Hugging Face Diffusers 库重新构建推理管线,拥抱 Diffusers 的模块化设计,同时引入 TensorRT 加速,将生成速度提升至原生 PyTorch 的 2-3 倍。项目于 2023 年初正式开源,迅速在 GitHub 积累了接近 1000 颗星,成为当时社区中专注于 Diffusers 生态的标杆 WebUI 之一。
Radiata 的架构设计体现了「最小化抽象」的理念。项目采用 FastAPI 作为后端服务框架,Gradio 作为前端交互界面,主推理管线完全构建在 Diffusers 库之上。这种设计带来了显著优势:Radiata 能够第一时间跟进 Hugging Face 发布的最新扩散模型架构,包括 Stable Diffusion XL(SDXL)、各种社区微调的变体模型,甚至是其他基于 Diffusers 接口的图像生成模型(如 Kandinsky、DeepFloyd IF)。
Radiata 最大的技术亮点是 TensorRT 加速。当用户使用 --tensorrt 参数启动应用后,系统会在首次生成时自动将 PyTorch 模型转换为 NVIDIA TensorRT 优化引擎。这个过程(称为 "engine building")需要用户提供足够的显存空间和数分钟的等待时间,但完成后,同一张图片的生成速度可从原本的 15-20 秒压缩到 5-8 秒,吞吐量提升约 2-3 倍。

实现上,Radiata 在 lib/tensorrt/ 目录下封装了完整的 ONNX 导出和 TensorRT engine 构建流程。UNet 是加速的核心对象,VAE 和 Text Encoder 通常保持原生 PyTorch 执行,因为它们的计算量相对较小。值得注意的是,TensorRT engine 与特定的图片尺寸绑定——如果用户改变生成分辨率,需要重新构建 engine,这也是该功能的主要使用门槛。
Radiata 并不满足于单一模型的推理加速。项目在 modules/diffusion/pipelines/ 下实现了多个专用管线:
| 管线类型 | 说明 |
|---|---|
diffusers.py | 基于 Diffusers 库的原生推理管线,通用性最强 |
tensorrt.py | TensorRT 加速管线,专为高性能场景设计 |
lpw.py | 长 prompt 扩展(Long Prompt Weighting),支持数千词的复杂 prompt |
此外,项目通过插件机制支持 ControlNet 和 LoRA/Lycoris 模型加载。ControlNet 插件(radiata-controlnet-plugin)允许用户使用 Canny、OpenPose、Scribble 等条件图控制生成结果;LoRA 支持则通过 modules/diffusion/networks/ 实现,兼容社区中数以万计的微调权重。用户可以在 WebUI 的 Generate 标签页中直接选择多个 LoRA 并调整各自权重,实现风格的精确融合。
从部署体验来看,Radiata 对不同操作系统的支持程度差异明显。
Windows 用户 是最幸福的群体:克隆仓库后双击 launch-user.bat 脚本,所有依赖(Python 环境、CUDA 驱动、TensorRT)均由启动器自动检测并安装,新手几乎不需要任何配置。脚本还支持 --share 参数快速生成 Gradio 公开链接,方便分享给朋友或在没有公网 IP 的情况下远程访问。
Linux/macOS 用户 需要手动处理更多细节。启动脚本 launch.sh 依赖 user-env.sh 中的环境变量配置,Python 版本要求精确为 3.10,其他版本可能遇到兼容性问题。macOS 用户还需要额外配置 MPS(Metal Performance Shaders)支持,因为原生 CUDA 在 Apple Silicon 上不可用。
Docker 部署 是最优雅的服务器端方案。项目提供了 docker-compose.yml,基于 nvidia/cuda:11.8.0-runtime-ubuntu20.04 基础镜像,内置 Miniconda 环境、Node.js 和 TensorRT 运行时。只需一行 docker-compose up 即可启动带 GPU 加速的推理服务,适合有 Linux 服务器的开发者或研究者。

不过,Docker 方案存在一个现实问题:TensorRT engine 构建需要在容器内完成,首次冷启动可能需要 10-20 分钟的构建时间,而且需要足够大的 GPU 显存分配。
Radiata 已在 2025 年 7 月被作者正式归档(archived),转为只读状态。这意味着项目不再接受新功能开发,只维护 critical bug 修复。对于依赖持续更新的用户而言,这是一个需要认真考虑的风险点。
从技术层面,Radiata 存在几个长期未能解决的结构性问题:
TensorRT 动态分辨率支持的长期缺陷。Issue #84 显示,Radiata 的 TensorRT 管线长期无法支持动态分辨率生成——用户必须预先指定固定分辨率来构建 engine。当使用高分辨率修复(Highres Fix)功能时,系统需要在不同分辨率间切换,此时 TensorRT 引擎会失效,用户被迫回退到原生 PyTorch 管线,性能优势荡然无存。社区多次尝试解决这一问题,但始终未能突破 NVIDIA TensorRT 对动态 shape 的严格限制。
cuDNN 初始化不稳定的偶发故障。Issue #76 报告了在特定 CUDA/TensorRT 版本组合下,构建 engine 时会抛出 CUDNN_STATUS_NOT_INITIALIZED 错误。问题的根本原因与 Docker 容器中的 GPU 驱动版本不匹配有关,但项目缺乏自动化的依赖兼容性检测机制,用户只能靠经验排查。
PyTorch 和 Diffusers 版本锁死。Radiata 的 requirements/base.txt 指定了 diffusers==0.18.0 和 pytorch-lightning==2.0.2 等精确版本,这在 2023 年是合理的依赖声明,但随着 Diffusers 库在后续版本中持续引入新功能(如 SGM 调度器改进、新的注意力机制变体),锁定旧版本意味着 Radiata 用户无法享受这些上游改进。相比之下,AUTOMATIC1111 WebUI 通过持续更新和版本检测机制更好地解决了这一问题。
Radiata 的价值不在于取代 AUTOMATIC1111,而在于它证明了 Diffusers 生态可以诞生成熟的 WebUI 产品。在此之前,社区普遍认为 Diffusers 是面向研究者的底层库,不适合做用户级产品。Radiata 用实际项目打破了这一刻板印象,它的插件架构、模块化管线设计为后来的许多项目提供了参考。
从更宏观的角度看,Radiata 代表了 2023 年 AI 绘图工具发展的一个重要方向:推理加速与易用性的结合。TensorRT 加速虽然有使用门槛,但它让拥有高性能 GPU 的用户能够在本地获得接近商业 API 的响应速度,这是纯云端方案无法替代的体验。
尽管项目已归档,Radiata 的技术遗产仍在发挥作用:它的 ControlNet 插件架构被多个后续项目借鉴,其基于 Diffusers 的管线设计也影响了部分专注于 SDXL 优化的开源工具。ddPn08 本人也开发了 kohya-sd-scripts-webui 等相关项目,持续为 LoRA 训练生态贡献力量。
Radiata 适合以下用户:
如果你追求的是最丰富的社区插件生态和最活跃的版本更新,AUTOMATIC1111 WebUI 仍然是更好的选择。但如果你拥有一块强力 GPU,追求的是极致的本地推理速度,并且对 Diffusers 生态有天然好感,Radiata 值得一试——它用更轻量的代码库,换来了同样完整的 WebUI 体验和独家的 TensorRT 加速能力。