# Cture Image
**在对话里直接生图 —— 为 [DeepSeek Harness](https://github.com/deepseek-ai) 打造的图片插件。**
文生图 · 图生图 / 修图 · 批量出图,走任意 **OpenAI 兼容**的图片接口,
出图直接渲染在对话中,同时把原图落盘到工作区。
[](https://github.com/Cikian/dsh-cture-image/actions/workflows/ci.yml)
[](https://github.com/Cikian/dsh-cture-image/releases)
[](LICENSE)
[English](README.md) · [更新日志](CHANGELOG.md) · [版本发布](https://github.com/Cikian/dsh-cture-image/releases)

*提示词:「一只戴圆框眼镜的橘猫坐在书桌前敲代码…扁平化矢量插画风格」——
本插件生成(`gpt-image-2.5-sunburst`,2K,16:9,high),并如实报告了实际像素 1672×941。*
---
## 特性
- **一个工具覆盖三类任务** —— `generate`(文生图)、`edit`(图生图 / 修图,可带蒙版)、
`batch`(一次提交多条提示词,并发受控)。
- **出图就在对话里** —— 结果以真正的 image 内容块返回,背后是持久化附件:对话内直接显示、可下载;
同时把**接口返回的原始字节**写进工作区。
- **参数完整** —— 模型、质量、分辨率档位、宽高比、张数、保存目录、是否追加渲染指引。
- **配置在插件页里** —— 自带设置表单,保存前可先「测试连通性」,逐条报告 `✓ / ✕`;
API 密钥只存在宿主侧,不回传浏览器。
- **可被 Agent 直接操作** —— `imagegen_config` 工具让模型在对话中读改同一份配置。
- **规范 DSH bundle** —— 出现在插件页「已安装」分组,可像其他 bundle 一样开关,对所有预设与会话生效。
## 环境要求
| | |
|---|---|
| DeepSeek Harness | **0.2.x**(桌面端或 `dsh web`);按 0.2 的 bundle + client-module 机制开发 |
| Node.js | **≥ 20**(只用于开发脚本;插件本体跑在 DSH 内部) |
| 图片接口 | 任意 **OpenAI 兼容**接口(`POST /images/generations`、`POST /images/edits`)及其密钥 |
## 安装
### 方式一:从 npm 安装
```powershell
# 桌面端(profile: desktop)
dsh plugin --profile desktop add @cikian/dsh-cture-image
# CLI 的 dsh web(profile: web)
dsh plugin --profile web add @cikian/dsh-cture-image
```
### 方式二:从 Releases 下载产物安装(离线可用)
到 [Releases](https://github.com/Cikian/dsh-cture-image/releases) 页面下载
`cikian-dsh-cture-image-1.0.0.tgz`,然后把它交给插件管理器:
```powershell
dsh plugin --profile desktop add .\cikian-dsh-cture-image-1.0.0.tgz
```
两种方式装的是同一个包。tgz 里只有运行时文件——**不含 API 密钥**,装完即可使用。
> **装完(或搬动插件目录后)必须重启 DSH。** 宿主半边会立刻挂上,但 bundle 的
> **客户端半边**(设置表单、图片视图)是在页面启动时组装进 `__DSH_BOOT__` 的。
> 往一个已经打开的页面里安装,就会出现「插件显示运行中、但配置区不见了」——
> 见[常见问题](#常见问题)。
装完自查:**插件 → 已安装** 里应有 *Cture Image* 且开关打开,点进去就是配置表单。
## 配置
打开 **插件 → 已安装 → Cture Image**,表单渲染在描述与组件列表之间。
| 字段 | 说明 |
|---|---|
| **接口地址** | OpenAI 兼容图片接口的根地址。默认 `https://api.cikhub.com/v1`,也可换成任意兼容接口 |
| **API 密钥** | 只存宿主侧,回传时仅显示 `***set***` |
| **使用模型** | 默认模型;下拉列表来自 `GET /models`,也可手填 |
| **质量** | `low` · `medium` · `high` · `xhigh` · `max` |
| **分辨率** | `1K` · `2K` · `4K`(以像素尺寸表达,见[接口差异](#接口差异)) |
| **宽高比** | `1:1` · `2:3` · `4:3` · `3:4` · `16:9` · `9:16` · `21:9` · `9:21` |
| **张数** | 每条提示词张数,1–8 |
| **保存目录** | 原图落盘目录(工作区相对),默认 `saved-images` |
| **测试连通性** | 用**草稿值**探测接口并逐条报告,不保存 |
| **测试并试出一张图** | 真出一张 1024×1024 低质量图,验证模型与额度 |
**配置存在哪。** 在安装目录旁的 `config.json`(原子写入)。优先级:
`config.json` → bundle patch 行的 `config` → `lib/host.js` 里的内置默认值。
它**不进发布包**,所以分发插件永远不会带上别人的密钥:
```