Перейти к основному содержимому
A

dsh-image-studio

aa1355721445-lgtm/dsh-image-studio

Добавляет `image_generate` и `image_library`: выбор референсов из четырёх локальных библиотек (персонажи, одежда, сцены, предметы), разворачивание пресетов ситуации, эмоции, позы, кадра и света в промпт, вызов асинхронного API задач 65535 или API изображений, совместимого с OpenAI; результат появляется в беседе. Страница настроек управляет библиотеками и создаёт трёхракурсный лист персонажа из загруженного изображения или текстового описания. Если установлен dsh-daily-schedule и одежда не задана, берётся одежда персонажа из текущей записи расписания.

Установка

dsh plugin --profile web add github:aa1355721445-lgtm/dsh-image-studio

README

dsh-image-studio · 生图工作室

给 DeepSeek Harness 加一个会「看场合发图」的生图能力:本地四个参考库(人物 / 服饰 / 场景 / 道具), 模型判断该出图时,插件按画面描述把对应的参考图组合起来,一起交给生图 API,保证角色和设定一致。

v0.5.1 起,走 65535 时图片数据直接从你选的线路返回,国内用「大陆优化线路」不用开代理也能拿到图。

它做了什么

部分说明
image_generate 工具模型调用:prompt(画面)+ 关键词(situation / expression / pose / shot / light)+ 库条目(characters / outfits / scene / props)→ 组合参考图 → 生图 → 存本地,聊天里显示成图片卡片
image_library 工具模型调用:库很大、系统提示里的目录没列全时,按关键词或 id 查条目(含人设、神态特点、情境穿搭)
系统提示注入「什么时候发图」三档策略 + 自定义规则 + 主动发图冷却 + 关键词清单 + 参考库目录
设置 → 生图工作室素材库(含「从图片导入」)、关键词、试生成、生成记录、设置

安装

需要:DeepSeek Harness 桌面版,以及一个生图接口(65535 的异步任务接口,或任何 OpenAI 兼容的 /v1/images 接口)。

方式一:在 DSH 里装(推荐)

  1. 打开 DSH 侧栏的 插件 → 添加插件(或点箭头选「安装第三方插件」)。

  2. 把本仓库地址粘进输入框,点 安装:

    https://github.com/aa1355721445-lgtm/dsh-image-studio
    
  3. 装好后点 立即启用。设置里没出现「生图工作室」的话,完全退出 DSH 再打开一次。

方式二:命令行

先完全退出 DSH(托盘里也退出),然后在 PowerShell 里:

dsh plugin --profile desktop add https://github.com/aa1355721445-lgtm/dsh-image-studio

dsh 不在 PATH 上时,用 DSH 安装目录里的完整路径:& "<DSH 安装目录>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add https://github.com/aa1355721445-lgtm/dsh-image-studio。

升级:DSH 里第三方插件通过「卸载 → 重新安装」升级;素材库、关键词和配置都存在 <DSH_HOME>\image-studio\,卸载不会删掉。

本地开发:git clone 下来后用 dsh plugin --profile desktop add link:<克隆目录> 安装,改代码直接生效(宿主端改动需重启 DSH,只改 lib/client.js 刷新页面即可)。

第一次用

  1. 打开 设置 → 生图工作室 → 设置,选接口类型、填 Base URL 和 API Key,点「测试连接」。
  2. 「识图」默认用 DSH 自带的看图模型(如 deepseek-flash),不用另填 Key;没有的话可以换成 OpenAI 兼容接口。
  3. 到 素材库,顶部的「添加」区写一句描述(用文字生成)或者丢几张图(从图片生成三视图),建几个人物、服饰、场景,就可以在对话里让模型出图了。
  4. 「关键词」里自带一套默认情境,其中的场景 / 服饰名(卧室、居家针织服等)只是例子,改成你库里实际有的名字即可;库里没有时会只按文字描述。

添加素材(v0.5)

素材库每个分类顶部都有「添加人物 / 服饰 / 场景 / 道具」区,AI 生成放在最前面:

方式怎么用结果
用文字生成(推荐)在框里写几句描述,点「生成」或 Ctrl + Enter扩写成完整设定(名字、标签、外观描述),再画一张三视图 / 设定图
从图片生成三视图把 1–4 张图拖进来或点击选择识别外观写好描述,再画一张标准三视图
手动新建「想自己填?手动新建」或网格里的「手动新建」卡片自己填名字、描述,上传参考图
  • 把图片拖到素材库页面的任何地方,也会直接开始「从图片生成」;
  • 生成完都会停在「确认」这一步,名字、描述可以先改,不满意可以写要求重画,确认后才存进库;
  • 进了手动新建也不用退回去:页面顶部可以把已经填的描述、加的图直接交给 AI 生成;
  • 不常用的话点「收起」,会缩成一行三个按钮(记在本机浏览器里)。

