天火 AI 剪辑v2 试验版
批量出片
在跑 {{runningJobs}}
{{(reviewer||'?')[0]}}
回旧工作台

素材库

先选产品,再进去挑素材
还没有接入的产品
▤{{p.name}}{{p.assets}} 条
{{p.narration_groups}} 组同口播
不同口播 {{p.distinct_narrations}} 种
口播识别 {{p.readiness.transcript + (p.readiness.music_only||0)}}/{{p.readiness.assets}} 纯音乐 {{p.readiness.music_only}} 条
画面分析 {{p.readiness.understanding}}/{{p.readiness.assets}} 分析中 还要约 {{etaText(prepOf(p).eta_min)}}
导入素材
找到 {{importCheck.videos}} 个视频{{importCheck.library_records!=null ? ',已有分析结果 '+importCheck.library_records+' 条' : ''}}{{importCheck.problems.length ? ';' + importCheck.problems.join(';') : ''}}
按文件夹认出段落:{{Object.entries(importCheck.segments).map(([k, n]) => k + ' ' + n).join(' · ') || '一条都没认出来'}}
{{importCheck.unsorted}} 条认不出是开头、中段还是结尾(文件夹:{{importCheck.unsorted_folders.join('、')}}),导进来是"未分段",要在素材库里手动分。 文件夹按"开头 / 中段 / 结尾"起名,导进来就自动分好。

在共享盘里点要导入的文件夹 →「分享 / 复制链接」,把复制出来的整段直接贴进来(链接和提取码都会带着)。先只看目录不下载,确认了再下。
提示:① 链接必须是以 https:// 开头的完整分享链接,别只贴一串字母数字;② 提取码要和链接来自同一次分享,格式对不上下载会失败;③ 一次性要导多个文件夹,就多条分享链接分行贴。
{{pdsErr}}
这个分享里有 {{pdsPlanResult.total_files}} 个文件、{{pdsGb(pdsPlanResult.total_bytes)}},认出 {{pdsPlanResult.products.length}} 个产品。还没开始下载。
{{pdsPlanResult.disk_short}}
这条分享 {{d.when}} 已经导过一次({{d.title}})。确实要再导就接着往下点。
产品名素材段落(按文件夹认)
素材库里已经有这个产品,这批当作补充加进去,原来的素材保留
{{p.files}} 条 · {{pdsGb(p.bytes)}} {{Object.entries(p.segments || {}).map(([k, n]) => k + ' ' + n).join(' · ') || '—'}}
{{p.unsorted}} 条认不出是开头、中段还是结尾,导进来是"未分段",要在素材库里手动分
{{pdsWhyNot || '下完自动入库、识别口播、分析画面、标注内容,中途不用再点'}}
把要导入的产品文件夹,在服务器上的完整路径贴进来(不是 Windows 共享地址)。格式:/home/thadmin/aicut/materials/批量测试 或 商城视频/产品文件夹名。一次最多导 50 个视频,超过了系统会提示,请拆成小文件夹。要传自己电脑里的文件,请关掉这里、回到素材库点「上传素材」。
产品名
素材目录
已有分析结果
{{importCheck.problems.join(';')}}
回收站
删掉的素材先放这里,15 天内能恢复;超过 15 天系统自动永久移除,恢复不了。删除只从平台拿走,服务器上的视频文件不动。
{{trashErr}}
读取中…
新建产品
新建一个空产品(先登记,还没有素材),建好后进到这个产品里用「上传素材 / 导入素材」把视频接进来。
产品名
管理产品
{{p.name}} · {{p.assets}} 条
合并:勾选要并进目标的,目标用 ○ 单选,然后点右侧「合并」
还没有产品。点右上角「+ 新建产品」建一个。
文件夹管理
这里能看到所有产品下的文件夹。重命名、删除只改归类,不会动视频文件。
{{f.product}} · {{f.folder}} · {{f.n}} 条
还没有文件夹。进到某个产品里,点右上角「+ 新建文件夹」就能建一个。
只有管理员或创建者本人能重命名、删除文件夹。
素材库 / {{product}}
上传素材到「{{product}}」
有 {{unsortedCount}} 条素材还没分段落,按框架拼用不上它们。 系统会按内容自动判(几分钟内,判完标"AI"),也可以勾选后用右边的"设段落…"自己分 勾选后用右边的"设段落…"分成开头、中段或结尾;以后上传时选好段落,就不用再分
有 {{aiSegmentCount}} 条素材的段落是 AI 按内容判的(卡片上标着"AI·"),大约四分之三判得对。 判错的勾选后用右边的"设段落…"改,改了就以你的为准;功能标签点 × 删、"打标签"加
{{shownAssets.length}} / {{assets.length}} 条
已选 {{picked.length}} 条,口播互不相同的 {{distinctPicked}} 条
这个筛选下没有素材
给已选的 {{picked.length}} 条打标签
已有标签,点一下加上:
已选素材身上的标签,点 × 从这些素材上去掉: {{t.tag}} · {{t.n}} 条
标签名字自己起,系统不懂它的意思;建工单时在"标签规则"里配它怎么用(排除 / 必须)。整条素材的标签对它拆出来的每一段都算。
子文件夹
子文件夹只是「归类」,不动服务器上的视频文件。一条素材可以同时放进多个文件夹;建剪辑工单时能按子文件夹挑素材。
{{f.folder}} · {{f.n}} 条
还没有文件夹。新建一个,或在素材里勾选后用「归入文件夹」。
只有管理员或创建者本人能重命名、删除文件夹。
把已选的 {{picked.length}} 条归入文件夹
点一下归入:
已选素材已经归在: {{f.folder}} · {{f.n}} 条
段落 文件夹:{{preview.folder}}
{{preview.grade||'未分级'}} {{preview.duration}}s 只有语气词 · 当纯音乐用,只垫在中间 无口播
{{preview.file}}

