diff --git a/src/components/BeforeAfterCompare.tsx b/src/components/BeforeAfterCompare.tsx index 0a67142..18ebcda 100644 --- a/src/components/BeforeAfterCompare.tsx +++ b/src/components/BeforeAfterCompare.tsx @@ -8,6 +8,7 @@ interface BeforeAfterCompareProps { sourceAlt?: string; resultAlt?: string; className?: string; + aspectRatio?: string; onSourceLoad?: (width: number, height: number) => void; } @@ -26,6 +27,7 @@ export default function BeforeAfterCompare({ sourceAlt = "原图", resultAlt = "结果", className = "", + aspectRatio, onSourceLoad, }: BeforeAfterCompareProps) { const stageRef = useRef(null); @@ -43,7 +45,10 @@ export default function BeforeAfterCompare({
diff --git a/src/features/character-mix/CharacterMixPage.tsx b/src/features/character-mix/CharacterMixPage.tsx index 6a5121a..27d777b 100644 --- a/src/features/character-mix/CharacterMixPage.tsx +++ b/src/features/character-mix/CharacterMixPage.tsx @@ -281,6 +281,94 @@ function CharacterMixPage({ } }; + const clearCharacterAsset = () => { + if (characterPreview) URL.revokeObjectURL(characterPreview); + setCharacterFile(""); + setCharacterPreview(""); + setCharacterDataUrl(""); + setFaceHint(null); + if (characterInputRef.current) characterInputRef.current.value = ""; + setNotice("已移除人物图"); + }; + + const clearReferenceVideo = () => { + if (videoPreview) URL.revokeObjectURL(videoPreview); + setVideoFile(""); + setVideoPreview(""); + setVideoDataUrl(""); + if (videoInputRef.current) videoInputRef.current.value = ""; + setNotice("已移除参考视频"); + }; + + const characterMixSettingsPanel = ( +
+
+ 迁移设置 +
+
+
+
驱动提示词
+