@dickpy/dsh-imagegen 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,204 +1,182 @@
1
1
  # dsh-imagegen
2
2
 
3
- [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](./LICENSE)
4
- [![Node.js](https://img.shields.io/badge/node-%3E%3D20-339933?logo=node.js&logoColor=white)](https://nodejs.org/)
3
+ [![npm](https://img.shields.io/npm/v/@dickpy/dsh-imagegen?color=cb3837&logo=npm&label=npm)](https://www.npmjs.com/package/@dickpy/dsh-imagegen)
4
+ [![License](https://img.shields.io/badge/license-Apache--2.0-3b82f6.svg)](./LICENSE)
5
5
  [![Platform](https://img.shields.io/badge/platform-DeepSeek%20Harness-111827)](https://github.com/dickpy/dsh-imagegen)
6
6
 
7
- DeepSeek Harness (DSH) Web GUI 的 AI 生图工作台。它通过宿主进程安全地代理 OpenAI 兼容的图像生成接口,把提示词增强、文生图、图生图、后台任务、多模型对比、历史记录与画廊管理放进同一个 DSH 原生界面。
7
+ <p align="center">
8
+ <img src="docs/images/imagegen-overview.png" alt="dsh-imagegen AI image studio" width="100%" />
9
+ </p>
8
10
 
9
- > 首次安装预置 `gpt-image-2` xAI `grok-imagine-image`(Grok Imagine)。在设置中可从 API 的 `/models` 检测候选模型并选择实际可用项,也可手动添加任何兼容 `/images/generations` 与 `/images/edits` 的 OpenAI 风格生图模型。
11
+ > DeepSeek Harness 中的 Agent 不只会回答,还能把想法变成图片,并围绕成图继续迭代。
10
12
 
11
- ## 效果预览
13
+ `dsh-imagegen` 是 DSH 的原生 AI 图像工作台。它把可配置的 OpenAI 兼容生图接口、Agent 工具调用、后台任务、文生图、图生图、多模型比较和作品管理放进同一条工作流。你不需要在生成期间守着界面,也不需要把图片在多个工具之间来回搬运。
12
14
 
13
- ### AI 生图工作台
15
+ <p align="center">
16
+ <strong>
17
+ <a href="#what-it-solves">能解决什么</a>&nbsp;&nbsp;&nbsp;|
18
+ <a href="#agent-workflow">Agent 对话生图</a>&nbsp;&nbsp;&nbsp;|
19
+ <a href="#model-comparison">多模型对比</a>
20
+ </strong>
21
+ <br />
22
+ <strong>
23
+ <a href="#gallery">画廊管理</a>&nbsp;&nbsp;&nbsp;|
24
+ <a href="#quick-start">快速开始</a>&nbsp;&nbsp;&nbsp;|
25
+ <a href="#configuration">配置模型</a>
26
+ </strong>
27
+ </p>
14
28
 
15
- 三栏工作台将参数、生成结果和历史记录放在同一视图中。任务提交后可继续操作;生成的图片可预览、下载,并从历史记录恢复参数。
29
+ <a id="what-it-solves"></a>
30
+ ## 它解决什么问题
16
31
 
17
- **四图结果布局**
18
-
19
- ![AI 生图工作台四图结果布局](docs/images/image-generation-studio-four.png)
20
-
21
- **单图结果布局**
22
-
23
- ![AI 生图工作台单图结果布局](docs/images/image-generation-studio-single.png)
32
+ | 过去要反复做的事 | 现在的工作方式 |
33
+ | --- | --- |
34
+ | 在对话、网页生图工具和本地文件夹之间切换 | 在 DSH 对话里描述目标,Agent 等待任务并把图片作为工具结果直接显示 |
35
+ | 生图耗时很长,只能盯着页面或不断询问状态 | Agent 工具调用会保持等待直到完成,结果同时保存在对话和工作台 |
36
+ | 第一张图不对,就重新组织全部提示词 | 直接说“换成黄色”“保留构图但改成夜景”,Agent 复用上一张图继续图生图 |
37
+ | 多个模型各有优缺点,难以公平比较 | 用同一提示词和参数并行生成,在并列全屏视图中挑选结果 |
38
+ | 收藏变多后无法找回、筛选或导出 | 画廊支持瀑布流、搜索、标签、批量下载和 JSON 备份 |
24
39
 
25
- ### 多模型并列对比
40
+ <a id="agent-workflow"></a>
41
+ ## Agent 对话生图与连续编辑
26
42
 
27
- 打开「多模型对比」后,为同一提示词勾选多个模型。任务会进入后台队列,完成后在画布中并列展示,支持进入全屏对比,直观看出不同模型在构图、质感与文字处理上的差异。
43
+ 这是插件的核心体验。开启“允许 Agent 调用生图”后,直接在 DSH 对话中说出你想要的画面即可。Agent 会从已允许的模型中选择合适项,提交任务并等待完成;真实图片会作为工具结果附件显示在对话中,不会额外产生一条用户消息。
28
44
 
29
- ![gpt-image-2 grok-imagine-image 的多模型并列结果对比](docs/images/multi-model-comparison.png)
45
+ 接着,你可以基于结果继续提出修改。Agent 会携带该图片的引用调用图生图,不必重新上传文件,也不必重新描述全部上下文。它适合快速探索视觉方向、反复打磨 UI 视觉稿、海报或产品素材。
30
46
 
31
- ### 提示词模板库
47
+ ![Agent 在对话中提交海报生成任务,成图作为工具结果显示](docs/images/agent-chat-poster-workflow.png)
32
48
 
33
- 模板库提供 441 个 `gpt-image-2` 案例的展示图、分类筛选和完整提示词;打开详情后可以复制提示词,或一键回填到生图输入框。
49
+ ### 可直接使用的案例提示词
34
50
 
35
- ![提示词模板库展示](docs/images/prompt-template-library.png)
51
+ **第一轮:让 Agent 生成一张项目海报**
36
52
 
37
- ### Agent 对话生图与连续编辑
53
+ ```text
54
+ 帮我为 dsh-imagegen 设计一张 16:9 横版项目海报。深色未来感背景,青蓝和紫色霓虹光效;画面中心展示 AI 生图工作台,包含赛博城市、人物肖像、雪山和抽象流体四张示例图;下方展示 Agent 对话生图、多模型对比和画廊三个能力区。整体干净、专业、有产品发布感,不要杂乱的小字。
55
+ ```
38
56
 
39
- 开启后,直接在 DSH 对话中描述需求即可。Agent 会将任务交给后台生成,完成后把真实图片作为对话附件回贴;无需反复盯着任务状态。对结果继续说“把衣服换成黄色”之类的修改要求,Agent 会复用图片引用调用图生图,形成从想法到迭代的连续工作流。
57
+ **第二轮:基于刚才的成图继续修改**
40
58
 
41
- ![Agent 在对话中生成图片并将成图回贴](docs/images/agent-chat-generate.png)
59
+ ```text
60
+ 保留当前海报的整体构图和深色科技风。把中心的赛博城市替换成更明亮的夜景,增强青蓝与紫色的边缘光;底部“Agent 对话生图”区域更突出,其他两项保持弱一级。不要重新生成一张完全不同的海报。
61
+ ```
42
62
 
43
- ![Agent 基于已生成图片继续执行图生图编辑](docs/images/agent-chat-edit.png)
63
+ Agent 会把上一轮图片作为参考图提交图生图任务,因此第二轮只需要描述变化,而不必再次上传图片或重复全部需求。
44
64
 
45
- ### 画廊工作区
65
+ **对话中可用的能力**
46
66
 
47
- 画廊标签页提供左侧分类筛选和右侧作品墙:可在瀑布流与整齐网格之间切换,纵向滚动浏览收藏,点击任意图片打开大图预览。支持关键词搜索、自建标签、标签筛选、批量下载与 JSON 导出。
67
+ | 工具 | 用途 |
68
+ | --- | --- |
69
+ | `generate_image` | 提交文生图任务,默认等待完成后返回图片附件;传 `wait_for_completion: false` 可改为后台模式。 |
70
+ | `get_image_generation_task` | 查询任务;完成时取回图片附件与下一步编辑所需的图片引用。 |
71
+ | `edit_image` | 以已有图片为参考提交图生图任务,默认等待完成后返回图片附件。 |
72
+ | `cancel_image_generation_task` | 取消排队中或正在执行的任务。 |
48
73
 
49
- ![画廊工作区:分类筛选、瀑布流和大图预览](docs/images/gallery-workspace.png)
74
+ 未配置 API 地址、密钥或可用生图模型时,工具会明确引导到 DSH 的“设置 → 插件 → AI 生图”,而不是静默失败。Agent 调用默认开启,也可按需关闭,仅保留侧边栏工作台。
50
75
 
51
- ## 功能
52
-
53
- - **文生图与图生图**:输入提示词生成图片,或上传 PNG、JPG、WEBP 参考图进行编辑。
54
- - **可配置生图模型**:在设置中检测 API 返回的候选模型,多选保存后,模型下拉、多模型对比、历史/画廊筛选和 Agent 调用会同步使用这份列表;不提供 `/models` 的网关可手动一行一个模型。
55
- - **Grok Imagine 支持**:支持 xAI `grok-imagine-image` 文生图与图生图;将 API 地址设置为 `https://api.x.ai/v1` 即可使用官方比例、分辨率和 JSON 图片协议。
56
- - **可调生成参数**:尺寸、清晰度、生成数量和细节等级均可在界面中选择;未指定的参数保持自动。
57
- - **提示词增强**:对简短描述点击「增强」,检测当前 API 可用的对话模型后点选即可扩写为更完整的生图提示词;未配置时自动跳转到 DSH 的 AI 生图配置页。
58
- - **后台生成任务**:生成请求提交到宿主侧队列,面板不再被单次请求阻塞;可查看排队/生成/完成状态,取消任务或重试失败任务。
59
- - **Agent 直调生图**:默认开启。Agent 可直接用 `generate_image` 提交文生图后台任务,用 `get_image_generation_task` 取回并回贴图片附件;把返回的 `source_image` 交给 `edit_image` 即可基于生成图继续图生图,也可随时取消单个任务。
60
- - **多模型对比**:默认关闭;开启后可勾选多个模型,以相同提示词和参数分别生成,在画布和全屏视图并列对比结果。
61
- - **结果操作**:结果区固定为四分格:单图铺满,双图占上排,三图占三格,四图为 2×2;支持下载、全屏预览、可滚动缩放、前后切换、复制优化提示词,以及一键将当前图片添加到图生图。
62
- - **画廊收藏与管理**:结果卡片、全屏预览与历史记录条目上都有「加入画廊」。画廊支持瀑布流/整齐网格、持续纵向滚动、关键词搜索、模式/模型/比例/标签筛选、标签编辑、批量下载与 JSON 元数据导出;收藏持久化在宿主侧 `~/.dsh/dsh-imagegen/gallery/`,无数量上限,且内容相同的图片不会重复加入。
63
- - **可搜索历史**:保存提示词、参数和图片;支持按关键词、模型与比例筛选,查看、恢复、单条删除和清空,最多保留 50 条。
64
- - **跨设备查看**:历史与画廊都保存在 DSH 宿主侧,连接同一 DSH 的浏览器或设备共享同一份记录。
65
- - **提示词模板库**:提示词框左下角可打开模板库,浏览 441 个 `gpt-image-2` 案例的展示图;支持搜索、分类筛选、查看完整提示词、复制,以及一键将模板回填到生图输入框。参考图通过宿主同源代理按需加载并缓存,也可手动缓存全部图片供离线浏览。
66
- - **原生 DSH 体验**:侧栏入口、主题适配和设置卡片均遵循 DSH Web GUI 的 UI 规范。
67
- - **在线更新**:插件会检查 GitHub Releases,发现新版本时在工作台显示在线更新按钮;安装完成后重启 DSH 即可加载新版本。
76
+ <a id="model-comparison"></a>
77
+ ## 多模型并列对比
68
78
 
69
- ## 快速开始
79
+ 同一个提示词往往在不同模型上呈现出完全不同的构图、质感与文字处理。打开“多模型对比”,选择多个已配置模型后,插件会以相同参数提交任务,并在画布和全屏预览中将结果并列展示。这样能更快选出真正适合当前任务的模型,而不是凭感觉反复试错。
70
80
 
71
- > 前置条件:已安装 DSH(`npm i -g @deepseek-ai/dsh`)与 pnpm。
72
- > 装完统一**重启 dsh web**,侧边栏即出现「AI 生图」入口,再到「设置 → 插件 → 可配置」填写 API 地址与密钥。
81
+ ![gpt-image-2 grok-imagine-image 的多模型并列结果对比](docs/images/multi-model-comparison.png)
73
82
 
74
- ### 方式一:让 AI 帮你安装(最省事)
83
+ <a id="studio"></a>
84
+ ## 原生图像工作台
75
85
 
76
- 把下面提示词直接粘贴给 **DSH**(或 Codex / 其他 coding agent)执行即可:
86
+ 侧边栏打开后,参数、生成结果、后台任务和历史记录处于同一工作区。文生图和图生图均支持尺寸、清晰度、数量与细节等级;结果可下载、全屏查看、缩放、前后切换、复制提示词或一键作为下一次图生图的参考。
77
87
 
78
- ```text
79
- 用 dsh plugin --profile web add @dickpy/dsh-imagegen 安装 AI 生图插件(profile 名按实际修改),完成后重启 dsh web。
80
- ```
88
+ ![AI 生图工作台四图结果布局](docs/images/image-generation-studio-four.png)
81
89
 
82
- ### 方式二:npm 安装(推荐)
90
+ **让首次生成更可控**
83
91
 
84
- ```bash
85
- dsh plugin --profile web add @dickpy/dsh-imagegen
86
- ```
92
+ - 提示词增强可检测当前 API 支持的对话模型,把一句简短想法扩写成更完整的生图提示词。
93
+ - 生成任务由宿主进程排队执行,支持查看状态、取消和失败重试,长任务不会卡住整个面板。
94
+ - 历史记录保留提示词、模型与参数,支持关键词、模型和比例筛选;最多保存 50 条最近记录。
95
+ - 内置 441 个 `gpt-image-2` 提示词案例,可搜索、筛选、复制并一键回填。
87
96
 
88
- dsh 会自动把插件注册进 profile 的 bundle 清单(无需手动改 cordis.patch.yml),重启 dsh web 即可。
97
+ <a id="gallery"></a>
98
+ ## 画廊:把生成结果变成可用资产
89
99
 
90
- ### 方式三:聚合包(tarball)安装
100
+ 满意的图片可从结果卡、全屏预览或历史记录一键加入画廊。画廊不是横向缩略图条,而是为持续积累作品设计的纵向工作区:左侧筛选,右侧瀑布流或整齐网格,点击任意图片即可打开大图预览。
91
101
 
92
- [GitHub Releases](https://github.com/dickpy/dsh-imagegen/releases) 下载发布产物
93
- (如 `dickpy-dsh-imagegen-1.2.0.tgz`),然后:
102
+ ![画廊工作区:分类筛选、瀑布流和大图预览](docs/images/gallery-workspace.png)
94
103
 
95
- ```bash
96
- dsh plugin --profile web add <下载路径>/dickpy-dsh-imagegen-1.2.0.tgz
97
- ```
104
+ - 关键词搜索,按生成模式、模型、比例和自建标签过滤。
105
+ - 标签可新建、编辑和删除;标签入口会同步出现在左侧筛选区。
106
+ - 多选图片后可批量下载,或导出 JSON 元数据作为备份。
107
+ - 收藏由 DSH 宿主持久化保存,跨同一宿主的浏览器/设备可见,同一图片内容不会重复加入。
98
108
 
99
- 重启 dsh web。
109
+ <a id="quick-start"></a>
110
+ ## 快速开始
100
111
 
101
- ### 方式四:源码开发启动(最后的选择)
112
+ 前置条件:已安装 [DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness) 和 Node.js 20+。安装完成后重启 `dsh web`,侧边栏会出现“AI 生图”。
102
113
 
103
- 需要改插件源码时才用这种方式:
114
+ ### 一条命令安装
104
115
 
105
116
  ```bash
106
- git clone https://github.com/dickpy/dsh-imagegen.git
107
- cd dsh-imagegen
108
- pnpm install
109
- pnpm run build
110
- dsh plugin --profile web add link:/绝对路径/dsh-imagegen
117
+ dsh plugin --profile web add @dickpy/dsh-imagegen
111
118
  ```
112
119
 
113
- 重启 dsh web;开发时可运行 `pnpm run watch` 持续构建,bundle 变更由 client-hmr 自动热更。
114
-
115
- ## 配置 API
120
+ Windows 如遇 PowerShell 脚本策略限制,请使用 `dsh.cmd`。安装后进入“设置 插件 AI 生图”,填写 API 地址和密钥,检测并选中可用模型后保存。
116
121
 
117
- 打开 DSH 的“设置 -> 插件 -> 可配置”,展开 **AI 生图 (dsh-imagegen)**:
122
+ ### Agent 帮你安装
118
123
 
119
- | 配置项 | 说明 |
120
- | --- | --- |
121
- | `api_url` | OpenAI 兼容接口根地址,例如 `https://api.openai.com/v1`。插件会自动追加接口路径。 |
122
- | `api_key` | Bearer API 密钥。界面仅显示是否已配置;输入新值可覆盖,清空后保存可删除。 |
123
- | 允许使用的生图模型 | 先保存 API 地址和密钥,再点击“检测可用模型”,从 API 的 `/models` 返回结果勾选并保存;也可手动一行一个模型。面板、对比视图、画廊筛选和 Agent 都只使用此列表。 |
124
- | 提示词增强模型 | 可选。检测当前 API 的候选对话模型后点选即可;通常复用生图 API 凭据。 |
125
- | 允许 Agent 调用生图 | 默认开启。允许 Agent 提交、查询、取消生图任务并向对话回贴图片;关闭后仅保留侧边栏工作台。 |
126
- | 启用插件 | 关闭后生图工作台不可用,设置卡片仍可用于重新启用。 |
127
- | 向 Agent 播报 | 开启后,将插件能力写入 Agent 系统提示词。 |
128
-
129
- `/models` 的标准响应通常不含“是否支持生图”的能力信息,因此检测结果是候选项,不是兼容性认证。请只勾选该 API 实际支持生图的模型。配置完成后,从 DSH 侧栏打开“AI 生图”即可开始使用。
124
+ 将下面内容直接发给 DSH、Codex 或其他 coding agent:
130
125
 
131
- ## Agent 对话生图
126
+ ```text
127
+ 用 dsh plugin --profile web add @dickpy/dsh-imagegen 安装 AI 生图插件。完成后重启 dsh web,并打开设置中的 AI 生图配置。
128
+ ```
132
129
 
133
- 开启“允许 Agent 调用生图”后,直接在 DSH 对话中描述想要的画面即可。Agent 会从“允许使用的生图模型”中选择模型;可明确要求某个已配置模型,未指定时默认使用列表中的第一个。Agent 会先提交后台任务,完成的图片会作为对话附件自动回贴,不会因最长 240 秒的上游生成请求卡住整个对话。需要迭代时,Agent 可以把任务结果中的 `source_image` 作为参考图调用图生图,形成“设计描述 → 生成 → 基于结果修改”的闭环。
130
+ ### Release 安装
134
131
 
135
- 工具名与用途:
132
+ 从 [GitHub Releases](https://github.com/dickpy/dsh-imagegen/releases) 下载 tgz 后执行:
136
133
 
137
- | 工具 | 用途 |
138
- | --- | --- |
139
- | `generate_image` | 提交文生图任务,立即返回任务 ID。 |
140
- | `get_image_generation_task` | 查询任务;完成时返回并回贴图片附件。 |
141
- | `edit_image` | 使用已回贴图片的 `source_image` 提交图生图任务。 |
142
- | `cancel_image_generation_task` | 取消排队中或正在执行的任务。 |
134
+ ```bash
135
+ dsh plugin --profile web add <下载路径>/dickpy-dsh-imagegen-1.2.2.tgz
136
+ ```
143
137
 
144
- API 地址或密钥尚未配置,工具会明确提示到“设置 → 插件 → AI 生图”完成配置;API 密钥始终只由 DSH 宿主使用,不会传给 Agent 或浏览器。
138
+ <a id="configuration"></a>
139
+ ## 配置模型
145
140
 
146
- ## 接口兼容性
141
+ 打开 DSH 的“设置 → 插件”,展开 **AI 生图(dsh-imagegen)**。首次只需准备两项:API 地址和密钥。
147
142
 
148
- | 场景 | 请求 |
143
+ | 配置项 | 如何使用 |
149
144
  | --- | --- |
150
- | 文生图 | `POST {api_url}/images/generations`,JSON 请求体 |
151
- | 图生图 | `POST {api_url}/images/edits`。OpenAI 模型走 `multipart/form-data`(含 `image`、`prompt`、`model` 与参数);Grok Imagine 模型走官方 JSON 协议(`image: { url, type: "image_url" }`,接受 base64 data URI) |
152
- | 响应 | 支持 OpenAI 兼容的 `{ data: [{ b64_json | url }] }`;URL 图片由宿主下载并转为 base64,再返回浏览器 |
153
-
154
- `detail` 是透传参数,部分 `gpt-image-2` 网关支持。官方 OpenAI 端点若不接受该字段,请保持界面中的“自动”。
155
-
156
- Grok Imagine 模型(`grok-imagine-image` / `grok-imagine-image-2.0`)的请求会按官方规范发送:界面尺寸即宽高比(1:1 / 3:4 / 4:3 / 9:16 / 2:3 / 3:2 / 16:9 / 21:9),直接作为 `aspect_ratio`(21:9 映射为官方文档中的 20:9 超宽);清晰度 1k / 2k / 4k 作为 `resolution`(官方文档当前仅支持 1k / 2k,选 4k 时自动回落为 2k);并固定 `response_format: "b64_json"`(结果 URL 为临时签名链接,直接取 base64 更稳定)。OpenAI 兼容端点则将宽高比映射为最接近的像素尺寸(如 1:1→1024×1024、16:9→1792×1024),清晰度映射为 `quality` 档位(1k→low、2k→medium、4k→high)。API 地址填 xAI 的 `https://api.x.ai/v1` 即可使用。
157
-
158
- 未来可在模型清单中加入 `qwen-image`、Gemini 等名称,但名称出现在 `/models` 并不意味着插件已适配其原生协议。当前它们只有在上游网关同时兼容上述 OpenAI 生图路由和响应格式时才可直接使用;需要厂商专属鉴权、路径或请求体时,插件会如实显示上游错误,后续会以独立适配器支持。
145
+ | `api_url` | OpenAI 兼容接口根地址,例如 `https://api.openai.com/v1`。插件会自动追加图像接口路径。 |
146
+ | `api_key` | API 密钥仅保存在 DSH 宿主侧,浏览器与 Agent 都不会获得明文。 |
147
+ | 生图模型 | 保存地址和密钥后点击“检测可用模型”;勾选实际支持生图的项目。没有 `/models` 的网关可手动添加。 |
148
+ | 提示词增强模型 | 可选。点击“获取可用模型”,选择支持 `/chat/completions` 的模型;通常可复用生图 API 凭据。 |
149
+ | 允许 Agent 调用生图 | 默认开启。关闭后,Agent 不能提交、查询和取消任务,侧边栏工作台不受影响。 |
159
150
 
160
- ## 画廊与 Grok Imagine
151
+ > `/models` 的标准响应通常不含“是否支持生图”的能力字段,因此它提供的是候选列表,不是兼容性认证。请只选择你的上游实际支持的生图模型。
161
152
 
162
- 画廊提供独立的作品浏览工作区:左侧按生成模式、模型、画面比例和自建标签筛选,右侧以纵向瀑布流或整齐网格展示收藏图片。支持关键词搜索、标签新建/编辑/筛选、批量下载、JSON 元数据导出、发布时间排序、持续向下滚动、点击卡片打开大图预览、恢复参数、移出和清空。收藏数据由 DSH 宿主持久化到 `~/.dsh/dsh-imagegen/gallery/`,同一图片内容不会重复保存。
153
+ ### 已适配的接口
163
154
 
164
- 插件原生支持 xAI `grok-imagine-image`。将 API 地址设置为 `https://api.x.ai/v1` 后,文生图使用 `/images/generations`,图生图按 Grok Imagine JSON `image_url` 协议调用 `/images/edits`;界面中的比例和清晰度会分别映射为 `aspect_ratio` 与 `resolution`。
155
+ - **OpenAI 兼容接口**:支持 `/images/generations`、`/images/edits` `{ data: [{ b64_json | url }] }` 格式响应。
156
+ - **Grok Imagine**:原生支持 `grok-imagine-image` 与 `grok-imagine-image-2.0`。将地址设为 `https://api.x.ai/v1` 后,图生图会使用其 JSON `image_url` 协议,比例和清晰度映射为 `aspect_ratio` 与 `resolution`。
157
+ - **后续模型**:可将 `qwen-image`、Gemini 等 OpenAI 兼容网关模型加入清单;厂商专属鉴权或请求协议需要单独适配。
165
158
 
159
+ <a id="security"></a>
166
160
  ## 数据与安全
167
161
 
168
- - API 请求由 DSH 宿主进程代理,浏览器不直接连接上游 API,因此不暴露 API 密钥,也没有浏览器 CORS 问题。
169
- - API 密钥保存在宿主侧 `~/.dsh/settings.yaml`;设置桥会对密钥进行脱敏。
170
- - 历史与画廊数据存放在 `~/.dsh/dsh-imagegen/`:历史图片独立落盘于 `images/`(`index.json` 为索引),画廊在 `gallery/` 子目录(`gallery/index.json` 为索引,按图片内容去重)。
171
- - 模板库的提示词快照随插件发布;展示图从 `vibeui.top` 通过本机宿主按需拉取,并缓存到 `~/.dsh/dsh-imagegen/template-images/`。模板库仅在手动刷新或首次加载展示图时访问该站点。
172
- - 插件通过专用 loopback 路由 `/api/dsh-imagegen/settings/{describe,mutate}` 访问设置,不需要修改 DSH 源码或依赖第三方命名空间白名单。
162
+ - API 请求由 DSH 宿主进程代理,浏览器不直接连接上游,因此没有 CORS 问题,也不会暴露 API 密钥。
163
+ - 密钥保存于本机 DSH 设置中,设置页面仅展示“已配置”状态。
164
+ - 历史、画廊和图片数据保存在宿主的 `~/.dsh/dsh-imagegen/`,由你控制;画廊图片按内容去重。
165
+ - 模板库随插件发布提示词快照,展示图通过宿主同源代理按需拉取与缓存。
173
166
 
174
- ## 项目结构
175
-
176
- | 位置 | 职责 |
177
- | --- | --- |
178
- | `src/index.ts` | 插件入口、设置注册、路由挂载和 Agent 提示词播报 |
179
- | `src/routes.ts` | `/api/dsh-imagegen/*` 宿主路由 |
180
- | `src/engine.ts` | 上游图像生成代理与响应归一化 |
181
- | `src/history-store.ts` | 历史记录和图片持久化 |
182
- | `src/templates-store.ts` | 模板快照、在线刷新和展示图本地缓存 |
183
- | `src/client/ImageGenPanel.tsx` | 生图工作台、结果、历史与大图预览 |
184
- | `src/client/TemplateLibrary.tsx` | 模板图库、搜索筛选、详情和一键回填 |
185
- | `src/client/SettingsCard.tsx` | 插件配置卡片 |
186
-
187
- ## 开发
167
+ <a id="development"></a>
168
+ ## 开发与反馈
188
169
 
189
170
  ```bash
190
- pnpm run typecheck # TypeScript 类型检查
191
- pnpm run build # 构建宿主与 Web bundle
192
- pnpm run watch # 持续构建
171
+ pnpm run typecheck
172
+ pnpm run build
173
+ pnpm run watch
174
+ node scripts/smoke.mjs
193
175
  ```
194
176
 
195
- ## 📬 反馈与提问
196
-
197
- - **遇到 Bug**:请使用 [Bug 报告模板](https://github.com/dickpy/dsh-imagegen/issues/new?template=bug_report.yml) 提交,
198
- 并附带插件版本、DSH 版本、安装方式与复现步骤(**请勿在 issue 中粘贴 API 密钥**)。
199
- - **功能建议**:请使用 [功能建议模板](https://github.com/dickpy/dsh-imagegen/issues/new?template=feature_request.yml) 提交,
200
- 描述使用场景与期望效果。
201
- - **安装 / 使用问题**:先查阅本文档「快速开始」与「配置 API」章节。
177
+ - 发现问题请提交 [Bug 报告](https://github.com/dickpy/dsh-imagegen/issues/new?template=bug_report.yml),附带插件版本、DSH 版本和复现步骤。请勿粘贴 API 密钥。
178
+ - 有改进想法请提交 [功能建议](https://github.com/dickpy/dsh-imagegen/issues/new?template=feature_request.yml)。
179
+ - 查看全部 [Release](https://github.com/dickpy/dsh-imagegen/releases) [Issue](https://github.com/dickpy/dsh-imagegen/issues)
202
180
 
203
181
  ## 许可证
204
182