mirror of
https://github.com/basketikun/infinite-canvas.git
synced 2026-08-06 01:14:36 +08:00
feat(drag-and-drop): implement file upload via drag-and-drop for reference assets in image and video workspaces
This commit is contained in:
@@ -158,6 +158,14 @@ export function modelMatchesCapability(config: AiConfig, value: string, capabili
|
||||
return modelCapabilityOf(config, value) === capability;
|
||||
}
|
||||
|
||||
export function resolveModelForCapability(config: AiConfig, currentModel: string | undefined, capability: ModelCapability) {
|
||||
const defaultModel = capability === "image" ? config.imageModel : capability === "video" ? config.videoModel : capability === "audio" ? config.audioModel : config.textModel;
|
||||
const fallbackModel = capability === "image" ? defaultConfig.imageModel : capability === "video" ? defaultConfig.videoModel : capability === "audio" ? defaultConfig.audioModel : defaultConfig.textModel;
|
||||
if (currentModel && modelMatchesCapability(config, currentModel, capability)) return currentModel;
|
||||
if (defaultModel && modelMatchesCapability(config, defaultModel, capability)) return defaultModel;
|
||||
return fallbackModel;
|
||||
}
|
||||
|
||||
export function selectableModelsByCapability(config: AiConfig, capability?: ModelCapability) {
|
||||
if (!capability) return config.models;
|
||||
return config.channels.flatMap((channel) => channel.models.filter((model) => model.capability === capability).map((model) => encodeChannelModel(channel.id, model.name)));
|
||||
|
||||
Reference in New Issue
Block a user