Hacker News new | ask | show | jobs
by exsf0859 1267 days ago
In my opinion Draw Things is the best stable diffusion app currently available for macOS/iOS. It's free, it is available in the App Store, it manages downloading models and weights, it supports a wide selection of popular models as well as custom weights, and it supports inpainting, text2image, and image2image.

It has some oddities: it uses a sqlite database to store generated images rather than the more traditional files, and the UI is idiosyncratic. You have to follow the author's twitter feed to learn how to use the advanced features.

3 comments

It’s likely a function of building for iOS first and then porting to MacOS.
Storing images in the database is not a bad thing https://www.sqlite.org/fasterthanfs.html
Will storing thumbnails in a postgres database offer performance improvements as well?
Your link suggests this is the case for small images, thumbnails, not large images such as that typically produced by SD
SQLite has also measured the performance impact for storing larger BLOBs:

https://www.sqlite.org/intern-v-extern-blob.html

The verdict: storing blobs in the database is totally fine. Stable diffusion is totally compute bound, the overhead of storing a 1mb file in a sqlite db is miniscule.

That article also points to the paper https://www.microsoft.com/en-us/research/publication/to-blob..., the images produced by stable diffusion are about 500-600Kb in size. At this point it could be a similar performance or could be a little better or a little worse. I am not saying that it is better to store files in SQLite, just saying that nothing wrong with it, if those files are below 1Mb.
> I am not saying that it is better to store files in SQLite, just saying that nothing wrong with it, if those files are below 1Mb.

There is one very obvious thing wrong with it, the fact that those resulting images aren't files that are easily accessible to other things.

Unless storing in SQLite actually offers a real advantage in some other way, it's a disadvantage when the output is something you'll want to use with other tools.