增加即梦图片5.0和视频2.5的能力
This commit is contained in:
1 parent
542246e4ce
commit
88a4268d40
55 files changed
+1412
-200
No files matched your search
@@ -10,6 +10,9 @@ import { getVisualClientConfig } from "@/lib/volcengine/visual-client";
|
||||
import type { EnabledImageCapability } from "@/lib/types";
|
||||
import { getBailianConfig } from "@/lib/bailian/client";
|
||||
|
||||
type SettingsImageCreationEngine = ImageCreationEngine | "seedream";
|
||||
const SEEDREAM_50_PRO_MODEL = "doubao-seedream-5-0-pro-260628";
|
||||
|
||||
export type SettingsField = {
|
||||
key: string;
|
||||
label: string;
|
||||
@@ -112,8 +115,8 @@ const settingDefinitions: Array<{
|
||||
},
|
||||
{
|
||||
id: "seedance",
|
||||
title: "Seedance 视频 API",
|
||||
description: "只需填写火山方舟 API Key;Base URL、模型和默认参数使用系统默认值。",
|
||||
title: "火山方舟 API",
|
||||
description: "Seedance 视频与 Seedream 5.0 Pro 图片共用此 API Key;其余参数使用系统默认值。",
|
||||
fields: [
|
||||
{ key: "SEEDANCE_API_KEY", label: "方舟 API Key", secret: true, type: "password" }
|
||||
]
|
||||
@@ -151,6 +154,7 @@ const engineFieldDefinitions: FieldDefinition[] = [
|
||||
defaultValue: "jimeng",
|
||||
options: [
|
||||
{ label: "即梦 / 火山视觉", value: "jimeng" },
|
||||
{ label: "Seedream 5.0 Pro / 火山方舟", value: "seedream" },
|
||||
{ label: "EvoLink GPT Image 2", value: "evolink" },
|
||||
{ label: "阿里云百炼 Wan 2.7", value: "bailian" }
|
||||
]
|
||||
@@ -193,6 +197,7 @@ export async function getApiSettings() {
|
||||
visual: Boolean(getVisualClientConfig()),
|
||||
evolink: Boolean(getEvolinkImageConfig()),
|
||||
seedance: Boolean(seedance.apiKey),
|
||||
seedream: Boolean(seedance.apiKey),
|
||||
bailian: Boolean(getBailianConfig().apiKey),
|
||||
auth: authConfigSummary(auth) === "configured",
|
||||
organization: platformAccountStoreConfigured()
|
||||
@@ -258,7 +263,7 @@ function buildEngineAssignments(fileEnv: Map<string, string>): EngineAssignment[
|
||||
capability: "image.generate",
|
||||
label: "图片生成",
|
||||
engine: generateEngine,
|
||||
reqKey: generateEngine === "bailian" ? bailian.imageModel : generateEngine === "evolink" ? evolink.model : capabilities["image.generate"].reqKey,
|
||||
reqKey: generateEngine === "bailian" ? bailian.imageModel : generateEngine === "evolink" ? evolink.model : generateEngine === "seedream" ? SEEDREAM_50_PRO_MODEL : capabilities["image.generate"].reqKey,
|
||||
field: engineFieldDefinitions[0],
|
||||
fileEnv
|
||||
}),
|
||||
@@ -279,7 +284,7 @@ function buildEngineAssignments(fileEnv: Map<string, string>): EngineAssignment[
|
||||
function imageEngineAssignment(input: {
|
||||
capability: EnabledImageCapability;
|
||||
label: string;
|
||||
engine: ImageCreationEngine;
|
||||
engine: SettingsImageCreationEngine;
|
||||
reqKey: string;
|
||||
field: FieldDefinition;
|
||||
fileEnv: Map<string, string>;
|
||||
@@ -298,7 +303,7 @@ function imageEngineAssignment(input: {
|
||||
};
|
||||
}
|
||||
|
||||
function currentEngineValue(field: FieldDefinition, fileEnv: Map<string, string>): ImageCreationEngine {
|
||||
function currentEngineValue(field: FieldDefinition, fileEnv: Map<string, string>): SettingsImageCreationEngine {
|
||||
const explicit = process.env[field.key] ?? fileEnv.get(field.key);
|
||||
if (explicit) return normalizeImageEngine(explicit);
|
||||
return normalizeImageEngine(process.env.IMAGE_CREATION_ENGINE ?? fileEnv.get("IMAGE_CREATION_ENGINE") ?? process.env.IMAGE_PROVIDER ?? fileEnv.get("IMAGE_PROVIDER") ?? field.defaultValue);
|
||||
@@ -316,16 +321,18 @@ function isConfigured(key: string, fileEnv: Map<string, string>) {
|
||||
return Boolean(process.env[key] ?? fileEnv.get(key));
|
||||
}
|
||||
|
||||
function normalizeImageEngine(value: string | undefined): ImageCreationEngine {
|
||||
function normalizeImageEngine(value: string | undefined): SettingsImageCreationEngine {
|
||||
const normalized = value?.trim().toLowerCase();
|
||||
if (normalized === "seedream") return "seedream";
|
||||
return normalized === "evolink" || normalized === "bailian" ? normalized : "jimeng";
|
||||
}
|
||||
|
||||
function imageEngineLabel(engine: ImageCreationEngine) {
|
||||
return engine === "evolink" ? "EvoLink" : engine === "bailian" ? "阿里云百炼" : "即梦";
|
||||
function imageEngineLabel(engine: SettingsImageCreationEngine) {
|
||||
return engine === "evolink" ? "EvoLink" : engine === "bailian" ? "阿里云百炼" : engine === "seedream" ? "Seedream 5.0 Pro" : "即梦";
|
||||
}
|
||||
|
||||
function imageEngineConnected(engine: ImageCreationEngine) {
|
||||
function imageEngineConnected(engine: SettingsImageCreationEngine) {
|
||||
if (engine === "seedream") return Boolean(getSeedanceConfig().apiKey);
|
||||
if (engine === "evolink") return Boolean(getEvolinkImageConfig());
|
||||
if (engine === "bailian") return Boolean(getBailianConfig().apiKey);
|
||||
return Boolean(getVisualClientConfig());
|
||||
|
||||
Reference in new issue
Block a user