Text-to-image generation explained