> ## Documentation Index
> Fetch the complete documentation index at: https://www.edenai.co/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Image generation

> Image Generation is an advanced feature that generates compelling images based on a given text prompt.

export const TechArticleSchema = ({title, description, path, articleSection, about, proficiencyLevel = "Beginner", dependencies, keywords = [], datePublished, dateModified, image, inLanguage = "en"}) => {
  const baseUrl = "https://www.edenai.co/docs";
  const canonicalUrl = `${baseUrl}/${path}`.replace(/\/+$/, "");
  const ogParams = new URLSearchParams({
    division: articleSection || "",
    title: title || "",
    description: description || ""
  });
  const resolvedImage = image || `https://edenai.mintlify.app/_mintlify/api/og?${ogParams.toString()}`;
  const data = {
    "@context": "https://schema.org",
    "@type": "TechArticle",
    "@id": `${canonicalUrl}#techarticle`,
    mainEntityOfPage: {
      "@type": "WebPage",
      "@id": canonicalUrl
    },
    headline: title,
    name: title,
    description: description,
    url: canonicalUrl,
    inLanguage: inLanguage,
    isPartOf: {
      "@type": "WebSite",
      name: "Eden AI Documentation",
      url: baseUrl
    },
    author: [{
      "@type": "Organization",
      name: "Eden AI",
      url: "https://www.edenai.co/"
    }],
    publisher: {
      "@type": "Organization",
      name: "Eden AI",
      url: "https://www.edenai.co/",
      logo: {
        "@type": "ImageObject",
        url: "https://www.edenai.co/assets/logo.png"
      }
    }
  };
  if (articleSection) data.articleSection = articleSection;
  if (about) data.about = {
    "@type": "Thing",
    name: about
  };
  if (proficiencyLevel) data.proficiencyLevel = proficiencyLevel;
  if (dependencies) data.dependencies = dependencies;
  if (keywords && keywords.length) data.keywords = keywords;
  if (datePublished) data.datePublished = datePublished;
  if (dateModified) data.dateModified = dateModified;
  data.image = Array.isArray(resolvedImage) ? resolvedImage : [resolvedImage];
  const json = JSON.stringify(data);
  const schemaId = `techarticle-${canonicalUrl}`;
  React.useEffect(() => {
    if (typeof document === "undefined") return;
    document.querySelectorAll(`script[data-schema-id="${schemaId}"]`).forEach(n => n.remove());
    const script = document.createElement("script");
    script.type = "application/ld+json";
    script.dataset.schemaId = schemaId;
    script.textContent = json;
    document.head.appendChild(script);
    return () => script.remove();
  }, [json, schemaId]);
  return null;
};

<TechArticleSchema title={`Image generation`} description={`Image Generation is an advanced feature that generates compelling images based on a given text prompt.`} path="v3/expert-models/features/image/generation" articleSection="Image Features" about={`Image AI API`} proficiencyLevel="Intermediate" keywords={[`Eden AI`, `AI API`, `image analysis`, `computer vision`]} datePublished="2026-05-06T00:00:00Z" dateModified="2026-05-07T00:00:00Z" />

## Endpoint

`POST /v3/universal-ai` (sync)

Model string pattern: `image/generation/{provider}[/{model}]`

## Input

| Field       | Type   | Required | Description                                                                                                                                                                                                                                 |
| ----------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| text        | string | Yes      | Text prompt for image generation                                                                                                                                                                                                            |
| resolution  | string | No       | Image resolution as a named size (e.g. '1024x1024'). Optional: providers may also accept native sizing knobs (width/height, aspect\_ratio, image\_size tier, etc.) via `provider_params`, in which case `provider_params` takes precedence. |
| num\_images | int    | No       | Number of images to generate                                                                                                                                                                                                                |

## Output

| Field                | Type   | Required | Description |
| -------------------- | ------ | -------- | ----------- |
| image                | string | Yes      |             |
| image\_resource\_url | string | Yes      |             |

