shaomang/mtnode-aio/sensenova-local-install

Claude Code and agent skill by shaomang/mtnode-aio

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

在用户指定目录安装 SenseNova-U1.5-8B-MoT 本地文生图后端:探测 NVIDIA 驱动/显存/内存/磁盘/Python(显存 <20GB 或内存 <32GB 直接拒绝并给 vram_mode 建议与替代方案)、优先用 uv 从 npmmirror 拉 Python 3.11 建隔离 venv、按驱动装 cu128/cu126 的 CUDA 版 torch 2.8.0(SJTU→阿里云→官方三级回退)、从 GitHub tag 归档装 sensenova_u1 推理包(--no-deps,国内 gh 代理回退)、用 ModelScope 下载 SenseNova/SenseNova-U1.5-8B-MoT 权重(32.66GB / 8 片,失败回退 hf-mirror)、拉起 8774 端口标准库 HTTP 服务做 mock 冒烟与连续两次真实出图(只发一发测不出「第一张成功、之后每次 500」的坑)。含按错误码分派的自我修复指引与实测显存/耗时基准。

Install

npx vskill@latest install shaomang/mtnode-aio/sensenova-local-install

SKILL.md

SenseNova 本地图像生成 — 安装 / 修复

当用户或 MTNode 插件要求在某目录安装 / 自我修复 SenseNova(SenseNova-U1.5-8B-MoT 本地文生图) 后端时使用本 skill。

上游参考:OpenSenseNova/SenseNova-U1(安装文档 docs/installation_CN.md)、 权重 ModelScope SenseNova/SenseNova-U1.5-8B-MoT · HuggingFace sensenova/SenseNova-U1.5-8B-MoT。 官方文档与示例脚本以 Linux 为准,本 skill 是本机(Windows)移植口径,两者冲突时以本 skill 为准(见「Windows 与官方 Linux 的差异」)。

对接面核对基准:tag `comfyui-v0.3.0` 的 examples/t2i/inference.py(t2i_generate 的入参、SUPPORTED_RESOLUTIONS 11 个训练桶、_denorm 反归一化)、examples/editing/inference.py(参考图 / 图像编辑:it2i_generate(tokenizer, prompt, images, image_size=…, cfg_scale=…, img_cfg_scale=…, …),images 是 PIL 列表)与 apps/comfyui/local_pipeline.py(进度钩子)。升级 `-Ref` 到新 tag 前必须重核这几处,接口一变本包的 app/engine.py 就要跟着改。

插件调用时:

  • 当前工作区就是 `INSTALL_DIR`,可直接读写并执行命令
  • `SCAFFOLD_REF`(或 `.scaffold-ref`)仅作参考:内置 sensenova-pack/ 脚手架是示例实现,不是已完成的安装。请按下方目标自行准备目录;可按需从参考路径复制或改写,也可等价实现
  • 不要假设插件已替你复制好脚手架
  • 若任务附带 CONSOLE_LOG(插件 console 最近日志),以「最近失败焦点」为准定位根因并修复,不要盲目重下 32.66GB 权重

目标

在 INSTALL_DIR 完成可运行的 SenseNova 后端,使:

  • INSTALL_DIR\.venv\Scripts\python.exe 存在;-c "from app import server"、-c "import sensenova_u1"、-c "import torch" 三条都成功
  • venv 内 只装 CUDA 版 torch(禁 --system-site-packages),torch.cuda.is_available() 为真且版本串带 +cu1xx(不带 +cu 就是 CPU 版,判失败)
  • transformers >= 4.57.1:低于此版本 AutoConfig 认不出 model_type: "neo_chat",加载必失败
  • INSTALL_DIR\models\SenseNova__SenseNova-U1.5-8B-MoT\ 权重就绪:config.json + model.safetensors.index.json + 8 片 model-*-of-00008.safetensors,分片合计 ≥30GB(应约 32.66GB)
  • INSTALL_DIR\models\.ok、INSTALL_DIR\.attn-backend(flash 或 sdpa)、INSTALL_DIR\.install-ok、INSTALL_DIR\.sensenova-agent-result 存在
  • 冒烟通过后不要保留常驻服务:启停由插件负责(冒烟用的一次性启停必须结束就关)

