diff --git a/.memory/worklog.json b/.memory/worklog.json index e3ac26d..5a20d67 100644 --- a/.memory/worklog.json +++ b/.memory/worklog.json @@ -265,6 +265,13 @@ "message": "auto-save 2026-05-12 19:36 (~3)", "hash": "902c3ed", "files_changed": 3 + }, + { + "ts": "2026-05-12T19:42:27+08:00", + "type": "commit", + "message": "auto-save 2026-05-12 19:42 (~3)", + "hash": "f901b71", + "files_changed": 3 } ] } diff --git a/web/components/nodes/index.tsx b/web/components/nodes/index.tsx index 1e42e83..3950a05 100644 --- a/web/components/nodes/index.tsx +++ b/web/components/nodes/index.tsx @@ -229,6 +229,11 @@ export function KeyframeNode({ data, selected }: any) { const st = keyframeStatus(d.job) const frames = d.job?.frames ?? [] const jobId = d.job?.id + const job = d.job + const hasVideo = !!job?.video_url + const videoRef = useRef(null) + const [videoT, setVideoT] = useState(0) + const [addingFrame, setAddingFrame] = useState(false) return (
@@ -304,22 +309,43 @@ export function KeyframeNode({ data, selected }: any) { type="process" status={st} icon={} title="关键帧 · Keyframes" - subtitle={`STEP 4 · ffmpeg · ${frames.length ? `${d.selectedFrames.size}/${frames.length} 选用` : "等待抽取"}`} + subtitle={`STEP 2 · ffmpeg · ${frames.length ? `${d.selectedFrames.size}/${frames.length} 选用` : "等待抽取"}`} width={KEYFRAME_WIDTH} selected={selected} > - {frames.length > 0 ? ( -
- 自动抽取 {frames.length} 张 · - 点击上方缩略图展开 -
- - 空格 / 选用此帧 按钮可勾选;选中的传入「生图」节点 - + {hasVideo && jobId ? ( +
+
) : (
- 等待解析后抽取(默认 5 张,可在 API 配置 KEYFRAME_COUNT 改) + 等待视频下载完成
)}