event.stopPropagation()}
+ onMouseDown={(event) => event.stopPropagation()}
+ onPointerDown={(event) => event.stopPropagation()}
+ style={{
+ top: aiWashQuickPanelPosition.top,
+ left: aiWashQuickPanelPosition.left,
+ width: aiWashQuickPanelPosition.width,
+ maxHeight: aiWashQuickPanelPosition.maxHeight,
+ overflowY: "auto",
+ scrollbarWidth: "thin",
+ }}
+ >
+
+
+
+
+
+
+
+ {aiWashQuickModeLabel}
+
+
+ 选中图片快捷洗图
+
+
+
+
+
+
+ {aiWashConfigLoading ? (
+
+
+ 正在加载 AI洗图 配置...
+
+ ) : null}
+
+
+
+
+
+
+ 渲染目标
+
+
+ {getAiWashStatusLabel(aiWashQuickStatus)}
+
+
+
+ {aiWashQuickPresets.map((preset) => {
+ const isActive = selectedAiWashQuickPreset?.id === preset.id;
+ return (
+
+ );
+ })}
+
+
+
+
+
参数设置
+ {shouldShowAiWashQuickModelSelector ? (
+
+
+
+
+ {selectedAiWashQuickModel
+ ? `当前模型:${selectedAiWashQuickModel.displayName} · ${
+ selectedAiWashQuickModel.unitCost > 0
+ ? `${selectedAiWashQuickModel.unitCost} 积分/张`
+ : "未设置积分"
+ }`
+ : aiWashModelOptionsLoading
+ ? "正在加载可选模型..."
+ : "没有可选模型"}
+
+
+ ) : selectedAiWashQuickModel ? (
+
+ 管理员已锁定模型:{selectedAiWashQuickModel.displayName}
+ {selectedAiWashQuickModel.unitCost > 0
+ ? ` · ${selectedAiWashQuickModel.unitCost} 积分/张`
+ : ""}
+
+ ) : null}
+
+
+ {aiWashQuickControls.map((control) => {
+ const selectedIndex =
+ aiWashQuickLevels[control.id] ?? control.defaultLevel;
+ const activeLevel =
+ getAiWashControlLevelByIndex(control, selectedIndex) ||
+ control.levels[0] ||
+ null;
+ return (
+
+
+
+ {control.label}
+
+
+ {activeLevel?.label || selectedIndex + 1}
+
+
+
+ setAiWashQuickLevels((current) => ({
+ ...current,
+ [control.id]: Math.round(next ?? 0),
+ }))
+ }
+ rangeClassName="bg-slate-950 dark:bg-white"
+ step={1}
+ thumbClassName="h-3.5 w-3.5 border border-slate-300 bg-white shadow-[0_0_0_3px_rgba(15,23,42,0.06)]"
+ trackClassName="h-1.5 bg-slate-200 dark:bg-white/14"
+ value={[selectedIndex]}
+ />
+
+ );
+ })}
+
+
+
+ {aiWashQuickPrompt ? (
+
+ {aiWashQuickPrompt}
+
+ ) : null}
+
+
+
+
,
+ document.body
+ )}
+
{isSelected &&
!isMultiSelected &&
data.src &&
@@ -8221,6 +9028,33 @@ export function ImageNode({
) : null}
+ {imageAiWashQuickEnabled ? (
+