DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

bgfhsnm /

bgfhsnm/dsh-text2img

Verified

DeepSeek Harness 插件:把本机 ComfyUI 文生图注册成原生 text2img 工具(FLUX / Qwen-Image / SDXL)

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@800e1fed

dsh-text2img

把本机 ComfyUI 的文生图能力注册成 DeepSeek Harness(DSH)的原生工具 text2img。

装上之后,你在对话里说「帮我画一张图:……」,Agent 会扩写提示词、调用本地模型、把生成的图直接显示在对话里——不走网络,不上传任何数据,不消耗 API 额度。

同一个仓库还配套一个独立 CLI:dshtext2img.py,不装 DSH 也能命令行出图。

特性

  • 三种模型可选:FLUX.1 Dev(画质/遵循度最好)、Qwen-Image(图内可读文字最强)、SDXL(最快)
  • 零云端依赖:ComfyUI 跑在 127.0.0.1:8188,图片落本地磁盘
  • 图片直接进对话:经 DSH 的 attachments 服务变成会话附件,不是甩一个路径给你
  • 自动拉起 ComfyUI:服务没起时自动运行启动脚本并轮询就绪(最多 120 秒)
  • 不覆盖旧图:ComfyUI 只按自己的 output 目录编号,文件被移走后会从 00001 重排,本插件在目标已存在时自动加 _2、_3 后缀
  • 降级安全:附件服务缺席时退化为返回文件路径,工具本身不会失败

工具参数

参数 类型 说明
prompt string,必填 详细提示词,建议英文长句
model flux / qwen / sdxl 默认 flux
width / height integer 默认 1024 × 1024
steps integer 默认 20(flux/qwen)或 25(sdxl)
seed integer 固定种子可复现同一张图
guidance number FLUX 专用,默认 3.5
negative string 负向提示词(qwen/sdxl 生效,FLUX 忽略)
output_name string 输出文件名前缀

模型选型(RTX 5070 Ti Laptop 12GB 实测)

场景 模型 耗时
复杂场景、严格遵循提示词、最高画质 flux ~64–78 秒
图里需要可读文字(海报 / 图表 / Logo) qwen ~161 秒
要快、或需要特定画风(配 LoRA) sdxl ~10–16 秒

⚠️ FLUX.1 dev 的产出不可商用;Qwen-Image 与 SDXL 可以。

前置条件

  1. ComfyUI(本仓库在 0.38.0 + torch 2.9.1+cu128 上验证),默认监听 127.0.0.1:8188
  2. 模型文件按模型名放到 ComfyUI 的标准目录:
模型 文件 放置位置
FLUX flux1-dev-Q4_K_S.gguf models/unet/
FLUX t5-v1_1-xxl-encoder-Q4_K_S.gguf、clip_l.safetensors models/clip/
FLUX flux-vae-bf16.safetensors models/vae/
Qwen-Image qwen-image-Q3_K_S.gguf + Qwen 文本编码器 按 ComfyUI 官方蓝图
SDXL sd_xl_base_1.0.safetensors models/checkpoints/
  1. DSH(本仓库在 0.2.1-rc.2 上验证),Node.js ^22.19.0 || >=24.0.0

安装

本插件是纯插件挂载,不改内核、无构建步骤。把包放进 DSH profile 的 plugins/ 目录:

$dest = "$env:USERPROFILE\.dsh\profiles\desktop\plugins\dsh-text2img"
New-Item -ItemType Directory -Force -Path $dest | Out-Null
Copy-Item .\* $dest -Recurse -Force

然后在 profile 的 package.json 里登记两处:

{
  "dependencies": {
    "dsh-text2img": "file:./plugins/dsh-text2img"
  },
  "dsh": {
    "profile": {
      "bundles": [
        // ……原有的 bundle……
        "dsh-text2img"
      ]
    }
  }
}

重启 DSH 后,模型选择器旁的工具栏里就会出现 text2img 工具。

桌面端(Electron)的 profile 由应用独占,命令行 dsh plugin add 写不进去;改完 package.json 后重启应用即可。

配置(环境变量)

默认值对应作者本机布局,换机器时全部可覆盖,无需改代码:

环境变量 默认值 作用
TEXT2IMG_COMFY_URL http://127.0.0.1:8188 ComfyUI 服务地址
TEXT2IMG_COMFY_OUTPUT D:\AI\ComfyUI\output ComfyUI 的 output 目录,插件从这里取图
TEXT2IMG_OUT_DIR D:\DSH输出\图片 图片最终保存目录
TEXT2IMG_START_BAT D:\AI\start_ai.bat ComfyUI 未运行时拉起的启动脚本;留空则只报错不自动启动

实现要点

  • 不 import 任何 @deepseek-ai/* 包,用 ctx.tools.register(原始对象) 注册,避免依赖解析问题
  • 图片经 attachments.saveImage() 变成会话附件,以 { type: 'image', attachment: {...} } 内容块返回
  • ComfyUI 没运行时自动拉起启动脚本并轮询 /system_stats 就绪

踩过的坑(已在代码里内建修复)

坑 处理
原生 DualCLIPLoader 看不到 GGUF 文本编码器 FLUX 改用 DualCLIPLoaderGGUF
Qwen-Image 缺 ModelSamplingAuraFlow 会出图异常 已加入该节点(shift=3.1)
FLUX 官方 VAE 在 hf-mirror 上返回 403 需授权 改用 Kijai/flux-fp8 的 flux-vae-bf16.safetensors
Comfy-Org/flux2-dev 的 VAE 与 FLUX.1 不通用 明确不混用
输出文件互相覆盖 目标存在时自动加序号
ctx.effect 缺席导致插件加载失败 检测后降级为直接注册

目录结构

dsh-text2img/
├── package.json          # dsh.bundle.patch 指向 cordis.patch.yml
├── cordis.patch.yml      # 一行 insert,挂载插件
├── lib/index.js          # 全部实现(工具注册 + ComfyUI 通信 + 工作流)
└── README.md

许可

MIT,见 LICENSE。

—/ 5

No ratings yet

Verified DSH bundle

Commit 800e1fed10b3

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout