| 1 | /** |
| 2 | * 图片生成尺寸选项 |
| 3 | */ |
| 4 | export type GeminiImageSize = '0.5K' | '1K' | '2K' | '4K' |
| 5 | |
| 6 | /** |
| 7 | * 图片生成宽高比选项 |
| 8 | */ |
| 9 | export type GeminiImageAspectRatio = '1:1' | '2:3' | '3:2' | '3:4' | '4:3' | '4:5' | '5:4' | '9:16' | '16:9' | '21:9' |
| 10 | export type GeminiImageModel = 'gemini-3.1-flash-image-preview' | 'gemini-3-pro-image-preview' |
| 11 | |
| 12 | /** |
| 13 | * 图片 token 明细(按模态) |
| 14 | */ |
| 15 | export interface GeminiModalityTokenDetails { |
| 16 | text?: number |
| 17 | image?: number |
| 18 | audio?: number |
| 19 | video?: number |
| 20 | } |
| 21 | |
| 22 | /** |
| 23 | * 图片生成请求参数 |
| 24 | */ |
| 25 | export interface GeminiImageGenerateRequest { |
| 26 | prompt: string |
| 27 | imageUrls?: string[] |
| 28 | imageSize?: GeminiImageSize |
| 29 | aspectRatio?: GeminiImageAspectRatio |
| 30 | model?: GeminiImageModel |
| 31 | } |
| 32 | |
| 33 | /** |
| 34 | * 单张图片数据 |
| 35 | */ |
| 36 | export interface GeminiGeneratedImage { |
| 37 | imageData: Buffer |
| 38 | mimeType: string |
| 39 | } |
| 40 | |
| 41 | /** |
| 42 | * 图片生成 Usage 信息 |
| 43 | */ |
| 44 | export interface GeminiImageUsage { |
| 45 | promptTokenCount: number |
| 46 | candidatesTokenCount: number |
| 47 | totalTokenCount: number |
| 48 | inputTokenDetails?: GeminiModalityTokenDetails |
| 49 | outputTokenDetails?: GeminiModalityTokenDetails |
| 50 | } |
| 51 | |
| 52 | /** |
| 53 | * 图片生成响应 |
| 54 | */ |
| 55 | export interface GeminiImageGenerateResponse { |
| 56 | images: GeminiGeneratedImage[] |
| 57 | usage?: GeminiImageUsage |
| 58 | } |
| 59 |