在侧栏直接生成图片并编辑参考图与遮罩
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/southcul/dsh-gpt-image-playground.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 50 处,展示前 43 条)
- 读取本地文件lib/index.js:20
const MANIFEST = JSON.parse(await readFile(new URL('../package.json', import.meta.url), 'utf8')) - 读取本地文件lib/index.js:99
const raw = await readFile(file, 'utf8') - 写入本地文件lib/index.js:108
await mkdir(dirname(file), { recursive: true }) - 写入本地文件lib/index.js:110
await writeFile(tmp, `${JSON.stringify(value, null, 2)}\n`, 'utf8') - 写入本地文件lib/index.js:245
await mkdir(this.imageDir, { recursive: true }) - 读取本地文件lib/index.js:351
await readFile(file) - 写入本地文件lib/index.js:353
await writeFile(file, buffer) - 读取本地文件lib/index.js:361
const buffer = await readFile(join(this.imageDir, name)) - 读取本地文件lib/index.js:377
names = await readdir(this.imageDir) - 删除本地文件lib/index.js:383
await rm(join(this.imageDir, entry), { force: true }).catch(() => {}) - 发起网络请求lib/index.js:413
response = await fetch(endpoint(profile.baseUrl, 'images/edits'), { method: 'POST', headers, body: form, signal: controller.signal }) - 发起网络请求lib/index.js:420
response = await fetch(endpoint(profile.baseUrl, 'images/generations'), { - 发起网络请求lib/index.js:445
const downloaded = await fetch(url, { signal: controller.signal }) - 读取本地文件lib/index.js:501
buffer = await readFile(file) - 发起网络请求lib/index.js:558
const response = await fetch(upstream, { - 发起网络请求lib/index.js:728
const response = await fetch(endpoint(profile.baseUrl, 'models'), { - 发起网络请求lib/client.js:150
const response = await fetch(SETTINGS_PATH, { headers: { accept: 'application/json' } }) - 发起网络请求lib/client.js:253
const response = await fetch(SETTINGS_PATH, { - 写入剪贴板lib/client.js:332
await navigator.clipboard.writeText(proxyUrl) - 读取本地文件client-test.mjs:54
const source = readFileSync(new URL('./lib/client.js', import.meta.url), 'utf8') - 写入本地文件install.mjs:40
if (existsSync(file)) copyFileSync(file, `${file}.bak-${Date.now()}`) - 读取本地文件install.mjs:40
if (existsSync(file)) copyFileSync(file, `${file}.bak-${Date.now()}`) - 读取本地文件install.mjs:43
if (!existsSync(profileDir)) { - 读取本地文件install.mjs:48
const existing = lstatSync(targetPath, { throwIfNoEntry: false }) - 删除本地文件install.mjs:50
if (existing.isSymbolicLink()) unlinkSync(targetPath) - 删除本地文件递归install.mjs:51
else rmSync(targetPath, { recursive: true, force: true }) - 写入本地文件install.mjs:55
mkdirSync(nodeModules, { recursive: true }) - 写入本地文件install.mjs:57
mkdirSync(targetPath, { recursive: true }) - 读取本地文件install.mjs:60
if (!existsSync(source)) continue - 读取本地文件install.mjs:69
const pkg = JSON.parse(readFileSync(packageFile, 'utf8')) - 写入本地文件install.mjs:82
writeFileSync(packageFile, `${JSON.stringify(pkg, null, 2)}\n`) - 读取本地文件install.mjs:85
const patch = existsSync(patchFile) ? readFileSync(patchFile, 'utf8') : '[]\n' - 写入本地文件install.mjs:90
writeFileSync(patchFile, patch.replace(/ - insert: {4}- id: gpt-image-playground {6}name: dsh-gpt-image-playground {6}config: ?/g, '\n')) - 写入本地文件install.mjs:94
writeFileSync(patchFile, `${patch.trimEnd()}\n${entry}`) - 发起网络请求test-server.mjs:82
const response = await fetch(base + path, init) - 发起网络请求test-server.mjs:129
const response = await fetch(`${origin}${image.url}`) - 发起网络请求test-server.mjs:133
const missing = await fetch(`${origin}${ROUTE_PREFIX}/image/${'0'.repeat(64)}.png`) - 发起网络请求test-server.mjs:135
const traversal = await fetch(`${origin}${ROUTE_PREFIX}/image/..%2Fprofiles.json`) - 发起网络请求test-server.mjs:187
const appIndex = await fetch(`${origin}${APP_ROUTE}/index.html`).catch(() => null) - 发起网络请求test-server.mjs:189
const appMissing = await fetch(`${origin}${APP_ROUTE}/assets/does-not-exist.js`) - 删除本地文件递归test-server.mjs:227
await rm(dataDir, { recursive: true, force: true }) - 发起网络请求vendor-app/sw.js:33
fetch(request) - 发起网络请求vendor-app/sw.js:50
return fetch(request).then((response) => {
扫描于 2026/11/2(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成适用于 DeepSeek Harness 的 GPT Image Playground
把 CookSleep/gpt_image_playground 的原版工作台装进 DeepSeek Harness(DSH):左栏多一个「生图工作台」,点开就是完整的画廊 / Agent 双模式、参考图与遮罩编辑、多供应商、收藏夹、历史管理。
界面与功能来自上游官方构建(v0.8.3,原样 vendor),插件自己只负责同源托管和可选的 API 代理。
工作台
安装
用 npm 包名(推荐)
在 DSH 里打开 插件 → 安装,填:
dsh-gpt-image-playground
装完在插件列表里启用,刷新页面(Ctrl+R),左栏出现「相框」图标。
展开完整文档(README 剩余 1 节)
适用于 DeepSeek Harness 的 GPT Image Playground 把 CookSleep/gpt_image_playground 的原版工作台装进 DeepSeek Harness(DSH):左栏多一个「生图工作台」,点开就是完整的画廊 / Agent 双模式、参考图与遮罩编辑、多供应商、收藏夹、历史管理。 界面与功能来自上游官方构建(v0.8.3,原样 vendor),插件自己只负责同源托管和可选的 API 代理。 工作台 安装 用 npm 包名(推荐) 在 DSH 里打开 插件 → 安装,填: dsh-gpt-image-playground 装完在插件列表里启用,刷新页面(Ctrl+R),左栏出现「相框」图标。 命令行等价: dsh plugin --profile desktop add dsh-gpt-image-playground 从 Release 压缩包 下载 最新 Release 里的 gpt-image-playground-<版本>.zip,解压后二选一: - DSH 插件页 → 安装 → 填解压目录的绝对路径(推荐) - 或右键 install.ps1 → 使用 PowerShell 运行 从仓库源码 git clone https://github.com/southcul/dsh-gpt-image-playground DSH → 插件 → 安装 → 填克隆目录的绝对路径。 第一次使用 1. 打开工作台 → 右上角齿轮 → API 配置,填 API URL 与 Key(存在本机浏览器存储,不上传)。 2. 若提示「接口不支持浏览器跨域请求」:点工作台左下角 ⚙(iframe 外的小按钮),填真实 API 地址并保存;再把面板里显示的代理地址复制到应用的「API URL」。 代理地址形如 http://127.0.0.1:13807/plugins/dsh-gpt-image-playground/proxy,请求由 DSH 主机转发,Authorization 与 multipart 图片体原样透传。 功能 完整继承上游: - 画廊 / Agent 双模式;批量生成、迭代、多提示词提交、流式预览 - 参考图(最多 16 张)、遮罩编辑器、画板标注(画笔/文字/图形/像素橡皮擦)、评论定位 - 多 API 配置与多供应商(OpenAI 兼容 Images/Responses、sub2api 异步、fal.ai、自定义 HTTP 供应商) - 1K/2K/4K 尺寸预设与规整、真实参数与改写后提示词对比 - 收藏夹、失败重试、框选/侧滑多选、大图预览、ZIP 备份 - 透明背景(原生 / 本地后处理)、Codex CLI 兼容、提示词防改写、外观与习惯配置 与上游的差异 界面裁剪与信息改写都在 iframe 内用注入的方式完成,不改上游构建产物: - 隐藏右上角三个按钮:安装为应用 / 下载客户端 / 操作指南 - 隐藏设置页的「关于」标签(上游的更新检查与赞助入口;第三方许可仍随包提供,见 THIRD-PARTY-NOTICES.md) - 设置页右上角的版本徽标改为本插件版本(不带提示、不显示上游版本) - 关闭上游公告卡(vendor-app/announcements.json 为 []) - 工作台运行在常驻 iframe 中,因此 DSH 的窗口级快捷键不穿透到应用内部 设置页 工作台之所以常驻在 shell.overlay 而不是 main 面板里:DSH 的 main 是 keyed 槽,切换面板会卸载工作台,正在跑的生成请求会随 iframe 一起被销毁。现在占位盒只负责定位,iframe 切走时仅隐藏、不卸载。 许可与致谢 - 本插件:MIT,见 LICENSE - vendor-app/ 是 GPT Image Playground 的官方构建,MIT,版权归 CookSleep,详见 THIRD-PARTY-NOTICES.md - 上游项目:https://github.com/CookSleep/gpt_image_playground
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
southcul/dsh-gpt-image-playground
在侧栏直接生成图片并编辑参考图与遮罩
相关插件 · 视觉能力
智能体工作台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
这是你的仓库?认领条目