口播

{{preview.transcript || '(这条没有口播)'}}
标签 {{t}} {{t}} 还没有
删除
删除后进回收站,15 天内可恢复;超过 15 天自动永久移除。只从平台拿走,服务器上的视频文件不动。
拆解分段这是从「{{parentName(preview)}}」拆出来的第 {{preview.unit_index}}/{{preview.unit_of}} 段,{{fmtS(preview.start)}} – {{fmtS(preview.end)}}。要改怎么拆,去原素材上重新拆解。
拆解
这条还没分析过说话的停顿,暂时拆不了(系统会自动补上)
实际只拆得出 {{units.got}} 段:{{units.short_reason}}
读取中…
段起止时长第一句最后一句能当哪一段
{{u.index}}/{{u.of}} {{fmtS(u.start)}} – {{fmtS(u.end)}} {{Math.round(u.end - u.start)}}s {{u.first_sentence}}{{u.last_sentence}} {{({first:'开头',middle:'中间',last:'结尾'})[k]}}
{{hoverCard.file}} · {{hoverCard.duration}}s

任务中心

每 4 秒自动刷新
{{disk.write_error || disk.halted}} —— 新的活已经暂停,清出空间后会自己接着跑。
{{disk.warn}}

剪辑工单

左边选产品,右边按提交时间倒序
后台 {{c.title}} {{failedChores.length}} 个失败 去任务中心看 →
还没有剪辑工单。先去素材库挑素材。
{{j.name || j.title}} {{j.resolved_by ? '已重跑成功' : jobState(j.state)}}
排队中{{j.queue_position>1 ? ',前面还有 ' + (j.queue_position-1) + ' 个' : ',下一个就是它'}}
{{j.state==='cancelled' ? '已取消' : '没有成片'}}
{{j.error}}
上一次失败:{{j.error}}(后来已经出片)
试了 {{j.attempts.length}} 次
{{j.meta.batch_id}}
生成人:{{j.owner || '(无记录)'}}
{{clock(j.created_at)}} {{jobCounts(j)}}
要 {{gapOf(j).want}} 条,只出了 {{gapOf(j).got}} 条。{{gapOf(j).blocked}}重跑也没用,得改工单的条件。
要 {{gapOf(j).want}} 条:这批出了 {{gapOf(j).own}} 条, 系统又补了 {{gapOf(j).filled}} 条(在"补齐"那张工单里),现在一共 {{gapOf(j).got}} 条,还差 {{gapOf(j).missing}} 条。
要 {{gapOf(j).want}} 条,只出了 {{gapOf(j).got}} 条,系统会自己补。
原因:{{gapOf(j).why}}
这次中断后已经自动重跑并跑完了,不用管 这次失败之前已经出过片,不用管

