前言¶
在 DeepSeek Harness(DSH)裏做智能體,常見需求是讓模型「畫出一張圖」或「按參考圖改一版」,而不是把用戶趕到瀏覽器或單獨腳本里。若用 MCP 再包一層生圖服務,往往多一個進程、多一套運維。下面介紹社區插件 dsh-imagegen(維護者 Lujinan991,分類:模型推理):它是 DSH 原生 Cordis 插件,不依賴 MCP 包裝,也不需要單獨啓動生圖服務;智能體通過工具 generate_image 完成文生圖、參考圖改圖和 PNG 蒙版局部編輯,結果寫入 DSH 持久附件並在對話中預覽。
這是什麼¶
dsh-imagegen(npm 包名 @local/dsh-imagegen,當前資料版本 0.2.0,MIT 許可證)面向 OpenAI 兼容的 Images API:配置 baseUrl、apiKey(或環境變量)與模型等參數後,由 Host 側調用遠程 HTTPS 接口(本機 localhost/127.0.0.1 可用 HTTP)。插件在 package.json 中聲明 DSH 兼容區間:
"engines": { "dsh": ">=0.2.0-rc.2 <0.3.0" }
DSH 僅按 engines.dsh 判定兼容性;出現 0.3.0 邊界版本時需再覈對插件是否仍適用。
目錄頁:SkillHub - dsh-imagegen
源碼與說明:GitHub - Lujinan991/dsh-imagegen
核心功能¶
生圖與編輯模式¶
- 文生圖:通過
prompt等參數提交生成請求。 - 改圖(edit):傳入
image_paths,用自然語言說明保留項與修改項;多張圖可分工(例如產品圖 + 色調參考)。 - 局部編輯:在 edit 模式下額外提供
mask_path;PNG 蒙版須與首張輸入圖尺寸一致,透明區域表示要修改的區域。
同一提示詞要多個版本時使用參數 n;不同素材應分次調用,避免在一次請求裏混用無關圖片。
配置與運行特性¶
在「插件」頁面進入 @local/dsh-imagegen 詳情,下半部分爲「生圖接口」表單;保存後寫入當前 profile 的 cordis.patch.yml,下次調用 generate_image 即生效,無需重啓。配置項包括 API 根地址(須含 /v1 等根路徑)、密鑰、默認模型(默認 gpt-image-2)、尺寸、質量、異步提交模式等;完整字段表見倉庫 README。
size: adaptive:從提示詞中的方向詞推斷豎版 / 橫版 / 方圖尺寸;無方向詞時退回auto。submitMode: async:適用於返回task_id而非直接返回圖片的服務商;插件帶?async=true提交併輪詢任務接口。fallbackEndpoints:僅在前端點確定未成交(如連接失敗、429、502/503/504)時按順序切換,避免對已可能計費的請求重試。
圖片如何回到對話裏¶
原始位圖經 ctx.attachments.saveFile 保存;預覽經 ctx.attachments.saveImages 成爲 DSH 原生持久引用。工具結果含 image content,會話 log 可保留;對話中有加載狀態、預覽重試與「打開原圖」。插件不直接向工作區寫入二進制;需要項目資產時由智能體用授權文件工具從附件路徑複製。
參考 Codex 的生圖提示原則已通過獨立 system prompt section 註冊(不復制其內置工具或腳本)。
安裝與啓用¶
在 DSH 左側「插件」頁的安裝入口填入倉庫地址:
git+https://github.com/Lujinan991/dsh-imagegen.git
若會話啓用了官方 plugin_manager 工具,也可請求安裝:
{
"action": "install_bundle",
"target": "git+https://github.com/Lujinan991/dsh-imagegen.git"
}
本地開發時可改爲插件目錄絕對路徑,或以 link: 依賴安裝,源碼改動在下次啓動生效:
/absolute/path/to/dsh-imagegen
安裝後確認插件行 dsh-imagegen 已啓用。安裝結果裏 application 爲 applied 表示已應用,restart-required 表示需重啓。修改插件代碼後須完全退出應用再打開(文檔示例爲 ⌘Q 後重啓);僅在插件頁切換開關不會重建瀏覽器側模塊表。
從 git 安裝沒有自動更新;升級可執行(資料原文):
dsh plugin --profile desktop add github:Lujinan991/dsh-imagegen
然後完全退出再打開;配置保存在 profile 的 cordis.patch.yml 中,按插件 id dsh-imagegen 存儲,重裝不丟配置。
典型用法¶
在對話中描述畫面需求,智能體調用 generate_image。文生圖示例:
{
"prompt": "產品攝影:白色陶瓷杯放在灰色桌面,柔和側光,保留自然材質細節,無文字、無標誌。",
"size": "1536x1024",
"n": 1
}
參考圖改圖示例:
{
"mode": "edit",
"prompt": "僅將背景替換爲海邊日落;保持第一張圖中的產品、外形、顏色、標誌與邊緣不變。第二張圖僅作色調參考。",
"image_paths": ["product.png", "style-reference.png"]
}
輸入文件經 DSH ctx.fs 讀取,不繞過文件權限。配置爲空時插件仍可加載;僅在真正調用且缺少接口地址或密鑰時返回可執行提示。
若部署上配置表單不可編輯(缺少設置 UI 或未掛載 dsh-settings),可按插件頁給出的 YAML 片段寫入 cordis.patch.yml 並重啓;三種情況下 generate_image 仍可正常生圖,缺的是界面編輯能力。
適用場景與注意¶
適合誰:已在 DSH 0.2.x(>=0.2.0-rc.2)上跑智能體、且具備 OpenAI 兼容生圖 API(或自建網關)的開發者;希望生圖與改圖留在同一會話、同一套附件體系裏,而不是外接 MCP 服務。
使用前請自行覈對:
- 插件以當前 DSH 進程權限運行;安裝前閱讀源碼與 MIT 許可證,確認 API 密鑰與
downloadHosts等配置符合你的安全策略。 baseUrl填錯(例如缺少/v1)可能拿到 HTML 而非 JSON,插件會指出這一點;密鑰不應寫進提示詞、工具參數或倉庫。- 默認模型
gpt-image-2在資料中說明不支持與透明背景參數的原生組合時,插件會拒絕該組合,不會靜默換模型。 - 遠程 API 需 HTTPS;URL 結果僅從
downloadHosts允許的 HTTPS 主機下載,且不攜帶 API 密鑰。
倉庫 README 記載:在 DSH 0.2.0-rc.2 隔離運行時,37 項測試全部通過,且 image-api.test.js 使用本地 mock、不調用真實生圖接口。
結尾¶
dsh-imagegen 把 OpenAI 兼容的生圖與編輯收進 DSH 原生 Cordis 插件:一條 generate_image 工具鏈、持久附件與對話預覽,並覆蓋異步任務制服務商與備用端點等工程細節。社區插件與 DeepSeek / 幻方無官方從屬關係;SkillHub 目錄便於發現,事實與用法以 GitHub README 爲準。
- 目錄頁:https://www.skillhub.cn/plugins/Lujinan991/dsh-imagegen
- GitHub:https://github.com/Lujinan991/dsh-imagegen