Danbooru 简介
Danbooru 是一个以动漫、漫画、游戏等二次元内容为主的开源图片分享平台,最早于 2005 年由 rq 创建,随后在 2008 年由 Albert 重新启动并持续运营至今。它采用 Ruby on Rails 框架开发,配合 PostgreSQL、Elasticsearch、Redis、Nginx 等技术构建后端,支持 Docker、GitHub Codespaces 等快速部署方式。
1. 核心功能
| 功能 | 说明 |
|---|---|
| 标签系统 | 每张图片可被打上多个标签(角色、艺术家、属性、情节等),标签分层、颜色区分,支持排除(-)和通配符(*)等高级搜索语法 |
| 高级搜索 | 支持多标签组合、黑名单、评级过滤(安全、可疑、成人)等,普通账号最多两标签搜索,付费账号可使用更复杂的过滤规则 |
| 社区交互 | 用户可以上传图片、添加/编辑标签、发表评论、收藏、评分,还能创建“池”(标签组合)和维基页面进行内容组织 |
| API 与数据导出 | 提供完整的 RESTful API,方便开发者获取图片、标签、池等信息;大量数据被用于机器学习模型的训练(如 Stable Diffusion) |
| 审核机制 | 采用分级审核体系,对成人内容进行分级管理,确保不同用户能够根据需求选择合适的内容范围 |
2. 技术实现
- 后端框架:Ruby on Rails(从 Rails 5/6 逐步升级)
- 数据库:PostgreSQL(生产环境常用 9.4 及以上版本)
- 全文搜索:Elasticsearch 用于高效标签检索
- 缓存/队列:Redis、AWS SQS 等用于异步任务和缓存
- 存储:图片文件可托管在本地或 Amazon S3 等对象存储服务
- 部署:提供 Docker Compose、Dockerfile、GitHub Codespaces 等一键部署方案
3. 社区与生态
- 开源社区:GitHub 上拥有多个官方仓库(如
danbooru/danbooru、upload-to-danbooru、autotagger等),采用 BSD‑2‑Clause 许可证,接受外部贡献 - 衍生项目:基于 Danbooru 的标签体系衍生出 Gelbooru、Safebooru、Moebooru、Szurubooru 等多个同类站点,形成了“booru”族群的生态链
- AI 训练资源:由于标签丰富且结构化,Danbooru 成为许多图像生成模型(如 Stable Diffusion、DeepDanbooru)训练的公开数据来源
4. 使用场景
- 动漫爱好者:通过标签快速定位喜欢的角色、作品或艺术风格。
- 艺术家与创作者:上传作品、获取曝光、与社区互动。
- 研究与开发:利用公开 API 抓取标注数据,训练或评估计算机视觉模型。
- 教育与整理:通过池(Tag Sets)组织专题图片,便于教学或资料收集。
5. 发展历程概览
| 时间 | 里程碑 |
|---|---|
| 2005 | rq 创建最初的 Danbooru,提供基础的图片上传与标签功能。 |
| 2008 | Albert 接手并重启项目,引入更严格的审核与分级系统。 |
| 2010‑2015 | 逐步迁移至 Rails 5,完善 API 与社区功能。 |
| 2018‑2022 | 引入 Docker、Elasticsearch,提升部署与搜索性能。 |
| 2023‑至今 | 开源生态活跃,持续更新技术栈(Rails 6+、PostgreSQL 14+),并在 AI 训练领域获得广泛应用。 |
6. 小结
Danbooru 不仅是一个面向二次元爱好者的图片分享社区,更是一个技术成熟、标签体系完善、开放可扩展的 开源图像板。它的标签系统和 API 为内容检索、社区运营以及机器学习提供了强大的支撑,形成了一个兼具文化与技术价值的生态平台。
声明:文章均为AI生成,请谨慎辨别信息的真伪和可靠性!