日志

{{logText}}

新建剪辑工单

按框架拼:开头 → 中段 → 结尾,每段从对应段落挑一块素材整块用;同一套口播不同片、同一句话不说两遍。从选中的素材里截几段拼成一条片:每条只留一个开场、一段叫人下单的话;会不会重复说同一句话,看下面"口播去重"选哪档;字幕和配音不改。
素材
{{product}} · {{picked.length ? '只用勾选的 ' + picked.length + ' 条' : '没勾选,用这个产品全部 ' + framePool.length + ' 条'}},按段落挑 {{picked.length ? '改' : '去勾选'}}
还没选素材,先去素材库挑。
素材
{{product}} · {{picked.length}} 条,口播互不相同的 {{distinctPicked}} 条 改
子文件夹
只用这几个文件夹里的素材({{form.folders.join('、')}});挑不出来的会提示。 不选就照旧从这个产品全部素材里挑。
工单名 可不填,不填就用左边灰字这个名字
拼法
{{frameMode ? '按 开头 → 中段 → 结尾 的顺序,每段挑一块素材整块用,不往里切' : '原来的拼法:从选中的素材里截几段拼成一条'}}
框架模板
Excel 原框架:{{frameTpl.excel}} {{frameTpl.slots ? '按 40 秒精简:' : ''}}{{frameTpl.note}} 这个产品的素材还没做功能标注,按模板挑不出素材;先用"按文件夹"。
框架
顺序段落功能标签可挑的素材同一块最多用几次固定某一块
⠿ {{i + 1}} {{r.segment}} {{r.tags ? r.tags.join(' 或 ') : '不限'}} 次
每段挑一块素材整块用;中段不分 1、2、3,带功能标签的只挑标了这些标签之一的。"同一块最多用几次"不填就按灰字的建议(结尾是标准件,默认不限)。段落和标签可以直接下拉单改,+/- 增减段——只改这张工单,不改模板;鼠标悬停"可挑的素材"缩略图,右边能预览。测开头:把中段和结尾都固定一块,只换开头,每条片只差开头。
口播去重
{{(dedupLevels.find(d => d[0]===dedupNow) || [])[2]}}
素材去重
{{(mdTiers.find(t => t.id===mdNow) || {}).desc}}越强越不容易撞车,但现有素材能出的条数越少,提交前点"先看看能出几条"。
标签规则
标签作用位置动作
不加规则,就按系统平常的方式挑素材。 排除:这个位置不用带这个标签的素材。必须:开头/结尾那一段必须用带这个标签的,中间/全片至少有一段用。同一个产品下次会自动带出这次的规则。
条数 {{features.proxy_review ? '审片要通过多少条(淘汰的系统自动补)' : '这一批要出多少条'}}
时长
秒 到 秒
{{orderCheck.text}}
按现在的条件,要 {{precheck.tried}} 条只能出 {{precheck.produced}} 条。{{precheck.why}}
这只是提醒,想按现在的条件做就直接点"开始生成"。
按现在的条件能出满。
点选固定这一块,悬停右边预览
{{a.file}} · {{a.duration}}s
这段没有可选素材

拿片子

