加载中...

我把 GPT Image Playground 整个搬进了 DeepSeek Harness

2026/11/01 · Ai资讯
19
0

我在 DSH 里生图,始终缺一块拼图

DeepSeek Harness 自带生图能力:一句话描述,出图,落盘。日常够用。

但真正做图的时候,缺的不是"能不能生成",而是生成之外的那一整套动作:

  • 这张不满意,想只改左上角那一块 → 要能涂遮罩
  • 想沿用上一张的构图,但换风格 → 要能把它拖回来当参考图
  • 一次试十个提示词 → 要能批量排队
  • 上周那张挺好的,忘了存哪了 → 要有历史与收藏夹
  • 手上三个中转站,哪个便宜用哪个 → 要能随时切配置

这些能力,社区里有一个已经打磨了半年的开源项目全都有:GPT Image Playground(作者 CookSleep,MIT)。画廊与 Agent 双模式、最多 16 张参考图、遮罩编辑器、画板标注、评论定位、批量提交、收藏夹、ZIP 备份——你能想到的生图工作流,它基本都覆盖了。

问题只有一个:它是个独立网页,和 DSH 是两套东西。

所以这次我没有"再写一个生图工具",而是做了另一件事:把这个已经成熟的工作台,原样装进 DSH。

为什么是"原样装",而不是"重写一个"

重写是最容易走偏的路。你自己照着截图实现一遍,第一版大概能还原 70% 的界面,但那些边角——遮罩的边缘羽化、批量任务的并发上限、失败重试保留收藏、评论坐标怎么拼进提示词——会在接下来的几个月里,一个一个被用户发现"你的和原版不一样"。

于是我换了个做法:

把上游的官方构建产物(GitHub Pages 上的那份)vendor 进插件,由插件同源托管,在 DSH 面板里用 iframe 呈现。

结果是:界面和功能就是上游发布版本本身,不是模仿,不是"致敬",是同一份代码。上游更新了,重新抓一次构建即可。

插件自己只做两件上游做不了的事:静态托管 与 同源 API 代理。

三个不那么显然的坑

真把它塞进 DSH,会撞上三个问题。这部分可能对写 DSH 插件的同学有点用。

一、跨域。 工作台在浏览器里直接请求你的 API,很多中转站不带 CORS 头,浏览器直接拒绝,界面上只会出现一句让人抓狂的"接口不支持浏览器跨域请求"。

解法是插件注册一条同源代理路由,把请求转到真实地址。难点在细节:Authorization 要透传、multipart 的图片体要原样转发(不能重新编码)、浏览器中途离开要 abort 上游请求,否则会留下一堆孤儿连接。做完之后,用户在应用里把 API 地址填成代理地址就行。

二、切换面板会把生图掐死。 这个坑最隐蔽。DSH 的 main 槽是 keyed 槽,只渲染当前选中的那一项——你去点左栏的会话,工作台组件就被卸载了,iframe 跟着销毁,正在跑的那次生成直接断掉。用户看到的是"报错,但没有原因"。

解法是把 iframe 从面板里搬出来:main 里只留一个占位盒负责登记位置,iframe 住在常驻的 shell.overlay 条目里。切走时只是 display:none,文档不销毁、请求继续跑;回来还是同一个文档,进度、画廊、输入内容都在。

三、原版界面里有几处不该出现的东西。 安装为应用、下载客户端、操作指南、设置里的"关于"——这些是给独立站点准备的。直接改上游代码会让"原样"这件事失效,所以改成在 iframe 内注入:按 aria-label 精确隐藏按钮,用 MutationObserver 盯住 React 的重渲染,版本号则改成插件自己的版本(这样它不会和上游版本对不上)。

装完之后是什么体验

左栏会多一个「生图工作台」。点开就是完整的上游界面:

  • 画廊 / Agent 双模式,批量、迭代、多提示词一次提交
  • 参考图最多 16 张,遮罩、画笔、文字、图形、像素橡皮擦,还有评论标注("@图2 这里再亮一点"会把坐标一起带给模型)
  • 多套 API 配置随时切换,OpenAI 兼容、sub2api 异步、fal.ai、自定义 HTTP 供应商
  • 1K / 2K / 4K 预设,自定义尺寸会自动规整到模型能接受的范围,并对比"实际生效参数"和"被模型改写后的提示词"
  • 收藏夹、失败重试、框选多选、ZIP 备份

数据都在本地:历史在浏览器存储里,API Key 只在你自己的机器上。

三分钟上手

在 DSH 里打开 插件 → 安装,填:dsh-gpt-image-playground

装完启用,刷新页面。然后在工作台右上角齿轮里填你自己的 API 地址和 Key。

如果你的接口被跨域拦住(会明确提示),点工作台右上角那个⚙,填真实 API 地址并保存;再把它显示的代理地址复制到应用的 API URL 里,就通了。

该说的边界

  • 界面来自上游 v0.8.3,不是我做的;我做的只是"把它装进 DSH"这件事
  • 需要自备 API,插件本身不提供任何额度
  • 非官方包升级需要先卸载再安装
  • 内置字体没有随包分发(体积约 23 MB),界面会回退到系统字体,观感正常
  • 工作台跑在 iframe 里,DSH 的窗口级快捷键不会穿透进去

链接

如果你也常年开着两个窗口来回拖图,试试把它装进来——省下的不只是几次切换。

您需要登录后再评论
登录
{{item.user_nickname}}
{{item.create_time_txt}}待审核
{{item.comment_number}}
{{item.zan_num}}
{{item.zan_num}}
删除
{{comment.user_nickname}}
@{{comment.reply_nickname}}
{{comment.create_time_txt}}待审核
{{comment.comment_number}}
{{comment.zan_num}}
{{comment.zan_num}}
删除
展开更多
加载更多
回复@{{replyItem.user_nickname}}的评论
取消
回复
删除评论
确定要删除该评论吗?
取消
确定
登录
注册账号
找回密码
注册邮箱已存在
两次输入密码不一致
注册并登录
直接登录
找回密码
两次输入密码不一致
确定
注册账号