I'm excited to release ENFUGUE into beta with v0.2 - full SDXL support, mixed 1.5/XL Diffusion/Inpainting/Refining Pipelines, and full MacOS support with a portable installation. Free and open-source.
My name's Benjamin, I'm the developer of ENFUGUE, a self-hosted Stable Diffusion Web UI that's built around an intuitive canvas interface, while still trying to deliver the power and deep customization of the popular tab-and-slider web UI's.
I'm taking it out of Alpha and into Beta with the v0.2 release, which brings SDXL support while still maintaining most of the feature set of 1.5 by allowing you to configure multiple checkpoints for various diffusion plans. It also has a ton of changes since 0.1 as suggested by other users, like the the ability to point ENFUGUE to the directories of other Web UI installations to share models and other files.
This is not monetized software in any way; I simply built the tool I wanted to use, and wanted to share. Thanks you taking a look!
Saving this for later, you got my attention with the combo of Mac and portable. Anything I can delete a single folder to get rid of in case I don't like it, is a great plus.
I had hoped that would sell a few people on it! I agree entirely on the motivation - I was able to test it on work machines without even needing to log out of an unprivileged user thanks to the portable install working nicely for me. MPS is of course slower than an equivalent CUDA device, but I was able to ensure the entire E2E test plan passed on Mac, including all ControlNets, inpainting, schedulers, upscaling, etc.
If you want SDXL on Mac, your mileage will definitely vary. I ran out of memory while loading the checkpoint on my M1 Pro 12GB, it may have been able to work if I allotted it a dangerously large amount of memory, but I could also have crashed the machine and I don't feel like bothering with that. In theory there's nothing stopping it from working, you just might need an M2 Max to get it off the ground.
Please let me know if you encounter any unforeseen issues!
So, here's my findings. Easy install, portable enough (having to specify a bunch of folders and manually creating them could be better) at first sight the interface is nice. And that's really where I stop, because it took... what, I think it was over 5 minutes to initialize the first render? All to error out (gracefully! Kudos for that) because it was out of memory. I couldn't find anything else to close, so basically on the M2 with 8gb it won't run. It was 512x512 SD 1 model. https://apps.apple.com/app/id6444050820 works on all sorts of Apple devices, is free, and kept very updated... I mention it because it's fast (14 seconds 512x512 20 steps V1 on M2), can do SDXL and refiner even with 8gb (once, I doubt many will do it a second time, but a couple of minutes for 1024x1024 20 is still "doable"). I'll stick with that on Apple stuff :)
I had hopes to try it on the Steam Deck but I saw no mention of AMD at all. Still! I'm probably going to try the tensorRT stuff on Windows, my 3060 should do it and I don't know how to do it with Automatic1111 XD
If you find the time, please let me know how it goes! And that was specifically a part of my motivation; it was mostly gripes with EasyDiffusion/A111/Vlads/SD.Next/Invoke/Comfy that drove the original design.
Yes! That is the very next big feature to tackle after just adding MacOS support (and the surprise that was needing to add SDXL support.) I've been trying to weave between addressing bug reports and feature requests while also trying to understand what hardware people are actually trying to use - It seems like I've covered the vast majority of use cases for casual tinkerers and self-hosters, now it's time to make the docker build for the advanced users and individuals wanting to run this on a remote server.
In theory, the portable installation should "just work" in Docker, though the Nvidia runtime could cause troubles - but I'll start publishing Docker containers to the repository starting with 0.2.1.
Sounds good, looking forwards to trying it! Personally I like to use docker on my Linux desktop PC for web server based apps. Makes it easy to run and update everything without having to rely on custom installers and updaters. Usually gives better control over which port to use, and where to store data. Been using AbdBarho's docker files for A1111 and ComfyUI, which makes it very easy to share models and other large files between the two.
I've used cuda in docker quite a lot, and it has even helped me solve problems, e.g. some llama apps needed cuda toolkit, which was't available for Fedora 38. I think the biggest challenge with docker is to make sure the right dependencies get built into the image, and that all run-time data is contained to mounted volumes. If you need any help with docker let us know, I'm not some kind of super pro but I have a fair amount of experience with it.
If you're collecting info about users' hardware, I have a Ryzen 7 7700X, 32GB ram, RTX3080 12GB vram.
It does seem to work fairly well, although I will say that it doesn't fit my workflow at all so I haven't done a lot of testing. I do think there are some UI things that you could look at though. Engine and Dimensions shouldn't be minimizable lists, because the fields only take up as much space as the label does. Also, your tooltips are outrageously large, covering about 75% the width of a 1080p monitor which makes them quite hard to actually read.
Thank you so much for the feedback! I know there is always work to be done on the UI, I'm too close to it at this point to view it objectively, so I really do appreciate it. I'm going to see what I can do to make things less snug.
I would love to hear a little more about your workflow, if you find the time to indulge me. I'm guessing your workflow is something I've never even thought of, there could be something in there that Enfugue might be able to benefit from. Don't feel bad if you want to keep your secrets instead, though :)