Spaces:
Paused
Paused
metadata
title: New NAI
emoji: 🧩
colorFrom: green
colorTo: gray
sdk: docker
sdk_version: 0.0.1
app_file: app.py
app_port: 7860
pinned: false
New NAI(本地与 Hugging Face Spaces 部署说明)
本仓库提供一个 FastAPI + 原生前端(HTML/CSS/JS)的 NovelAI 可视化界面,已完成:
- 手机端适配(参考 NovelAI 生成页交互:表单单列、底部固定操作按钮、顶部固定导航)
- 主题与背景方案(自动/竹子色/自定义,深色去蓝化为深灰系)
- 提示音(可开关,默认从 /ring/ring.mp3 读取)
- 输出目录可配置(本地可用,HF Spaces 上请手填路径)
- 支持 T2I / I2I / Inpaint 基本流程
Key(Token)不会保存在仓库中,用户在前端配置页手动填写并保存即可。
一、目录结构
New NAI/
app.py # HF Spaces 入口(uvicorn 启动 FastAPI)
backend/
app.py # FastAPI 应用(API、静态资源挂载)
config.py # 配置读写(包含 output_dir、color_scheme、sound_*)
models.py # Pydantic 请求/更新模型
services/novelai.py # 与 NovelAI 通信与结果保存
frontend/
index.html # 前端页面(移动端适配、表单、底部操作)
assets/
style.css # 样式(移动端、深色去蓝化、背景方案)
app.js # 交互逻辑(主题/背景/提示音/选择目录/生成等)
ring/ # 提示音目录(请放置 ring.mp3)
requirements.txt # Python 依赖
output/ # 默认输出根目录(t2i/i2i/inpaint)
提示音文件请放到:
ring/ring.mp3(你可以替换为自己的音频文件,并在前端配置中修改 sound_url)
二、本地运行(Windows/Mac/Linux)
- 安装依赖(建议使用 Python 3.10+):
pip install -r requirements.txt
- 运行服务(在 New NAI 目录下):
python app.py
默认监听 http://127.0.0.1:7860(或通过日志中的地址访问)。
- 打开页面后:
- 进入“配置”页,填入 NovelAI Key(Token)并保存。
- 可选择输出目录(Windows 本地可弹出选择器;无 GUI 环境请手填)。
- 其他默认参数可根据需要调整。
三、Hugging Face Spaces 部署(Python SDK)
- 新建 Space
- Space Type: 空白(Python)
- Hardware: CPU 即可
- SDK: Python
- 上传代码
- 将
New NAI目录内的全部文件上传为 Space 仓库的根目录(即仓库根下应直接有app.py、backend/、frontend/、requirements.txt等)。 - 如果你的目录层级不同,请确保入口文件
app.py位于仓库根目录。
- 自动安装与启动
- Spaces 会自动根据
requirements.txt安装依赖,并运行app.py:app.py内部使用uvicorn.run(..., host="0.0.0.0", port=$PORT),兼容 HF 动态端口。
- 使用说明(HF 环境差异)
- GUI 弹窗不可用:无法弹系统目录选择器;请在“保存目录”输入框中手动填写路径(或留空使用默认)。
- 打开目录功能(/api/open-dir)在 HF 不可用;不影响生成。
- Key(Token)依然在前端“配置”页自行填写并保存,后端不会记录仓库中的任何 Key。
- 提示音
- 将你的提示音文件命名为
ring.mp3放置到仓库根的ring/目录下(路径:/ring/ring.mp3)。 - 在页面顶部“提示音:开/关”可切换;也可在配置中自定义
sound_url(例如/ring/your.mp3)。
四、手机端适配要点
- 顶部导航固定:切换 Tab、加载配置不会出现上下位移。
- 表单单列:更大的触控区域(输入框、选择器、按钮),避免误触。
- 底部固定操作栏:当前 Tab 的“生成”按钮固定在底部(避免滚动到页面底部才能操作)。
- 背景方案:
- 自动:浅色=白、深色=深灰(不使用蓝色渐变)
- 竹子色:
#7ba23f - 自定义:任意颜色(立即预览应用)
- 提示固定:底部状态栏显示结果状态,不弹出/不自动消失;成功时可选播放提示音。
五、环境与依赖
- Python 3.10+
- 主要依赖:
- fastapi
- uvicorn
- httpx
- pydantic
- 详见
requirements.txt。
六、常见问题(FAQ)
- 生成失败(HF 环境)
- 请先确认前端“配置”页已正确填写并保存 Key(Token)。
- 部分时间段上游限流(429),已内置指数退避重试;仍失败时可稍后重试。
- 目录选择器不可用
- 仅本地桌面环境可弹出系统选择器;在 HF 或无 GUI 环境请在“保存目录”输入框手动填写。
- 提示音无法播放
- 浏览器可能限制自动播放,请先与页面交互后再播放。
- 确保
ring/ring.mp3文件已上传并可被/ring/ring.mp3访问;或在配置中设置为你的自定义路径。
七、开发说明
- 前端主要文件:
frontend/index.html:结构与控件frontend/assets/style.css:主题、移动端适配、底部操作栏frontend/assets/app.js:主题/背景/提示音/生成/配置保存等交互逻辑
- 后端:
backend/app.py:FastAPI 主程序、静态资源映射、API 路由backend/services/novelai.py:NovelAI 请求与结果保存backend/config.py、backend/models.py:配置模型与校验
欢迎根据你的实际需求继续精简或扩展 UI/交互。