or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

configuration.mdembeddings.mdimage-generation.mdindex.mdlanguage-models.mdtranscription.md
tile.json

image-generation.mddocs/

Image Generation

Image generation functionality using Azure OpenAI's DALL-E models for creating images from text descriptions. Supports various image sizes, quality settings, and style options.

Capabilities

Image Model (Current)

Creates Azure OpenAI DALL-E models for image generation.

/**
 * Creates an Azure OpenAI DALL-E model for image generation
 * @param deploymentId - Azure OpenAI DALL-E deployment name (e.g., "dall-e-3")
 * @param settings - Optional image generation settings
 * @returns Image model instance for generating images from text descriptions
 */
imageModel(deploymentId: string, settings?: OpenAIImageSettings): ImageModelV1;

Usage Example:

import { azure } from "@ai-sdk/azure";
import { generateImage } from "ai";

const imageModel = azure.imageModel("dall-e-3");

const { image } = await generateImage({
  model: imageModel,
  prompt: "A serene mountain landscape at sunset with a crystal clear lake reflecting the colorful sky",
  size: "1024x1024",
  providerOptions: {
    openai: {
      quality: "hd",
      style: "vivid",
    },
  },
});

console.log("Generated image URL:", image.url);
console.log("Image dimensions:", image.width, "x", image.height);

Deprecated Image Method

This method is deprecated and will be removed in future versions. Use imageModel instead.

/**
 * @deprecated Use imageModel instead
 * Creates an Azure OpenAI DALL-E model for image generation
 */
image(deploymentId: string, settings?: OpenAIImageSettings): ImageModelV1;

Settings Type

interface OpenAIImageSettings {
  maxImagesPerCall?: number;
}

Additional DALL-E parameters are passed via providerOptions.openai in the generateImage() call:

// OpenAI-specific options passed via providerOptions.openai
interface OpenAIImageOptions {
  style?: "vivid" | "natural"; // DALL-E 3 only
  quality?: "standard" | "hd" | "high";
  response_format?: "url" | "b64_json";
  user?: string;
}

// Core AI SDK parameters for generateImage()
interface ImageGenerationOptions {
  prompt: string;
  n?: number;
  size?: "256x256" | "512x512" | "1024x1024" | "1792x1024" | "1024x1792";
  headers?: Record<string, string>;
  providerOptions?: {
    openai?: OpenAIImageOptions;
  };
}

Advanced Usage Examples

Batch Image Generation

import { azure } from "@ai-sdk/azure";
import { generateImage } from "ai";

const imageModel = azure.imageModel("dall-e-3");

const prompts = [
  "A futuristic city skyline with flying cars and neon lights",
  "A peaceful garden with cherry blossoms and a wooden bridge",
  "An abstract geometric pattern in blue and gold colors",
];

const images = await Promise.all(
  prompts.map(async (prompt) => {
    const { image } = await generateImage({
      model: imageModel,
      prompt,
    });
    return { prompt, image };
  })
);

images.forEach(({ prompt, image }, index) => {
  console.log(`Image ${index + 1}: ${prompt}`);
  console.log(`URL: ${image.url}`);
  console.log(`Size: ${image.width}x${image.height}`);
  console.log("---");
});

High-Quality Portrait Generation

import { azure } from "@ai-sdk/azure";
import { generateImage } from "ai";

const portraitModel = azure.imageModel("dall-e-3");

const { image } = await generateImage({
  model: portraitModel,
  prompt: "Professional headshot of a confident business executive, studio lighting, neutral background, high quality photography",
  size: "1024x1024",
  providerOptions: {
    openai: {
      quality: "hd",
      style: "natural", // More realistic for portraits
    },
  },
});

console.log("High-quality portrait generated:", image.url);

Artistic Style Generation

import { azure } from "@ai-sdk/azure";
import { generateImage } from "ai";

const artisticModel = azure.imageModel("dall-e-3");

const { image } = await generateImage({
  model: artisticModel,
  prompt: "Van Gogh style painting of a starry night over a modern city, swirling clouds, vibrant colors, impressionist brushstrokes",
  size: "1792x1024", // Wide format for landscape
  providerOptions: {
    openai: {
      quality: "hd",
      style: "vivid", // More artistic and stylized
    },
  },
});

console.log("Artistic image generated:", image.url);
console.log("Dimensions:", image.width, "x", image.height);

Base64 Image Generation

import { azure } from "@ai-sdk/azure";
import { generateImage } from "ai";
import { writeFileSync } from "fs";

const imageModel = azure.imageModel("dall-e-3");

const { image } = await generateImage({
  model: imageModel,
  prompt: "A detailed technical diagram showing the components of a solar panel system",
  size: "1024x1024",
  providerOptions: {
    openai: {
      response_format: "b64_json", // Return base64 instead of URL
    },
  },
});

if (image.base64) {
  // Save the image locally
  const buffer = Buffer.from(image.base64, "base64");
  writeFileSync("solar-panel-diagram.png", buffer);
  console.log("Image saved as solar-panel-diagram.png");
} else {
  console.log("Image URL:", image.url);
}

Image Generation with Error Handling

import { azure } from "@ai-sdk/azure";
import { generateImage } from "ai";

const imageModel = azure.imageModel("dall-e-3");

async function generateImageSafely(prompt: string) {
  try {
    const { image } = await generateImage({
      model: imageModel,
      prompt,
    });
    
    return {
      success: true,
      image,
      error: null,
    };
  } catch (error) {
    console.error("Image generation failed:", error);
    
    return {
      success: false,
      image: null,
      error: error instanceof Error ? error.message : "Unknown error",
    };
  }
}

// Safe image generation
const result = await generateImageSafely(
  "A photograph that might violate content policy"
);

if (result.success) {
  console.log("Image generated successfully:", result.image.url);
} else {
  console.log("Image generation failed:", result.error);
}

Model Integration

Image models implement the ImageModelV1 interface and are compatible with AI SDK image generation functions:

  • generateImage() - Generate single image from text prompt

The generated images include metadata such as dimensions, URLs (or base64 data), and can be used immediately in applications or saved for later use.

Content Policy

Azure OpenAI's DALL-E models have content policies that restrict generation of:

  • Inappropriate or offensive content
  • Copyrighted material
  • Images of real people (unless generic/artistic)
  • Violence or disturbing imagery

Ensure your prompts comply with Azure OpenAI's usage policies to avoid generation failures.