更新 VolcesImage 类,添加默认参数和模型类型定义
This commit is contained in:
		@@ -1,3 +1,11 @@
 | 
			
		||||
export const models = [
 | 
			
		||||
  'doubao-seedream-4-0-250828',
 | 
			
		||||
  'doubao-seedream-3-0-t2i-250415',
 | 
			
		||||
  'doubao-seededit-3-0-i2i-250628'
 | 
			
		||||
] as const;
 | 
			
		||||
 | 
			
		||||
export type VolcesImageModel = (typeof models)[number];
 | 
			
		||||
 | 
			
		||||
export class VolcesImage {
 | 
			
		||||
  apiUrl = 'https://ark.cn-beijing.volces.com/api/v3/images/generations';
 | 
			
		||||
  apiKey: string;
 | 
			
		||||
@@ -7,6 +15,27 @@ export class VolcesImage {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async generateImage(data: VolcesImageRequest): Promise<VolcesImageResponse> {
 | 
			
		||||
    if (!data.model) {
 | 
			
		||||
      data.model = models[0]; // 默认模型
 | 
			
		||||
    }
 | 
			
		||||
    if (data.stream === undefined) {
 | 
			
		||||
      data.stream = false; // 默认不使用流式返回
 | 
			
		||||
    }
 | 
			
		||||
    if (data.response_format === undefined) {
 | 
			
		||||
      data.response_format = 'url'; // 默认返回图片URL
 | 
			
		||||
    }
 | 
			
		||||
    if (data.size === undefined) {
 | 
			
		||||
      data.size = '2K'; // 默认生成2K图片
 | 
			
		||||
    }
 | 
			
		||||
    if (data.watermark === undefined) {
 | 
			
		||||
      data.watermark = false; // 默认不添加水印
 | 
			
		||||
    }
 | 
			
		||||
    if (data.sequential_image_generation === undefined) {
 | 
			
		||||
      data.sequential_image_generation = 'auto'; // 默认自动处理连续图像生成
 | 
			
		||||
    }
 | 
			
		||||
    if (data.sequential_image_generation === 'auto' && !data.sequential_image_generation_options) {
 | 
			
		||||
      data.sequential_image_generation_options = { max_images: 1 }; // 默认最多生成1张连续图像
 | 
			
		||||
    }
 | 
			
		||||
    const res = await fetch(this.apiUrl, {
 | 
			
		||||
      method: 'POST',
 | 
			
		||||
      headers: {
 | 
			
		||||
@@ -27,6 +56,7 @@ export type VolcesImageRequest = {
 | 
			
		||||
  sequential_image_generation_options?: {
 | 
			
		||||
    max_images?: number;
 | 
			
		||||
  };
 | 
			
		||||
  guidance_scale?: number; // 0-10,模型输出结果与prompt的一致程度,即生成图像的自由度;值越大,模型自由度越小,与用户输入的提示词相关性越强
 | 
			
		||||
  response_format?: 'url' | 'base64';
 | 
			
		||||
  size?: string; // 如 "2K"
 | 
			
		||||
  stream?: boolean;
 | 
			
		||||
@@ -43,3 +73,38 @@ export type VolcesImageResponse = {
 | 
			
		||||
  message?: string;
 | 
			
		||||
  [key: string]: any;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const size = [
 | 
			
		||||
  {
 | 
			
		||||
    name: '1:1',
 | 
			
		||||
    value: '2048x2048'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: '4:3',
 | 
			
		||||
    value: '2304x1728'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: '3:4',
 | 
			
		||||
    value: '1728x2304'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: '16:9',
 | 
			
		||||
    value: '2560x1440'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: '9:16',
 | 
			
		||||
    value: '1440x2560'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: '3:2',
 | 
			
		||||
    value: '2496x1664'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: '2:3',
 | 
			
		||||
    value: '1664x2496'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: '21:9',
 | 
			
		||||
    value: '3024x1296'
 | 
			
		||||
  }
 | 
			
		||||
];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user