feat(batch): sync dedicated image tools
This commit is contained in:
parent
bbd0795fdc
commit
398b2ec83c
@ -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";
|
||||
|
||||
@ -336,6 +338,12 @@ const modeOptions: Array<{
|
||||
description: "多图同步增强画质",
|
||||
icon: Sparkles,
|
||||
},
|
||||
{
|
||||
id: "extend",
|
||||
label: "批量图像拓展",
|
||||
description: "多图同步扩展画面",
|
||||
icon: Maximize2,
|
||||
},
|
||||
{
|
||||
id: "watermark",
|
||||
label: "批量去水印",
|
||||
@ -356,6 +364,8 @@ function getModeActionLabel(mode: BatchMode, count: number) {
|
||||
return `批量抠图 (${count} 张)`;
|
||||
case "enhance":
|
||||
return `批量变清晰 (${count} 张)`;
|
||||
case "extend":
|
||||
return `批量图像拓展 (${count} 张)`;
|
||||
case "watermark":
|
||||
return `批量去水印 (${count} 张)`;
|
||||
}
|
||||
@ -367,6 +377,8 @@ function getModePrompt(mode: BatchMode) {
|
||||
return "批量处理-抠图";
|
||||
case "enhance":
|
||||
return "批量处理-变清晰";
|
||||
case "extend":
|
||||
return "批量处理-图像拓展";
|
||||
case "watermark":
|
||||
return "批量处理-去水印";
|
||||
default:
|
||||
@ -1771,6 +1783,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",
|
||||
@ -2798,6 +2829,7 @@ export function SceneFusionView({
|
||||
|
||||
{(mode === "rmbg" ||
|
||||
mode === "enhance" ||
|
||||
mode === "extend" ||
|
||||
mode === "watermark") && (
|
||||
<div className="space-y-2">
|
||||
<div className="flex items-center justify-between">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user