功能一:图片编辑器入口优化 - 支持先打开编辑器再上传图片 - 新增拖拽上传功能 - 新增粘贴上传功能 (Ctrl+V) 功能二:场景裂变 - 新增场景裂变弹窗组件 - 支持产品图批量融合到多个场景 - 每个场景独立配置补充关键词 - 并发处理提高效率 - 支持单个重新生成和全部下载 - 生成结果自动保存到相册 管理员配置: - 新增场景裂变配置面板 - 支持自定义默认提示词 - 支持配置最大场景数量 - 支持功能开关 新增文件: - app/api/scene-fusion/route.ts - app/api/scene-fusion/config/route.ts - components/scene-fusion-dialog.tsx - docs/图片编辑器功能升级规划.md
56 lines
1.4 KiB
TypeScript
56 lines
1.4 KiB
TypeScript
/**
|
||
* 场景裂变配置 API(公开端点)
|
||
*
|
||
* 允许普通用户获取场景裂变的配置信息
|
||
*/
|
||
|
||
import { NextResponse } from "next/server";
|
||
import { auth } from "@/app/(auth)/auth";
|
||
import { getSystemSetting } from "@/lib/db/queries";
|
||
|
||
// 默认提示词
|
||
const FALLBACK_PROMPT = "将图1的产品替换到图2的场景中,保持图1产品的外观、颜色和细节不变,自然融合到图2的环境中。";
|
||
|
||
export async function GET() {
|
||
try {
|
||
// 需要登录但不需要 admin 权限
|
||
const session = await auth();
|
||
if (!session?.user?.id) {
|
||
return NextResponse.json(
|
||
{ error: "未登录" },
|
||
{ status: 401 }
|
||
);
|
||
}
|
||
|
||
// 获取配置
|
||
const setting = await getSystemSetting({ key: "scene_fusion_config" });
|
||
|
||
if (setting?.value) {
|
||
const config = setting.value as {
|
||
enabled?: boolean;
|
||
defaultPrompt?: string;
|
||
maxScenes?: number;
|
||
};
|
||
|
||
return NextResponse.json({
|
||
enabled: config.enabled ?? true,
|
||
defaultPrompt: config.defaultPrompt || FALLBACK_PROMPT,
|
||
maxScenes: config.maxScenes ?? 10,
|
||
});
|
||
}
|
||
|
||
// 返回默认配置
|
||
return NextResponse.json({
|
||
enabled: true,
|
||
defaultPrompt: FALLBACK_PROMPT,
|
||
maxScenes: 10,
|
||
});
|
||
} catch (error) {
|
||
console.error("[SceneFusion Config] Error:", error);
|
||
return NextResponse.json(
|
||
{ error: "获取配置失败" },
|
||
{ status: 500 }
|
||
);
|
||
}
|
||
}
|