deepseek-design/packages/deepseek-ivideo

195Star67Fork2Issue29Watching

DeepSeek Harness 的原生 Video 视图,27 个可编辑视频模板,对话中用 AI 直接生成与精调视频,并提供自动校验工具。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科

此插件是大仓库 Devin-AXIS/deepseek-design 的子包,星数与活跃度统计的是整个仓库。

语言
JavaScript
License
NOASSERTION
分支
main
ai-designdeepseekdeepseek-harnessdesigndesign-studiodsh-pluginipolloworkipollowork-plugin

安装

$ dsh plugin --profile web add github:Devin-AXIS/deepseek-design/packages/deepseek-ivideo

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 Devin-AXIS/deepseek-design/packages/deepseek-ivideo:先查看仓库 https://github.com/Devin-AXIS/deepseek-design.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

deepseek-ivideo 把 iPolloWork 的 HyperFrames Video Studio 作为原生 Video 视图注入 DeepSeek Harness,对话里可以由 AI 直接生成或大范围修改整段视频,也能选中画面里的标题、图片、素材等元素发起 Ask AI 精准修改,最终落到工作区里真实的可编辑 HTML/CSS 项目文件。

核心能力

  • 在 DeepSeek Harness 对话标签栏中提供原生 Video 视图(label "Video"),与 Design、PPT 视图并列
  • 通过对话让 AI 完整生成或大范围修改视频,并把改动写入当前工作区的真实 HyperFrames 项目文件
  • 选中画面中标题、图片、素材或其他元素后用 Ask AI 触发精准修改,插件只准备草稿不自动发送
  • 内置 27 个可编辑视频模板(覆盖动态标题、代码讲解、数据图表、产品演示、品牌片头、AI 工作流等),可一键套用到当前会话项目,失败自动回滚
  • 提供 ipollowork_video_validate 模型工具,对当前会话的视频项目做结构化校验并返回有限结果
  • 每个会话对应独立的 HyperFrames 预览进程,所有 lease 释放 60 秒后自动回收,端口冲突时自动回退

技术实现

  • 语言: TypeScript + React(Studio 前端,Vite 构建)+ Node.js(HTTP 桥接与运行时进程管理)
  • 关键依赖: @deepseek-ai/cordis(插件注入与 effect)、@deepseek-ai/dsh-host-webserver(路由注册)、@deepseek-ai/dsh-tools(模型工具注册)、@deepseek-ai/dsh-workspace(工作区解析)
  • 架构模式: 服务端通过 cordis.patch.ymlipollowork-video-studio 插件插入宿主;apply 阶段在 /ipollowork-video 前缀下注册 webServer 路由(承载 7 个 HTTP API 与 Studio 静态资源),把工作区根、模板目录、项目初始化以及 ipollowork_video_validate 模型工具接到宿主;同时通过 dsh.client.inject 把客户端代码注入到 Harness Web 端,对话里注册 conversation.view slot 渲染承载 Studio 的 iframe;客户端 View 与 Studio 通过 postMessage(channel ipollowork-video-studio-host-v1)交换 ask-ai-selection / ask-video-ai 消息,事件源同时校验 origin 与 source 指向 iframe contentWindow
  • 入口文件: packages/deepseek-ivideo/lib/index.js(服务端注册与 HTTP API)、packages/deepseek-ivideo/lib/client.js(前端 Video 视图)、packages/deepseek-ivideo/lib/runtime.js(HyperFrames 进程管理)、packages/deepseek-ivideo/studio/dist/index.html(Studio 静态资源)

适用场景

适合需要在 DeepSeek Harness 工作区里直接产出可编辑视频的用户——做产品演示、数据故事、品牌片头、动态标题、教学片段或社媒短视频。痛点是在普通对话里只能拿到一次性的视频或截图,无法继续精调单一对象;本插件把真实的 HyperFrames 项目落到 video/<sessionId>/,并允许 AI 生成、画布直接编辑、选区级 Ask AI 三种方式交替进行。

前置依赖与兼容性