输入参数

参数含义
INSTALL_DIR安装目录(当前工作区)。app/、scripts/、requirements.txt、manifest.json、start_backend.cmd 放这里
SCAFFOLD_REF内置脚手架参考路径(sensenova-pack/)。可复制 app/scripts/requirements/manifest,也可等价实现
CONSOLE_LOG插件 console 最近日志(修复模式下优先据此定位根因)

固定口径(不要改):模型 SenseNova/SenseNova-U1.5-8B-MoT(ModelScope id,HF id 为小写 sensenova/...)、推理包 sensenova_u1(GitHub tag comfyui-v0.3.0)、服务端口 8774、默认 vram_mode=fast、默认 dtype=bfloat16、默认 attn_backend=sdpa。

脚本参数(scripts\install.ps1,幂等可重跑):

参数用途
-InstallDir安装目录(默认脚本上一级)
-Python显式指定 python.exe(离线 / 特殊环境)
-TorchIndex显式覆盖 torch 的 --index-url(跳过自动镜像选择;公司内网镜像用它)
-TorchWheel本地 torch-2.8.0*.whl 完全离线安装(同目录需有 torchvision whl)
-Refsensenova_u1 的 GitHub tag(默认 comfyui-v0.3.0)
-SrcTarball已下好的 SenseNova-U1 归档 .tar.gz 或已解压目录(离线续装)
-ModelDir已有权重目录:建目录联接接进 models\,不复制 32.66GB
-SkipModels / -SkipDeps / -SkipPkg / -SkipTorch / -SkipSmoke只修某一段时跳过其它段(权重就绪的修复一律配 `-SkipModels`)
-ModelScopeRepo / -HfRepo仓库 id 变更时用
-Cpu装 CPU 版 torch,仅供联调(真实出图慢到不可用)
-Force强行跳过显存 / 内存门槛(明知不够仍要装;结论里必须注明)

目录约定(以 SCAFFOLD_REF 为参考)

  • INSTALL_DIR/app/ — 只用标准库的 HTTP 服务(python -m app <port>;server.py / engine.py / __init__.py / __main__.py)
  • INSTALL_DIR/.venv/ — 隔离虚拟环境(Python 3.11)
  • INSTALL_DIR/models/SenseNova__SenseNova-U1.5-8B-MoT/ — 权重(+ 同级 .ok 标记)
  • INSTALL_DIR/outputs/ — 默认产物目录(勿删;节点给了 outputDir 时写别处)
  • INSTALL_DIR/src/ — sensenova_u1 源码解包目录(安装期产物,可留存)
  • INSTALL_DIR/scripts/ — install.ps1(幂等);根目录 start_backend.cmd(手动起服用)
  • INSTALL_DIR/.attn-backend — 单行注意力档位(flash / sdpa),由安装期探针写出
  • INSTALL_DIR/.install-ok、INSTALL_DIR\.sensenova-agent-result — 成功 / 结论标记(见「marker 约定」)

硬件与系统探测(第一步,必做,不合格直接拒绝)

