A simple Windows / Xbox app for generating AI images with Stable Diffusion.
OTHER License
New: Unpaint demonstration on Xbox consoles, see it on YouTube.
This repository contains a fully C++ implementation of Stable Diffusion-based image synthesis tool called Unpaint. It supports basic and ControlNet enhanced implementations of txt2img, img2img, inpainting pipelines and the safety checker. This solution does not depend on Python and runs the entire image generation process in a single process, making deployments significantly simpler and smaller, essentially consisting of a few executable and library files (~30MB), and the model weights (~2.5GB / model). Using the library it is possible to integrate Stable Diffusion into almost any application, which can import C++ or C functions.
For technical details please check the page of the C++ Stable Diffusion library which Unpaint is based on here.
The application uses DirectML and it supports current GPUs of NVidia and AMD, but should work on other DirectML capable hardware as well. We encourage you to try it with different hardware and raise issues on this page if you have problems. Make sure to install the latest Windows updates and especially the latest GPU drivers, as Unpaints benefits from Microsoft's recent Build conference announced optimizations greatly.
Please note that ONNX based pipelines are not yet necessarily as optimized as with using pytorch and CUDA directly, however with latest drivers they are pretty close.
Unpaint is now available in the Microsoft Store, if you do not need the latest dev builds, please install it from there.
You can find the app installers on the releases page.
To install the app the first time follow these steps:
.msix
and .crt
files.crt
file and select install certificateLocal Machine
and click nextPlace all certificates in following Store
and click Browse
Trusted Root Certification Authorities
and click OK
Next
and then Finish
This installs Unpaint's self-signed security certificate which is required by the new MSIX installer pipeline for test builds, this is not needed if you install the app from the store.
If you feel unsafe consider using SignTool to resign the Unpaint package with your own certificate (you need to import your own one as well), you can refer to the end of this file on how to do it.
After this just open the .msix
file and should install fine and start the app.
To use Unpaint you will need to install at least one image generation model. You can install models from your hard drive, or HuggingFace. We have created a handy tutorial on how to convert existing models, you can find it here.
Development environment
Once you have Visual Studio, for the first build follow these steps:
git clone https://github.com/axodox/unpaint
Unpaint.sln
with Visual Studio
Developer Mode
in Windows, which you can do in the Settings
appConfig
folder in the Unpaint
project in Solution Explorer
, and double click Package.appxmanifest
Packaging
tab, and select Choose Certificate
Create
and follow the wizardAfter this, you can just start the project and have it be built and run. Enjoy :)