C++实现的高性能Stable Diffusion图像合成工具
Unpaint是一款C++实现的Stable Diffusion图像合成工具,支持txt2img、img2img、inpainting等基本功能和ControlNet增强功能。该工具在单进程中运行整个图像生成过程,无需依赖Python,简化了部署流程。Unpaint基于DirectML,兼容NVIDIA和AMD GPU等硬件。用户可从本地或HuggingFace安装模型,便于将Stable Diffusion集成到各类应用中。
新功能:Unpaint在Xbox主机上的演示,可在YouTube上观看。
这个仓库包含了一个完全用C++实现的基于Stable Diffusion的图像合成工具,名为Unpaint。它支持基本和ControlNet增强的txt2img、img2img、图像修复管道以及安全检查器的实现。该解决方案不依赖Python,并在单个进程中运行整个图像生成过程,使部署变得更加简单和小巧,基本上只包含几个可执行文件和库文件(约30MB)以及模型权重(每个模型约2.5GB)。使用这个库可以将Stable Diffusion集成到几乎任何可以导入C++或C函数的应用程序中。
有关技术细节,请查看Unpaint所基于的C++ Stable Diffusion库的页面此处。
该应用程序使用DirectML,支持当前的NVIDIA和AMD GPU,但也应该可以在其他支持DirectML的硬件上运行。我们鼓励你在不同的硬件上尝试,如果遇到问题,请在此页面提出问题。请确保安装最新的Windows更新,特别是最新的GPU驱动程序,因为Unpaint从微软最近Build大会宣布的优化中受益匪浅。
请注意,基于ONNX的管道可能还没有直接使用pytorch和CUDA那样优化,但使用最新驱动程序时,它们的性能已经非常接近。
Unpaint现已在Microsoft Store上架,如果你不需要最新的开发版本,请从那里安装。
你可以在发布页面找到应用程序安装程序。
首次安装应用程序时,请按以下步骤操作:
.msix
和.crt
文件.crt
文件并选择安装证书这将安装Unpaint的自签名安全证书,这是新的MSIX安装程序管道对测试版本的要求,如果你从商店安装应用程序则不需要此步骤。
如果你感到不安全,可以考虑使用SignTool用自己的证书重新签名Unpaint包(你需要导入自己的证书),你可以参考这个文件末尾的操作方法。
完成这些步骤后,只需打开.msix
文件,应该就能顺利安装并启动应用程序。
要使用Unpaint,你至少需要安装一个图像生成模型。你可以从硬盘或HuggingFace安装模型。我们制作了一个方便的教程,介绍如何转换现有模型,你可以在这里找到。
开发环境
安装好Visual Studio后,首次构建请按以下步骤操作:
git clone https://github.com/axodox/unpaint
克隆仓库Unpaint.sln
Unpaint
项目的Config
文件夹,双击Package.appxmanifest
完成这些步骤后,你就可以启动项目,构建并运行了。祝你使用愉快 :)