auto-save 2026-05-14 10:36 (~5)

This commit is contained in:
2026-05-14 10:40:12 +08:00
parent 1ebe11f889
commit 1014114df8
5 changed files with 208 additions and 106 deletions

View File

@@ -570,7 +570,7 @@
<h3>前端核心</h3>
<table>
<tbody>
<tr><td><code>web/app/page.tsx</code></td><td>产品工作台主状态jobs、activeJobId、selectedFrames、clipboard、ReactFlow 节点和边;负责打开/找回画布工作面板。</td></tr>
<tr><td><code>web/app/page.tsx</code></td><td>产品工作台主状态jobs、activeJobId、按 job 隔离的 selectedFrames/详情面板状态、clipboard、ReactFlow 节点和边;负责打开/找回画布工作面板。</td></tr>
<tr><td><code>web/components/nodes/index.tsx</code></td><td>DAG 节点定义Input、VisualLab、Audio、Compose以及画布工作面板 KeyframePanel / VideoFramePanel旧 Keyframe/Storyboard/VideoGen 组件保留但不再挂主画布。</td></tr>
<tr><td><code>web/components/lightbox.tsx</code></td><td>关键帧素材准备面板:清洗、统一主体候选、参考帧网格、六张主体重绘图、每帧去主体场景图、纵向 6 行产品融合镜头工作表和审核。</td></tr>
<tr><td><code>web/components/product-library-picker.tsx</code></td><td>SKG 内置白底产品图库选择器:搜索、品类筛选、预览尺寸,并把库内图片复制为当前 job 的 <code>asset</code></td></tr>
@@ -819,7 +819,7 @@ SubjectAsset {
<tbody>
<tr>
<td><span class="tag blue">输入 Input</span></td>
<td>创建/上传任务,显示视频就绪;每个视频缩略图上方都有绑定自己的自动抽帧快捷工具条,默认只露出目标和抽帧按钮,张数/自动精度收进设置;也可在视频抽帧侧边面板内自动抽帧。多个视频抽帧可先后入队。</td>
<td>创建/上传任务,显示视频就绪;每个视频缩略图上方都有绑定自己的自动抽帧快捷工具条,默认只露出目标和抽帧按钮,张数/自动精度收进设置;也可在视频抽帧侧边面板内自动抽帧。多个视频抽帧可先后入队,切换 active 视频不会清空其他视频已选帧或关闭它们的异步生成回写</td>
<td>不要自动一路跑到 ASR 或生图;用户需要控制解析节奏。</td>
<td><code>page.tsx</code><code>InputNode</code><code>VideoFramePanelNode</code><code>api/main.py</code></td>
</tr>
@@ -837,7 +837,7 @@ SubjectAsset {
</tr>
<tr>
<td><span class="tag gray">Audio / ASR / Rewrite</span></td>
<td>独立声音文案轨:从 <code>audio.wav</code> 提取原始口播、翻译中文、改写成 SKG 产品语境口播MiniMax T2A 配置后生成配音 mp3。主画布的 <code>AudioNode</code> 只展示模型链路、改写稿和配音播放器。</td>
<td>独立声音文案轨:从 <code>audio.wav</code> 提取原始口播、翻译中文、改写成 SKG 产品语境口播MiniMax T2A 配置后生成配音 mp3。主画布的 <code>AudioNode</code> 用“改前 · 原音频 / 改后 · SKG 口播”摘要展示,侧栏 Rewrite 展开后显示完整逐段 ASR/翻译、改写稿、产品依据和配音播放器。</td>
<td>不要阻断视觉素材管线。</td>
<td><code>AudioNode</code><code>ASRNode</code><code>TranslateNode</code><code>RewriteNode</code><code>pipeline_transcribe</code><code>AudioScript</code></td>
</tr>
@@ -914,6 +914,30 @@ SubjectAsset {
<h2>变更记录</h2>
<p>这个记录不是 git log 的替代品。它记录“产品理解发生了什么变化、影响了哪些源码、你以后描述需求时该怎么说”。后续每次改功能都要补一条。</p>
<div class="changelog">
<article class="change">
<header>
<h3>2026-05-14 · 音频结果改为改前/改后对照展示</h3>
<span class="tag gray">Audio</span>
<span class="tag violet">UI</span>
</header>
<div class="body">
<p><strong>问题:</strong>音频识别成功后只显示改写文案,用户看不到它和原音频之间的变化关系,难以判断“是不是把参考视频转成我们自己的话”。</p>
<p><strong>改动:</strong><code>AudioNode</code> 增加轻量对照摘要:改前显示原音频识别/翻译预览,改后显示 SKG 口播;侧栏 <code>Rewrite</code> 面板改为完整审核视图,先列原音频逐段 ASR/翻译,再列改写稿、产品卖点依据和 MiniMax 配音播放器。</p>
<p><strong>影响:</strong><code>web/components/nodes/index.tsx</code><code>web/components/dashboard.tsx</code><code>docs/source-analysis.html</code></p>
</div>
</article>
<article class="change">
<header>
<h3>2026-05-14 · 多视频工作流状态按 job 隔离</h3>
<span class="tag violet">Canvas</span>
<span class="tag blue">Job State</span>
</header>
<div class="body">
<p><strong>问题:</strong>同时上传多个视频后,前端把已选关键帧和关键帧详情面板作为全局状态保存;切换 active 视频会清空选中帧,或者让详情面板指向另一个视频的同序号帧,容易误以为生图/自动化被终止或串任务。</p>
<p><strong>改动:</strong><code>web/app/page.tsx</code><code>selectedFrames</code><code>expandedFrame</code> 改为按 <code>jobId</code> 存储。切换视频只改变当前视图,不清空其他视频的选择;重新抽帧、删帧、手动加帧只清理或更新对应 job。异步生图、生视频、产品融合返回后按返回的 <code>job.id</code> 写回 <code>jobs[]</code>,不会落到切换后的 active job。轮询条件也把 <code>audio_script.status=rewriting</code> 纳入运行态,保证音频改写/配音阶段切换视频后仍继续刷新。</p>
<p><strong>影响:</strong><code>web/app/page.tsx</code><code>docs/source-analysis.html</code>。后端轮询本来已经覆盖所有运行中的 job这轮主要修正前端 UI 工作上下文。</p>
</div>
</article>
<article class="change">
<header>
<h3>2026-05-14 · 生视频接入 SKG 豆包网关</h3>