[HN Gopher] Charl-e: "Stable Diffusion on your Mac in 1 click" ___________________________________________________________________ Charl-e: "Stable Diffusion on your Mac in 1 click" Author : valgaze Score : 155 points Date : 2022-09-17 16:05 UTC (6 hours ago) (HTM) web link (www.charl-e.com) (TXT) w3m dump (www.charl-e.com) | gcau wrote: | A.I projects (and maybe all python projects in general) seem to | always be ridiculously tedious, error-prone to get running, such | that its a rare, celebratory thing when someone releases | something that's easy to use like this? | mrtksn wrote: | Unfortunately this goes beyond A.I. stuff, it has become the | state of software development and that's why people started | shipping very large packages of everything so that you can have | the exactly same environment so you can increase your chances | that the code will run as expected. | | For A.I. stuff I actually don't judge, these scripts are | written by people who specialise in other things than software | engineering and they simply put together some code to run their | algorithms and as a result they are poorly engineered in many | aspects. | somehnacct3757 wrote: | These AI tools are going to be built into professional tools | like Photoshop someday, but until then it's sort of a hackers | paradise. I think Charl-e lets a new cohort of hackers play | with the technology without becoming python command line | warriors | [deleted] | kragen wrote: | Cutting-edge software has always been like this. Web browsers | were like this 30 years ago. Linux was like this 25 years ago. | DNS and Unix were like this 40 years ago. AJAX and Comet (and | really JS in general) was like this 20 years ago. Operating | systems and high-level languages were like this 50 years ago. | It takes a while for the rough edges to get sanded off. | | Most Python projects install with a matter of a single pip | command. | userbinator wrote: | Back then, as in the early years ot the PC, software was | mainly self-contained, single-executable extract-and-run. | | Somewhere along the way, they became so complex as to require | special installation programs and the like. | | I'm not very familiar with AI and SD in particular, but from | what I understand, this stuff is mostly-pure maths, so it | shouldn't be a difficult thing to package and make portable. | I know the models are rather large, but that's not really any | additional complexity. | mgraczyk wrote: | The largeness of the model does add complexity, you can't | really package it as part of the binary for example. | | It's not the case that useful software was ever self | contained. If you recall trying to do anything online in | the early to mid nineties, you'll remember how complicated | it was to use almost any website and how much manual | fiddling and configuration was involved to get online. | | Ignoring the internet, early games and graphical | applications were a mess of settings and configuration. | Even today you often have to tune graphics settings to get | playable game performance on anything but top line | hardware. | kragen wrote: | When you say, "Back then," do you mean 30 years ago, 25 | years ago, 40 years ago, 20 years ago, or 50 years ago? | y42 wrote: | >> Back then, as in the early years ot the PC, software was | mainly self-contained, single-executable extract-and-run. | | Software in general? Yes. But of you tried to leave the | path the manufacture prepared, then you entered a world of | pain. I remember how difficult it was to connect my first | smartphone around 20 years ago to my Windows PC using | ActiveSync to achieve a synced calendar. Just one example | of: there was no download and run solution for processes | that seem simple today. | solardev wrote: | ...Comet? Is that a joke, lol? Because of the Ajax and Comet | cleaners? I've never heard that term before | lbotos wrote: | nope, (well yes it was a reference) but was a strategy in | the early '00s: | | https://en.wikipedia.org/wiki/Comet_(programming) | kragen wrote: | It still is, it's the heart of many of the most popular | current apps like Slack, we can just do it without the | dirty hacks because we have WebSockets. | EamonnMR wrote: | Most Python projects aren't this tough. I suspect that they're | using wonky libraries like Pandas, Numpy or some such that | prioritize raw power over ease of installation. | CodeSgt wrote: | I've not touched Python in a couple years, but Pandas/NumPy | used to be _the_ defacto libs for anything to do with data | science, are they considered "wonky" now? | machinekob wrote: | 2be honest numpy is ez to install on all major platforms. | In deep learning I'm almost never saw usage of pandas but | deep learning models have problems with PyTorch as some | projects just lock old PyTorch version that just dosent | work on new/old python version. | gbear605 wrote: | In my experience, they're simultaneously important for data | science and very annoying to install and manage. | Fomite wrote: | I mean, there are at least two different companies | (Enthought and Continuum) that were founded on making the | major scientific python packages easier to install. | version_five wrote: | Just to be clear, pandas and numpy are not the "wonky" | libraries. They are, in my experience, basically two of the | most easily installed and dependency managed libraries in | python, given their ubiquity and maturity. Maybe there are | machine configurations I'm not familiar with that they are | not easily compatible, but I've never seen them cause | issues. Usually it's cuda or other gpu stuff, or conflicts | in less regularly maintained packages | sp332 wrote: | A bit, yeah. And it's been extra difficult to get it going on | M1 Macs. | latchkey wrote: | lstein's fork [1] isn't that bad and the instructions are | pretty easy to follow. It definitely requires some knowledge | of how to install software via brew, but these are generally | good to figure out anyway. | | [1] https://github.com/lstein/stable- | diffusion/blob/main/docs/in... | amelius wrote: | IT is in a package management crisis at the moment, and GPUs | are not making things easier. | smlacy wrote: | What's the relationship between GPUs and package management? | hunkins wrote: | Most deep learning these days requires CUDA acceleration to | enable GPU / TPU for the libraries (i.e. PyTorch, | Tensorflow), which is an absolute nightmare to set-up. | gpderetta wrote: | I wanted to try SD on my machine, but I just couldn't get | CUDA to work. Mind, the the openvino based CPU | implementation works just fine (pip install -r | requirements.txt was sufficient) and given my CPU and GPU | (a 10 core 10850k and and old 1070), there's isn't | probably much to gain to switch to the GPU other than | power usage. | thebruce87m wrote: | NVIDIA has a bunch of docker containers which make this | slightly less painful. Or maybe it's just a different | kind of pain. | hunkins wrote: | These definitely help.. but still painful. | 1024core wrote: | I guess the old "NVidia -vs- Linus" battle on kernel | modules is still being fought.... | dqpb wrote: | It's awesome to see how much creativity, progress, and community | involvement results from truly open AI development. | | Congrats to the stable diffusion team for their openness and | inclusiveness! | mig39 wrote: | Is there a reason it won't work on an intel Mac? | zodo123 wrote: | People have been focused on getting stable diffusion running | well on M1 macs because their graphics systems have so much | more horsepower than the Intel macs. The M1s also have a fast | memory sharing architecture for graphics, and this needs an | absolute minimum of around 8gb of vram -- many Intel macs just | won't be able to handle this. | wasyl wrote: | SD on an Intel mac with Vega graphics runs pretty well though | -- I think it ran at something like ~3-5 iterations/s for me, | which is decent. I ran either | https://github.com/magnusviri/stable-diffusion or | https://github.com/lstein/stable-diffusion which have MPS | support | anigbrowl wrote: | That's good to know as I just got a good deal on one and | was wondering if the AMD GPU would be useful or if I needed | to start planning for an eGPU with some NVidia silicon. | Thanks! | halefx wrote: | From the website: | | > Will this be available on Intel Macs? | | > Yep, I'm working on making it compatible with older Macs. | selfsimilar wrote: | What's the difference between this and Diffusion Bee besides a | nicer website? | | https://github.com/divamgupta/diffusionbee-stable-diffusion-... | okdood64 wrote: | There's a link to a code on the `nicer website`: | https://github.com/cbh123/charl-e | yummybear wrote: | I have a mac a few years old, and now we start seeing M1 only | software. My next computer won't be a mac. | addaon wrote: | Then it is unlikely that either your current or your next | computer will be able to run M1-only software. What problem are | you trying to solve? | murkt wrote: | Has Stable Diffusion been optimized already so it could run on M1 | with 8 GB of RAM without swapping? | cowmix wrote: | I highly doubt it. It Struggles on GPUs with 6GB or less. | prpl wrote: | I had Stable Diffusion running on m1 and intel macbooks vein the | first few days, but the original repo would have done people some | favors if they either created proper conda lock files for several | platforms or just used conda-forge instead of mixing conda and | unnecessarily (I think there was one dep which actually wasn't on | conda-forge, besides their own things) | | (and actually made the code independent of cuda) | russellbeattie wrote: | I downloaded this and tried out a few prompts like, "Mark Twain | holding an iPhone", and got back an image of Mark Twain - once in | some surrealist nightmare fashion and another more like a 3D | render. Neither were holding anything, let alone an iPhone. | Cranking up the DDIM slider didn't seem to do much. Trying the | same prompt on mage.space (see the creators comment in this | thread) produced exactly what I assumed it would. | | Is there a trick to it? | takoid wrote: | Does a "1 click" Windows implementation of Stable Diffusion exist | yet? | filoleg wrote: | Had been available for a while, check out NMKD[0]. That's what | I've been personally using the entire time. | | 0. https://nmkd.itch.io/t2i-gui | teaearlgraycold wrote: | Anyone have an M1 Ultra they can test this on? My 3080 Ti can | render a 512x512 image in something like 7 seconds and I've love | to compare against Apple Silicon. | geerlingguy wrote: | On M1 Max Mac Studio I'm getting about 45s. On my 3080 Ti about | 5-7s. | latchkey wrote: | M1 max 16" with 64gigs ram, lstein fork, about 30-40s. | machinekob wrote: | There isn't any optimised diffuser on m1 yet most of them are | just running basic MPS graph or even mix of CPU and MPS ops and | ofc it is extremely slow I dont have time to test this | implementation but author just use some other implementation | with simple UI. So I would be surprise if it is faster than 10s | per img with 20steps and probably more close to 25-40s and | around 40s-1min per classic 512x512 50-60 step setting as are | other models. | ISL wrote: | Seeing copyrighted/trademarked icons in the examples (Darth | Vader, for example) really makes me wonder how these models are | going to play out in the future. | | Today, these models are far ahead of the trademark attorneys, but | there are powerful interests that are going to want to litigate | the inclusion of these entities in the trained models themselves. | city17 wrote: | How fast does Stable Diffusion run on an M1 Max? I'm using an M1 | Pro and I find it too slow. I'd rather use an online service that | costs $0.01 per image but generates an image in a matter of | seconds than wait 1 minute for a free one. | cammikebrown wrote: | It takes 20-30 seconds on my M1 Pro with 32GB RAM. I'm not sure | I've seen anything faster online. | pavlov wrote: | I clocked 18 seconds for a 512*512 image, 25 steps, on a Mac | Studio with M1 Max and 32GB. | culi wrote: | FWIW I don't I've ever gotten a satisfactory result from | anything less than 50 steps | pavlov wrote: | Interesting. I didn't see an essential difference with | higher values, so I settled on 25. Maybe I'm just | impatient and my brain prefers more options even if | they're individually imperfect. | brnaftr361 wrote: | Depends on the diffuser you're using, the _a (ancestral) | diffusers are aberrant in that they can yield good | results with very low sample counts. I typically use 16 | samples and get reasonably good results, but it's highly | dependent on the prompt and settings as well. | city17 wrote: | On Replicate it takes maybe around 10-15 seconds. My M1 Pro | only has 16GB and 8 cores and takes about 1 minute, so maybe | the lower specs make quite a difference. | hunkins wrote: | You should be able to get a regular prompt to generate in 5 | seconds via https://mage.space. A100s under the hood. | Unlimited too. (Note: I am the creator) | Bolkan wrote: | Clickbait. I clicked on this link. Nothing happened. | dr_dshiv wrote: | Speed has a massive effect on how willing I am to play around and | develop better prompts. I can't wait a full minute for an image, | I just can't. | | What kind of computer specs would be required to generate typical | SD images in less than a second? | Art9681 wrote: | I built a Svelte frontend for my SD instance and occasionally | expose it to friends publicly. It runs on an old intel 6700k | with a 2080ti and ive tuned it to generate images in about 5 | seconds. The speed depends on various factors but you can | prototype with settings that can generate images as low as 3 | seconds and work your way up to more complex images. | cstejerean wrote: | I don't know about less than 1 second but I just picked up an | RTX 3090 Ti now that they're basically half off at Best Buy and | it's definitely fast enough for interactively playing with | prompts (single digit number of seconds). | | Probably overkill and could get away with something like a 3060 | or so, but the 24 GB of VRAM come in handy if you want to | generate larger images. I pushed it as high as 17 GB on some | recent runs. | sdflhasjd wrote: | Roughly 4-5 seconds for 512x512 at 50 samples on a 3090 Ti | selectodude wrote: | The nice thing about the M1 is that the GPU and CPU share RAM | so even though I have a 14" MacBook Pro, I also have a GPU | with 16GB of VRAM. I pushed as high as 11GB on images and the | fan didn't even turn on. | midwestemo wrote: | Have a 3060 and it's fine for me, took me ~8-9 secs to | produce it at default settings | skybrian wrote: | It takes a few seconds (haven't timed it), but I suggest doing | it online at dreamstudio.ai. Paying about one cent per image | isn't so bad. | lbotos wrote: | I was using https://www.coreweave.com/gpu-cloud-pricing the | A4000s here, with 20ish steps 512x512 and I think it was close | to a 1-2 s IIRC. There are some consumer cards that can get | close i'm sure with some tweaking of image size, steps and | other SD tuning. | brnaftr361 wrote: | My 3080 can turn a 16 sample Euler_a @ 512^2 in about 1.5s (9.7 | iterations/s). I've found you can yield pretty good results in | txt2img with the settings. And once you've found a good image | you can further iterate in img2img with loopback at | approximately the same rate. | | It's worth noting that I'm on a 5800X as well, I'm sure. | michaelchisari wrote: | > _iterate in img2img with loopback at approximately the same | rate._ | | What's the advantage of using img2img as opposed to iterating | on the seed value? | PetahNZ wrote: | You draw over the part of the image that is not ideal and | get it to infill it | theodric wrote: | Have they fixed it? I installed it in a virgin macOS 12.5 | instance on Wednesday and it didn't work at all | johnklos wrote: | Perhaps "Stable Diffusion on your ARM Mac in 1 click" would've | been a more helpful title. | hunkins wrote: | Love it. If you don't have an M1 Mac, or don't want to wait, | https://mage.space does unlimited generations currently. (Note: I | am the creator!) | MuffinFlavored wrote: | I feel like this can't be cheap to run? | hunkins wrote: | We're using GPU serverless (via banana.dev), so it's actually | not bad. Will have limits at some point, for now go wild. | stavros wrote: | Thanks for the shout, I've made something similar to yours | (https://phantasmagoria.stavros.io/) and I needed a GPU | backend. Trying out their sample script, it seems to take a | minute or so to just error out with "taskID doesn't exist" | or similar. Have you hit that issue too? | hunkins wrote: | They're very early in the space. Would recommend looping | back with them on Monday in their Discord. Haven't seen | that specific issues personally yet though. | stavros wrote: | Ah, thanks! I didn't notice their Discord, I'll join | right away. | fermentation wrote: | This is really cool and a fun way to try out this stuff I've been | hearing about. One thing that'd be cool is a "retry" button that | picks a different seed. My first attempt didn't turn out so great | (https://i.imgur.com/zV48hCV.png) | wasyl wrote: | Is there some comprehensive source about how to make the most of | Stable Diffusion? I find the examples on websites much better | than what I've been able to generate -- they more closely convey | the prompt and have less artifacts/clearly messed up parts | macrolime wrote: | I've found the stuff in the DALL*E 2 Prompt Book also works | well for Stable Diffusion | | https://dallery.gallery/the-dalle-2-prompt-book/ | | If one prompt doesn't work, try writing it in another way. | Sometimes it helps to write things in multiple ways in the same | prompt. | gedy wrote: | Agreed and wondering myself, DALL-E seemed to do a better job | of great looking images with brief prompts, but Stable | Diffusion seems to need more specific prompts. SD is free | though so would love to use it more. | Metricon wrote: | The reddit forum for StableDiffusion has a tag for prompts | where you can get a large number of detailed examples to use: | | https://www.reddit.com/r/StableDiffusion/?f=flair_name%3A%22... | | Also, this post refers to a large number of relevant tools to | use as well: | | https://www.reddit.com/r/StableDiffusion/comments/xcrm4d/use... | Nadya wrote: | When people call themselves "prompt engineers" it's only half | in jest. Half of generating something good is guiding the | program into generating something good. That means knowing the | right keywords to get specific styles or effects, a little bit | of luck, and sometimes generating a prompt several dozen times | and then creating variations from a seed once you find a | specific seed that generated something close to what you liked. | It's an iterative process and many of the fantastic images you | see weren't "first generations" but likely the 20th or so | generation after tons of trial and error working around a | specific prompt/idea. | | I'd recommend keeping a prompt list and finding what | does/doesn't work for what you're after. Try shuffling the | order of your prompt - the order of the tokens does matter! | Repeat a token twice, thrice, hell make a prompt with nothing | but the same token repeated 8 times. Play around with it! If | you find an image that's very close to what you want - start | generating variations of it. Make 20 different variations. Make | variations of the variations you like best. | | Also the seed is very important! If you find a seed that | generated a style you really liked take note of it. That seed | will likely generate more things in a similar style for similar | enough prompts. | | It's a semi-creative process and definitely takes some time | investment if you want great results. Sometimes you strike gold | and get lucky on your first generation - but that's rare. | notahacker wrote: | If someone turns artist names and the quirky-but useful bits | of prompting like 'Unreal Engine' as an image sharpener into | a Mac app with Instagram style filters they'll make some | money... | nickthegreek wrote: | I search Lexica.art for the style I want, copy the prompt | associated with the work and edit it my needs. | dharma1 wrote: | How long until on-device stable diffusion on new iOS devices? RAM | will be a bottleneck I guess ___________________________________________________________________ (page generated 2022-09-17 23:00 UTC)