Skip to content

Commit 5476389

Browse files
committed
add support for gpt-image-1-mini
1 parent b73764d commit 5476389

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

src/backend/src/modules/puterai/OpenAIImageGenerationService.js

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,17 @@ class OpenAIImageGenerationService extends BaseService {
4242

4343
_construct() {
4444
this.models_ = {
45+
'gpt-image-1-mini': {
46+
'low:1024x1024': 0.005,
47+
'low:1024x1536': 0.006,
48+
'low:1536x1024': 0.006,
49+
'medium:1024x1024': 0.011,
50+
'medium:1024x1536': 0.015,
51+
'medium:1536x1024': 0.015,
52+
'high:1024x1024': 0.036,
53+
'high:1024x1536': 0.052,
54+
'high:1536x1024': 0.052,
55+
},
4556
'gpt-image-1': {
4657
'low:1024x1024': 0.011,
4758
'low:1024x1536': 0.016,
@@ -247,6 +258,9 @@ class OpenAIImageGenerationService extends BaseService {
247258
* @private
248259
*/
249260
_getValidQualities(model) {
261+
if ( model === 'gpt-image-1-mini' ) {
262+
return ['low', 'medium', 'high'];
263+
}
250264
if ( model === 'gpt-image-1' ) {
251265
return ['low', 'medium', 'high'];
252266
}
@@ -269,8 +283,8 @@ class OpenAIImageGenerationService extends BaseService {
269283
* @private
270284
*/
271285
_buildPriceKey(model, quality, size) {
272-
if ( model === 'gpt-image-1' ) {
273-
// gpt-image-1 uses format: "quality:size" - default to low if not specified
286+
if ( model === 'gpt-image-1' || model === 'gpt-image-1-mini' ) {
287+
// gpt-image-1 and gpt-image-1-mini use format: "quality:size" - default to low if not specified
274288
const qualityLevel = quality || 'low';
275289
return `${qualityLevel}:${size}`;
276290
} else {
@@ -293,7 +307,7 @@ class OpenAIImageGenerationService extends BaseService {
293307
size: baseParams.size,
294308
};
295309

296-
if ( model === 'gpt-image-1' ) {
310+
if ( model === 'gpt-image-1' || model === 'gpt-image-1-mini' ) {
297311
// gpt-image-1 requires the model parameter and uses different quality mapping
298312
apiParams.model = model;
299313
// Default to low quality if not specified, consistent with _buildPriceKey
@@ -318,7 +332,7 @@ class OpenAIImageGenerationService extends BaseService {
318332
_getValidRatios(model) {
319333
const commonRatios = [this.constructor.RATIO_SQUARE];
320334

321-
if ( model === 'gpt-image-1' ) {
335+
if ( model === 'gpt-image-1' || model === 'gpt-image-1-mini' ) {
322336
return [
323337
...commonRatios,
324338
this.constructor.RATIO_GPT_PORTRAIT,

src/backend/src/services/MeteringService/costMaps/openaiImageCostMap.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,15 @@ export const OPENAI_IMAGE_COST_MAP = {
2929
'openai:gpt-image-1:high:1024x1024': toMicroCents(0.167),
3030
'openai:gpt-image-1:high:1024x1536': toMicroCents(0.25),
3131
'openai:gpt-image-1:high:1536x1024': toMicroCents(0.25),
32+
33+
// gpt-image-1-mini
34+
'openai:gpt-image-1-mini:low:1024x1024': toMicroCents(0.005),
35+
'openai:gpt-image-1-mini:low:1024x1536': toMicroCents(0.006),
36+
'openai:gpt-image-1-mini:low:1536x1024': toMicroCents(0.006),
37+
'openai:gpt-image-1-mini:medium:1024x1024': toMicroCents(0.011),
38+
'openai:gpt-image-1-mini:medium:1024x1536': toMicroCents(0.015),
39+
'openai:gpt-image-1-mini:medium:1536x1024': toMicroCents(0.015),
40+
'openai:gpt-image-1-mini:high:1024x1024': toMicroCents(0.036),
41+
'openai:gpt-image-1-mini:high:1024x1536': toMicroCents(0.052),
42+
'openai:gpt-image-1-mini:high:1536x1024': toMicroCents(0.052),
3243
};

0 commit comments

Comments
 (0)