divamgupta / diffusionbee-stable-diffusion-ui

Diffusion Bee is the easiest way to run Stable Diffusion locally on your M1 Mac. Comes with a one-click installer. No dependencies or technical knowledge needed.
https://diffusionbee.com
GNU Affero General Public License v3.0
12.5k stars 616 forks source link

Webpage -- Better define minimum req. for Intel Macs #330

Open tenko23 opened 1 year ago

tenko23 commented 1 year ago

Hi!

I have an Intel Mac -- a 2009/2010 Mac Pro running 10.14.6 -- 2 x 3.46GHz 6-Core Intel Xeon; 64GB 1333MHz DDR3 ram; Radeon RX 580 8GB, etc... the webpage ( https://diffusionbee.com/download ) states that it is "Good with any Intel based Mac" and I thought heck yeah - mine should rock!... but it doesn't meet the minimum OS requirements (12.3). Could this possibly be better reflected on the download page?

Thanks much!

Bannerman commented 1 year ago

Yeah, had the same issue installing on my old Mac Pro running 10.13

vpteittinen commented 1 year ago

Out of curiosity, owning a 2012 iMac, has anyone updated their "outdated" Mac to Monterey using the Open Core Legacy Patcher?

https://dortania.github.io/OpenCore-Legacy-Patcher/

Diffusion Bee would be DEAD SLOW on my 27" iMac but at least I could still use it for something other than paperweighting...

tenko23 commented 1 year ago

I've tried, but these hacks are as buggy as heck and I've given up on pretty much all of them on quite a few machines... the max OS for any Mac is the most stable in my mind.

(btw, they're still more than paperweights -- I have a couple oldies but goodies streaming video 24/7 video in my basement and have been for years ^_~ ~)

vpteittinen commented 1 year ago

Oh crap. Well, it sounded too good to be true/viable. I mostly do video editing and music production so the old Macs pretty much just stand there. I've been meaning to look into daisy-chaining two Macs via Ethernet MIDI.

vpteittinen commented 1 year ago

Btw I have i Think 7 Macs at the moment. No, 8. Maybe 9? =D

vpteittinen commented 1 year ago

And thinking of maybe getting a Mac Mini M1 just for Diffusion Bee and other AI work.

tenko23 commented 1 year ago

...wish I had the budget for an M1 right now :/ ...

h9826790 commented 1 year ago

For old Mac, the problem is really the hardware, not software. OpenCore can bypass the software limitation. However, the hardware performance bottleneck still there. So, for iMac that has a very weak graphic card. I won't recommend use OCLP to run DiffusionBee. Patched GPU driver often cause issues in modern software that require real GPU power.

For Mac Pro, it's a special Mac that can upgrade most of the hardware. In fact, tenko23 can update macOS to 12.6.1. I have a similar Mac Pro 2009 (which has a W3690, 48GB RAM, and a Radeon VII now), and using OpenCore to run 12.6.1. It's stability is actually better than 10.14.6, and able to run the latest DiffusionBee flawlessly.

My wife has a M1 Mac. I can tell you that a Mac Pro with powerful GPU can outperform the M1 in many GPU intensive task, including DiffusionBee. Even the RX580 isn't that strong, but still a very decent GPU, and stronger than the baseline M1.

tenko23 commented 1 year ago

Is there a better patcher nowadays? Many that I have run into in the past had nullified working airport cards, has required SIP to be disabled, has required a special updater, etc.

h9826790 commented 1 year ago

For a properly upgraded Mac Pro 2009, there is no need to patch any system file. This is why the stablility can be maintained.

SIP is your personal choice. I keep it disable anyway. System files in Monterey is protected by default regardless SIP settings.

Airport card is an issue, but that can be upgraded easily. I bought a BCM924602CS kit (with all the required adaptors etc) few years back. Just $30 (should be cheaper nowadays), works perfectly (and natively) on my Mac Pro in Monterey.

If you don't want to upgrade the Airport card. Then OCLP can patch the system files for you. In that case, kext patch is unavoidable.

I never use OCLP. In fact, I created my own OpenCore package. But AFAIK, for Monterey 12.6.1, the current version's OCLP is doing quite well for Mac Pro 2009 with X5690 + RX580 + original Airport card.

Just a friendly reminder. Do NOT go beyond 12.6.1, don't even try to go macOS 13. That won't work.

vpteittinen commented 1 year ago

Out of curiosity, is anyone using Diffusion Bee on an M1 Mac mini with just 8 gigs of RAM? Is it dead slow, or does it even work?

tenko23 commented 1 year ago

Using it on my wife's M1 Mac Mini with 16GB ram... so I can't speak for the 8GB model, but the 16GB one is working just fine.

h9826790 commented 1 year ago

I tried on my wife's 8GB M1 Macbook Air, the base model (only 7 GPU core, not 8). The half precision version works at reasonable speed.

e.g. Use all standard settings, then it's about 1.4s/it. Therefore, a 25 steps 512x512 image cause about 35s to finish.

IMO, that's perfectly OK. However, when you run it, you better fully close all other software. Otherwise, you can expect very high SWAP usage.

My own recomendation is do NOT go beyond 512x512 on a 8GB M1 Mac. I've tested 768x768 75steps, the max settings. It works, about 5s/it. So, a 75 steps image took ~5min to complete. And during the precess, Memory pressure stay at ~80% (red), and SWAP goes up to about 4GB.

As comparasion, my 2009 Mac Pro with Radeon VII can do 0.6s/it for 512x512, and 1.5s/it for 768x768. So, the M1 is 2-3 times slower. But even the max settings on the M1 only takes about 5min to generate an image. IMO, this is completely acceptable.

tenko23 commented 1 year ago

I'm just curious - is there any performance degradation with the Mac Pro on the higher OS hack?

h9826790 commented 1 year ago

I ran a few benchmarks. So far, all OS perform more or less the same (for the same hardware).

vpteittinen commented 1 year ago

Using it on my wife's M1 Mac Mini with 16GB ram... so I can't speak for the 8GB model, but the 16GB one is working just fine.

Sounds like 16 gb of RAM is the minimum. Thanks. =)

tenko23 commented 1 year ago

I just had a look at OpenCore... seems pretty promising - especially when compared to previous hacks. I'll give it a try -- thanks :) !