feat(batch): sync dedicated image tools

This commit is contained in:
134 2026-08-11 14:04:35 +08:00
parent 4a6afb753d
commit d65ebc253b

View File

@ -8,6 +8,7 @@ import {
Image as ImageIcon,
Layers,
Loader2,
Maximize2,
Plus,
RefreshCw,
Sparkles,
@ -97,6 +98,7 @@ type BatchMode =
| "random-bg"
| "rmbg"
| "enhance"
| "extend"
| "watermark";
type ItemStatus = "pending" | "processing" | "completed" | "failed";
@ -337,6 +339,12 @@ const modeOptions: Array<{
description: "多图同步增强画质",
icon: Sparkles,
},
{
id: "extend",
label: "批量图像拓展",
description: "多图同步扩展画面",
icon: Maximize2,
},
{
id: "watermark",
label: "批量去水印",
@ -357,6 +365,8 @@ function getModeActionLabel(mode: BatchMode, count: number) {
return `批量抠图 (${count} 张)`;
case "enhance":
return `批量变清晰 (${count} 张)`;
case "extend":
return `批量图像拓展 (${count} 张)`;
case "watermark":
return `批量去水印 (${count} 张)`;
}
@ -368,6 +378,8 @@ function getModePrompt(mode: BatchMode) {
return "批量处理-抠图";
case "enhance":
return "批量处理-变清晰";
case "extend":
return "批量处理-图像拓展";
case "watermark":
return "批量处理-去水印";
default:
@ -1772,6 +1784,25 @@ export function SceneFusionView({
};
}
if (mode === "extend") {
const payload = await requestLongTaskResult({
endpoint: "/api/extend",
payload: {
image_url: item.image,
prompt: getModePrompt(mode),
includeBase64: false,
},
});
if (!payload?.success) {
throw new Error(payload?.error || payload?.detail || "图像拓展失败");
}
return {
result: payload.thumbnail_url || payload.original_url || item.image,
originalUrl:
payload.original_url || payload.thumbnail_url || item.image,
};
}
if (mode === "watermark") {
const payload = await requestLongTaskResult({
endpoint: "/api/watermark-remove",
@ -2799,6 +2830,7 @@ export function SceneFusionView({
{(mode === "rmbg" ||
mode === "enhance" ||
mode === "extend" ||
mode === "watermark") && (
<div className="space-y-2">
<div className="flex items-center justify-between">