MCPcopy Create free account
hub / github.com/TanStack/ai / generateImages

Method generateImages

packages/ai-openai/src/adapters/image.ts:76–178  ·  view source on GitHub ↗
(
    options: ImageGenerationOptions<OpenAIImageProviderOptions>,
  )

Source from the content-addressed store, hash-verified

74 }
75
76 async generateImages(
77 options: ImageGenerationOptions<OpenAIImageProviderOptions>,
78 ): Promise<ImageGenerationResult> {
79 const { model, numberOfImages, size, modelOptions } = options
80
81 const resolved = resolveMediaPrompt(options.prompt)
82 const prompt = resolved.text
83
84 validatePrompt({ prompt, model })
85 validateImageSize(model, size)
86 validateNumberOfImages(model, numberOfImages)
87
88 if (resolved.videos.length > 0) {
89 throw new Error(
90 `${this.name}.generateImages does not support video prompt parts (model: ${model}).`,
91 )
92 }
93 if (resolved.audios.length > 0) {
94 throw new Error(
95 `${this.name}.generateImages does not support audio prompt parts (model: ${model}).`,
96 )
97 }
98
99 if (resolved.images.length > 0) {
100 return this.editImages({
101 model: model as OpenAIImageModel,
102 prompt,
103 numberOfImages,
104 size,
105 modelOptions,
106 imageInputs: resolved.images,
107 logger: options.logger,
108 })
109 }
110
111 // With exactOptionalPropertyTypes, vendor SDK request shapes reject
112 // `T | undefined` in optional fields. Build the request incrementally and
113 // only set `size` when it's actually defined.
114 const request: OpenAI_SDK.Images.ImageGenerateParams = {
115 model,
116 prompt,
117 n: numberOfImages ?? 1,
118 ...(modelOptions ?? {}),
119 }
120 if (size !== undefined) {
121 request.size = size
122 }
123
124 try {
125 options.logger.request(
126 `activity=image provider=${this.name} model=${model} n=${request.n ?? 1} size=${request.size ?? 'default'}`,
127 { provider: this.name, model },
128 )
129 const response = await this.client.images.generate({
130 ...request,
131 stream: false,
132 })
133

Callers 1

Calls 11

editImagesMethod · 0.95
resolveMediaPromptFunction · 0.90
validatePromptFunction · 0.90
validateImageSizeFunction · 0.90
validateNumberOfImagesFunction · 0.90
buildImagesUsageFunction · 0.90
generateIdFunction · 0.90
toRunErrorPayloadFunction · 0.85
errorsMethod · 0.80
generateMethod · 0.65
requestMethod · 0.45

Tested by

no test coverage detected