依赖最低版本说明
@deepseek-ai/dsh-client-runtime>=0.0.1-rc.1 <0.2.0-0客户端运行时,DSH Web 端必需
@deepseek-ai/dsh-client-ui-conversation>=0.0.1-rc.1 <0.2.0-0对话视图插槽机制(Video 视图注册依赖)
@deepseek-ai/dsh-host-webserver>=0.0.1-rc.1 <0.2.0-0宿主的 HTTP 路由注册能力
@deepseek-ai/dsh-tools>=0.0.1-rc.1 <0.2.0-0注册 ipollowork_video_validate 模型工具
@deepseek-ai/dsh-workspace>=0.0.1-rc.1 <0.2.0-0工作区解析(视频项目文件读写需要)
@deepseek-ai/cordis^4.0.1注入与 effect 框架(构建期可选)
react^18.2.0Studio 前端运行时
Node.js>=22package.json 中 engines.node 显式声明
平台macOS / Windows / Linux依赖宿主 DSH 的 Web 服务和 Node.js 子进程;process.platform 区分 Windows 与 POSIX 处理进程组信号
原生模块sharp 0.34+、onnxruntime-node 1.23+package.json 直接声明,由嵌入的 HyperFrames 运行时按需加载(图片处理与 AI 推理)

安装方式

dsh plugin --profile web add github:Devin-AXIS/deepseek-design/packages/deepseek-ivideo

配置项

本插件无需用户级配置。安装后插件以 ipollowork-video-studio 标识注入宿主(cordis.patch.yml:1-3),自动在 DSH Web 端注册 Video 视图;运行期每次进程启动用 32 字节随机令牌保护 iframe 通信与 HTTP API 调用(lib/index.js:210),所有读写都限制在当前工作区的 video/<sessionId>/ 目录内(lib/index.js:13-14、93-126)。

常见问题

Q: 这个插件和 deepseek-design 是什么关系?

A: 它是 deepseek-design 套件里的"视频"那一支,专门为 Harness 对话增加一个 Video 视图(README.md:13-17 / source/README.md:48-56)。与兄弟插件 iDesign(Design 视图)和 iPPT(PPT 视图)共享 iPolloWork Studio 契约和模板协议,但项目目录彼此隔离,可以只装这一份。

Q: 装了它会不会顺便下载 iPolloWork 桌面端或其它两个兄弟插件?