参考库

默认目录在 <DSH_HOME>\image-studio\library\{characters,outfits,scenes,props},每个库都能在设置页单独改到别处 (比如你已有的素材文件夹)。目录约定对手工整理也友好:

人物库目录\
  小鱼\                ← 一个子文件夹 = 一个条目
    entry.json         ← 名字、别名、标签、外观描述、人设、默认服饰、封面(设置页会自动写)
    front.png  side.png ...
  阿星.png             ← 散图也算一条(名字 = 文件名),在设置页编辑时会自动收进同名文件夹
  • 外观描述会写进生图提示词;人设只给对话模型看,不会发给生图 API。
  • 第一张(封面)会被优先当作参考图。人物可以设一套默认服饰。
  • 设置页里的「删除」是挪进 image-studio\.trash,不做硬删除。

关键词(v0.2)

为了不让每张图都照抄参考图的姿势和表情,神态、动作、取景交给文字决定。模型先判断角色此刻的状态,再填关键词名字,插件把它展开成具体描写:

分组例子说明
情境 situation在家休息、睡前、刚睡醒、工作学习、外出一组搭配:自带场景、默认服饰、光线和氛围描写
神态 expression开心、害羞、困倦、委屈、得意按对话里的心情选
动作 pose抱膝坐、趴着、托腮、伸懒腰
镜头 shot自拍、近景、全身、俯视、第一人称
光线 light午后暖阳、夜晚台灯、黄昏逆光不填时用情境的默认光线

关键词存在 image-studio\presets.json,第一次运行写入一套默认值,在设置页「关键词」里增删改。没收录的词也能用,会原样当描述。

人物条目多了两项:神态特点(如「开心时尾巴会摇」,会写进提示词)和情境穿搭(在家穿什么、上班穿什么)。服饰的选择顺序:

显式指定 > 人物的情境穿搭 > 情境默认服饰 > 场景默认服饰 > 人物默认服饰

从图片导入 / 三视图(v0.2)

素材库顶部「从图片生成三视图」,丢 1–4 张图进去:

  1. 识图:整理出名字、别名、标签和外观描述(只写长相 / 设计,不写表情和姿势)。默认用 DSH 自带的看图模型(deepseek-flash),不用另填 Key;也可以在设置里换成任意 OpenAI 兼容接口。
  2. 生成三视图:以原图为参考画一张标准设定图—— 人物:正 / 侧 / 背三视图,中性 A 字站姿、平静表情、白底; 服饰:穿在无脸素体人台上的正 / 侧 / 背三视图(不带模特长相); 道具:正 / 侧 / 背 + 45° 斜侧; 场景:主视角全景 + 反向视角 + 俯视布局的设定图(去掉人物)。
  3. 确认入库:结果都能改,不满意可以写点要求重新生成;存成新条目或加到已有条目,三视图设为封面。

已有条目在编辑页也能「生成三视图」(以封面为参考)和「识别补全」描述与标签。拿三视图当参考,生图时更不容易照抄某个姿势。

文字生成(v0.3)

素材库顶部「用文字生成」的框里写一句话(或在导入面板切到「用文字描述」),就能生成新素材:

  1. 扩写:模型把描述扩写成适合生图的详细外观描述(你提到的点一个不改,没提到的合理补全),并起好名字、标签。用的是设置里「识图」那条通道,纯文字任务用 DSH 里任意模型都行。
  2. 画三视图:没有参考图,按描述原创设计——人物是 A 字站姿三视图,服饰穿在素体人台上,道具三视图加斜侧,场景是设定图;提示词里同时带上扩写结果和你的原话,原话里的要求必须满足。
  3. 确认入库:和图片导入一样可以改、可以写要求重新画;生图失败时也能先存一个只有文字描述的条目,之后再补图。

跟着全天日程穿衣服(v0.4)

