@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
145 lines (138 loc) • 5.13 kB
text/typescript
import { ModelParamsSchema, PRESET_ASPECT_RATIOS } from '../standard-parameters';
import { AIImageModelCard } from '../types';
// https://docs.bfl.ai/api-reference/tasks/edit-or-create-an-image-with-flux-kontext-pro
// official support 21:9 ~ 9:21 (ratio 0.43 ~ 2.33)
const calculateRatio = (aspectRatio: string): number => {
const [width, height] = aspectRatio.split(':').map(Number);
return width / height;
};
const defaultAspectRatios = PRESET_ASPECT_RATIOS.filter((ratio) => {
const value = calculateRatio(ratio);
// BFL API supports ratio range: 21:9 ~ 9:21 (approximately 0.43 ~ 2.33)
// Use a small tolerance for floating point comparison
return value >= 9 / 21 - 0.001 && value <= 21 / 9 + 0.001;
});
const fluxKontextSeriesParamsSchema: ModelParamsSchema = {
aspectRatio: {
default: '1:1',
enum: defaultAspectRatios,
},
imageUrls: {
default: [],
},
prompt: { default: '' },
seed: { default: null },
};
const imageModels: AIImageModelCard[] = [
// https://docs.bfl.ai/api-reference/tasks/edit-or-create-an-image-with-flux-kontext-pro
{
description: '最先进的上下文图像生成和编辑——结合文本和图像以获得精确、连贯的结果。',
displayName: 'FLUX.1 Kontext [pro]',
enabled: true,
id: 'flux-kontext-pro',
parameters: fluxKontextSeriesParamsSchema,
// check: https://bfl.ai/pricing
pricing: {
units: [{ name: 'imageGeneration', rate: 0.04, strategy: 'fixed', unit: 'image' }],
},
releasedAt: '2025-05-29',
type: 'image',
},
// https://docs.bfl.ai/api-reference/tasks/edit-or-create-an-image-with-flux-kontext-max
{
description: '最先进的上下文图像生成和编辑——结合文本和图像以获得精确、连贯的结果。',
displayName: 'FLUX.1 Kontext [max]',
enabled: true,
id: 'flux-kontext-max',
parameters: fluxKontextSeriesParamsSchema,
pricing: {
units: [{ name: 'imageGeneration', rate: 0.08, strategy: 'fixed', unit: 'image' }],
},
releasedAt: '2025-05-29',
type: 'image',
},
// https://docs.bfl.ai/api-reference/tasks/generate-an-image-with-flux-11-[pro]
{
description: '升级版专业级AI图像生成模型——提供卓越的图像质量和精确的提示词遵循能力。',
displayName: 'FLUX1.1 [pro] ',
enabled: true,
id: 'flux-pro-1.1',
parameters: {
height: { default: 768, max: 1440, min: 256, step: 32 },
imageUrl: { default: null },
prompt: { default: '' },
seed: { default: null },
width: { default: 1024, max: 1440, min: 256, step: 32 },
},
pricing: {
units: [{ name: 'imageGeneration', rate: 0.06, strategy: 'fixed', unit: 'image' }],
},
releasedAt: '2024-10-02',
type: 'image',
},
// https://docs.bfl.ai/api-reference/tasks/generate-an-image-with-flux-11-[pro]-with-ultra-mode-and-optional-raw-mode
{
description: '超高分辨率AI图像生成——支持4兆像素输出,10秒内生成超清图像。',
displayName: 'FLUX1.1 [pro] Ultra',
enabled: true,
id: 'flux-pro-1.1-ultra',
parameters: {
aspectRatio: {
default: '16:9',
enum: defaultAspectRatios,
},
imageUrl: { default: null },
prompt: { default: '' },
seed: { default: null },
},
pricing: {
units: [{ name: 'imageGeneration', rate: 0.06, strategy: 'fixed', unit: 'image' }],
},
releasedAt: '2024-11-06',
type: 'image',
},
// https://docs.bfl.ai/api-reference/tasks/generate-an-image-with-flux1-[pro]
{
description: '顶级商用AI图像生成模型——无与伦比的图像质量和多样化输出表现。',
displayName: 'FLUX.1 [pro]',
enabled: true,
id: 'flux-pro',
parameters: {
cfg: { default: 2.5, max: 5, min: 1.5, step: 0.1 },
height: { default: 768, max: 1440, min: 256, step: 32 },
imageUrl: { default: null },
prompt: { default: '' },
seed: { default: null },
steps: { default: 40, max: 50, min: 1 },
width: { default: 1024, max: 1440, min: 256, step: 32 },
},
pricing: {
units: [{ name: 'imageGeneration', rate: 0.025, strategy: 'fixed', unit: 'image' }],
},
releasedAt: '2024-08-01',
type: 'image',
},
// https://docs.bfl.ai/api-reference/tasks/generate-an-image-with-flux1-[dev]
{
description: '开源研发版AI图像生成模型——高效优化,适合非商业用途的创新研究。',
displayName: 'FLUX.1 [dev]',
enabled: true,
id: 'flux-dev',
parameters: {
cfg: { default: 3, max: 5, min: 1.5, step: 0.1 },
height: { default: 768, max: 1440, min: 256, step: 32 },
imageUrl: { default: null },
prompt: { default: '' },
seed: { default: null },
steps: { default: 28, max: 50, min: 1 },
width: { default: 1024, max: 1440, min: 256, step: 32 },
},
pricing: {
units: [{ name: 'imageGeneration', rate: 0.025, strategy: 'fixed', unit: 'image' }],
},
releasedAt: '2024-08-01',
type: 'image',
},
];
export const allModels = [...imageModels];
export default allModels;