dsh-pbr-material:照片本地生成可平铺 PBR 贴图集

前言

在 DeepSeek Harness(DSH)里做 3D 或游戏向资产时,常见需求是把一张现场照片变成引擎可用的 PBR 贴图(albedo、normal、roughness 等),还要能无缝平铺。手工在 DCC 里拆通道、做 MakeSeamless、再导出多套贴图,步骤多且难在对话里稳定复现。社区里已有 skill 思路(pbr-material-from-photo):模型负责判断与提示,管道用 ComfyUI 本地跑。插件 dsh-pbr-material(维护者 zhangx413,分类:模型推理)把同一套能力做成 DSH 插件:确定性管线进代码,GUI 工作台和 agent 工具一并带上,ComfyUI 与约 12.5 GB 权重在本地完成推理,不依赖云端出图 API。

这是什么

dsh-pbr-material 是 DSH 插件:输入一张物体或材质表面的照片,输出一整套可平铺的 PBR 贴图(albedo / normal / height / roughness / AO / curvature / metallic,数据贴图 16-bit),全程在 ComfyUI 上本地执行。生成式路径使用 FLUX.2 Klein 4B 做指令编辑得到平面 albedo,再经固定管线(色相选择性调色 → MakeSeamless → PBRSynth → 16-bit 落盘)推导其余通道;并提供平铺量测与 3×3 预览。插件自带 GUI 工作台、五个 agent 工具,以及能发现 ComfyUI、独立 run root、续传下载权重的部署工具;不写进用户已有的 ComfyUI 目录,使用自己的 run root 与端口。

  • 目录页:https://www.skillhub.cn/plugins/zhangx413/dsh-pbr-material
  • 源码:https://github.com/zhangx413/dsh-pbr-material(MIT,当前 package 版本 0.2.0,需 Node >= 20)

核心功能

Skill 与代码的分工

README 用一张表说明边界:失败模式、硬上限、提示词结构顺序等判断力留在 skill(SKILL.md);19 节点 ComfyUI 图如何提交与轮询、提示词模板、固定后处理管线、平铺量测与预览等确定性步骤搬进插件代码。这样 agent 仍可按 skill 做决策,执行层不会每次在对话里重连一遍图。

两种模式(选错是最常见的失败)

mode="direct"(直通) mode="generate"(生成式,默认)
含义 照片即 albedo,只做平铺 + 推导 先用 FLUX.2 Klein 重绘成平面 albedo,再推导
耗时 约 3 秒 约 1024px / 20 步时约 30 秒
分辨率 保留照片原生分辨率 输出为 size×size 方图
细节 保留真实缝、骨料、污渍等 细节会被「看起来合理」的通用纹理替换
描述 不需要(material 会被忽略) 需要写清颜色、基底、磨损
适用 已是正面平铺贴图(墙、地面、扫描件等) 有物体、透视、背景或光照渐变

对一张本来就是正面平铺的混凝土墙照片,README 记载:generate 会抹掉竖缝、骨料与水渍色差;direct 则保留原图。面板里第二步显式选择;agent 侧通过 pbr_material_from_photo 的 mode 参数指定。

五个 agent 工具

工具 作用
pbr_comfy_status 安装、Python、模型文件、节点包、run root、空闲显存、是否有实例在跑
pbr_material_from_photo 全流程,mode="direct" / "generate",返回贴图路径与平铺量测
pbr_check_maps 对已有贴图集做平铺量测并出 3×3 预览
pbr_setup_status 环境自检(路径来源、缺失权重、磁盘;可选 probe_speed 测速推算下载时间)
pbr_setup_install 后台部署:验证环境 → run root → 节点包 → 下载权重 → 起实例验证

实例策略:优先通过 attachPorts 附着已在运行的 ComfyUI;找不到才在独立端口(默认 8288)起 headless 实例,跑完关闭。起实例前检查空闲显存,低于 minFreeVramMiB(默认 9000 MiB)直接报错,避免 OOM。

