---
title: Image Generation
description: Generate images with AI on elizaOS Cloud using the configured image model catalog.
---
# Image Generation
Generate high-quality images from text prompts using state-of-the-art AI models.
## Overview
elizaOS Cloud provides image generation through the configured image provider
catalog. See the [Images API reference](/cloud/api/images) or API Explorer for
current models and defaults.
## Quick Start
### Dashboard
Navigate to [Dashboard → Images](https://elizacloud.ai/dashboard/image) for the visual interface.
### API
```bash
curl -X POST "https://elizacloud.ai/api/v1/generate-image" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A futuristic cityscape at sunset, cyberpunk style",
"model": "google/nano-banana-2/text-to-image",
"aspectRatio": "16:9",
"numImages": 1
}'
```
```javascript
const response = await fetch('https://elizacloud.ai/api/v1/generate-image', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
prompt: 'A futuristic cityscape at sunset, cyberpunk style',
model: 'google/nano-banana-2/text-to-image',
aspectRatio: '16:9',
numImages: 1,
}),
});
const result = await response.json();
console.log(result.images[0].url);
```
```python
import requests
response = requests.post(
'https://elizacloud.ai/api/v1/generate-image',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
json={
'prompt': 'A futuristic cityscape at sunset, cyberpunk style',
'model': 'google/nano-banana-2/text-to-image',
'aspectRatio': '16:9',
'numImages': 1,
},
)
result = response.json()
print(result['images'][0]['url'])
```
### Response
```json
{
"images": [
{
"url": "https://your-storage.vercel-storage.com/images/abc123.webp",
"text": "Optional model response text",
"mimeType": "image/webp",
"fileSize": 102400
}
],
"numImages": 1
}
```
## Available Models
Model availability and defaults are documented in the canonical
[Images API reference](/cloud/api/images). Use that page or the API Explorer for
the current model catalog and pricing-sensitive defaults.
## Request Parameters
| Parameter | Type | Required | Description |
| --------------- | ------- | -------- | --------------------------------------------------------- |
| `prompt` | string | ✓ | Text description of the image |
| `model` | string | | Model to use (default: `google/nano-banana-2/text-to-image`) |
| `aspectRatio` | string | | Output aspect ratio (default: `1:1`) |
| `numImages` | integer | | Number of images (1-4, default: 1) |
| `stylePreset` | string | | Style preset to apply |
| `sourceImage` | string | | Base64 data URL for image-to-image |
### Available Aspect Ratios
| Aspect Ratio | Description |
| ------------ | -------------------- |
| `1:1` | Square (default) |
| `16:9` | Wide landscape |
| `9:16` | Tall portrait |
| `4:3` | Standard landscape |
| `3:4` | Standard portrait |
| `21:9` | Ultra-wide cinematic |
| `9:21` | Ultra-tall vertical |
### Style Presets
| Preset | Description |
| ---------------- | --------------------------------- |
| `none` | No style modification (default) |
| `photographic` | Realistic lighting and details |
| `digital-art` | Vibrant colors, modern aesthetics |
| `comic-book` | Bold lines, dramatic shading |
| `fantasy-art` | Magical and ethereal elements |
| `analog-film` | Film grain and vintage tones |
| `neon-punk` | Cyberpunk style with neon colors |
| `cinematic` | Dramatic lighting and composition |
## Image-to-Image Generation
Transform existing images by providing a `sourceImage` parameter:
```javascript
const response = await fetch("https://elizacloud.ai/api/v1/generate-image", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
prompt: "Transform this into a watercolor painting",
sourceImage: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
}),
});
```
## Prompt Engineering
### Basic Structure
```
[Subject] [Style] [Details] [Lighting] [Mood]
```
### Example Prompts
**Photorealistic:**
```json
{
"prompt": "Professional headshot of a business executive, studio lighting, neutral background, sharp focus",
"stylePreset": "photographic"
}
```
**Artistic:**
```json
{
"prompt": "Enchanted forest with glowing mushrooms, magical atmosphere, soft moonlight filtering through trees",
"stylePreset": "fantasy-art"
}
```
**Product:**
```json
{
"prompt": "Modern smartphone on white background, professional product photography, soft shadows",
"aspectRatio": "4:3"
}
```
## Best Practices
- **Be specific**: Include details about style, lighting, composition
- **Use style presets**: For consistent results across generations
- **Iterate**: Generate multiple images and refine your prompt
- **Aspect ratio matters**: Choose based on your use case
## Error Handling
| Code | Error | Solution |
| ---- | -------------------- | ------------------------------ |
| 400 | Invalid prompt | Ensure prompt is non-empty |
| 400 | Invalid model | Use a supported model |
| 402 | Insufficient credits | Add credits to your account |
| 429 | Rate limited | Wait and retry |
| 500 | Generation failed | Retry or try a different model |
## Next Steps
Complete API documentation
View and manage your images
Generate videos from text