🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

鲸影视频工坊 hackerFish/dsh-video-studio

DeepSeek Harness
hackerFish59 天前有提交已提供中文文档扫描:高危

用导演流水线把小说一键生成漫剧成片

32.9/100
综合分
6
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add hackerFish/dsh-video-studio
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · vision
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 59 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/27) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@hackerfish/dsh-video-studio(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/17 12:41:22

🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0
🔴 扫描:高危尚无人工评估

静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。

命令参数由运行时变量拼接读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 59 处,展示前 34 条)
  • 读取本地文件
    lib/host/index.mjs:573
    const walk = (dir) => readdirSync(dir, { withFileTypes: true }).flatMap((e) => e.isDirectory() ? walk(join(dir, e.name)) : e.name.endsWith(".ts") ? [j
  • 读取本地文件
    lib/host/index.mjs:574
    return walk(base).map((p) => ({ path: p.slice(ROOT.length + 1).replace(/ /g, "/"), lines: readFileSync(p, "utf8").split("\n").length })).sort((a, b)
  • 读取本地文件
    lib/host/index.mjs:578
    const files = readdirSync(base).filter((f) => f.endsWith(".test.ts"));
  • 读取本地文件
    lib/host/index.mjs:580
    (n, f) => n + (readFileSync(join(base, f), "utf8").match(/^test /gm) ?? []).length,
  • 读取本地文件
    lib/host/index.mjs:586
    const src = readFileSync(join(ROOT, "src/host/tools.ts"), "utf8");
  • 读取本地文件
    lib/host/index.mjs:590
    const src = readFileSync(join(ROOT, "src/host/index.ts"), "utf8");
  • 执行外部命令运行时拼接
    lib/host/index.mjs:599
    const run = (args) => execSync(`git ${args}`, { cwd: ROOT, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
  • 写入本地文件
    lib/host/index.mjs:694
    mkdirSync(dirPath, { recursive: true, mode: 448 });
  • 写入本地文件
    lib/host/index.mjs:696
    chmodSync(dirPath, 448);
  • 写入本地文件
    lib/host/index.mjs:798
    mkdirSync(dirname2(this.file), { recursive: true });
  • 写入本地文件
    lib/host/index.mjs:799
    writeFileSync(tmp, JSON.stringify(this.data, null, 2) + "\n", { mode: 384 });
  • 写入本地文件
    lib/host/index.mjs:801
    chmodSync(tmp, 384);
  • 写入本地文件
    lib/host/index.mjs:804
    renameSync(tmp, this.file);
  • 删除本地文件
    lib/host/index.mjs:812
    rmSync(this.file, { force: true });
  • 执行外部命令来自配置/变量
    lib/host/index.mjs:968
    const p = spawn(bin, ["-i", src], { stdio: ["ignore", "ignore", "pipe"] });
  • 发起网络请求
    lib/host/index.mjs:1158
    const out = await p2.fetch(jobId);
  • 发起网络请求
    lib/host/index.mjs:1206
    const out = await p.fetch(jobId);
  • 发起网络请求
    lib/host/index.mjs:1699
    const out = await p.fetch(jobId);
  • 发起网络请求
    lib/host/index.mjs:1757
    const q = await (await fetch(`${base}/queue`, { signal: AbortSignal.timeout(8e3) })).json();
  • 发起网络请求
    lib/host/index.mjs:1777
    const oi = await (await fetch(`${base}/object_info`, { signal: AbortSignal.timeout(3e4) })).json();
  • 发起网络请求
    lib/host/index.mjs:1800
    const q = await (await fetch(`${base}/queue`, { signal: AbortSignal.timeout(1e4) })).json();
  • 发起网络请求
    lib/client/index.js:9209
    const res2 = await fetch("/dsh-video-studio/comfyui/run", {
  • 发起网络请求
    lib/client/index.js:9219
    const res = await fetch(STAGE_ENDPOINT[data.stage] ?? "/dsh-video-studio/generate", {
  • 发起网络请求
    lib/client/index.js:9368
    fetch("/dsh-video-studio/comfyui/nodes", { cache: "no-store" }).then((r) => r.json()).then((d) => {
  • 发起网络请求
    lib/client/index.js:9375
    fetch("/dsh-video-studio/comfyui/queue", { cache: "no-store" }).then((r) => r.json()).then((d) => {
  • 发起网络请求
    lib/client/index.js:9404
    const res = await fetch(url, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(body) });
  • 发起网络请求
    lib/client/index.js:9606
    fetch("/dsh-video-studio/runs", { cache: "no-store" }).then((r) => r.json()).then((d) => {
  • 写入剪贴板
    lib/client/index.js:9886
    navigator.clipboard?.writeText(t).catch(() => {
  • 发起网络请求
    lib/chunk-YJ6H2MSU.mjs:29
    async fetch(jobId) {
  • 发起网络请求
    lib/chunk-YJ6H2MSU.mjs:182
    async fetch(jobId) {
  • 发起网络请求
    lib/chunk-YJ6H2MSU.mjs:260
    async fetch(jobId) {
  • 发起网络请求
    lib/chunk-YJ6H2MSU.mjs:342
    async fetch(jobId) {
  • 发起网络请求
    lib/chunk-YJ6H2MSU.mjs:423
    async fetch(jobId) {
  • 发起网络请求
    lib/chunk-YJ6H2MSU.mjs:492
    async fetch(jobId) {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 小说一键生成漫剧成片
  • 六段导演流水线
  • 多供应商免费额度调度

鲸影 DSH Video Studio:DeepSeek Harness 原生视频/漫剧生成插件——六段导演流水线、多供应商免费额度调度、四层提示词自优化,质量优先省钱第二

README

由 DeepSeek 最新模型翻译生成
🐳 dsh-video-studio(鲸影) DeepSeek Harness 原生视频/漫剧生成插件:七段导演流水线 × 多账号额度池(失败自动换号)× 凭证保险库 × 四层提示词 + 评分回写闭环。 生态现状:DSH 已有 1000+ 插件,但没有一个生成式视频插件;外部有工业级漫剧平台(waoowaoo / LumenX / MangaV / ArcReel),但都是独立软件,不是 DSH 插件。鲸影把这条已验证的流水线做成 DSH 原生、热拔插、可每步接管 的插件。 真机演示——真实 AI 生成视频(wan2.2-t2v-plus,DashScope,1080p 5 秒): 鲸影真机演示 项目量化评估 一句话定位 质量第一,省钱第二:免费额度优先试生成 → 质检不达标自动升档重拍 → 全部消耗可追溯。
展开完整文档(README 剩余 1 节)
🐳 dsh-video-studio(鲸影)

DeepSeek Harness 原生视频/漫剧生成插件:七段导演流水线 × 多账号额度池(失败自动换号)× 凭证保险库 × 四层提示词 + 评分回写闭环。

生态现状:DSH 已有 1000+ 插件,但没有一个生成式视频插件;外部有工业级漫剧平台(waoowaoo / LumenX / MangaV / ArcReel),但都是独立软件,不是 DSH 插件。鲸影把这条已验证的流水线做成 DSH 原生、热拔插、可每步接管 的插件。

真机演示——真实 AI 生成视频(wan2.2-t2v-plus,DashScope,1080p 5 秒):

鲸影真机演示

项目量化评估

一句话定位

质量第一,省钱第二:免费额度优先试生成 → 质检不达标自动升档重拍 → 全部消耗可追溯。

七段工作流(行业公认管线)

故事(豆包等 LLM 写小说)→ 剧本(LLM 拆剧)→ 分镜(LLM 出分镜) → 资产主图(MJ 等出主视觉)→ 资产图(图像模型出变体,万相/豆包) → 视频(Seedance/即梦/可灵)→ 成片(剪映草稿/ffmpeg)

- 前三个阶段是 LLM 阶段:在 DSH 里由会话模型直接完成——你对话用的模型(豆包/DeepSeek 都可以)就是"写小说/拆剧本/出分镜"的大脑,插件不再调外部 LLM

与公认工作流的对照:

| 公认流程 | 鲸影落点 |
| 豆包写小说/拆剧本/出分镜 | = DSH 会话模型直做 story/script/storyboard 三段(换豆包模型即"豆包写") |
| MJ 出资产主图 | = master-asset 段(MJ 官方 API 适配器待写;万相/Seedream 可替) |
| image 出资产图 | = shot-assets 段(万相✅实测 / 豆包 Seedream✅已接入) |
| Seedance 出视频 | = video 段(豆包 Seedance✅ / 即梦 / 可灵 / ComfyUI) |
| 剪映剪辑成片 | = final-cut 段(剪映草稿导出✅ / ffmpeg✅) |
- 每段都有 gate(auto 全自动 / ask 每步询问 / manual 人工提供)
- 一致性资产库:角色/场景主图 + 逐镜变体登记,参考图自动注入提示词(漫剧行业一致性标准做法)
- 并行分镜:资产图与视频批量提交、并发轮询
- 额度池:每供应商多账号轮换 + 按日额度 + 失败指数退避 + 流水线内自动降级重提(坏号立刻冷却,换下一个健康号继续跑)+ 全程审计
- 凭证保险库:账号存在 ~/.whale/whale.json(0600 权限、原子写入),API 只回脱敏提示,设置页「鲸影账号」tab 直接增删管理
- 评分回写闭环:每次评审把得分+增益组合写回评分簿,优化器按真实历史得分选增益
- 风格基因(记忆):风格 DNA、模板评分演化、重拍反馈,跨会话沉淀
- 提示词工程:专业模板库(角色三视图/场景主图/单镜画面,参数化)+ 质量增益库(8K/无阴影/中性表情/严禁文字…可组合)+ 优化器;whale_optimize_prompt 工具把草稿一键优化成专业级四层提示词(深度自由 + 自优化)

1. 风格 DNA(全局):画风/色调/节奏/一致性 token
2. 分镜模板:景别、运镜、时长结构
3. 逐镜提示词:可全手写,自动注入模板变量
4. 负向/一致性注入:自动生成、可覆盖

自优化闭环:生成 → 评审打分(LLM 评审 + 你的点赞/重拍记录)→ 得分与增益组合写回评分簿 → 下次同风格自动按历史真实表现选增益。你的每一次"重拍"都在训练你的风格基因。

多账号与免费额度调度

- 供应商两种接入:API Key 型(可灵/百炼/Veo/Replicate…)与 sessionid 型(即梦等官网免费额度,sessionid 由你在官网登录后自取)
- 额度池(AccountPool):每个账号登记每日配额 → 自动轮换 → 失败指数退避(60s 起翻倍封顶 30min)→ 免费额度耗尽降级到付费 key → 提交失败当场换下一个健康账号重提,坏号不会被反复拖死
- 账号凭证通过设置页「鲸影账号」或 POST /dsh-video-studio/accounts 管理,明文只落本机 vault,接口只回脱敏
- 运行时接线:UI 里加的账号直接喂给 whale_generate_video——保险库 → 池选号(轮换/退避)→ 按账号构造供应商(src/host/account-providers.ts:单字段凭证明文、多字段凭证 JSON)→ 额度与健康状态写回保险库
- 费用追踪:每次生成记录供应商/账号/消耗,随时可查

⚠️ 合规声明:本插件支持你自有的多账号按各平台官方规则轮换额度;不提供批量注册、绕过风控等违反平台条款的功能——那会封号且不专业。请遵守各平台服务条款。

架构原则

- 薄抽象:供应商 = 一个 6 方法接口(submit/status/fetch/capabilities/quote/health),新增模型只需一个适配器文件
- 能力路由:导演引擎按供应商声明的 capabilities(文生视频/图生视频/首尾帧/口型/时长/分辨率)自动选路
- 热拔插:插件本身 dsh plugin add 即装即用;供应商与流水线阶段运行时热切换,不重启
- 详见 docs/ARCHITECTURE.md

现在能做什么

- 七段流水线、四层提示词合并、额度池调度(退避/降级)、质检重拍(导演喊卡)、评分回写、自我审计、口型同步段(配音镜头自动跑对口型,失败回退原片)、Windows 兼容(SAPI 配音/中文字体候选):123 个单测,全绿
- 剪映草稿导出(结构校验器盯着);ffmpeg 自动剪辑(真实成片、时长校验过)
- 口型同步段已接入成片:配置 capabilities.lipSync 供应商后,每个有配音的镜头自动跑对口型(源视频引用 + 音频 base64),对口型片替换原片;失败不致命,回退原片继续出片。分镜脚本还支持 voiceFile 直接挂外部配音(真人录音/云 TTS),跳过本地 TTS
- 本地中文配音:macOS say 零 key;Windows 走 PowerShell SAPI(需系统装中文语音包),其他平台/无语音包用 voiceFile 挂外部配音(云 TTS/真人录音);中文字幕字体候选已覆盖 macOS/Linux/Windows(微软雅黑/黑体/宋体)
- 无 key 也能跑完整 demo:node scripts/demo.ts,成片在 demos/
- 预置漫剧内容包:5 套题材(都市逆袭/仙侠/悬疑/甜宠/科幻),每套含双语角色卡+场景卡+分镜,node scripts/demo-presets.ts 无 key 全链路出片;whale_story_presets 工具一键出流水线脚本
- 自我分析:whale_self_audit 工具 / npm run self-audit 扫描项目自身(源码模块/测试数/供应商矩阵/能力清单/差距清单),自动生成 docs/AUDIT-REPORT.md——每天 diff 这份报告就是进度日志;本次会话的踩坑复盘沉淀在 docs/RETROSPECTIVE-2026-08-17.md
- 真插件:装进 DSH 启动无报错;/dsh-video-studio/health、/runs、/accounts 三个路由在线;七个模型工具(whale_story_presets / whale_storyboard / whale_generate_video / whale_optimize_prompt / whale_quality_review / whale_comfyui_workflow / whale_self_audit);设置页「鲸影」+「鲸影工作台」+「鲸影账号」三个 tab
- 即梦免费档:协议全通,但文生视频队列长期 SystemBusy(实测凌晨依然满)——免费策略改为:万相免费文生图出资产图(✅ 实测出真图)→ 即梦图生视频/官方 API 免费额度出视频
- 通义万相免费文生图:实测出过真图(1.28MB 鲸鱼图在 demos/)
- 万相视频(DashScope)✅ 真机出片:wan2.2-t2v-plus,1920×1080 5 秒约 90 秒出片,鲸鱼真片在 demos/dashscope-wan-live.mp4——⚠️ 按量计费 ¥0.70/秒(1080p),不是免费额度;账号默认额度为 0(暂停调度),付费生成前须显式确认预算
- 可灵官方、可灵百炼、豆包 Seedance 三个适配器写好,手头没 key,还没跑过真实生成
- 可灵对口型(lip-sync):官方 API 3-13 契约适配器写好(audio2video 贴 TTS 音频 / text2video 官方音色),8 个单测覆盖字段映射与状态机——真实调用等 key
- ComfyUI 本地引擎:/prompt→/history→/view 协议已通(mock 服务器级验证),导演层能把分镜决策直接生成 ComfyUI workflow JSON(变量替换+占位校验)——有 GPU 装个 ComfyUI 就是免费无限生成的本地引擎;whale_comfyui_workflow 工具离线可见
- 豆包网页版:真实抓包回放成功——SSE 聊天接口可做 LLM 三段(写小说/拆剧本/分镜),图片 bot 可出资产图;专业版免费额度按 7 天窗口(额度耗尽时图片停、文本继续)
- 可灵网页版:反爬是一次性令牌,协议已存档,自动化需要抓包桥——先搁着

安装

dsh plugin --profile web add github:hackerFish/dsh-video-studio --ignore-workspace-root-check

许可证

MIT
预览分享卡片长什么样 ↓hackerFish/dsh-video-studio
分享 · DeepSeek Harness Hub
hackerFish/dsh-video-studio

用导演流水线把小说一键生成漫剧成片

这是你的仓库?认领条目

回到顶部