Your Name 688f67c25c feat: 图片编辑器升级 - 入口优化 + 场景裂变功能
功能一:图片编辑器入口优化
- 支持先打开编辑器再上传图片
- 新增拖拽上传功能
- 新增粘贴上传功能 (Ctrl+V)

功能二:场景裂变
- 新增场景裂变弹窗组件
- 支持产品图批量融合到多个场景
- 每个场景独立配置补充关键词
- 并发处理提高效率
- 支持单个重新生成和全部下载
- 生成结果自动保存到相册

管理员配置:
- 新增场景裂变配置面板
- 支持自定义默认提示词
- 支持配置最大场景数量
- 支持功能开关

新增文件:
- app/api/scene-fusion/route.ts
- app/api/scene-fusion/config/route.ts
- components/scene-fusion-dialog.tsx
- docs/图片编辑器功能升级规划.md
2026-01-18 14:56:21 +08:00

56 lines
1.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 场景裂变配置 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 }
);
}
}