feat: add Bailian image generation support

This commit is contained in:
inman
2026-07-14 12:58:50 +08:00
parent 9a3070c749
commit f642b5e71f
18 changed files with 464 additions and 74 deletions

View File

@@ -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
};
}),
{

View File

@@ -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"]
}
}
]
});

View File

@@ -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" },