同时装了每日日程插件 dsh-daily-schedule 并打开了它的「联动生图工作室 → 穿搭」时,日程里每一段都记着她穿什么。生图时人物是日程里的「她」、又没指定服饰,就直接沿用她此刻那一段的穿着:

  • 库里有的那套(如「JK短裙」)作为服饰参考图,日程里写的细节(「外面加了件开衫」)写进【搭配】;
  • 库里没有的(如「睡衣」)只按文字描述,不再套默认服饰;
  • 这次指定了场景、而且和日程此刻的场景不同(画的不是「现在」),或显式指定了服饰,就不跟;
  • 只读日程插件的数据文件(.dsh\daily-schedule\),没装、没生成今天的日程都不影响出图。

设置 → 参考图组合 →「跟着『全天日程』穿衣服」可以关掉。

组合规则

一次出图时:

  1. 解析模型给的条目(id、名字、别名都认);打开「自动识别」时,画面描述里提到的库名字也会被带上;
  2. 服饰没指定时按「日程此刻的穿着 > 人物的情境穿搭 > 情境默认 > 场景默认 > 人物默认」自动搭配;
  3. 按优先级挑参考图:上一张生成图(extra_images)> 人物 > 服饰 > 场景 > 道具,总数不超过上限(默认 8);
  4. 给每张参考图编号,写一段「图 N 是什么、怎么用」拼进提示词,例如:
【画面】窝在床上玩手机
【情境】在家休息:放松慵懒的居家氛围,周围有生活感的小物件
【神态】脸颊泛起红晕,眼神躲闪、微微低头,嘴角含着不好意思的笑
【镜头】手机自拍视角:人物一只手臂伸向镜头举着手机(手机在画面外),轻微俯拍
【光线氛围】午后温暖的阳光从窗户斜照进来,有柔和的光斑,整体暖色调
【人物神态特点】小鱼:开心时尾巴会左右摇摆

【参考图说明(按上传顺序编号)】
图1:人物「小鱼」——只用来确定长相:脸型五官、发型发色、瞳色、体型比例和标志性特征。参考图里的姿势、表情、视角和背景都不要照搬。
图2:服饰「睡衣」——只参考服装设计(款式、颜色、材质、细节),穿在「小鱼」身上,随动作自然起褶变形。
图3:场景「卧室」——只参考空间、陈设、配色与风格;镜头角度和取景按上面的描述重新安排。

要求:画一张全新的画面……构图、视角、景别、姿势、动作、表情……一律按上面的文字重新安排,不要沿用任何一张参考图里的站姿、坐姿、表情或取景。

参考图默认「只还原长相和服装设计」:说明里写清每张图只取什么,姿势、表情、视角、构图按文字重新安排(设置里可以关掉,改回严格贴近参考图)。实际发出去的提示词在「生成记录」和「试生成」里都能看到。

接口

  • 65535 原生异步任务(默认):POST /v1/tasks 提交,GET /v1/tasks/{id} 轮询;参考图以 data URI 放进 input.image_urls;带 Idempotency-Key,网络抖动重试不会重复扣费。提交时带 response_format: "b64_json", 图片数据随查询结果从当前线路一起返回,存到本地;没带回数据时才去下载 result_urls(这些链接在海外节点上, 国内部分网络连不上,链接也有有效期)。超时或下载失败的任务会记成「等待取回」,可在生成记录里一键取回。
  • OpenAI 兼容:无参考图走 /v1/images/generations,有参考图走 /v1/images/edits(multipart)。

API Key 只存在本机 image-studio\config.json,网页上只显示末四位。

数据目录

<DSH_HOME>\image-studio\
  config.json      配置
  presets.json     关键词
  staging\         导入时暂存的原图(入库后清掉,两天没用自动清理)
  library\         四个库的默认目录
  outputs\YYYY-MM\ 生成的图片(img-日期-时间-随机.png)
  history.jsonl    生成记录
  .trash\          删除的素材与图片

开发与自检

node tests/smoke-host.mjs     # 宿主半:模拟 ctx + 假 65535 接口,跑组合 / 冷却 / 失败 / HTTP 全流程
node tests/smoke-host-v2.mjs  # 关键词 / 情境搭配 / 识图(模拟 DSH 模型 + OpenAI 兼容)/ 导入三视图
node tests/smoke-host-v3.mjs  # 文字生成:扩写 / 无参考图三视图 / 失败兜底 / 只存文字条目
node tests/smoke-schedule-link.mjs  # 跟着全天日程此刻的穿搭出图
node tests/smoke-client.mjs   # 浏览器半:把设置页每个页签、导入各步骤和聊天卡片的各状态渲染一遍
node --check lib/client.js

宿主端(lib/*.js 除 client.js)改了要重启 DSH;只改 lib/client.js 刷新页面即可。

许可

MIT

Похожие плагины