GUI 工作台

侧边栏 PBR 材质 打开整页工作台:环境条、参考图拖入或 Ctrl+V、模式选择(直通时隐藏中文意图与英文 FLUX 描述区)、输出目录与资产命名、高级参数、后台任务进度与结果区(每张贴图 PASS / veto / FAIL、3×3 平铺预览)。生成按钮直连宿主 REST,不阻塞对话。写英文材质描述时调用 DSH 的 llm 服务(ctx.get('llm')),插件本身不持有 API key;多模态模型由宿主配置决定。

输出命名与文件布局

面板填写资源类别 / 名称 / 版本后,通过 GET api/naming 与宿主对齐文件计划。一套材质一个文件夹,例如 T_Military_SandBag_01 下含 _C、_N、_R、_AO、_M、_H、_CURV 及引擎合图 _CA、_CH、_NRM,以及 manifest.json 与 preview/ 中的参考图与 3×3 预览。后缀来自 config.json 的 naming.suffixes。

安装与启用

插件以 bundle 形式装入 DSH profile,官方 README 给出的步骤如下(ZIP 解压或 clone 到任意目录后执行):

node scripts\install-into-dsh.mjs --dry-run     # 先看将要修改的内容
node scripts\install-into-dsh.mjs               # 正式安装
# 然后重启 DeepSeek Harness

脚本会把本目录 junction 到 <profile>\node_modules\dsh-pbr-material,并写入 profile 的 dsh.profile.bundles 与 dependencies;修改 package.json 前会备份。

装好后在对话里说「看看 PBR 插件的环境」,agent 可依次调用 pbr_setup_status、pbr_setup_status(probe_speed)、pbr_setup_install 完成发现路径、节点包、run root,以及缺失权重的下载与验证。前三项由插件自动处理;机器上仍需有 ComfyUI 本体,并准备约 12.5 GB 模型权重(可续传、带镜像回退)。

典型用法

用 agent 跑一条龙

环境就绪后,让 agent 调用 pbr_material_from_photo:参考图已是平铺贴图时用 mode="direct";有透视或物体时用 mode="generate" 并写好材质描述。需要只检查已有贴图时调用 pbr_check_maps。

用面板不占用对话

  1. 打开 PBR 材质工作台,确认环境条中 ComfyUI、模型与实例状态。
  2. 导入参考图,选择「直接推导」或「先生成再推导」。
  3. 生成式模式下填写中文意图(可选「让模型看图写英文描述」)并确认 FLUX 用的英文句。
  4. 选择输出父目录,填写类别 / 名称 / 版本,点击生成;在结果区查看量测与 3×3 预览,必要时「打开输出文件夹」。

面板 REST 入口包括 POST api/generate(后台任务)、POST api/draft(多模态写描述)、POST api/check(量测已有集)等,与 agent 工具共用同一套管线逻辑。

适用场景与注意

适合:需要在本机从照片批量或交互式产出可平铺 PBR 集、且愿意维护 ComfyUI 与显存(README 提到 16 GB 显存下不宜同时跑两份 Klein 4B + 文本编码器)的团队或个人。

注意:

  • 插件以当前 DSH 进程权限运行,安装前请阅读源码与 MIT 许可证,并确认权重来源与磁盘占用。
  • 不要对已是成品贴图误开 generate,会浪费时间并损失细节。
  • 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态是「一切皆插件」,本插件是社区维护的模型推理类扩展之一。

结尾

dsh-pbr-material 把「照片 → 可平铺 PBR 贴图集」收成 DSH 内可对话、可面板、可本地 ComfyUI 执行的一条链路,并区分直通与生成两种模式,避免把已有贴图再画成通用 AI 纹理。进一步了解能力与安装细节,见目录页与 GitHub README。

  • 目录:https://www.skillhub.cn/plugins/zhangx413/dsh-pbr-material
  • 仓库:https://github.com/zhangx413/dsh-pbr-material
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye