--- title: New NAI (Node/Express) - HF Spaces emoji: 🧩 colorFrom: green colorTo: gray sdk: docker app_port: 7860 pinned: false --- New NAI(Node/Express 版本)— 适配 Hugging Face Spaces(Docker) 一、目录说明 - 服务入口: [server.js](server.js:1) - 前端页面: [frontend/index.html](frontend/index.html:1)(原生 HTML/CSS/JS) - 资源脚本: [frontend/assets/app.js](frontend/assets/app.js:1)、[frontend/assets/style.css](frontend/assets/style.css:1) - 上游代理: [novelai.js](novelai.js:1)(调用 NovelAI,解压 ZIP,返回 data URL) - 铃声资源: [ring/new-notification-3-398649.mp3](ring/new-notification-3-398649.mp3:1) - NPM 清单: [package.json](package.json:1) - Docker 配置: [Dockerfile](Dockerfile:1) 二、运行方式(在 Hugging Face Spaces 上) - Space 类型: Docker - 本仓库根目录包含 [Dockerfile](Dockerfile:1);Spaces 会读取环境变量 PORT,并在容器内以 0.0.0.0:$PORT 启动。 - Node 版本基于官方 node:20-bullseye-slim 镜像;入口命令为: - node [server.js](server.js:1) - 服务内已按优先级解析端口: 环境变量 PORT > 配置文件 > 默认 9180,且在 Dockerfile 中已设置 HOST=0.0.0.0 三、环境与配置 - Web 端访问地址由 Spaces 分配,容器内监听 $PORT/0.0.0.0。 - 前端“配置”页填写并保存 NovelAI Key(Token),后端通过 Authorization Bearer 与上游通信。 - 目录选择/打开文件夹等本地功能在 HF 环境将受限;不会影响生成流程。 四、接口(与本地一致) - 健康检查: GET /api/health - 配置: GET /api/config、PUT /api/config - 生成: - POST /api/generate/t2i - POST /api/generate/i2i - POST /api/generate/inpaint - 静态资源: - / → [frontend/index.html](frontend/index.html:1) - /ring → [ring/new-notification-3-398649.mp3](ring/new-notification-3-398649.mp3:1) 五、注意事项(HF 环境差异) - 不支持系统级文件夹选择/打开;如需输出路径请在配置中手填或使用默认。 - 首次请求可能遇到上游限流(429),已实现指数退避重试;可稍后再试。