A: 不会。npm 包自带 Video 视图所需的浏览器资源(packages/deepseek-ivideo/lib/、packages/deepseek-ivideo/studio/dist/),既不下载 iPolloWork 桌面应用,也不强制安装 iDesign/iPPT;三个插件的项目目录(design/、design/-ippt/、video//)互相隔离,不会相互覆盖。

Q: 视频项目文件保存在哪里?

A: 全部写入 DeepSeek Harness 当前注册工作区的 video/<sessionId>/ 目录(source/shared/types/hyperframes-project.ts:14-16 / source/plugins/deepseek-ivideo/src/runtime.ts:236-247),含 index.htmldesign-tokens.cssmanifest.jsonbrief.json 等真实可继续手工编辑的文件,不是云端封闭画布;你可以用任意代码编辑器改这些文件,也可以让 AI 通过对话继续修改。

Q: 自带了哪些视频模板?

A: 27 个内置可编辑视频模板,覆盖动态标题、代码讲解、数据图表、产品演示、品牌片头、AI 工作流演示等场景(packages/deepseek-ivideo/lib/templates/*/manifest.json)。模板筛选只放行 surface === "video"category === "video" 的模板(packages/deepseek-ivideo/lib/index.js:20-22),Design 与 PPT 模板不会混入。

Q: Ask AI 会自动发送消息吗?

A: 不会。Ask AI 只把当前视频项目或选中元素的相对路径、CSS 定位、文字/alt/src、计算样式整理成对话草稿填到 Harness 输入框(packages/deepseek-ivideo/lib/client.js:113-128 / source/plugins/deepseek-ivideo/src/client.tsx:20-30),由用户点发送才会提交,插件不自动执行工具调用;选中元素后会通过 postMessage 跨 iframe 通信(channel ipollowork-video-studio-host-v1,origin 与 source 双重校验)把上下文送到 Harness。

Q: 多人同时编辑会互相覆盖吗?

A: 不会。视频文件写入走 writeStudioText 并附带 baseUpdatedAt 版本检查(source/shared/studio-host/src/http.ts:161-163),文件自上次读取后被外部改动会返回 409 冲突提示你重新加载;写入采用临时文件 + rename 实现原子替换,避免半写状态。模板应用也是先在隔离目录校验再原子替换,失败时恢复旧项目并重启 Studio(packages/deepseek-ivideo/lib/index.js:37-82 / README.md:68-75)。

Q: 为什么首版没有语音克隆和 Design System 抽屉?

A: 首版在 Studio 里显式关闭了 features.voicefeatures.designSystem 两个开关(source/plugins/deepseek-ivideo/studio/src/main.tsx:48-54),branding 标题也固定为 iVideo by iPolloWork;这两项属于 iPolloWork 主项目的全局能力,当前版本暂未暴露给 DSH 宿主,仅保留 Video 模板、时间线、可视化编辑、动画、预览和导出能力。需要这些能力的用户需使用 iPolloWork 桌面端。

Q: 如何卸载?

A: 运行 dsh plugin --profile web remove deepseek-ivideo。卸载后 Video 视图会从对话标签栏消失,但工作区中的 video/<sessionId>/ 文件不会被自动删除,如不再需要请手动清理。

上手难度

入门 — 安装后无需配置即可在对话中选择 Video 视图开始创作,AI 生成、画布精调、Ask AI 三种交互在同一个界面里就能完成,不需要写代码或调整配置文件;模板套用、校验、导出都通过 Studio 内置按钮触发。

已知问题与限制

  • 首版不内置语音克隆、语音设置与 Design System 抽屉:Studio 中 features.voicefeatures.designSystem 被显式置为 false(source/plugins/deepseek-ivideo/studio/src/main.tsx:48-54),需要这些能力的用户需使用 iPolloWork 桌面端。
  • 仅能读写 video/<sessionId>/ 子目录:所有 API 都通过 safeRelativePath 强制把路径限制在 video/ 前缀下(packages/deepseek-ivideo/lib/index.js:13-14 / source/shared/studio-host/src/http.ts:46-60),工作区其它目录不会被插件访问;跨工作区的符号链接也会被拒绝(source/shared/studio-host/src/http.ts:80-95)。
  • 单文件体积上限 4 MB:视频项目的 index.html 等文本读取与写入受 MAX_TEXT_BYTES = 4 * 1024 * 1024 约束(packages/deepseek-ivideo/lib/index.js:14、94-125),HTTP 请求体上限仍是 20 MB(source/shared/studio-host/src/http.ts:10、187),超出时返回 413。
  • Session ID 格式受限:必须匹配 ^[A-Za-z0-9_-]{1,128}$(packages/deepseek-ivideo/lib/index.js:13),过长或带特殊字符的会话 ID 会直接返回 400。
  • 端口分配在 3100-3899 区间按哈希取模:每个 sessionId 派生出一个固定的本地端口(source/shared/types/hyperframes-project.ts:1-8),最多向后探测 32 个端口寻找可用槽位;若全部被占用则启动失败(source/plugins/deepseek-ivideo/src/runtime.ts:21、258-307)。
  • 运行时进程有空闲超时:所有 lease 释放 60 秒后进程自动被 SIGTERM 回收,启动超时上限 45 秒(source/plugins/deepseek-ivideo/src/runtime.ts:19-22、405-410);Harness 父进程与 preview 子进程通过 IPC disconnect 事件联动回收(packages/deepseek-ivideo/lib/preview-owner-guard.js:1-13)。
  • 嵌入的 HyperFrames 运行时版本与 npm 公开发行版不同:发布包在打包时通过 stage-hyperframes-runtime.mjs 把 vendor/hyperframes 的本地构建产物(当前源版本 0.7.60)拷进 lib/hyperframes/,安装时不会从 npm 拉取同名包(package.json:55-57);用户如果想升级必须等待主仓库同步并重新发版。
  • 校验工具超时 120 秒ipollowork_video_validate 在执行超过 120 秒后会中止底层进程(packages/deepseek-ivideo/lib/index.js:191、220-238),特别复杂的项目需要分段校验或简化项目结构。
  • 导出视频需 Puppeteer 与 Chrome:HyperFrames 运行时通过 await import("puppeteer-core") 动态加载浏览器(packages/deepseek-ivideo/lib/hyperframes/cli.js),导出前需要确保系统已安装可被 Puppeteer 启动的 Chrome/Chromium。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Devin-AXIS/deepseek-design/packages/deepseek-ivideo)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录