Skip to main content

wrapImageModel

The wrapImageModel function provides a way to enhance the behavior of image models by wrapping them with middleware.

import { generateImage, wrapImageModel } from 'ai';
import { openai } from '@ai-sdk/openai';

const model = wrapImageModel({
  model: openai.image('gpt-image-2.5-sunburst'),
  middleware: yourImageModelMiddleware,
});

const { image } = await generateImage({
  model,
  prompt: 'Santa Claus driving a Cadillac',
});

Import

import { wrapImageModel } from "ai"

API Signature

Parameters

  • model (ImageModelV4): The original ImageModelV4 instance to be wrapped.
  • middleware (ImageModelV4Middleware | ImageModelV4Middleware[]): The middleware to be applied to the image model. When multiple middlewares are provided, the first middleware will transform the input first, and the last middleware will be wrapped directly around the model.
  • modelId (string): Optional custom model ID to override the original model's ID.
  • providerId (string): Optional custom provider ID to override the original model's provider.

Returns

A new ImageModelV4 instance with middleware applied. The wrapped model preserves the original model's supportsFileInputs and supportsMaskInputs capabilities by default. Middleware can override them with overrideSupportsFileInputs and overrideSupportsMaskInputs. Returning undefined from an override intentionally marks that capability as unknown.

const model = wrapImageModel({
  model: originalModel,
  middleware: {
    specificationVersion: 'v4',
    overrideSupportsFileInputs: () => true,
    overrideSupportsMaskInputs: () => false,
  },
});