import { useEffect, useState } from "react"; import { Button, Input, Modal } from "antd"; import { WandSparkles, X } from "lucide-react"; import { ModelPicker } from "@/components/model-picker"; import type { AiConfig } from "@/stores/use-config-store"; import { defaultImageParamsForModel } from "@/lib/model-selection"; export type CanvasImageEditPayload = { prompt: string; generationConfig?: Partial> }; export function CanvasNodeImageEditDialog({ dataUrl, open, config, preset, onClose, onConfirm, }: { dataUrl: string; open: boolean; onClose: () => void; onConfirm: (payload: CanvasImageEditPayload) => void; config: AiConfig; preset?: "remove-background" | null; }) { const [prompt, setPrompt] = useState(preset === "remove-background" ? "移除图片背景,保留主体完整轮廓、细节和边缘,输出透明背景。" : ""); const [generationConfig, setGenerationConfig] = useState(config); useEffect(() => { if (open) setPrompt(preset === "remove-background" ? "移除图片背景,保留主体完整轮廓、细节和边缘,输出透明背景。" : ""); if (open) setGenerationConfig(config); }, [config, open, dataUrl]); return (
待编辑图片

{preset === "remove-background" ? "去除背景" : "描述你要修改的内容"}

保留主体和构图,只修改你描述的部分。

setPrompt(event.target.value)} />
编辑模型
setGenerationConfig((current) => ({ ...current, model, imageModel: model, ...defaultImageParamsForModel(current, model) }))} />
); }