powershell
nvidia-smi --query-gpu=name,memory.total,driver_version,compute_cap --format=csv,noheader
(Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory
(Get-PSDrive <安装目录所在盘>).Free

判定(硬门槛,不要硬装):

情况处理
nvidia-smi 不存在 / 读不到驱动 / 非 NVIDIA(AMD/Intel 核显/Apple)拒绝:ok=false + reason=no_cuda,不建 .install-ok,给替代方案
显存 < 20GB拒绝:ok=false + reason=vram_too_low(记录实测 memory.total)。官方最省的 vram_mode=low 也是为 24GB 级卡准备的;但注意实测 `low` 档峰值只有约 3GiB(见下表),小卡用户如果有 32GB+ 内存,可用 -Force + vramMode=low 一试,结论里注明「非官方档、风险自担」
显存 20–24GB可装(警告为官方推荐档位下限):先试 `fast`,OOM 再降 balanced → low。实测 4090(24GB)fast 峰值仅约 16GiB,fast 并不需要 24GB 才跑得动
显存 ≥ 24GB(4090 / 3090 / A5000 档)官方目标档:默认 fast;OOM 自动降 balanced → low
显存 ≥ 48GB 或多卡可用 vramMode=full(不卸载,最快)
物理内存 < 32GB拒绝:reason=ram_too_low。分层卸载把 32.66GB 权重放进主内存,内存不够装得上跑不动;建议 ≥40GB
驱动主版本 < 570不拒绝:脚本自动降档装 cu126(cu128 需要 570+)。降档后仍 cuda.is_available()=False → reason=torch_no_cuda,提示升级驱动
磁盘剩余 < 50GB警告后可继续(结论里注明):权重 32.66GB + venv 约 12GB + 产物,建议预留 ≥60GB
找不到 Python 3.10–3.13见「Python 选择」:先试 uv;都没有 → reason=python_not_found 给指引(控制台原话:Neither uv nor a local Python 3.10-3.13 is available. ...)

拒绝时必须一并给出的替代方案:

  1. 改用 MTNode 的云端文生图节点 `proc_image`(不占本机显存、无安装成本),要本地化再谈;
  2. 换 / 升级到 24GB 级以上的 NVIDIA 卡(4090 / 3090 / A5000 / A6000),或 48GB 卡上走 vram_mode=full;
  3. 内存不足 → 加内存到 ≥40GB(权重 bf16 无法在内存里再压);
  4. 只有 CPU:官方链路在 CPU 上慢到不可用(且部分算子不可用),不提供 CPU 兜底,-Cpu 只能验流程不能出图。
拒绝不是失败报告:要写清实测 gpu= / vram= / ram= / driver= / 磁盘剩余,与上面 1–4 条,让用户能自己选下一手。
为什么必须分层卸载(别在文档里自创说法)
事实数字后果
权重体积32.66GB(8 片 safetensors,bf16)> 24GB 显存 → vram_mode=full 在 4090 上必 OOM
官方 vram_modefull(不卸载) / fast(异步预取 + 预算内常驻 generation 层) / balanced(异步预取) / low(同步逐层)24G 卡走 `fast`(本包默认),OOM 自动降一档并写进响应 warnings
卸载去处pinned 主内存所以内存门槛 32GB、建议 40GB
最小训练桶2048×2048 ≈ 4M 像素降分辨率省不了显存;要省只能降 numSteps 或降 vramMode
注意力官方支持 flash-attn,不提供 Windows 轮子默认 sdpa;装 flash-attn 不是修复项
实测基准(RTX 4090 24GB · 驱动 610.88 · 63.8GB 内存 · bf16 · sdpa · E: NVMe)

首图含权重加载(懒加载),冷启动第一发比后续慢;同进程后续请求不必再加载。下表 elapsedSec 是 /generate 全程:

分辨率桶numStepsvramMode耗时peakVramGiB
2048×2048(1:1 最小桶)4fast62.9s(冷,含 28s 加载)/ 23.8s(热)15.86
2048×204812 + thinkfast383.7s15.97
2720×1536(16:9)4fast24.3s(热)15.85
3456×1152(3:1)4fast24.0s(热)15.76
2048×20484low57.2s(热)2.95

读法:fast 的显存是预算封顶的(约 16GiB,换更大的桶也只涨一点),所以 24GB 卡上 fast 就是默认档;low 把显存压到 3GiB 但慢约 2.4×。权重加载 28–32s(NVMe、8 片);low/balanced 因逐层同步会更慢。冷启动第一发明显更慢(第一次进 offload 上下文、pinned cache 与 cudnn 预热):12 步那次前一两步就吃掉几分钟,/progress 会一段时间停在 sample 15% 不动 —— 那是正常的,看 step/totalSteps 而不是只看 percent。

Python 选择(优先 uv 托管 3.11,全程不翻墙)

上游 requires-python >=3.10,<3.14,官方参考环境是 3.11。依次:

  1. 显式 -Python <路径>
  2. `uv python find 3.11` → 没有就 `uv python install 3.11`(约 30–60 秒)。必须先设镜像,否则卡在 GitHub release:

``powershell $env:UV_PYTHON_INSTALL_MIRROR = "https://registry.npmmirror.com/-/binary/python-build-standalone" ``

  1. 本机 py -3.11 → -3.12 → -3.13 → -3.10(py -<ver> -c "import sys;print(sys.executable)" 取真实路径)
  2. PATH 里的 python(必须核对版本在 3.10–3.13)
  3. 都没有 → reason=python_not_found,指引:装 uv(pip install uv)或 python.org / Microsoft Store 装 3.11,或用 -Python 指路后重跑

命中后 venv 一律用它的 -m venv 创建(缺 pip 用 ensurepip 兜底,再退 uv venv --seed .venv)。

国内镜像(必须)与回退顺序

中国大陆网络下必须走镜像:HuggingFace 无法直连、download.pytorch.org 与 GitHub 极易超时。
内容顺序
pip清华 https://pypi.tuna.tsinghua.edu.cn/simple(带 --trusted-host pypi.tuna.tsinghua.edu.cn)→ 失败回退阿里云 https://mirrors.aliyun.com/pypi/simple/ → USTC https://mirrors.ustc.edu.cn/pypi/simple/ → 官方 https://pypi.org/simple(官方只做最后一级兜底)。用 `PIP_*` 环境变量覆盖本机全局配置(PIP_INDEX_URL / PIP_EXTRA_INDEX_URL / PIP_TRUSTED_HOST,外加 PIP_NO_CACHE_DIR=0 保留 torch 3.5GB 轮子缓存),别用 pip --isolated —— 实测 --isolated 只忽略用户级 config,机器上 C:\ProgramData\pip\pip.ini 被 NVIDIA PyIndex 塞的 extra-index-url = https://pypi.ngc.nvidia.com(国内 DNS 直接失败)照样生效,每个包白等 5 次重试;而且 --isolated 会连 PIP_* 环境变量一起忽略,反而把 ngc 放回来。绝不改用户机器上的 pip.ini / npmrc
torch / torchvision(不写进 `requirements.txt`)① SJTU https://mirror.sjtu.edu.cn/pytorch-wheels/<cuXXX>(--index-url,传递依赖走清华 extra)→ ② 阿里云 https://mirrors.aliyun.com/pytorch-wheels/<cuXXX>(平铺轮子,用 --find-links)→ ③ 官方 https://download.pytorch.org/whl/<cuXXX>;-TorchIndex 可整体覆盖、-TorchWheel 可完全离线
cu 档位驱动主版本 ≥570 → cu128;<570 → cu126。每档装完必须验证 torch.cuda.is_available() 为 True 且版本带 +cu
`sensenova_u1` 推理包(PyPI 上 404,不存在)GitHub tag 归档 tarball https://github.com/OpenSenseNova/SenseNova-U1/archive/refs/tags/<Ref>.tar.gz,直连失败逐个试国内代理:https://ghfast.top/… → https://gh-proxy.com/… → https://ghproxy.net/…;都失败 → 让用户手动下载后用 -SrcTarball <路径>
模型权重优先 ModelScope(魔搭):modelscope.snapshot_download("SenseNova/SenseNova-U1.5-8B-MoT", local_dir=…, ignore_patterns=["assets/*","docs/*","*.mp4","*.webm","*.gif"])(国内直连)→ 失败回退 HF_ENDPOINT=https://hf-mirror.com + HF_HUB_DISABLE_XET=1 + huggingface_hub.snapshot_download("sensenova/SenseNova-U1.5-8B-MoT")
uv 的 PythonUV_PYTHON_INSTALL_MIRROR → npmmirror(见上节)
  • 权重下载可续传:已存在且非空的分片自动跳过;中断就重跑脚本。
  • ModelScope 与 HF 的 id 大小写不同(SenseNova/… vs sensenova/…),结论文本里写清最终实际用到的源与 id。
  • Windows PowerShell 5.1 下载前必须开 TLS1.2:[Net.ServicePointManager]::SecurityProtocol = … -bor [Net.SecurityProtocolType]::Tls12,否则 pip 装得上、tarball 下不动。
  • 全程 UTF-8:PYTHONIOENCODING=utf-8 + install.ps1 / start_backend.cmd 里的 chcp 65001(GBK 控制台打进度会崩);脚本自身是纯 ASCII 英文,中文只来自 Python 后端与原生工具(见「脚本语言与编码」)。

脚本语言与编码(必须:零中文 + 钉死 UTF-8)

宿主用 powershell.exe(Windows PowerShell 5.1)跑 scripts\*.ps1。而 UTF-8 无 BOM 的 `.ps1` 在中文 Windows 上会被按 GBK(cp936) 解码 —— 中文变成乱码字节,还会吞掉紧跟的 } / ' / ",脚本直接语法崩(本轮改前实测:breeze 10 处、sensenova 113 处、yue 42 处、tts 15 处、llama 3 处、h3 download_models 6 处 + repair_torch_kitchen 1 处语法错),控制台同时一片乱码。
  • scripts\*.ps1 / scripts\*.cmd 与安装期辅助 *.py(如 download_weights.py / probe_attention.py)一律纯 ASCII 英文:注释、消息、异常文本全英文;不许有中文、全角标点、——、制表线 ─、emoji。
  • .ps1 开头(param 块之后)必须钉死编码三行,.cmd 在 setlocal 后加两行:

