From 398b2ec83c0cdea76e5070b6b9e2462ea1ad29f2 Mon Sep 17 00:00:00 2001 From: 134 Date: Tue, 11 Aug 2026 14:04:35 +0800 Subject: [PATCH] feat(batch): sync dedicated image tools --- components/scene-fusion-view.tsx | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/components/scene-fusion-view.tsx b/components/scene-fusion-view.tsx index cbca236f9..f33e15432 100644 --- a/components/scene-fusion-view.tsx +++ b/components/scene-fusion-view.tsx @@ -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") && (