Skip to main content

GenerateImage

Generates images from prompts using an image model.

Signature​

func GenerateImage(ctx context.Context, opts GenerateImageOptions) (*GenerateImageResult, error)

GenerateImageOptions​

FieldTypeRequiredDescription
Modelprovider.ImageModelYesImage model implementation
PromptstringYesPrompt text
N*intNoNumber of images requested
SizestringNoProvider image size string
AspectRatiostringNoAspect ratio string
Seed*intNoDeterministic seed
QualitystringNoProvider quality setting
StylestringNoProvider style setting
Files[]provider.ImageFileNoInput files for edit/variation flows
Mask*provider.ImageFileNoOptional mask file
Headersmap[string]stringNoExtra request headers
MaxImagesPerCallintNoOverride the model's per-call image limit for automatic batching
MaxRetries*intNoMaximum retries per image model call; defaults to 2, set to 0 to disable
ProviderOptionsmap[string]interface{}NoProvider-specific options

GenerateImageResult​

FieldTypeDescription
Imagetypes.GeneratedFileFirst generated image
Images[]types.GeneratedFileAll generated images
Warnings[]types.WarningProvider warnings
Responses[]*types.ResponseMetadataProvider response metadata entries
ProviderMetadatamap[string]interface{}Provider-specific metadata
Usagetypes.ImageUsageImage generation usage metrics

GeneratedFile.Data contains binary image bytes. When a provider returns base64 image strings, GenerateImage decodes them into GeneratedFile.Data so JSON encoding of the result preserves the provider base64 value instead of double-encoding it.

Example​

result, err := ai.GenerateImage(ctx, ai.GenerateImageOptions{
Model: imageModel,
Prompt: "A serene landscape at sunset",
})
if err != nil {
// handle
}

_ = os.WriteFile("output.png", result.Image.Data, 0644)