在会话内生成图片、视频与语音并统一管理作品
28.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/LosEcher/dsh-multimedia.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 29 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 25 处,展示前 25 条)
- 读取本地文件index.mjs:30
return JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf8')).version ?? null - 写入本地文件index.mjs:64
mkdirSync(join(dataDir, 'results'), { recursive: true }) - 写入本地文件index.mjs:83
mkdirSync(outDir, { recursive: true }) - 发起网络请求index.mjs:96
const res = await fetch(url, { signal: ctrl.signal }) - 写入本地文件index.mjs:107
writeFileSync(file, buffer) - 读取本地文件index.mjs:373
if (!output?.localFile || !existsSync(output.localFile)) return sendJson(res, 404, { error: '文件不存在' }) - 读取本地文件index.mjs:376
'Content-Length': statSync(output.localFile).size, - 读取本地文件index.mjs:380
createReadStream(output.localFile).pipe(res) - 读取本地文件index.mjs:386
if (!output?.localFile || !existsSync(output.localFile)) return sendJson(res, 404, { error: '产物不存在' }) - 写入本地文件index.mjs:390
mkdirSync(destDir, { recursive: true }) - 写入本地文件index.mjs:392
copyFileSync(output.localFile, join(destDir, name)) - 读取本地文件lib/core.mjs:88
if (existsSync(this.file)) { - 读取本地文件lib/core.mjs:90
const parsed = JSON.parse(readFileSync(this.file, 'utf8')) - 写入本地文件lib/core.mjs:125
mkdirSync(dirname(this.file), { recursive: true }) - 写入本地文件lib/core.mjs:126
writeFileSync(this.file, JSON.stringify({ channels: this.runtime }, null, 2), { mode: 0o600 }) - 读取本地文件lib/core.mjs:141
if (!existsSync(this.file)) return - 读取本地文件lib/core.mjs:143
const parsed = JSON.parse(readFileSync(this.file, 'utf8')) - 写入本地文件lib/core.mjs:151
mkdirSync(this.dir, { recursive: true }) - 写入本地文件lib/core.mjs:153
writeFileSync(tmp, JSON.stringify({ jobs: [...this.jobs.values()].slice(-this.cap) }, null, 2)) - 写入本地文件lib/core.mjs:154
renameSync(tmp, this.file) - 读取本地文件lib/core.mjs:179
if (existsSync(dir)) { - 删除本地文件递归lib/core.mjs:182
if (target.startsWith(root + '/')) rmSync(target, { recursive: true, force: true }) - 读取本地文件lib/tools.mjs:176
if (!output?.localFile || !existsSync(output.localFile)) return { saved: '', lines: ['产物文件不存在'] } - 写入本地文件lib/tools.mjs:178
mkdirSync(destDir, { recursive: true }) - 写入本地文件lib/tools.mjs:180
copyFileSync(output.localFile, join(destDir, name))
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(154 字)↓
DSH 多媒体生成插件:多渠道(fal.ai / ElevenLabs / ComfyUI / Pollinations / Cloudflare / xAI / ZenMux)文生图、文生视频、TTS,会话 tab 提供生成页 + 作品库 + 渠道配置,host 侧提供生成 API 与 agent 工具。
README
由 DeepSeek 最新模型翻译生成dsh-multimedia — DSH 多媒体生成插件
多渠道(fal.ai / ElevenLabs / ComfyUI)文生图、文生视频、TTS 语音合成插件。
会话内「多媒体」tab 提供 生成 / 作品库 / 渠道设置 三区页面;host 侧提供 /multimedia HTTP API 与智能体工具(media_generate / media_list / media_status / media_export),支持产物下载、复制、导出到目录。
界面设计参考调研(LobeHub/LobeChat、OpenWebUI、Sora/可灵、Coze、Dify 等平台的生图/视频/TTS 页面模式),渠道 API 参考 fal.ai docs 与 ElevenLabs 文档。设计文档见 docs/DESIGN.md。
安装
dsh plugin --profile web add github:LosEcher/dsh-multimedia#main
重启 dsh web(host 代码),client 重建后刷新页面即可
配置渠道
渠道种子定义在 cordis.patch.yml 的 multimedia 行;运行时增删改由页面「渠道」区完成,落盘到 <dataDir>/channels.json(0600,运行时优先)。
展开完整文档(README 剩余 1 节)
dsh-multimedia — DSH 多媒体生成插件
多渠道(fal.ai / ElevenLabs / ComfyUI)文生图、文生视频、TTS 语音合成插件。
会话内「多媒体」tab 提供 生成 / 作品库 / 渠道设置 三区页面;host 侧提供 /multimedia HTTP API 与智能体工具(media_generate / media_list / media_status / media_export),支持产物下载、复制、导出到目录。
界面设计参考调研(LobeHub/LobeChat、OpenWebUI、Sora/可灵、Coze、Dify 等平台的生图/视频/TTS 页面模式),渠道 API 参考 fal.ai docs 与 ElevenLabs 文档。设计文档见 docs/DESIGN.md。
安装
dsh plugin --profile web add github:LosEcher/dsh-multimedia#main
重启 dsh web(host 代码),client 重建后刷新页面即可
配置渠道
渠道种子定义在 cordis.patch.yml 的 multimedia 行;运行时增删改由页面「渠道」区完成,落盘到 <dataDir>/channels.json(0600,运行时优先)。
API Key 策略:apiKeyEnv(环境变量)优先,其次页面输入的 apiKey (存 channels.json,绝不写 patch 文件、绝不回传客户端)。
内置渠道类型:
| type | 能力 | 认证 | 说明 |
| pollinations | 文生图 | 免费无 Key | 匿名免费(限 1 并发/5s),FLUX/Turbo 等 |
| googletts | TTS | 免费无 Key | Google Translate TTS,中英日韩等,≤200 字符/次 |
| cloudflare | 文生图 / TTS | CF_API_TOKEN(免费层 10k neurons/天) | Workers AI:FLUX.1 Schnell + MeloTTS,需 accountId |
| fal | 文生图 / 文生视频 / TTS | Authorization: Key <FAL_KEY> | queue API,异步任务+轮询 |
| elevenlabs | TTS / 文生图 | xi-api-key | 同步 TTS;图片走异步 Flows(免费层 10k credits/月) |
| comfyui | 文生图 / 视频(工作流 JSON) | 无 | 本地 127.0.0.1:8188,需自备工作流 |
| xai | 文生图 / 图生图(编辑)/ 文生视频 / 视频编辑 / 视频扩展 | Bearer <XAI_API_KEY> | OpenAI 兼容 https://api.x.ai/v1;图片同步返回、视频异步轮询(request_id → done) |
| zenmux | 文生图 / 图生图(编辑)/ 图生视频 / 文生视频 / TTS | Bearer <ZENMUX_API_KEY> | OpenAI 兼容聚合网关 https://zenmux.ai/api/v1;图片/TTS 同步(b64),视频原生异步协议(/videos 提交 → 轮询) |
ZenMux 渠道(2026-08-15 新增):模型 slug 用「供应商/模型名」格式——图片 openai/gpt-image-2(GPT 模型总是返回 b64)、视频 bytedance/doubao-seedance-2.0(原生协议,480p–1080p,支持图生视频 params.image → first_frame,可返回 last_frame 图)、TTS google/gemini-3.1-flash-tts-preview(默认 PCM,自动封装为 WAV 便于播放)。
Key 在 https://zenmux.ai/platform/pay-as-you-go 充值并创建(PAYG 按量付费)。
更多模型 slug 见 https://zenmux.ai/models。
xAI(Grok Imagine)渠道:模型 grok-imagine-image-2.0(图片生成/编辑)、 grok-imagine-video-1.5(视频生成/编辑/扩展)。渠道页面可生成/编辑图片、生成视频;编辑与扩展(需输入素材)由智能体工具驱动:
media_generate(channel:'xai', modality:'image'|'video', prompt, params:{action:'edit'|'extend', image|video: '<http(s) url 或 data: URI>'})。
视频为异步任务,media_status 可查询进度;结果含 xAI 用量(cost_in_usd_ticks)。
独立插件抽取路径(dsh-xai 规划):xAI 适配器是模块级工厂
createXaiAdapter({req, sleep, log, collect})(lib/adapters.mjs 顶部),
不依赖 Cordis 上下文——未来需要专属控制台(用量看板/编辑工作台)时,直接 import { createXaiAdapter } 复用,UI 与任务队列按需自建。
免费验证路径(2026-08-15 实测全通):Pollinations 文生图 + Google TTS 语音,零注册零 Key;Cloudflare/ElevenLabs 免费层需注册。视频生成暂无免费 API,可选智谱 CogVideoX / MiniMax / 即梦(每日 66 积分)或本地 ComfyUI。
HTTP API(同源 /multimedia)
- GET /multimedia/channels — 渠道列表(Key 掩码)
- PUT /multimedia/channels {id, patch{enabled|label|baseUrl|apiKey|voice|extra}}
- POST /multimedia/channels / DELETE /multimedia/channels?id=
- POST /multimedia/test {channelId} — 连通性/鉴权测试
- GET /multimedia/models?channelId=&modality= — 模型/音色预设
- POST /multimedia/generate {channelId, modality, prompt, model, params}
- GET /multimedia/tasks[?limit=&modality=&status=&channelId=]
- GET /multimedia/tasks/:id / DELETE /multimedia/tasks/:id
- POST /multimedia/cancel {jobId}
- GET /multimedia/file/:jobId/:idx — 产物流式下载
- GET /multimedia/export?jobId=&idx=&destPath= — 复制产物到目录
智能体工具
media_generate(channel?, modality, prompt, params?, model?, run_in_background?)
media_list(limit?, modality?, status?)
media_status(jobId)
media_export(jobId, outputIndex?, destPath?)
产物默认落在 ~/.dsh/multimedia/results/<jobId>/,任务快照 jobs.json。
开发
node test/run.mjs # host 侧冒烟测试(core + adapters,fake fetch)
node scripts/build.mjs # client 构建(esbuild,CSS Module 内联)
- client 产物由 web 直接 serve 源文件:改 src/client 后重建 + 刷新页面即可;
- host 代码(index.mjs / lib)改动需重启 dsh web。
- 安全:产物 URL 可能含公开签名链接,/multimedia/file 走本地缓存流,不把提供商链接透给客户端页面之外的消费方。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
LosEcher/dsh-multimedia
在会话内生成图片、视频与语音并统一管理作品
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,359已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,514已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,289已汉化DSH
71.6
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 92,675已汉化DSH
71.2
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,522已汉化DSH
71
这是你的仓库?认领条目