# Image
URL: /components/image
---
title: Image
description: Displays AI-generated images from the AI SDK.
path: elements/components/image
---
The `Image` component displays AI-generated images from the AI SDK. It accepts a [`Experimental_GeneratedImage`](/docs/reference/ai-sdk-core/generate-image) object from the AI SDK's `generateImage` function and automatically renders it as an image.
## Installation
## Usage
```tsx
import { Image } from "@/components/ai-elements/image";
```
```tsx
```
## Usage with AI SDK
Build a simple app allowing a user to generate an image given a prompt.
Install the `@ai-sdk/openai` package:
```package-install
npm i @ai-sdk/openai
```
Add the following component to your frontend:
```tsx title="app/page.tsx"
"use client";
import { Image } from "@/components/ai-elements/image";
import { Input, PromptInputTextarea, PromptInputSubmit } from "@/components/ai-elements/prompt-input";
import { useState } from "react";
import { Loader } from "@/components/ai-elements/loader";
const ImageDemo = () => {
const [prompt, setPrompt] = useState("A futuristic cityscape at sunset");
const [imageData, setImageData] = useState(null);
const [isLoading, setIsLoading] = useState(false);
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault();
if (!prompt.trim()) return;
setPrompt("");
setIsLoading(true);
try {
const response = await fetch("/api/image", {
method: "POST",
body: JSON.stringify({ prompt: prompt.trim() }),
});
const data = await response.json();
setImageData(data);
} catch (error) {
console.error("Error generating image:", error);
} finally {
setIsLoading(false);
}
};
return (
{imageData && (
)}
{isLoading &&
}
setPrompt(e.currentTarget.value)}
className="pr-12"
/>
);
};
export default ImageDemo;
```
Add the following route to your backend:
```ts title="app/api/image/route.ts"
import { openai } from "@ai-sdk/openai";
import { experimental_generateImage } from "ai";
export async function POST(req: Request) {
const { prompt }: { prompt: string } = await req.json();
const { image } = await experimental_generateImage({
model: openai.image("dall-e-3"),
prompt: prompt,
size: "1024x1024",
});
return Response.json({
base64: image.base64,
uint8Array: image.uint8Array,
mediaType: image.mediaType,
});
}
```
## Features
- Accepts `Experimental_GeneratedImage` objects directly from the AI SDK
- Automatically creates proper data URLs from base64-encoded image data
- Supports all standard HTML image attributes
- Responsive by default with `max-w-full h-auto` styling
- Customizable with additional CSS classes
- Includes proper TypeScript types for AI SDK compatibility
## Props
### ``