{{dl.product}} · {{orderName(dl.batch_id)}}:{{dl.total}} 条里审过 {{dl.passed}} 条
{{dlNote}}
下载请走「复制链接 + 迅雷」,别点「浏览器直接下」 链接都是阿里云直链,丢进迅雷批量下全程连的是云、不经过我们这扇慢门,又快又不断。点上方「复制链接」或「导出 TXT」→ 打开迅雷 → 新建任务粘贴,一批一起下完。
选中 {{dlPicked.length}} 条
片子多的时候用批量下载工具,别让浏览器一条条下

片子都存在云上,用下载工具直接从云上拉最快,所以这里不提供打包下载。

做法:点复制链接(或导出 TXT),打开迅雷,新建任务时粘贴进去,它会认出一整批一起下。 文件名已经带在链接里,下下来就是「产品_批次_序号.mp4」,不用自己改。

链接 {{dl.link_days || 3}} 天内有效,过期回这个页面重新复制一份就行。

还有 {{dl.rendering.length}} 条审过了、正在生成,生成好刷新一下就会出现在上面: {{r.plan_id.slice(-3)}} 生成中
这个工单还没有审过的片子。先去审片。

审片

第 {{cursor+1}} / {{queue.length}} 条 · 编号 {{current.plan_id.slice(-3)}} 要 {{runRF.want}} 条:已通过 {{runRF.passed}}(已生成 {{runRF.rendered}})· 淘汰 {{runRF.rejected}} 补不出新片了:{{runRF.shortfall}}
正在加载审片数据…
判完自动跳下一条

成片去重

丢一条已经剪好的成片进来,出一个或几个「看着不同、内容不变」的变体,规避平台查重

1 选成片

两种来法:直接上传一条,或从素材库里挑一条已有的
已选:{{dd.file.name}}({{(dd.file.size/1024/1024).toFixed(1)}} MB)
{{dd.uploadErr}}(重新点「上传成片」会接着传)
已传好:{{dd.upload.name}},去重会用它
{{dd.materialErr}}
{{a.file || a.asset_id}} {{a.product}}{{a.duration ? Math.round(a.duration)+'s' : ''}}
搜一下,或直接点「搜索」列出素材
已选:{{dd.upload.name}}

2 选手法

不懂参数就选一档强度;想自己定就切到「高级勾选」
{{t[1]}} {{t[2]}}
勾哪些手法就用哪些;镜像会把画面里的字反过来,谨慎。不勾水印就不加水印。
水印文字
出几个变体 每个变体手法参数都不同,片片不一样
还没准备好:{{ddNotReady}}

3 结果

状态:{{ddState(dd.result.state)}}
{{dd.result.error}}
下载请走「复制链接 + 迅雷」,别点「浏览器直接下」 变体都传在阿里云上,丢进迅雷批量下全程连的是云、不经过我们这扇慢门,又快又不断。勾选要下的变体 → 复制链接 / 导出 TXT → 打开迅雷新建任务粘贴。
选变体做了哪些处理时长下载
第 {{v.index}} 条 {{v.description}} {{v.actual_duration ? Math.round(v.actual_duration)+'s' : ''}} 下载
去重中,出片后自动刷新…

去重历史

成片状态变体数生成人提交时间
{{j.title}} {{ddJobState(j)}}{{j.variants || ''}} {{j.owner || '(无记录)'}} {{clock(j.created_at)}} 下载 zip
还没有去重记录
{{tplEditId ? '编辑框架模板' : '新建框架模板'}}
给这套框架起个名字、配好每一段(段落 + 可选功能标签)。模板是你私有的,别的同事看不到;管理员能看到所有人的。
名字
时长 到 秒 成片一般 40 秒左右,默认 35–45
每一段(开头 → 中段 → 结尾,功能标签点选,可多选)
{{i + 1}}
调时长:第 {{trimDialog.index + 1}} 段
倍速
这段在源片里从 {{trimDialog.part.start.toFixed(1)}}s 到 {{trimDialog.part.end.toFixed(1)}}s,掐完剩 {{(trimDialog.range[1] - trimDialog.range[0]).toFixed(1)}}s。只能掐掉头或尾,中间不能切开。
{{msg}}