diff --git a/api-report/genai-node.api.md b/api-report/genai-node.api.md index acf596884..affa66d28 100644 --- a/api-report/genai-node.api.md +++ b/api-report/genai-node.api.md @@ -1578,6 +1578,7 @@ export interface GenerateVideosConfig { personGeneration?: string; pubsubTopic?: string; referenceImages?: VideoGenerationReferenceImage[]; + resizeMode?: ImageResizeMode; resolution?: string; seed?: number; } @@ -2082,6 +2083,12 @@ export enum ImagePromptLanguage { zh = "zh" } +// @public +export enum ImageResizeMode { + CROP = "CROP", + PAD = "PAD" +} + // @public export interface ImageSearch { } diff --git a/api-report/genai-web.api.md b/api-report/genai-web.api.md index acf596884..affa66d28 100644 --- a/api-report/genai-web.api.md +++ b/api-report/genai-web.api.md @@ -1578,6 +1578,7 @@ export interface GenerateVideosConfig { personGeneration?: string; pubsubTopic?: string; referenceImages?: VideoGenerationReferenceImage[]; + resizeMode?: ImageResizeMode; resolution?: string; seed?: number; } @@ -2082,6 +2083,12 @@ export enum ImagePromptLanguage { zh = "zh" } +// @public +export enum ImageResizeMode { + CROP = "CROP", + PAD = "PAD" +} + // @public export interface ImageSearch { } diff --git a/api-report/genai.api.md b/api-report/genai.api.md index acf596884..affa66d28 100644 --- a/api-report/genai.api.md +++ b/api-report/genai.api.md @@ -1578,6 +1578,7 @@ export interface GenerateVideosConfig { personGeneration?: string; pubsubTopic?: string; referenceImages?: VideoGenerationReferenceImage[]; + resizeMode?: ImageResizeMode; resolution?: string; seed?: number; } @@ -2082,6 +2083,12 @@ export enum ImagePromptLanguage { zh = "zh" } +// @public +export enum ImageResizeMode { + CROP = "CROP", + PAD = "PAD" +} + // @public export interface ImageSearch { } diff --git a/src/converters/_models_converters.ts b/src/converters/_models_converters.ts index 1ffca6c53..cdf2f8171 100644 --- a/src/converters/_models_converters.ts +++ b/src/converters/_models_converters.ts @@ -2771,6 +2771,10 @@ export function generateVideosConfigToMldev( throw new Error('labels parameter is not supported in Gemini API.'); } + if (common.getValueByPath(fromObject, ['resizeMode']) !== undefined) { + throw new Error('resizeMode parameter is not supported in Gemini API.'); + } + return toObject; } @@ -2944,6 +2948,15 @@ export function generateVideosConfigToVertex( common.setValueByPath(parentObject, ['labels'], fromLabels); } + const fromResizeMode = common.getValueByPath(fromObject, ['resizeMode']); + if (parentObject !== undefined && fromResizeMode != null) { + common.setValueByPath( + parentObject, + ['parameters', 'resizeMode'], + fromResizeMode, + ); + } + return toObject; } diff --git a/src/types.ts b/src/types.ts index 6b61621c2..4b3675f17 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1188,6 +1188,20 @@ export enum VideoCompressionQuality { LOSSLESS = 'LOSSLESS', } +/** Resize mode for the image input for video generation. */ +export enum ImageResizeMode { + /** + * Crop the image to fit the correct aspect ratio (so we lose parts + of the image in the process). + */ + CROP = 'CROP', + /** + * Pad the image to fit the correct aspect ratio (so we don't lose + any parts of the image in the process). + */ + PAD = 'PAD', +} + /** Enum representing the tuning method. */ export enum TuningMethod { /** @@ -4534,6 +4548,8 @@ export declare interface GenerateVideosConfig { compressionQuality?: VideoCompressionQuality; /** User specified labels to track billing usage. */ labels?: Record; + /** Resize mode of the image input for video generation. */ + resizeMode?: ImageResizeMode; } /** Class that represents the parameters for generating videos. */