{{tenantLabel}}
通告板
{{dash.projects}}
专案
{{dash.seg_videos_ok}}
已成段视频
{{dash.full_videos}}
已合成成片
{{dash.sends}}
真送提示词(条)
{{dash.gate_fails}}
门禁拦下(次)
{{dash.gate_failopen}}
门禁 fail-open(次)
{{dash.unusable_assets}}
判定不可用的资产
¥{{wallet?wallet.balance_yuan:'–'}}
工作室余额
{{statusLabel(s)}} {{n}}
最近动过的专案
| 编号 | 专案 | 型别 | 状态 | 分镜 | 引擎 | 更新 |
|---|---|---|---|---|---|---|
| {{p.pid}} | {{p.name}} | {{p.type}} | {{statusLabel(p.status)}} | {{p.shots_n}} | {{p.engine_version||'—'}} | {{ts(p.updated)}} |
{{tenantLabel}}
专案
| 编号 | 专案 | 型别 | 画幅 | 状态 | 分镜 | 成段 | 门禁拦下 | 引擎 | 更新 |
|---|---|---|---|---|---|---|---|---|---|
| {{p.pid}} | {{p.name}} | {{p.type}} | {{p.aspect}} | {{statusLabel(p.status)}} | {{p.shots_n}} | {{p.seg_videos}} | {{p.gate_fails}} | {{p.engine_version||'—'}} | {{ts(p.updated)}} |
共 {{projects.total}} 个
{{proj.name}}
{{statusLabel(proj.status)}}
引擎运行中 · {{progress.stage||''}}
作业 #{{projJob.id}} {{jobLabel(projJob.kind)}} · {{projJob.status}}
自动模式(拆分镜后自动接力到出片)
更新 {{ts(proj.updated)}} · 同步 {{proj.synced_at?proj.synced_at.slice(11,19):'—'}}
通告单
- 剧本
- {{proj.script_chars}} 字 · 看剧本
- 规划
- {{proj.meta.episodes||1}} 集 · 每集 {{proj.meta.seconds_per_ep||'—'}} 秒 · {{proj.meta.shots_per_ep||'AI 定'}} 镜 · {{proj.meta.segments_per_ep||'—'}} 段
- 视频模型
- {{proj.meta.video_model||'—'}} · 衔接 {{proj.meta.continuity_mode||'—'}} · 提示词 {{proj.meta.prompt_mode||'—'}}
- 叙事/摄影
- {{proj.meta.narrative_type||'—'}} · {{proj.meta.cinematography||'—'}}
- 画风
- {{proj.style||'—'}}
- 发起人 uid
- {{proj.meta.auto_actor_uid||'—'}}
- work 目录
- {{proj.has_work_dir?'有(帐本已入库)':'无'}}
盘点
{{proj.shots}}
分镜
{{proj.assets}}
资产
{{proj.asset_checks}}
资产判定
{{proj.sends}}
真送提示词
{{proj.gate_runs}}
门禁记录
{{proj.productions}}
产物
旧工作台 outputs(最近一轮的段视频)
出片前体检 {{preflightLast.ok?'通过':'拦截'}} {{preflightLast.t}}
{{(preflightLast.raw&&preflightLast.raw.lines||[]).join('\n')||preflightLast.detail}}
进度
{{progress.pct||0}}% · {{progress.stage||progress.status||''}} · 段 {{progress.seg_done}}/{{progress.seg_total}}
剧本
{{script}}
此专案还没有剧本
四资产(人物/场景/道具/技能)
流程:先「② 分镜表」拆分镜(或直接从剧本抽),再在这里审核四资产并建定妆图;定妆齐了才到「④ 出片」。每行一个资产:编号 | 名称 | kind(character/scene/prop/skill/costume) | 定妆提示词 | 参考图URL(可选)。拆四资产会填进来,可直接改;改完再建定妆图。
定妆/四视卡都是引擎作业(会产生图片费用),送出后到「场记板」看进度。
出片参数
{{pp.label}}
制作模式
存进 gen_json.meta.video_params,出片时引擎读取
出片
- 分镜
- {{proj.shots}} 镜 · 剧本 {{proj.script_chars}} 字
- 定妆
- {{Object.keys(lpAnchors).length}} 张
- 模式
- {{videoParams.production_mode==='auto'?'自动':'每步确认'}} · {{cont.mode==='framechain'?'首尾帧链式':'故事板'}} · {{cont.seg}}
- 费用
- 预扣=分镜×15秒×秒价+(分镜+10)×图价,结算按实际段秒数与已产图多退少补
首镜验证:先看「④ 出片」前用「出片前体检」跑零花费自检;出完第一段到「真送面板」核提示词与门禁,再决定是否续跑。
{{progress.pct||0}}% · {{progress.stage||progress.status||''}}
分镜表 每镜一行:时长 · 场景 · 人物 · 道具 · 台词 · 视频提示词 · 运镜 · 动作拍点
还没拆分镜
| 镜 | 秒 | 场景 | 人物/道具 | 台词 | 视频提示词(prompt_video) | 运镜 · 拍点 | |
|---|---|---|---|---|---|---|---|
| {{s.ep}} · {{s.id}} | {{s.dur||'—'}} | {{s.scene}} | {{c}}{{c}} |
{{s.text}} | {{(s.prompt_video||s.prompt||'').slice(0,60)}}…{{s.prompt_video||s.prompt}}图层:{{s.prompt_image}} |
{{c}} · {{b}}
V300 IR · {{(s.v300_ir.camera||{}).move||'static'}} · {{(s.v300_ir.beats||[]).length}} 拍在场 {{(s.v300_ir.chars||[]).join('、')||'—'}} | 场景 {{s.v300_ir.scene||'—'}} | 前景 {{(s.v300_ir.foreground||{}).element||'—'}}
{{b.t0}}–{{b.t1}}s {{b.actor}}:{{b.action}}→{{b.direction}} 落点 {{b.target}} 「{{b.line}}」
|
拆分镜是引擎作业,到「场记板」看进度
资产库
可用 {{assets.summary.usable}}不可用 {{assets.summary.unusable}}未判 {{assets.summary.assets-assets.summary.checked}}可用性=引擎在生成时(asset_gen/asset_check)与出片后(asset_audit)用视觉模型判过的结果;未判=还没被任何门禁看过。
{{grp.label}} {{grp.items.length}}
还没有资产
场记板 每个作业一行:排队 → 运行 → 完成/失败/取消;引擎 stdout 逐行落库
还没有作业记录
| # | 作业 | 段 | 状态 | 来源 | 实扣(厘) | 上游(厘) | 引擎 | 细节 | |
|---|---|---|---|---|---|---|---|---|---|
| {{j.source==='worker'?j.id:'—'}} | {{jobLabel(j.kind)}} | {{j.seg||'—'}} | {{jobStatus(j.status)}} | {{j.source==='worker'?'作业队列':'回填'}} | {{fmt(j.cost_milli)}} | {{fmt(j.upstream_milli)}} | {{j.engine_version||'—'}} | {{detail(j.detail)}} |
作业 #{{jobView.id}} · {{jobLabel(jobView.kind)}} {{jobStatus(jobView.status)}}
{{jobLogText||'(尚无日志)'}}
引擎日志(旧后端即时)
{{logText||'(尚无日志;引擎跑起来后这里每 3 秒拉一次)'}}
真送面板 每段真正送给视频模型的完整提示词 · 九槽参考图 · 该段门禁判定
还没有真送记录(events.jsonl 为空或尚未同步)
门禁帐本
{{s.ok}}/{{s.runs}}
{{gateLabel(k)}} 通过/次数 · fail-open {{s.failopen}}
此专案没有门禁记录(V250.4b 之前的引擎不写 gate_runs.jsonl)
| 时间 | 门 | 段 | 判定 | 为什么 | 图 |
|---|---|---|---|---|---|
| {{g.t}} | {{gateLabel(g.kind)}} #{{g.attempt}} | {{g.seg||'—'}} | {{g.ok===true?'过':g.ok===false?'拒':'—'}}fail-open | {{g.detail||'—'}} | 看图 |
交片单
还没有产物
分段
{{v.seg}}{{v.ok===true?'成':v.ok===false?'败':'—'}}{{v.reason}}
本机成片(伺服器路径)
{{v.url}}
血缘(每镜绑定的资产)
| 镜 | 绑定 | 未解析 | 台词 |
|---|---|---|---|
| {{l.seg}} | {{b.key}} {{b.name}} | {{(l.meta.unresolved_elements||[]).join('、')||'—'}} | {{l.meta.has_text?'有':'无'}} |
载入专案中…
{{tenantLabel}}
资产库
{{lib.summary.names}} 个名字{{lib.summary.assets}} 张可用 {{lib.summary.usable}}不可用 {{lib.summary.unusable}}
跨专案同名资产都在这里;要在新专案复用,先在旧工作台「参考图上传」贴上这里的图片地址(复用写回旧库的按钮在下一阶段)。
没有符合的资产
{{grp.label}} {{grp.items.length}}
{{tenantLabel}} · 模组
{{moduleTitle}}
{{tenantLabel}}
成片画廊
还没有完成的成片
{{tenantLabel}} · 换脸
换脸
{{fs.stats}}
换脸模组口令
沿用旧端 /api/faceswap/gate 口令闸
①新脸库(男女分开)
{{l.gender==='m'?'男':'女'}}
已存脸库
{{g==='m'?'男':'女'}}脸库 {{(fs.saved[g]||[]).length}}
{{f.name}}
②视频(多集)
从到补零位数
共 {{fsVideos.length}} 集
{{i+1}}.{{u.name}} · {{u.err}}已上传上传中 {{u.pct||0}}%
检测历史(点选复用·免重检)
③检测第 1 集人脸并指派
{{fs.detSt}}一个框指派给一个角色(再点同一个=取消);一个角色可被多个框选中(一新脸换多框)。
历史
暂无
{{ts(h.created)}}{{h.label||(h.total+'集')}} · {{h.ok}}/{{h.total}} ✓ · {{Math.round(h.secs||0)}} 秒 · {{h.status}}
月账单(换脸独立计费·0.35/0.55 元每秒)
暂无账单
| 月 | 秒 | 单人 | 多人 | 次数 | 费用(元) |
|---|---|---|---|---|---|
| {{b.month}} | {{Math.round(b.secs)}} | {{b.single_jobs}} | {{b.multi_jobs}} | {{b.jobs}} | {{(b.cost||0).toFixed(2)}} |
{{tenantLabel}}
作业中心
还没有作业。从专案页点「拆分镜/补四视卡/全线出片」即入队,工作器按序执行。
| # | 专案 | 作业 | 状态 | 排队 | 开始 | 结束 | 实扣(厘) | 上游(厘) | 引擎 | 细节 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{j.id}} | {{j.project.pid}} {{j.project.name}}(工作室) | {{jobLabel(j.kind)}} | {{jobStatus(j.status)}} | {{ts(j.queued_at)}} | {{ts(j.started)}} | {{ts(j.finished)}} | {{fmt(j.cost_milli)}} | {{fmt(j.upstream_milli)}} | {{j.engine_version||'—'}} | {{detail(j.detail)}} |
{{tenantLabel}}
帐房
¥{{wallet.balance_yuan}}
可用余额
¥{{wallet.frozen_yuan}}
预扣中(出片未结)
{{ledger.length}}
最近流水(条)
{{usage.length}}
最近用量(条)
流水
| 时间 | 种类 | 金额(厘) | 结余(厘) | 凭据 | 备注 |
|---|---|---|---|---|---|
| {{ts(l.ts)}} | {{kindLabel(l.kind)}} | {{fmt(l.amount_milli)}} | {{fmt(l.balance_after)}} | {{l.ref||'—'}} | {{detail(l.meta)}} |
用量
| 时间 | 专案 | 类型 | 模型 | 秒/张 | 售价(厘) | 上游(厘) |
|---|---|---|---|---|---|---|
| {{ts(u.ts)}} | {{u.project||'—'}} | {{u.call_type}} | {{u.model}} | {{u.qty||u.seconds||u.units||'—'}} | {{fmt(u.sell_milli)}} | {{fmt(u.upstream_milli)}} |
充值单
| 单号 | 金额(厘) | 状态 | 通道 | 时间 |
|---|---|---|---|---|
| {{o.out_trade_no}} | {{fmt(o.amount_milli)}} | {{o.status}} | {{o.pay_type||o.type||'—'}} | {{ts(o.created)}} |
{{tenantLabel}} · 后台
管理后台
总览
{{admin.stats.users}}
成员
¥{{admin.stats.recharge_yuan}}
累计充值
{{fmt(admin.stats.charged_milli)}}
累计实扣(厘)
{{fmt(admin.stats.upstream_milli)}}
累计上游成本(厘)
{{fmt(admin.stats.gross_margin_milli)}}
毛利(厘)
{{admin.stats.holds.held}}/{{admin.stats.holds.settled}}/{{admin.stats.holds.refunded}}
预扣 悬/结/退
近 14 天收入
| 日 | 实扣(厘) | 上游(厘) | 毛利(厘) |
|---|---|---|---|
| {{d.day}} | {{fmt(d.charged_milli)}} | {{fmt(d.upstream_milli)}} | {{fmt(d.charged_milli-d.upstream_milli)}} |
成员
| ID | 帐号 | 角色 | 状态 | 备注 | 最后登入 | 操作 |
|---|---|---|---|---|---|---|
| {{u.id}} | {{u.username}} | {{u.role}} | {{u.status}} | {{u.note||'—'}} | {{ts(u.last_login)}} |
充值单(待确认的可手工反查入账)
| 单号 | 帐号 | 金额(厘) | 状态 | 时间 | 操作 |
|---|---|---|---|---|---|
| {{o.out_trade_no}} | {{o.username||o.user_id}} | {{fmt(o.amount_milli)}} | {{o.status}} | {{ts(o.created)}} |
预扣
| ID | 专案 | 帐号 | 金额(厘) | 状态 | 建立 | 关闭 |
|---|---|---|---|---|---|---|
| {{h.id}} | {{h.project}} | {{h.username||h.user_id}} | {{fmt(h.amount_milli)}} | {{h.status}} | {{ts(h.created)}} | {{ts(h.closed)}} |
定价
| 类别 | 模型 | 规格 | 单位 | 上游(厘) | 售价(厘) | 范围 | |
|---|---|---|---|---|---|---|---|
| {{p.category}} | {{p.model}} | {{p.resolution}} | {{p.unit}} | {{fmt(p.upstream_milli)}} | {{fmt(p.sell_milli)}} | {{p.tenant_id?'本工作室':'全局'}} |
用量
| 时间 | 帐号 | 专案 | 类型 | 模型 | 售价(厘) | 上游(厘) |
|---|---|---|---|---|---|---|
| {{ts(u.ts)}} | {{u.username||u.user_id}} | {{u.project||'—'}} | {{u.call_type}} | {{u.model}} | {{fmt(u.sell_milli)}} | {{fmt(u.upstream_milli)}} |
引擎档位 {{engineProf.unit}} · 生效值=各 drop-in 依档名顺序覆盖;本工作室的覆盖写进 zzz-saas-profile.conf
等待引擎空闲后重启(作业 #{{engineProf.pending_restart.id}} · {{engineProf.pending_restart.status}})改动进审计(前后值),worker 只在没有引擎子进程时重启旧后端;密钥类旗标只显示遮罩。
| 旗标 | 生效值 | 来源档 | |
|---|---|---|---|
| {{f.key}} | {{f.value}} | {{f.source}}本工作室覆盖 |
通道与密钥(明文密钥档 · 旧端 /api/keys)
沿用旧端口令闸;读出的是产片时 source 的 .env 明文,改完保存立刻生效于下一次出片。密钥只在你眼前,不进 SaaS 资料库。
{{keysPath}}
同步与审计
每 10 分钟自动从旧专案库与 work 目录同步一次;手动同步会把最新的 events/gate_runs/asset_check/products 逐行补进来(幂等)。
{{syncLog||'(尚未手动同步)'}}