# 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 Example generated image ``` ## 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 && (
Generated image
)} {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 ### ``