## Available Providers

| Provider                                    | Model String                                                 | Price                     |
| ------------------------------------------- | ------------------------------------------------------------ | ------------------------- |
| bytedance                                   | `image/generation/bytedance`                                 | \$0.03 per request        |
| bytedance (seedream-3-0-t2i-250415)         | `image/generation/bytedance/seedream-3-0-t2i-250415`         | \$0.03 per request        |
| bytedance (seedream-4-0-250828)             | `image/generation/bytedance/seedream-4-0-250828`             | \$0.03 per request        |
| bytedance (seedream-4-5-251128)             | `image/generation/bytedance/seedream-4-5-251128`             | \$0.03 per request        |
| bytedance (seedream-5-0-260128)             | `image/generation/bytedance/seedream-5-0-260128`             | \$0.035 per token         |
| leonardo (AlbedoBase XL)                    | `image/generation/leonardo/AlbedoBase XL`                    | \$0.017 per image         |
| leonardo                                    | `image/generation/leonardo`                                  | \$0.017 per image         |
| leonardo (Leonardo Anime XL)                | `image/generation/leonardo/Leonardo Anime XL`                | \$0.011 per image         |
| leonardo (Leonardo Diffusion XL)            | `image/generation/leonardo/Leonardo Diffusion XL`            | \$0.017 per image         |
| leonardo (Leonardo Kino XL)                 | `image/generation/leonardo/Leonardo Kino XL`                 | \$0.017 per image         |
| leonardo (Leonardo Lightning XL)            | `image/generation/leonardo/Leonardo Lightning XL`            | \$0.011 per image         |
| leonardo (Leonardo Phoenix)                 | `image/generation/leonardo/Leonardo Phoenix`                 | \$0.014 per image         |
| leonardo (Leonardo Vision XL)               | `image/generation/leonardo/Leonardo Vision XL`               | \$0.017 per image         |
| leonardo (SDXL 0.9)                         | `image/generation/leonardo/SDXL 0.9`                         | \$0.014 per image         |
| minimax                                     | `image/generation/minimax`                                   | \$0.0035 per image        |
| minimax (image-01)                          | `image/generation/minimax/image-01`                          | \$0.0035 per image        |
| openai (dall-e-2)                           | `image/generation/openai/dall-e-2`                           | \$0.018 per image         |
| openai (dall-e-3)                           | `image/generation/openai/dall-e-3`                           | \$0.08 per image          |
| openai                                      | `image/generation/openai`                                    | \$0.08 per image          |
| replicate (anime-style)                     | `image/generation/replicate/anime-style`                     | \$0.000225 per exec\_time |
| replicate (classic)                         | `image/generation/replicate/classic`                         | \$0.00115 per exec\_time  |
| replicate                                   | `image/generation/replicate`                                 | \$0.01 per request        |
| replicate (vintedois-diffusion)             | `image/generation/replicate/vintedois-diffusion`             | \$0.000225 per exec\_time |
| stabilityai                                 | `image/generation/stabilityai`                               | \$15 per 1,000 images     |
| stabilityai (stable-diffusion-xl-1024-v1-0) | `image/generation/stabilityai/stable-diffusion-xl-1024-v1-0` | \$15 per 1,000 images     |

## Quick Start

<CodeGroup>
  ```python Python theme={null}
  import requests

  url = "https://api.edenai.run/v3/universal-ai"
  headers = {
      "Authorization": "Bearer YOUR_API_KEY",
      "Content-Type": "application/json"
  }

  payload = {
      "model": "image/generation/bytedance",
      "input": {
          "text": "The quick brown fox jumps over the lazy dog."
      }
  }

  response = requests.post(url, headers=headers, json=payload)
  print(response.json())
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.edenai.run/v3/universal-ai \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "image/generation/bytedance",
      "input": {"text": "The quick brown fox jumps over the lazy dog."}
    }'
  ```
</CodeGroup>