``powershell try { [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding($false) } catch { } $OutputEncoding = New-Object System.Text.UTF8Encoding($false) $env:PYTHONIOENCODING = 'utf-8' ``

``bat chcp 65001 >nul set "PYTHONIOENCODING=utf-8" ``

这样脚本自身与 pip / git / python 的输出都按 UTF-8 出去,宿主(用 UTF-8 解码 stdout,并按 [sensenova-install] progress: 抓进度)看到的就是正常文本。

  • 这条纪律已是硬守卫:AGENTS.md 的「协作约定」钉了它,test/smoke-install-scripts.js 会自动扫描全部 *-pack 的 .ps1 / .cmd / .bat、*-pack/scripts/**/*.py、共享真源 pack-steps/ 与 pack-python/、以及项目 scripts/ 下的 .ps1 / .cmd / .bat —— 任一字节 > 0x7F(中文、全角标点、emoji、→、制表线)或带 BOM 即硬失败。改脚本后必须跑 node test/smoke-install-scripts.js(同时还钉 GBK(cp936) 与 UTF-8 双解码解析零错、进度前缀与 reason= 等 ASCII 契约仍在);后端运行时 Python(*-pack/app/**、*-pack/shims/**)豁免,仍是中文。
  • Python 后端(app/*.py 的启动横幅与日志)本轮不做零中文,仍是中文,靠上面的 UTF-8 钉死正确显示。

安装步骤(按序;括号内是脚本打印的 progress: 值)

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
55
Repository forks
11
7-day trend score
5

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/shaomang/mtnode-aio/sensenova-local-install/badge)](https://verified-skill.com/skills/shaomang/mtnode-aio/sensenova-local-install)

Something wrong with this skill or its page? Tell us.