My (very qualitative) feeling is that DALL-E 2 is good with composition and realism (e.g. generating photographs — you'll still get artefacts but it's less likely to look "computer graphics-y"), and is quite forgiving (you will usually end up with an image that makes sense).
Midjourney had a recent update and can now produce beautiful images with far more detail and realism than DALL-E 2 in some cases, especially for human and animal faces, but excels more on the computer art side of things. (Midjourney now has a community showcase gallery: https://www.midjourney.com/showcase/)
Stable Diffusion is a bit less forgiving than both, in my experience. Some people are able to create stunning images, but you have to invest more time into figuring out what works best.
I'm currently looking into taking images generated with DALL-E 2, then using them as a starting point for Stable Diffusion to add detail. It works partciualrly well for cartoon-style images.
For example:
- Original DALL-E 2 image of a horse in a city: https://i.imgur.com/CaNHHR7.jpeg
- That image used as a starting point for Stable Diffusion: https://i.imgur.com/EW1iKOO.png and https://i.imgur.com/VOQ35Oz.png
You can see it significantly cleans up the artefacts the original DALL-E 2 image had. (Note: the original DALL-E 2 image is 1024 pixels square, but Stable Diffusion generated a 512 square output.)
But Dall.e is often behind in terms of image quality. They are nice looking from far, but a bit more blurry or weird than stable diffusion if you look closely.
However you can use boths together. These days I tend to use stable diffusion first, but when a prompt is not going well I copy paste it in dall.e and get what I meant much easily. And then I import the dall.e generated image in stable diffusion to work it a bit more and get something a bit better looking.