Skip to content

Commit 38edd99

Browse files
authored
Merge pull request #43 from matlab-deep-learning/size-check
move size check into arguments block
2 parents 9ea311b + a6c86c8 commit 38edd99

File tree

2 files changed

+14
-23
lines changed

2 files changed

+14
-23
lines changed

openAIImages.m

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,15 @@
9191
mustBeLessThanOrEqual(nvp.NumImages,10)} = 1
9292
nvp.Size (1,1) string {mustBeMember(nvp.Size, ["256x256", "512x512", ...
9393
"1024x1024", "1792x1024", ...
94-
"1024x1792"])} = "1024x1024"
94+
"1024x1792"]), ...
95+
mustBeValidSize(this,nvp.Size)} = "1024x1024"
9596
nvp.Quality (1,1) string {mustBeMember(nvp.Quality,["standard", "hd"])}
9697
nvp.Style (1,1) string {mustBeMember(nvp.Style,["vivid", "natural"])}
9798
end
9899

99100
endpoint = "https://api.openai.com/v1/images/generations";
100101

101102
validatePromptSize(this.ModelName, prompt)
102-
validateSizeNVP(this.ModelName, nvp.Size)
103103

104104
params = struct("prompt",prompt,...
105105
"model",this.ModelName,...
@@ -180,9 +180,9 @@
180180
nvp.MaskImagePath {mustBeValidFileType(nvp.MaskImagePath)}
181181
nvp.NumImages (1,1) {mustBePositive, mustBeInteger,...
182182
mustBeLessThanOrEqual(nvp.NumImages,10)} = 1
183-
nvp.Size (1,1) string {mustBeMember(nvp.Size,["256x256", ...
184-
"512x512", ...
185-
"1024x1024"])} = "1024x1024"
183+
nvp.Size (1,1) string {mustBeMember(nvp.Size,...
184+
["256x256", "512x512","1024x1024"]), ...
185+
mustBeValidSize(this,nvp.Size)} = "1024x1024"
186186
end
187187

188188
% For now, this is only supported for "dall-e-2"
@@ -241,8 +241,9 @@
241241
imagePath {mustBeValidFileType(imagePath)}
242242
nvp.NumImages (1,1) {mustBePositive, mustBeInteger,...
243243
mustBeLessThanOrEqual(nvp.NumImages,10)} = 1
244-
nvp.Size (1,1) string {mustBeMember(nvp.Size,["256x256", ...
245-
"512x512","1024x1024"])} = "1024x1024"
244+
nvp.Size (1,1) string {mustBeMember(nvp.Size,...
245+
["256x256", "512x512","1024x1024"]), ...
246+
mustBeValidSize(this,nvp.Size)} = "1024x1024"
246247
end
247248

248249
% For now, this is only supported for "dall-e-2"
@@ -308,20 +309,6 @@ function mustBeValidSize(this, imagesize)
308309
end
309310
end
310311

311-
function validateSizeNVP(model, size)
312-
if ismember(size,["1792x1024", "1024x1792"]) && model=="dall-e-2"
313-
error("llms:invalidOptionAndValueForModel", ...
314-
llms.utils.errorMessageCatalog.getMessage("llms:invalidOptionAndValueForModel", ...
315-
"Size", size, model));
316-
end
317-
318-
if ismember(size,["256x256", "512x512"]) && model=="dall-e-3"
319-
error("llms:invalidOptionAndValueForModel", ...
320-
llms.utils.errorMessageCatalog.getMessage("llms:invalidOptionAndValueForModel", ...
321-
"Size", size, model));
322-
end
323-
end
324-
325312
function validatePromptSize(model, prompt)
326313
numChars = numel(char(prompt));
327314
if model=="dall-e-3"

tests/topenAIImages.m

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@ function invalidOptionsGenerate(testCase)
4848
mdl = openAIImages(ApiKey="this-is-not-a-real-key", Model="dall-e-2");
4949
testCase.verifyError(@()generate(mdl, "cat", Quality="hd"), "llms:invalidOptionForModel")
5050
testCase.verifyError(@()generate(mdl, "cat", Style="natural"), "llms:invalidOptionForModel")
51-
testCase.verifyError(@()generate(mdl, "cat", Size="1024x1792"), "llms:invalidOptionAndValueForModel")
51+
testCase.verifyError(@()generate(mdl, "cat", Size="1024x1792"), "MATLAB:validators:mustBeMember")
5252
mdl = openAIImages(ApiKey="this-is-not-a-real-key", Model="dall-e-3");
53-
testCase.verifyError(@()generate(mdl, "cat", Size="256x256"), "llms:invalidOptionAndValueForModel")
53+
testCase.verifyError(@()generate(mdl, "cat", Size="256x256"), "MATLAB:validators:mustBeMember")
5454
testCase.verifyError(@()generate(mdl, "cat", NumImages=4), "llms:invalidOptionAndValueForModel")
5555
end
5656

@@ -201,6 +201,10 @@ function testThatImageIsReturned(testCase)
201201
"Input",{{ "prompt" "Size" "foo" }},...
202202
"Error","MATLAB:validators:mustBeMember"),...
203203
...
204+
"InvalidSizeForModel",struct( ...
205+
"Input",{{ "prompt" "Size" "1792x1024" }},...
206+
"Error","MATLAB:validators:mustBeMember"),...
207+
...
204208
"InvalidQualityOption",struct( ...
205209
"Input",{{ "prompt" "Quality" "foo" }},...
206210
"Error","MATLAB:validators:mustBeMember"),...

0 commit comments

Comments
 (0)