ai-chatbot/lib/ai/fal-image-models.ts
134 48134a1bbe merge: integrate canvas and UI refinements
# Conflicts:
#	app/(chat)/api/files/direct-upload/route.ts
#	app/canvas/[id]/CanvasEditorLegacyPageClient.tsx
#	components/canvas/CanvasChatPanel.tsx
#	components/home/lovart-home.tsx
#	components/home/lovart/lovart-featured-gallery.tsx
#	components/home/lovart/lovart-hero-composer.tsx
#	components/home/lovart/lovart-projects-section.tsx
#	components/home/lovart/lovart-sidebar.tsx
#	components/layout/brand-top-bar.tsx
2026-07-10 13:18:21 +08:00

227 lines
6.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export const FAL_IMAGE_BASE_URL = "https://fal.run";
export const FAL_NANO_BANANA_2_MODEL_ID = "fal-ai/nano-banana-2";
export const FAL_NANO_BANANA_2_EDIT_MODEL_ID = "fal-ai/nano-banana-2/edit";
export const FAL_GPT_IMAGE_2_EDIT_MODEL_ID = "openai/gpt-image-2/edit";
export interface FalImageModelPreset {
modelId: string;
displayName: string;
description: string;
supportsVision: boolean;
supportsImageGen: boolean;
capabilities?: Record<string, any>;
defaultParams?: Record<string, any>;
imageGenConfig?: Record<string, any>;
sortOrder: number;
}
export const FAL_IMAGE_MODEL_PRESETS: FalImageModelPreset[] = [
{
modelId: FAL_NANO_BANANA_2_MODEL_ID,
displayName: "FAL Nano Banana 2",
description:
"FAL 官方 Nano Banana 2 文生图模型。无参考图时用于生成图片;如传入参考图,系统会自动切换到官方 /edit 端点。",
supportsVision: true,
supportsImageGen: true,
capabilities: {
provider: "fal",
kind: "text-to-image",
endpoint: FAL_NANO_BANANA_2_MODEL_ID,
editEndpoint: FAL_NANO_BANANA_2_EDIT_MODEL_ID,
apiFormat: "fal-nano-banana-2",
officialUrl: "https://fal.ai/models/fal-ai/nano-banana-2/api",
editOfficialUrl: "https://fal.ai/models/fal-ai/nano-banana-2/edit/api",
requiredFields: ["prompt"],
optionalFields: [
"num_images",
"aspect_ratio",
"output_format",
"safety_tolerance",
"resolution",
"limit_generations",
"enable_web_search",
"image_urls",
],
supportsMultiImageReference: true,
autoRouteEditEndpoint: true,
},
defaultParams: {
provider: "fal",
endpoint: FAL_NANO_BANANA_2_MODEL_ID,
editEndpoint: FAL_NANO_BANANA_2_EDIT_MODEL_ID,
apiFormat: "fal-nano-banana-2",
imageSize: "1K",
aspectRatio: "auto",
outputFormat: "png",
safetyTolerance: "4",
limitGenerations: true,
},
imageGenConfig: {
maxImages: 4,
supportsSize: true,
supports1K: true,
supports2K: true,
supports4K: true,
supportsPromptExtend: true,
supportsNegativePrompt: false,
supportsWatermark: false,
supportsSeed: true,
supportedAspectRatios: [
"auto",
"21:9",
"16:9",
"3:2",
"4:3",
"5:4",
"1:1",
"4:5",
"3:4",
"2:3",
"9:16",
"4:1",
"1:4",
"8:1",
"1:8",
],
supportedImageSizes: ["0.5K", "1K", "2K", "4K"],
enableLoadingPlaceholder: true,
loadingColor: "purple",
creditCostPerImage: 0,
creditCostPerVideo: 0,
},
sortOrder: 10,
},
{
modelId: FAL_NANO_BANANA_2_EDIT_MODEL_ID,
displayName: "FAL Nano Banana 2 Edit",
description:
"FAL 官方 Nano Banana 2 图像编辑模型,支持最多 14 张参考图和自然语言编辑。",
supportsVision: true,
supportsImageGen: true,
capabilities: {
provider: "fal",
kind: "image-edit",
endpoint: FAL_NANO_BANANA_2_EDIT_MODEL_ID,
apiFormat: "fal-nano-banana-2-edit",
officialUrl: "https://fal.ai/models/fal-ai/nano-banana-2/edit/api",
requiredFields: ["prompt", "image_urls"],
optionalFields: [
"num_images",
"aspect_ratio",
"output_format",
"safety_tolerance",
"resolution",
"limit_generations",
"enable_web_search",
],
supportsMultiImageReference: true,
maxReferenceImages: 14,
},
defaultParams: {
provider: "fal",
endpoint: FAL_NANO_BANANA_2_EDIT_MODEL_ID,
apiFormat: "fal-nano-banana-2-edit",
imageSize: "1K",
aspectRatio: "auto",
outputFormat: "png",
safetyTolerance: "4",
limitGenerations: true,
},
imageGenConfig: {
maxImages: 4,
supportsSize: true,
supports1K: true,
supports2K: true,
supports4K: true,
supportsPromptExtend: true,
supportsNegativePrompt: false,
supportsWatermark: false,
supportsSeed: true,
supportedAspectRatios: [
"auto",
"21:9",
"16:9",
"3:2",
"4:3",
"5:4",
"1:1",
"4:5",
"3:4",
"2:3",
"9:16",
"4:1",
"1:4",
"8:1",
"1:8",
],
supportedImageSizes: ["0.5K", "1K", "2K", "4K"],
enableLoadingPlaceholder: true,
loadingColor: "purple",
creditCostPerImage: 0,
creditCostPerVideo: 0,
},
sortOrder: 11,
},
{
modelId: FAL_GPT_IMAGE_2_EDIT_MODEL_ID,
displayName: "FAL GPT Image 2 Edit",
description:
"FAL 托管的 OpenAI GPT Image 2 图片编辑模型,需至少一张参考图,支持多图参考、自然语言编辑与可选蒙版。",
supportsVision: true,
supportsImageGen: true,
capabilities: {
provider: "fal",
kind: "image-edit",
endpoint: FAL_GPT_IMAGE_2_EDIT_MODEL_ID,
apiFormat: "fal-gpt-image-2-edit",
officialUrl: "https://fal.ai/models/openai/gpt-image-2/edit",
requiredFields: ["prompt", "image_urls"],
optionalFields: [
"image_size",
"quality",
"num_images",
"output_format",
"mask_image_url",
"openai_api_key",
],
supportsMultiImageReference: true,
supportsMask: true,
supportsStreaming: true,
},
defaultParams: {
provider: "fal",
endpoint: FAL_GPT_IMAGE_2_EDIT_MODEL_ID,
apiFormat: "fal-gpt-image-2-edit",
imageSize: "auto",
quality: "high",
outputFormat: "png",
},
imageGenConfig: {
maxImages: 4,
supportsSize: true,
supports1K: true,
supports2K: true,
supports4K: true,
supportsPromptExtend: true,
supportsNegativePrompt: false,
supportsWatermark: false,
supportsSeed: false,
supportedImageSizes: [
"auto",
"square_hd",
"square",
"landscape_4_3",
"landscape_16_9",
"portrait_4_3",
"portrait_16_9",
],
supportedQualities: ["low", "medium", "high"],
enableLoadingPlaceholder: true,
loadingColor: "purple",
creditCostPerImage: 0,
creditCostPerVideo: 0,
},
sortOrder: 20,
},
];