[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-xemle--home-gallery":3,"tool-xemle--home-gallery":64},[4,17,26,40,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,2,"2026-04-03T11:11:01",[13,14,15],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":23,"last_commit_at":32,"category_tags":33,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,34,35,36,15,37,38,13,39],"数据工具","视频","插件","其他","语言模型","音频",{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":10,"last_commit_at":46,"category_tags":47,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,38,37],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74939,"2026-04-05T23:16:38",[38,14,13,37],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":23,"last_commit_at":62,"category_tags":63,"status":16},2471,"tesseract","tesseract-ocr\u002Ftesseract","Tesseract 是一款历史悠久且备受推崇的开源光学字符识别（OCR）引擎，最初由惠普实验室开发，后由 Google 维护，目前由全球社区共同贡献。它的核心功能是将图片中的文字转化为可编辑、可搜索的文本数据，有效解决了从扫描件、照片或 PDF 文档中提取文字信息的难题，是数字化归档和信息自动化的重要基础工具。\n\n在技术层面，Tesseract 展现了强大的适应能力。从版本 4 开始，它引入了基于长短期记忆网络（LSTM）的神经网络 OCR 引擎，显著提升了行识别的准确率；同时，为了兼顾旧有需求，它依然支持传统的字符模式识别引擎。Tesseract 原生支持 UTF-8 编码，开箱即用即可识别超过 100 种语言，并兼容 PNG、JPEG、TIFF 等多种常见图像格式。输出方面，它灵活支持纯文本、hOCR、PDF、TSV 等多种格式，方便后续数据处理。\n\nTesseract 主要面向开发者、研究人员以及需要构建文档处理流程的企业用户。由于它本身是一个命令行工具和库（libtesseract），不包含图形用户界面（GUI），因此最适合具备一定编程能力的技术人员集成到自动化脚本或应用程序中",73286,"2026-04-03T01:56:45",[13,14],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":78,"owner_location":79,"owner_email":80,"owner_twitter":78,"owner_website":78,"owner_url":81,"languages":82,"stars":114,"forks":115,"last_commit_at":116,"license":117,"difficulty_score":23,"env_os":118,"env_gpu":119,"env_ram":120,"env_deps":121,"category_tags":128,"github_topics":129,"view_count":23,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":150,"updated_at":151,"faqs":152,"releases":186},3424,"xemle\u002Fhome-gallery","home-gallery","Self-hosted open-source web gallery to view your photos and videos featuring mobile-friendly, tagging and AI powered image discovery","HomeGallery 是一款专为个人用户设计的自托管开源网络相册，让你能在浏览器中轻松浏览和管理本地的照片与视频。它直接读取你存储在 NAS 或硬盘上的媒体文件，无需上传至云端，从而在享受便捷访问的同时，彻底解决了对隐私泄露的担忧。\n\n针对现有相册软件在移动端体验不佳、难以从海量存档中发掘旧时光的痛点，HomeGallery 提供了流畅的手机适配界面，并引入了强大的 AI 技术。它能自动进行图像内容识别和人脸发现，支持智能标签分类，帮助你快速检索并重温那些被遗忘的美好记忆。\n\n这款工具特别适合具有一定动手能力、注重数据主权且希望完全掌控个人媒体库的电脑爱好者。无论是想搭建家庭私有云相册，还是希望整合多个来源（如相机卡、手机备份）的图片资源，HomeGallery 都能通过简单的命令行或 Docker 部署快速启动。它不依赖商业云服务，以轻量级的方式为你构建一个安全、高效且充满智能惊喜的个人影像档案馆。","![HomeGallery hero image](https:\u002F\u002Fhome-gallery.org\u002Fhero.png \"self-hosted open-source web gallery\")\n\n# HomeGallery\n\n[![Join the chat at https:\u002F\u002Fgitter.im\u002Fhome-gallery\u002Fcommunity](https:\u002F\u002Fbadges.gitter.im\u002Fhome-gallery\u002Fcommunity.svg)](https:\u002F\u002Fgitter.im\u002Fhome-gallery\u002Fcommunity?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n[Home-Gallery.org](https:\u002F\u002Fhome-gallery.org) is a self-hosted open-source web gallery\nto browse personal photos and videos featuring tagging, mobile-friendly, and AI\npowered image and face discovery. Try the [demo gallery](https:\u002F\u002Fdemo.home-gallery.org)\nor enjoy the [food images](https:\u002F\u002Fdemo.home-gallery.org\u002Fsimilar\u002Fc7f8a3bf0142fc9694f517c23e42d988c97233c3)!\n\n**Note:** This software is a private pet\u002Fspare time project without any warranty.\nAsk questions on [gitter.im](https:\u002F\u002Fgitter.im\u002Fhome-gallery\u002Fcommunity) or [Discord](https:\u002F\u002Fdiscord.gg\u002FkbvmvadCwe).\n\nDo you like HomeGallery? Does it solve your media problem?\nWould you like to help? Please read the [CONTRIBUTING](CONTRIBUTING.md) guidelines and\nsupport this project through any recurring financial support to my\n[patreon.com\u002Fxemle](https:\u002F\u002Fwww.patreon.com\u002Fxemle) or one time support to my\n[paypal.me\u002Fxemle](https:\u002F\u002Fpaypal.me\u002Fxemle) account. Thank you in advance.\n\n[MIT License](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMIT_License)\n\n## Links\n\n* [Homepage](https:\u002F\u002Fhome-gallery.org)\n* [Demo gallery](https:\u002F\u002Fdemo.home-gallery.org)\n* Latest binaries for [Linux](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-linux-x64),\n[Mac](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-darwin-x64),\n[Windows](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-win-x64.exe)\n[Docker image](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fxemle\u002Fhome-gallery)\n* [Documentation](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Findex.html)\n* [Changelog](CHANGELOG.md)\n\n## Motivation\n\n* The source of all my private images and videos are stored local on my NAS at home. The gallery should be on top\u002Fclose of the source.\n* Cloud service do not cover my privacy concerns\n* All gallery software are lacking to have a fast user experience on mobile phones\n* The gallery software should help to browse and discover forgotten memories from the complete media archive\n\n## Target Users\n\n* Computer affine users who solve their own problems and go the extra mile\n* Serve your local data without usage of cloud services\n* One user only - all files are served\n* View your own photos and videos from mobile phones\n* Serve all your images from multiple media source directories (hard drive, camera files, mobile phone files, etc)\n\n## Quickstart\n\nFollowing steps need to be performed to use HomeGallery\n\n* **Download** the gallery software as prebuilt binary or docker image\n* **Init the configuration** with media sources like `~\u002FPictures`\n* **Start the server** on [localhost:3000](http:\u002F\u002Flocalhost:3000)\n\n```\ncurl -sL https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-linux-x64 -o gallery\nchmod 755 gallery\n.\u002Fgallery init --source ~\u002FPictures\n.\u002Fgallery run server\n```\n\nand open [localhost:3000](http:\u002F\u002Flocalhost:3000) in your browser. Run `.\u002Fgallery -h` for\nfurther help of the CLI.\n\nSee [dl.home-gallery.org\u002Fdist](https:\u002F\u002Fdl.home-gallery.org\u002Fdist) for further binaries.\nEg. latest binaries for [Linux](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-linux-x64),\n[Mac](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-darwin-x64)\nor [Windows](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-win-x64).\n\nThe configuration `gallery.config.yml` can be found in the current directory for\nfine tuning.\nSee [install section](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Finstall\u002Findex.html) in the documentation\nfor further information.\n\n### Quickstart using Docker\n\n```\nmkdir -p data\nalias gallery=\"docker run -ti --rm \\\n  -v $(pwd)\u002Fdata:\u002Fdata \\\n  -v $HOME\u002FPictures:\u002Fdata\u002FPictures \\\n  -u $(id -u):$(id -g) \\\n  -p 3000:3000 xemle\u002Fhome-gallery\"\ngallery init --source \u002Fdata\u002FPictures\ngallery run server\n```\n\nand open [localhost:3000](http:\u002F\u002Flocalhost:3000) in your browser. Run `gallery -h` for\nfurther help of the CLI.\n\nThe gallery configuration can be found in `.\u002Fdata\u002Fconfig\u002Fgallery.config.yml` for fine tuning.\n\nWant to use docker compose? See [install](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Finstall\u002Findex.html)\nsection in the documentation for further information.\n\n## Documentation\n\nSee [home-gallery.org\u002Fdocs](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Findex.html) for general documentation.\n\n* [Installation](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Finstall\u002Findex.html)\n* [CLI help](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Fcli\u002Findex.html)\n* [Configuration](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Fconfiguration\u002Findex.html)\n* [FAQ](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Ffaq\u002Findex.html)\n* [Architecture](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Finternals\u002Fworkflow.html)\n\n## Features\n\n- Endless photo stream via virtual scrolling\n- Video transcoding\n- Reverse image lookup (similar image search). If you have one sunset image, you can easily find other sunset photos in your archive without manual tagging\n- Face detection and search by similar faces\n- Expressive query language with and, or, not operands\n- GEO location reverse lookups\n- Simple mobile app through [PWA](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FProgressive_web_apps) support\n- Tagging, single and multi selection\n- Support of read only and offline media sources. Once the preview files are generated and their meta data are extracted, the original sources are not touched and required any more. So media from offline disk need to be extracted only once and the disk can stay offline on next runs\n- Media are identified by their content. Duplicated media (identical files byte-by-byte) are only processed once. Renaming is supported without recalculating previews etc.\n- Fast file changes detection such as add, removes, renames or moves\n- Static web gallery site export such as the [demo gallery](https:\u002F\u002Fdemo.home-gallery.org)\n- Meta data export to XMP sidecar files\n- Stream photos and videos to Chromcast enabled TV devices\n- Runs on SoC such Raspberry PI\n\n## Limits\n\nThe complete \"database\" is loaded into the browser. My 100.000 media are about\n100 MB plain JSON and 12 MB compressed JSON. The performance is quite good on\ncurrent mobile device. A user reported a successful setup with over 400.000\nmedia files. Further feedback is welcome.\n\n## Binary Downloads\n\nHomeGallery has prebuilt binaries for\n[Linux](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-linux-x64),\n[MacOS](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-darwin-x64) and\n[Windows](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-win-x64.exe).\nFurther download options can be found [here](https:\u002F\u002Fdl.home-gallery.org\u002Fdist).\n\nSee [installation](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Finstall\u002Findex.html) section for usage.\n\n# External Services and Privacy\n\nThe goal of HomeGallery is to use as less public services as possible\ndue sensitive private image data. It tries to use service which can\nbe deployed local. However the setup requires technical knowledge and\ntechnical maintenance. Following services are called:\n\nFor geo reverse lookups (geo coordinates to address), HomeGallery\nqueries the [Nominatim Service](https:\u002F\u002Fnominatim.openstreetmap.org\u002Freverse)\nfrom [OpenStreetMap](https:\u002F\u002Fopenstreetmap.org). Only geo coordinates\nare transmitted.\n\nFor reverse image lookups (similar image search), object detection and face\nrecognition, HomeGallery uses the\nits own public API at `api.home-gallery.org`. This public API supports\nlow powered devices such as the SoC Raspberry PI and all preview images are\nsend to this public API by default. No images or privacy data are kept.\n\nThe API can be configured and ran also locally or as Docker container.\nSee [installation](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Fapi-server\u002Findex.html) section for usage.\n\n## Customized Environments\n\nHomeGallery runs on the JavaScript runtime [NodeJS](https:\u002F\u002Fnodejs.org) which\nis supported by various platforms such as Linux (also Raspberry PIs), Mac and Windows.\n\nFor most cases a customized environment should be sufficient with\n\n* [node](https:\u002F\u002Fnodejs.org) version 20 LTS (or 18 old LTS)\n* perl (Linux)\n\n### Setup\n\n```\n# Clone or download the repo from GitHub\ngit clone https:\u002F\u002Fgithub.com\u002Fxemle\u002Fhome-gallery.git\ncd home-gallery\n# Install required packages\nnpm install\n# Build required modules\nnpm run build\n```\n\nIn some corner cases you might also need essential build tools to compile library\nbindings.\n\n* make\n* g++\n* python\n\n## Development recipes\n\n### Build\n\nHomeGallery uses npm workspaces with multi\npackages. Common npm scripts are `clean`, `build`, `test`.\n\nTo run only a subset of packages you can use pnpm's\nfilter feature, e.g build only module `export-static` and `database`:\n\n```\nnpx pnpm -r --filter '.\u002F*\u002F{export-static,database}' build\n```\n\n### Unit Test\n\nRun unit tests from specific packages (via pnpm)\n\n```\nnpx pnpm -r --filter '.\u002F*\u002F{query,events}' test\n```\n\n### End-To-End Test\n\nRun specific e2e tests (via [Gauge](https:\u002F\u002Fgauge.org))\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fxemle\u002Fhome-gallery-e2e-data.git data\nnpm run test:e2e -- --tags dev\n```\n\n`home-gallery-e2e-data` contains test files using [Git LFS](https:\u002F\u002Fgit-lfs.github.com).\n\nThe e2e test output data are stored in `\u002Ftmp\u002Fgallery-e2e` directory. The latest test run is symlinked into the directory `latest-e2e-test` within the HomeGallery working directory. Check the `cli.log` and `e2e.log` ([ndjson](http:\u002F\u002Fndjson.org) format) in each test directory.\n\n### Bundle\n\nCreate local binary bundle from a feature branch\n\n```\nnode scripts\u002Fbundle.js --version=1.3 --snapshot=-feature-test --filter=linux-x64 --no-before --no-run\n```\n\nCreate local native bundle which excludes binaries via npm like sharp, ffmpeg and ffprobe. It should contain only js code which should run everywhere. It requires external binaries vipsthumbnail, ffmpeg and ffprobe in the `PATH` environment to work properly.\n\n```\nnode scripts\u002Fbundle.js --version=1.3 --snapshot=-feature-test --filter=linux-native --no-before --no-run\n```\n\n### Development Reset\n\nTo reset the current development state and start fresh on any very strange error behavior, you might run:\n\n```\nrm -rf package-lock.json node_modules e2e\u002Fnode_modules packages\u002F*\u002Fnode_modules\nnpm install && npm run clean && npm run build\n```","![HomeGallery 主图](https:\u002F\u002Fhome-gallery.org\u002Fhero.png \"自托管开源网页相册\")\n\n# HomeGallery\n\n[![加入聊天 https:\u002F\u002Fgitter.im\u002Fhome-gallery\u002Fcommunity](https:\u002F\u002Fbadges.gitter.im\u002Fhome-gallery\u002Fcommunity.svg)](https:\u002F\u002Fgitter.im\u002Fhome-gallery\u002Fcommunity?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n[Home-Gallery.org](https:\u002F\u002Fhome-gallery.org) 是一款自托管的开源网页相册，用于浏览个人照片和视频，支持标签功能、移动设备友好以及基于 AI 的图片和人脸识别。您可以试用 [演示相册](https:\u002F\u002Fdemo.home-gallery.org)，或者欣赏一下 [美食图片](https:\u002F\u002Fdemo.home-gallery.org\u002Fsimilar\u002Fc7f8a3bf0142fc9694f517c23e42d988c97233c3)！\n\n**注意：** 本软件为个人业余项目，不提供任何担保。如有疑问，请前往 [gitter.im](https:\u002F\u002Fgitter.im\u002Fhome-gallery\u002Fcommunity) 或 [Discord](https:\u002F\u002Fdiscord.gg\u002FkbvmvadCwe) 咨询。\n\n您喜欢 HomeGallery 吗？它是否解决了您的媒体管理问题？如果您愿意帮忙，请阅读 [CONTRIBUTING](CONTRIBUTING.md) 指南，并通过定期资助我的 [patreon.com\u002Fxemle](https:\u002F\u002Fwww.patreon.com\u002Fxemle) 或一次性捐赠至我的 [paypal.me\u002Fxemle](https:\u002F\u002Fpaypal.me\u002Fxemle) 账户来支持该项目。提前感谢您的支持。\n\n[MIT 许可证](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMIT_License)\n\n## 链接\n\n* [首页](https:\u002F\u002Fhome-gallery.org)\n* [演示相册](https:\u002F\u002Fdemo.home-gallery.org)\n* 最新二进制文件适用于 [Linux](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-linux-x64)、[Mac](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-darwin-x64) 和 [Windows](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-win-x64.exe)，以及 [Docker 镜像](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fxemle\u002Fhome-gallery)\n* [文档](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Findex.html)\n* [更新日志](CHANGELOG.md)\n\n## 动机\n\n* 我所有的私人图片和视频都存储在家中的 NAS 设备上，相册应该尽可能靠近数据源。\n* 云服务无法满足我对隐私的需求。\n* 现有的相册软件在移动设备上的用户体验普遍较差。\n* 相册应帮助用户从庞大的媒体库中浏览并发现那些被遗忘的记忆。\n\n## 目标用户\n\n* 熟悉计算机操作、能够独立解决问题并愿意付出额外努力的用户。\n* 在不使用云服务的情况下，直接服务于本地数据。\n* 仅限单个用户使用，所有文件均在此环境中提供。\n* 可以通过手机查看自己的照片和视频。\n* 支持从多个媒体源目录（如硬盘、相机文件、手机文件等）提供图片。\n\n## 快速入门\n\n要使用 HomeGallery，您需要执行以下步骤：\n\n* **下载** 相册软件的预编译二进制文件或 Docker 镜像。\n* 使用 `~\u002FPictures` 等媒体源初始化配置。\n* 在 [localhost:3000](http:\u002F\u002Flocalhost:3000) 上启动服务器。\n\n```\ncurl -sL https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-linux-x64 -o gallery\nchmod 755 gallery\n.\u002Fgallery init --source ~\u002FPictures\n.\u002Fgallery run server\n```\n\n然后在浏览器中打开 [localhost:3000](http:\u002F\u002Flocalhost:3000)。运行 `.\u002Fgallery -h` 可获取更多 CLI 帮助信息。\n\n更多二进制文件请访问 [dl.home-gallery.org\u002Fdist](https:\u002F\u002Fdl.home-gallery.org\u002Fdist)。例如，最新版本的 [Linux](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-linux-x64)、[Mac](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-darwin-x64) 和 [Windows](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-win-x64) 版本。\n\n配置文件 `gallery.config.yml` 可在当前目录下找到，以便进行精细调整。更多信息请参阅文档中的 [安装部分](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Finstall\u002Findex.html)。\n\n### 使用 Docker 的快速入门\n\n```\nmkdir -p data\nalias gallery=\"docker run -ti --rm \\\n  -v $(pwd)\u002Fdata:\u002Fdata \\\n  -v $HOME\u002FPictures:\u002Fdata\u002FPictures \\\n  -u $(id -u):$(id -g) \\\n  -p 3000:3000 xemle\u002Fhome-gallery\"\ngallery init --source \u002Fdata\u002FPictures\ngallery run server\n```\n\n然后在浏览器中打开 [localhost:3000](http:\u002F\u002Flocalhost:3000)。运行 `gallery -h` 可获取更多 CLI 帮助信息。\n\n相册配置文件位于 `.\u002Fdata\u002Fconfig\u002Fgallery.config.yml` 中，可供进一步调整。\n\n想使用 Docker Compose 吗？请参阅文档中的 [安装部分](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Finstall\u002Findex.html) 获取更多信息。\n\n## 文档\n\n有关通用文档，请访问 [home-gallery.org\u002Fdocs](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Findex.html)。\n\n* [安装指南](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Finstall\u002Findex.html)\n* [CLI 帮助](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Fcli\u002Findex.html)\n* [配置说明](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Fconfiguration\u002Findex.html)\n* [常见问题解答](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Ffaq\u002Findex.html)\n* [架构说明](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Finternals\u002Fworkflow.html)\n\n## 特性\n\n- 通过虚拟滚动实现无限照片流。\n- 视频转码功能。\n- 图片反向搜索（相似图片搜索）。如果您有一张日落照片，可以轻松在您的档案中找到其他日落照片，而无需手动打标签。\n- 人脸识别与相似人脸搜索。\n- 强大的查询语言，支持“与”、“或”、“非”等逻辑运算符。\n- 地理位置反向查询。\n- 通过 [PWA](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FProgressive_web_apps) 支持简单的移动应用体验。\n- 标签功能，支持单选和多选。\n- 支持只读和离线媒体源。一旦生成了预览文件并提取了元数据，原始数据源便不再被触碰，因此离线磁盘只需提取一次，后续运行时仍可保持离线状态。\n- 媒体内容识别功能。完全相同的文件（字节级一致）只会被处理一次。文件重命名后无需重新计算预览等信息。\n- 快速检测文件变化，包括新增、删除、重命名或移动。\n- 可导出静态网页相册，例如 [演示相册](https:\u002F\u002Fdemo.home-gallery.org)。\n- 元数据可导出为 XMP 辅助文件。\n- 可将照片和视频流式传输到支持 Chromecast 的电视设备。\n- 支持在树莓派等 SoC 设备上运行。\n\n## 限制\n\n整个“数据库”会加载到浏览器中。我目前有 10 万条媒体记录，未压缩的 JSON 文件约为 100 MB，压缩后约为 12 MB。在现代移动设备上性能表现良好。有用户反馈称成功部署了超过 40 万条媒体记录的数据集。欢迎提供更多反馈。\n\n## 二进制下载\n\nHomeGallery 提供适用于 [Linux](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-linux-x64)、[MacOS](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-darwin-x64) 和 [Windows](https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-win-x64.exe) 的预编译二进制文件。更多下载选项请访问 [这里](https:\u002F\u002Fdl.home-gallery.org\u002Fdist)。\n\n使用方法请参阅 [安装部分](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Finstall\u002Findex.html)。\n\n# 外部服务与隐私\n\nHomeGallery 的目标是尽可能减少对外部公共服务的依赖，以保护敏感的私人图像数据。它尽量使用可以在本地部署的服务。然而，这种设置需要一定的技术知识和维护能力。以下是所调用的服务：\n\n对于地理反向查询（将地理坐标转换为地址），HomeGallery 会向 [OpenStreetMap](https:\u002F\u002Fopenstreetmap.org) 提供的 [Nominatim 服务](https:\u002F\u002Fnominatim.openstreetmap.org\u002Freverse) 发送请求。仅传输地理坐标信息。\n\n对于反向图像搜索、物体检测和人脸识别，HomeGallery 使用其在 `api.home-gallery.org` 上的公共 API。该公共 API 支持低功耗设备，例如 Raspberry Pi 等单板计算机，并且默认会将所有预览图像发送到此公共 API。系统不会保存任何图像或隐私数据。\n\n该 API 也可以配置并在本地运行，或者作为 Docker 容器部署。有关使用方法，请参阅[安装](https:\u002F\u002Fhome-gallery.org\u002Fdocs\u002Fapi-server\u002Findex.html)部分。\n\n## 自定义环境\n\nHomeGallery 运行在 JavaScript 运行时 [Node.js](https:\u002F\u002Fnodejs.org) 上，该运行时支持多种平台，包括 Linux（也适用于 Raspberry Pi）、Mac 和 Windows。\n\n在大多数情况下，以下自定义环境即可满足需求：\n\n* Node.js 版本 20 LTS（或 18 LTS）\n* Perl（Linux）\n\n### 设置步骤\n\n```\n# 克隆或从 GitHub 下载仓库\ngit clone https:\u002F\u002Fgithub.com\u002Fxemle\u002Fhome-gallery.git\ncd home-gallery\n# 安装所需依赖包\nnpm install\n# 构建所需模块\nnpm run build\n```\n\n在某些特殊情况下，您可能还需要一些必要的构建工具来编译库绑定。\n\n* make\n* g++\n* python\n\n## 开发指南\n\n### 构建\n\nHomeGallery 使用 npm 工作区管理多个包。常用的 npm 脚本包括 `clean`、`build` 和 `test`。\n\n如果只想运行部分包，可以使用 pnpm 的过滤功能，例如仅构建 `export-static` 和 `database` 模块：\n\n```\nnpx pnpm -r --filter '.\u002F*\u002F{export-static,database}' build\n```\n\n### 单元测试\n\n通过 pnpm 运行特定包的单元测试：\n\n```\nnpx pnpm -r --filter '.\u002F*\u002F{query,events}' test\n```\n\n### 端到端测试\n\n运行特定的端到端测试（使用 [Gauge](https:\u002F\u002Fgauge.org)）：\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fxemle\u002Fhome-gallery-e2e-data.git data\nnpm run test:e2e -- --tags dev\n```\n\n`home-gallery-e2e-data` 包含使用 [Git LFS](https:\u002F\u002Fgit-lfs.github.com) 的测试文件。\n\n端到端测试的输出数据存储在 `\u002Ftmp\u002Fgallery-e2e` 目录中。最近一次测试会被创建为符号链接，指向 HomeGallery 工作目录下的 `latest-e2e-test` 目录。请检查每个测试目录中的 `cli.log` 和 `e2e.log` 文件（采用 ndjson 格式）。\n\n### 打包\n\n从某个特性分支创建本地二进制包：\n\n```\nnode scripts\u002Fbundle.js --version=1.3 --snapshot=-feature-test --filter=linux-x64 --no-before --no-run\n```\n\n创建本地原生包，排除 sharp、ffmpeg 和 ffprobe 等 npm 包中的二进制文件。该包仅包含可在任何地方运行的 JavaScript 代码。不过，为了正常工作，仍需确保 `PATH` 环境变量中包含 vipsthumbnail、ffmpeg 和 ffprobe 等外部二进制文件。\n\n```\nnode scripts\u002Fbundle.js --version=1.3 --snapshot=-feature-test --filter=linux-native --no-before --no-run\n```\n\n### 开发环境重置\n\n若遇到非常奇怪的错误行为，可尝试重置当前开发状态并重新开始：\n\n```\nrm -rf package-lock.json node_modules e2e\u002Fnode_modules packages\u002F*\u002Fnode_modules\nnpm install && npm run clean && npm run build\n```","# HomeGallery 快速上手指南\n\nHomeGallery 是一款自托管的开源网络相册，支持标签管理、移动端适配以及 AI 驱动的图像和人脸发现功能。它专为隐私敏感用户设计，可直接浏览本地 NAS 或硬盘中的照片和视频。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**：Linux (含 Raspberry Pi)、macOS 或 Windows\n- **硬件建议**：适用于低功耗设备（如树莓派），也可运行在普通服务器上\n- **存储**：需预留空间存放生成的预览图和元数据数据库\n\n### 前置依赖\n若选择源码编译或自定义环境，需安装以下依赖：\n- **Node.js**: 版本 20 LTS (或 18 LTS)\n- **Perl**: Linux 系统通常需要\n- **构建工具** (仅源码编译需要): `make`, `g++`, `python`\n\n> **提示**：大多数用户推荐直接使用预编译二进制文件或 Docker 镜像，无需手动配置 Node.js 环境。\n\n## 安装步骤\n\n您可以选择以下两种方式之一进行安装：\n\n### 方式一：使用预编译二进制文件 (推荐 Linux\u002FMac\u002FWindows)\n\n1. **下载程序**\n   ```bash\n   curl -sL https:\u002F\u002Fdl.home-gallery.org\u002Fdist\u002Flatest\u002Fhome-gallery-latest-linux-x64 -o gallery\n   ```\n   *(注：Mac 用户请将链接后缀改为 `darwin-x64`，Windows 用户下载 `.exe` 文件)*\n\n2. **赋予执行权限**\n   ```bash\n   chmod 755 gallery\n   ```\n\n3. **初始化配置**\n   指定您的图片源目录（例如 `~\u002FPictures`）：\n   ```bash\n   .\u002Fgallery init --source ~\u002FPictures\n   ```\n\n4. **启动服务**\n   ```bash\n   .\u002Fgallery run server\n   ```\n\n### 方式二：使用 Docker (推荐容器化部署)\n\n1. **创建数据目录并设置别名**\n   ```bash\n   mkdir -p data\n   alias gallery=\"docker run -ti --rm \\\n     -v $(pwd)\u002Fdata:\u002Fdata \\\n     -v $HOME\u002FPictures:\u002Fdata\u002FPictures \\\n     -u $(id -u):$(id -g) \\\n     -p 3000:3000 xemle\u002Fhome-gallery\"\n   ```\n   *请确保 `$HOME\u002FPictures` 替换为您实际的媒体文件路径。*\n\n2. **初始化配置**\n   ```bash\n   gallery init --source \u002Fdata\u002FPictures\n   ```\n\n3. **启动服务**\n   ```bash\n   gallery run server\n   ```\n\n## 基本使用\n\n1. **访问相册**\n   启动成功后，在浏览器中打开：\n   [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000)\n\n2. **核心功能体验**\n   - **浏览**：支持无限滚动加载照片流。\n   - **搜索**：在搜索框输入自然语言查询（支持 `and`, `or`, `not`），例如 `sunset and beach`。\n   - **以图搜图**：点击任意图片，可查看相似图片（基于 AI 内容识别）。\n   - **人脸发现**：自动检测人脸并支持按人脸聚类搜索。\n   - **移动端**：在手机浏览器访问同一地址，即可获得类似原生 App 的体验 (PWA)。\n\n3. **高级配置**\n   如需调整端口、添加多个媒体源或配置 AI 服务，可编辑当前目录下的配置文件：\n   - 二进制安装：`gallery.config.yml`\n   - Docker 安装：`.\u002Fdata\u002Fconfig\u002Fgallery.config.yml`\n\n   查看命令行帮助：\n   ```bash\n   .\u002Fgallery -h\n   # 或 Docker 模式下\n   gallery -h\n   ```","摄影师李明将多年积累的数万张 RAW 格式照片和旅行视频存储在家庭 NAS 上，希望在不依赖公有云的前提下，能随时通过手机向客户展示作品或快速回顾过往素材。\n\n### 没有 home-gallery 时\n- **检索效率极低**：面对海量文件，只能依靠文件夹层级手动翻找，想找出“三年前在冰岛拍的极光”如同大海捞针。\n- **移动端体验糟糕**：原生文件管理器在手机端加载大图缓慢，且不支持流畅的手势缩放与幻灯片播放，无法用于现场演示。\n- **隐私与安全顾虑**：为了获得更好的浏览体验而使用商业网盘，却担心未发布的原创摄影作品泄露或被算法扫描训练。\n- **内容发现困难**：大量珍贵记忆因缺乏整理被遗忘在深层目录中，无法通过人物面部或相似画面自动关联发现。\n\n### 使用 home-gallery 后\n- **AI 智能发现**：home-gallery 内置的 AI 引擎自动完成人脸识别和图像标签化，搜索“极光”或特定人物即可秒级定位所有相关媒体。\n- **极致移动体验**：提供专为移动端优化的 Web 界面，支持手势操作和自适应流媒体加载，李明可随时随地流畅地向客户展示高清作品集。\n- **数据完全私有**：所有服务部署在本地 NAS，无需上传任何原图至公有云，彻底消除了隐私泄露风险，确保作品版权安全。\n- **唤醒沉睡记忆**：通过“相似图片推荐”功能，系统自动将不同时间拍摄的同类场景（如美食、风景）聚合，帮助创作者重新发现灵感。\n\nhome-gallery 让私有媒体库拥有了媲美商业云盘的智能浏览体验，同时牢牢守住了数据隐私的底线。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxemle_home-gallery_00bc8ab6.png","xemle","Sebastian","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fxemle_76cd5226.png",null,"Germany","sebastian@silef.de","https:\u002F\u002Fgithub.com\u002Fxemle",[83,87,91,95,99,103,107,110],{"name":84,"color":85,"percentage":86},"JavaScript","#f1e05a",51.3,{"name":88,"color":89,"percentage":90},"TypeScript","#3178c6",45.9,{"name":92,"color":93,"percentage":94},"Mustache","#724b3b",1.5,{"name":96,"color":97,"percentage":98},"Nearley","#990000",0.5,{"name":100,"color":101,"percentage":102},"HTML","#e34c26",0.3,{"name":104,"color":105,"percentage":106},"CSS","#663399",0.2,{"name":108,"color":109,"percentage":106},"Dockerfile","#384d54",{"name":111,"color":112,"percentage":113},"Shell","#89e051",0.1,1105,95,"2026-04-03T00:14:54","MIT","Linux, macOS, Windows","未说明 (默认使用公共 API 或本地 CPU 处理 AI 任务，支持在 Raspberry Pi 等低功耗设备上运行)","未说明 (浏览器端需加载完整数据库索引，10 万媒体文件约占用 100MB 内存)",{"notes":122,"python":123,"dependencies":124},"该工具主要基于 Node.js 运行。AI 功能（人脸检测、物体识别）默认调用公共 API，适合低配设备；也可部署本地 API 服务。支持 Docker 容器化部署。媒体文件通过内容哈希去重，支持离线源。","未说明 (可选依赖，仅在需要编译原生库绑定时的构建环境中需要)",[125,126,127],"Node.js 20 LTS (或 18 LTS)","Perl (Linux)","Make, g++, python (仅用于编译原生库绑定的构建环境)",[14,35],[130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149],"gallery","videos","open-source","web-gallery","mobile","geo-reverse-lookups","photo-gallery","reverse-image-search","tagging","photos","calculate-previews","mobile-phones","exif","face-detection","face-recognition","linux","macos","photography","self-hosted","windows","2026-03-27T02:49:30.150509","2026-04-06T08:52:26.093482",[153,158,163,167,172,176,181],{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},15999,"是否有官方提供的 Docker 镜像和 docker-compose 配置文件？","是的，从版本 1.1.0 开始，项目已提供详细的 Docker 和 docker-compose 安装说明。您可以访问官方文档获取最新的配置指南：https:\u002F\u002Fdocs.home-gallery.org\u002Finstall\u002F","https:\u002F\u002Fgithub.com\u002Fxemle\u002Fhome-gallery\u002Fissues\u002F3",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},16000,"添加新图片后，如何自动刷新数据库而无需手动执行命令？","目前推荐的工作流是通过命令行手动触发更新。您可以在容器控制台执行 `\u002Fapp\u002Fgallery.js run import --update` 来刷新数据库。虽然用户建议在 GUI 中添加刷新按钮或通过 docker-compose 启动命令自动执行，但截至当前版本，最稳定的方法仍是手动运行导入命令。维护者正在持续优化文档和插件支持。","https:\u002F\u002Fgithub.com\u002Fxemle\u002Fhome-gallery\u002Fissues\u002F35",{"id":164,"question_zh":165,"answer_zh":166,"source_url":162},16001,"应该使用 `docker-compose` 还是 `docker compose` 命令？","旧的 `docker-compose` (带连字符) 命令已被弃用。请改用新的 Docker CLI 插件语法 `docker compose` (空格分隔)。如果您在文档或脚本中看到旧写法，建议更新为新格式以确保兼容性。更多信息请参考官方文档：https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002F",{"id":168,"question_zh":169,"answer_zh":170,"source_url":171},16002,"在 ARMv7 架构（如 WD NAS）上运行时，为什么提取器无法生成预览图且报错 `Intl is not defined`？","这是因为 Entware 包管理器提供的 Node.js 版本构建时未包含国际化（Internationalization）支持。解决方法是手动下载并安装完整的 Node.js 版本（例如 Node.js v20），替换系统自带的精简版。安装完成后，预览生成和 `Intl` 相关错误即可解决。","https:\u002F\u002Fgithub.com\u002Fxemle\u002Fhome-gallery\u002Fissues\u002F104",{"id":173,"question_zh":174,"answer_zh":175,"source_url":171},16003,"日志中出现大量 `favicon.ico` 请求是否正常？","这是正常行为。浏览器在加载页面或图片时通常会尝试请求网站图标（favicon）。日志中显示的 `304` 状态码表示浏览器缓存命中，服务器仅确认文件未修改，不会产生大量数据传输，因此无需担心性能问题。",{"id":177,"question_zh":178,"answer_zh":179,"source_url":180},16004,"遇到 `ERR_HTTP_HEADERS_SENT` 错误导致服务崩溃怎么办？","该错误通常发生在服务器试图在响应头已经发送给客户端后再次设置头部信息。这往往是由于代码逻辑缺陷或特定请求处理异常引起的。建议检查是否使用了最新版本的 Home Gallery，因为此类问题通常在后续版本中会被修复。如果问题持续，请查看完整的堆栈跟踪日志，确认是否在 `events` 接口调用时发生，并考虑重启服务或清除可能损坏的事件数据库文件（events.db）以重新初始化。","https:\u002F\u002Fgithub.com\u002Fxemle\u002Fhome-gallery\u002Fissues\u002F14",{"id":182,"question_zh":183,"answer_zh":184,"source_url":185},16005,"如何在 iOS Safari 浏览器上解决页面闪烁或显示异常的问题？","如果在 iOS Safari 上遇到显示问题（如闪烁），首先尝试清除浏览器缓存。维护者测试表明在清除缓存后，最新版应用在 iPhone 和 Safari 上通常能正常工作。如果问题依旧，请确保您访问的是最新部署的演示页面或本地服务，因为旧版本的缓存可能导致渲染错误。","https:\u002F\u002Fgithub.com\u002Fxemle\u002Fhome-gallery\u002Fissues\u002F43",[]]