feat: add Bailian image generation support
This commit is contained in:
@@ -4,12 +4,14 @@ import { getEffectiveImageEngine, getEvolinkImageSettings, shouldMockEvolinkApi
|
||||
import { getVisibleImageCapabilities } from "@/lib/jimeng/capabilities";
|
||||
import { shouldMockVisualApi } from "@/lib/volcengine/visual-client";
|
||||
import { getSeedanceConfig, shouldMockSeedance } from "@/lib/seedance/client";
|
||||
import { getBailianConfig, shouldMockBailian } from "@/lib/bailian/client";
|
||||
|
||||
export const runtime = "nodejs";
|
||||
|
||||
export async function GET() {
|
||||
const evolink = getEvolinkImageSettings();
|
||||
const auth = getAuthRuntimeConfig();
|
||||
const bailian = getBailianConfig();
|
||||
return jsonOk({
|
||||
ok: true,
|
||||
appId: "zhinian-web-studio",
|
||||
@@ -17,6 +19,7 @@ export async function GET() {
|
||||
visualApiMode: shouldMockVisualApi() ? "mock" : "volcengine",
|
||||
evolinkMode: shouldMockEvolinkApi() ? "mock" : "evolink",
|
||||
seedanceMode: shouldMockSeedance() ? "mock" : "seedance",
|
||||
bailianMode: shouldMockBailian() ? "mock" : bailian.apiKey ? "bailian" : "missing",
|
||||
authMode: authConfigSummary(auth),
|
||||
capabilities: [
|
||||
...getVisibleImageCapabilities().map((capability) => {
|
||||
@@ -25,8 +28,8 @@ export async function GET() {
|
||||
id: capability.id,
|
||||
label: capability.label,
|
||||
engine,
|
||||
engineLabel: engine === "evolink" ? "EvoLink" : "即梦",
|
||||
reqKey: engine === "evolink" ? evolink.model : capability.reqKey
|
||||
engineLabel: engine === "evolink" ? "EvoLink" : engine === "bailian" ? "阿里云百炼" : "即梦",
|
||||
reqKey: engine === "bailian" ? bailian.imageModel : engine === "evolink" ? evolink.model : capability.reqKey
|
||||
};
|
||||
}),
|
||||
{
|
||||
|
||||
@@ -4,6 +4,7 @@ import { jsonOk } from "@/lib/server/api";
|
||||
import { authenticatePublicApiRequest } from "@/lib/server/public-api-auth";
|
||||
import { publicApiError } from "@/lib/server/public-api-response";
|
||||
import { getSeedanceConfig } from "@/lib/seedance/client";
|
||||
import { getBailianConfig } from "@/lib/bailian/client";
|
||||
|
||||
export const runtime = "nodejs";
|
||||
|
||||
@@ -11,6 +12,7 @@ export async function GET(request: Request) {
|
||||
try {
|
||||
authenticatePublicApiRequest(request);
|
||||
const evolink = getEvolinkImageSettings();
|
||||
const bailian = getBailianConfig();
|
||||
return jsonOk({
|
||||
capabilities: [
|
||||
...getVisibleImageCapabilities().map((capability) => {
|
||||
@@ -20,8 +22,8 @@ export async function GET(request: Request) {
|
||||
label: capability.label,
|
||||
kind: "image",
|
||||
engine,
|
||||
provider: engine === "evolink" ? "evolink" : "volcengine-visual",
|
||||
reqKey: engine === "evolink" ? evolink.model : capability.reqKey
|
||||
provider: engine === "bailian" ? "bailian" : engine === "evolink" ? "evolink" : "volcengine-visual",
|
||||
reqKey: engine === "bailian" ? bailian.imageModel : engine === "evolink" ? evolink.model : capability.reqKey
|
||||
};
|
||||
}),
|
||||
{
|
||||
@@ -36,6 +38,19 @@ export async function GET(request: Request) {
|
||||
ratios: ["16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive"],
|
||||
resolutions: ["480p", "720p", "1080p"]
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "video.generate.bailian",
|
||||
label: "百炼图生视频",
|
||||
kind: "video",
|
||||
engine: "bailian",
|
||||
provider: "bailian",
|
||||
reqKey: bailian.videoModel,
|
||||
limits: {
|
||||
inputImages: { min: 1, max: 2 },
|
||||
durationSeconds: { min: 2, max: 15 },
|
||||
resolutions: ["720P", "1080P"]
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
@@ -53,7 +53,7 @@ export async function GET(request: Request) {
|
||||
ownerId: { type: "string", example: "api:partner-a" },
|
||||
externalClientId: { type: "string" },
|
||||
capability: { $ref: "#/components/schemas/GenerationCapability" },
|
||||
provider: { type: "string", enum: ["volcengine-visual", "evolink", "seedance", "mock"] },
|
||||
provider: { type: "string", enum: ["volcengine-visual", "evolink", "seedance", "bailian", "mock"] },
|
||||
reqKey: { type: "string" },
|
||||
status: { $ref: "#/components/schemas/GenerationStatus" },
|
||||
prompt: { type: "string" },
|
||||
|
||||
Reference in New Issue
Block a user