从开源图床到AI壁纸整理系统:一次有点折腾但很值的改造
前言
二开PixelPunk项目,把收集的壁纸整理下并能够web访问
记录下壁纸入库整理流程。
演示站点:https://wallpaper.pkll.de/

入库流程
1 | 源图目录 |

扫描入库
扫描时会记录这些东西:
- 原图相对路径
- 文件名
- 文件大小
- 格式
- 宽高
- 横图、竖图、方图
- 适合电脑、手机还是平板
- checksum
- 创建和更新时间
生成预览图和缩略图
壁纸原图通常很大,几 MB、十几 MB 都很正常。如果前台列表直接加载原图,打开页面会很慢。
1 | 预览图:用于大图预览 |
默认生成 WebP。预览图限制最大宽度,缩略图限制宽高和质量。
图片元数据提取
- 生成展示标题。
- 生成描述。
- 生成标签。
- 判断一级分类和二级分类。
- 提取角色、作品、场景、风格。
- 判断主色调和色板。
- 给清晰度、审美、适合壁纸程度打分。
磁盘整理
AI 元数据里会返回一级分类和二级分类,比如:
1 | 一级分类:电脑壁纸 / 手机壁纸 / 平板壁纸 |
按生效的分类结果整理。优先级是:
1 | 管理员手动锁定分类 |
整理时会同时处理三类文件:
- 源图
- 预览图
- 缩略图
比如原来图片在临时入库目录里,AI 判断它是 手机壁纸 / 动漫二次元,系统就会把源图、预览图、缩略图一起移动到对应目录,并同步更新数据库里的相对路径。
生成向量数据
把壁纸的标题、描述、标签、分类、风格、场景等文本拼成一段语义文本,然后调用 Embedding 接口生成向量,写入 Qdrant。
之后相似壁纸就可以通过 Qdrant 查出来。
备份管理
后台增加了备份管理,主要备份系统恢复最关键的内容:
- PostgreSQL 数据库
- 系统配置文件
- Qdrant 向量数据

支持本地备份和 WebDAV 异地备份,可以手动执行,也可以设置每天定时执行,并配置保留份数。
需要注意的是,这里备份的是核心恢复数据,不包含壁纸源图、上传文件、头像等大文件。这类文件仍然建议单独做磁盘、NAS 或对象存储备份。
改进部分
- 首页、蜂巢、随机壁纸页统一按壁纸浏览场景优化,默认随机展示,并通过 seed 保证同一次访问内翻页和返回顺序稳定。
- 大图预览、键盘切换、换一张等操作统一接入随机逻辑,避免按钮看起来能用但实际不换图。
- 移动端重新整理导航、主题切换、设备切换和筛选弹窗,减少遮挡、误触和滚动卡顿。
- AI 配置支持模型获取,优先读取当前提供商,接口不支持时仍可手动填写。
- 向量配置支持模型获取,增加提供方配置
- NSFW 内容改为按权限访问,并在整理时归入对应设备分类下的 NSFW 分类。
- 后台隐藏旧图床链路页面,让管理入口更聚焦壁纸入库、AI 配置、网站装修、备份和系统设置。
整理效果
磁盘分类目录和web展示筛选分类完全同步

评论





