What should I include in an image generation prompt for better results?

Details that work
Include: subject, style (photorealistic, oil painting, sketch), lighting, camera angle, composition, and color palette. "A cat" produces random output. "A tabby cat sitting on a wooden table, warm sunlight, photorealistic, shallow depth of field" is much more specific.
Avoid common mistakes
Don't use "high quality" or "detailed"—these waste tokens without adding meaning. Don't assume the model understands complex concepts or relationships. Don't prompt in multiple languages unless the model supports it.
Test iteratively
Start with a baseline prompt, generate one image, then adjust one thing (add an adjective, change the style, adjust lighting). Note what changed. This builds intuition for what works with your specific API.
Know your model's language
Different models respond to different prompt styles. Some prefer natural sentences, others respond to lists. Check examples in your API's documentation to see how others structure working prompts.