Skip to content

Image Generation

Set apiType: image and pick a DALL-E model. Image options go in model.options.additionalProperties:

image-gen.prompty
---
name: image-gen
description: Generate images from text descriptions
model:
id: dall-e-3
provider: openai
apiType: image
connection:
kind: key
apiKey: ${env:OPENAI_API_KEY}
options:
additionalProperties:
size: "1024x1024"
quality: standard
style: vivid
inputs:
- name: prompt
kind: string
default: A serene mountain landscape at sunset
---
{{prompt}}

invoke() returns the generated image URL:

from prompty import invoke
url = invoke("image-gen.prompty", inputs={
"prompt": "A cat astronaut floating in space, digital art"
})
print(url) # https://oaidalleapiprodscus.blob.core.windows.net/...

All options live under model.options.additionalProperties:

OptionValuesDefault
size1024x1024, 1792x1024, 1024x17921024x1024
qualitystandard, hdstandard
stylevivid, naturalvivid
OptionValuesDefault
size256x256, 512x512, 1024x10241024x1024
n1101

Same pattern — switch provider and connection:

image-gen-azure.prompty
---
name: azure-image-gen
model:
id: ${env:AZURE_OPENAI_IMAGE_DEPLOYMENT}
provider: azure
apiType: image
connection:
kind: key
endpoint: ${env:AZURE_OPENAI_ENDPOINT}
apiKey: ${env:AZURE_OPENAI_API_KEY}
options:
additionalProperties:
size: "1024x1024"
quality: standard
inputs:
- name: prompt
kind: string
---
{{prompt}}

The calling code is identical — only the .prompty file changes.