Skip to content

Commit a0159ad

Browse files
authored
Support new fields for /v1/images/generation API (#530)
* add support for new image/generation api * fix one lint * add revised_prompt to response * fix lints * add CreateImageQualityStandard
1 parent a20eb08 commit a0159ad

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed

image.go

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,39 @@ const (
1313
CreateImageSize256x256 = "256x256"
1414
CreateImageSize512x512 = "512x512"
1515
CreateImageSize1024x1024 = "1024x1024"
16+
// dall-e-3 supported only.
17+
CreateImageSize1792x1024 = "1792x1024"
18+
CreateImageSize1024x1792 = "1024x1792"
1619
)
1720

1821
const (
1922
CreateImageResponseFormatURL = "url"
2023
CreateImageResponseFormatB64JSON = "b64_json"
2124
)
2225

26+
const (
27+
CreateImageModelDallE2 = "dall-e-2"
28+
CreateImageModelDallE3 = "dall-e-3"
29+
)
30+
31+
const (
32+
CreateImageQualityHD = "hd"
33+
CreateImageQualityStandard = "standard"
34+
)
35+
36+
const (
37+
CreateImageStyleVivid = "vivid"
38+
CreateImageStyleNatural = "natural"
39+
)
40+
2341
// ImageRequest represents the request structure for the image API.
2442
type ImageRequest struct {
2543
Prompt string `json:"prompt,omitempty"`
44+
Model string `json:"model,omitempty"`
2645
N int `json:"n,omitempty"`
46+
Quality string `json:"quality,omitempty"`
2747
Size string `json:"size,omitempty"`
48+
Style string `json:"style,omitempty"`
2849
ResponseFormat string `json:"response_format,omitempty"`
2950
User string `json:"user,omitempty"`
3051
}
@@ -39,8 +60,9 @@ type ImageResponse struct {
3960

4061
// ImageResponseDataInner represents a response data structure for image API.
4162
type ImageResponseDataInner struct {
42-
URL string `json:"url,omitempty"`
43-
B64JSON string `json:"b64_json,omitempty"`
63+
URL string `json:"url,omitempty"`
64+
B64JSON string `json:"b64_json,omitempty"`
65+
RevisedPrompt string `json:"revised_prompt,omitempty"`
4466
}
4567

4668
// CreateImage - API call to create an image. This is the main endpoint of the DALL-E API.

image_api_test.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,14 @@ func TestImages(t *testing.T) {
1919
defer teardown()
2020
server.RegisterHandler("/v1/images/generations", handleImageEndpoint)
2121
_, err := client.CreateImage(context.Background(), openai.ImageRequest{
22-
Prompt: "Lorem ipsum",
22+
Prompt: "Lorem ipsum",
23+
Model: openai.CreateImageModelDallE3,
24+
N: 1,
25+
Quality: openai.CreateImageQualityHD,
26+
Size: openai.CreateImageSize1024x1024,
27+
Style: openai.CreateImageStyleVivid,
28+
ResponseFormat: openai.CreateImageResponseFormatURL,
29+
User: "user",
2330
})
2431
checks.NoError(t, err, "CreateImage error")
2532
}

0 commit comments

Comments
 (0)