GenerateImage
Generates images from prompts using an image model.
Signature
func GenerateImage(ctx context.Context, opts GenerateImageOptions) (*GenerateImageResult, error)
GenerateImageOptions
| Field | Type | Required | Description |
|---|---|---|---|
Model | provider.ImageModel | Yes | Image model implementation |
Prompt | string | Yes | Prompt text |
N | *int | No | Number of images requested |
Size | string | No | Provider image size string |
AspectRatio | string | No | Aspect ratio string |
Seed | *int | No | Deterministic seed |
Quality | string | No | Provider quality setting |
Style | string | No | Provider style setting |
Files | []provider.ImageFile | No | Input files for edit/variation flows |
Mask | *provider.ImageFile | No | Optional mask file |
Headers | map[string]string | No | Extra request headers |
MaxImagesPerCall | int | No | Override the model's per-call image limit for automatic batching |
MaxRetries | *int | No | Maximum retries per image model call; defaults to 2, set to 0 to disable |
ProviderOptions | map[string]interface{} | No | Provider-specific options |
GenerateImageResult
| Field | Type | Description |
|---|---|---|
Image | types.GeneratedFile | First generated image |
Images | []types.GeneratedFile | All generated images |
Warnings | []types.Warning | Provider warnings |
Responses | []*types.ResponseMetadata | Provider response metadata entries |
ProviderMetadata | map[string]interface{} | Provider-specific metadata |
Usage | types.ImageUsage | Image 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)