[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-idealo--imagededup":3,"tool-idealo--imagededup":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},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,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",153609,2,"2026-04-13T11:34:59",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":76,"owner_twitter":75,"owner_website":77,"owner_url":78,"languages":79,"stars":95,"forks":96,"last_commit_at":97,"license":98,"difficulty_score":99,"env_os":100,"env_gpu":101,"env_ram":102,"env_deps":103,"category_tags":107,"github_topics":108,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":117,"updated_at":118,"faqs":119,"releases":155},7207,"idealo\u002Fimagededup","imagededup","😎 Finding duplicate images made easy!","imagededup 是一款专为 Python 开发者设计的开源工具，旨在让图片去重工作变得简单高效。无论是整理庞大的照片库、清洗机器学习数据集，还是优化网站素材，它都能快速识别并找出文件夹中的重复图片。\n\n该工具核心解决了两大痛点：一是精准定位完全相同的“精确重复”图片；二是智能发现经过缩放、压缩或轻微修改后的“近似重复”图片。传统方法往往难以处理后一种情况，而 imagededup 通过提供多种算法灵活应对。其技术亮点在于不仅支持感知哈希（PHash）、差异哈希（DHash）等传统快速算法，还创新性地集成了卷积神经网络（CNN）。利用深度学习模型，它能深入理解图像内容特征，从而在复杂场景下更准确地捕捉视觉上的相似性。此外，工具还内置了评估框架，帮助用户量化去重效果，并提供可视化功能直观展示重复项。\n\nimagededup 非常适合需要处理大量图像数据的 AI 研究人员、数据工程师以及后端开发人员使用。对于希望提升数据质量、节省存储空间或加速模型训练的用户来说，这是一个专业且易用的解决方案。只需几行代码，即可在 Linux、macOS 或 Windows 环境下启动高效的去重流程。","# Image Deduplicator (imagededup)\n\n[![Build Status](https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Factions\u002Fworkflows\u002Ftest.yml)\n[![Docs](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-online-brightgreen)](https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002F)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fidealo\u002Fimagededup\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fidealo\u002Fimagededup)\n[![PyPI Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fimagededup)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fimagededup\u002F)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg)](https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fblob\u002Fmaster\u002FLICENSE)\n\nimagededup is a python package that simplifies the task of finding **exact** and **near duplicates** in an image collection.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fidealo_imagededup_readme_baf967a7d00d.png\" width=\"600\" \u002F>\n\u003C\u002Fp>\n\nThis package provides functionality to make use of hashing algorithms that are particularly good at finding exact\nduplicates as well as convolutional neural networks which are also adept at finding near duplicates. An evaluation\nframework is also provided to judge the quality of deduplication for a given dataset.\n\nFollowing details the functionality provided by the package:\n\n- Finding duplicates in a directory using one of the following algorithms:\n  - [Convolutional Neural Network](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.02244#:~:text=MobileNetV3%20is%20tuned%20to%20mobile,improved%20through%20novel%20architecture%20advances.) (CNN) - Select from several prepackaged models or provide your own custom model.\n  - [Perceptual hashing](http:\u002F\u002Fwww.hackerfactor.com\u002Fblog\u002Findex.php?\u002Farchives\u002F432-Looks-Like-It.html) (PHash)\n  - [Difference hashing](http:\u002F\u002Fwww.hackerfactor.com\u002Fblog\u002Findex.php?\u002Farchives\u002F529-Kind-of-Like-That.html) (DHash)\n  - [Wavelet hashing](https:\u002F\u002Ffullstackml.com\u002Fwavelet-image-hash-in-python-3504fdd282b5) (WHash)\n  - [Average hashing](http:\u002F\u002Fwww.hackerfactor.com\u002Fblog\u002Findex.php?\u002Farchives\u002F432-Looks-Like-It.html) (AHash)\n- Generation of encodings for images using one of the above stated algorithms.\n- Framework to evaluate effectiveness of deduplication  given a ground truth mapping.\n- Plotting duplicates found for a given image file.\n\nDetailed documentation for the package can be found at: [https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002F](https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002F)\n\nimagededup is compatible with Python 3.9+ and runs on Linux, MacOS X and Windows.\nIt is distributed under the Apache 2.0 license.\n\n## 📖 Contents\n\n- [Installation](#%EF%B8%8F-installation)\n- [Quick Start](#-quick-start)\n- [Benchmarks](#-benchmarks)\n- [Contribute](#-contribute)\n- [Citation](#-citation)\n- [Maintainers](#-maintainers)\n- [License](#-copyright)\n\n## ⚙️ Installation\n\nThere are two ways to install imagededup:\n\n- Install imagededup from PyPI (recommended):\n\n```\npip install imagededup\n```\n\n- Install imagededup from the GitHub source:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup.git\ncd imagededup\npip install .\n```  \n\n## 🚀 Quick Start\n\nIn order to find duplicates in an image directory using perceptual hashing, following workflow can be used:\n\n- Import perceptual hashing method\n\n```python\nfrom imagededup.methods import PHash\nphasher = PHash()\n```\n\n- Generate encodings for all images in an image directory\n\n```python\nencodings = phasher.encode_images(image_dir='path\u002Fto\u002Fimage\u002Fdirectory')\n```\n\n- Find duplicates using the generated encodings\n\n```python\nduplicates = phasher.find_duplicates(encoding_map=encodings)\n```\n\n- Plot duplicates obtained for a given file (eg: 'ukbench00120.jpg') using the duplicates dictionary\n\n```python\nfrom imagededup.utils import plot_duplicates\nplot_duplicates(image_dir='path\u002Fto\u002Fimage\u002Fdirectory',\n                duplicate_map=duplicates,\n                filename='ukbench00120.jpg')\n```\n\nThe output looks as below:\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fidealo_imagededup_readme_cc189fd79a37.png\" width=\"600\" \u002F>\n\u003C\u002Fp>\n\nThe complete code for the workflow is:\n\n```python\nfrom imagededup.methods import PHash\nphasher = PHash()\n\n# Generate encodings for all images in an image directory\nencodings = phasher.encode_images(image_dir='path\u002Fto\u002Fimage\u002Fdirectory')\n\n# Find duplicates using the generated encodings\nduplicates = phasher.find_duplicates(encoding_map=encodings)\n\n# plot duplicates obtained for a given file using the duplicates dictionary\nfrom imagededup.utils import plot_duplicates\nplot_duplicates(image_dir='path\u002Fto\u002Fimage\u002Fdirectory',\n                duplicate_map=duplicates,\n                filename='ukbench00120.jpg')\n```\nTo run the above snippet on Windows, have a look [here](https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002Fuser_guide\u002Fwindows\u002F).\nIt is also possible to use your own custom models for finding duplicates using the CNN method.\n\nFor examples, refer [this](https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Ftree\u002Fmaster\u002Fexamples) part of the\nrepository.\n\nFor more detailed usage of the package functionality, refer: [https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002F](https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002F)\n\n## ⏳ Benchmarks\n\n**Update**: Provided benchmarks are only valid upto `imagededup v0.2.2`. The next releases have significant changes to all methods, so the current benchmarks may not hold.\n\nDetailed benchmarks on speed and classification metrics for different methods have been provided in the [documentation](https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002Fuser_guide\u002Fbenchmarks\u002F).\nGenerally speaking, following conclusions can be made:\n\n- CNN works best for near duplicates and datasets containing transformations.\n- All deduplication methods fare well on datasets containing exact duplicates, but Difference hashing is the fastest.\n\n## 🤝 Contribute\n\nWe welcome all kinds of contributions.\nSee the [Contribution](CONTRIBUTING.md) guide for more details.\n\n## 📝 Citation\n\nPlease cite Imagededup in your publications if this is useful for your research. Here is an example BibTeX entry:\n\n```BibTeX\n@misc{idealods2019imagededup,\n  title={Imagededup},\n  author={Tanuj Jain and Christopher Lennan and Zubin John and Dat Tran},\n  year={2019},\n  howpublished={\\url{https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup}},\n}\n```\n\n## 🏗 Maintainers\n\n- Tanuj Jain, github: [tanujjain](https:\u002F\u002Fgithub.com\u002Ftanujjain)\n- Christopher Lennan, github: [clennan](https:\u002F\u002Fgithub.com\u002Fclennan)\n- Dat Tran, github: [datitran](https:\u002F\u002Fgithub.com\u002Fdatitran)\n\n## © Copyright\n\nSee [LICENSE](LICENSE) for details.\n","# 图像去重工具 (imagededup)\n\n[![构建状态](https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Factions\u002Fworkflows\u002Ftest.yml)\n[![文档](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-online-brightgreen)](https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002F)\n[![Codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fidealo\u002Fimagededup\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fidealo\u002Fimagededup)\n[![PyPI 版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fimagededup)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fimagededup\u002F)\n[![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg)](https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fblob\u002Fmaster\u002FLICENSE)\n\nimagededup 是一个 Python 包，用于简化在图像集合中查找**完全重复**和**近似重复**图像的任务。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fidealo_imagededup_readme_baf967a7d00d.png\" width=\"600\" \u002F>\n\u003C\u002Fp>\n\n该包提供了使用哈希算法的功能，这些算法特别擅长查找完全重复的图像；同时也支持卷积神经网络，后者同样能够有效地识别近似重复的图像。此外，还提供了一个评估框架，用于衡量给定数据集上去重效果的质量。\n\n以下是该包提供的功能：\n\n- 使用以下算法之一在目录中查找重复图像：\n  - [卷积神经网络](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.02244#:~:text=MobileNetV3%20is%20tuned%20to%20mobile,improved%20through%20novel%20architecture%20advances.)（CNN）：可选择多个预打包模型，或提供自定义模型。\n  - [感知哈希](http:\u002F\u002Fwww.hackerfactor.com\u002Fblog\u002Findex.php?\u002Farchives\u002F432-Looks-Like-It.html)（PHash）\n  - [差异哈希](http:\u002F\u002Fwww.hackerfactor.com\u002Fblog\u002Findex.php?\u002Farchives\u002F529-Kind-of-Like-That.html)（DHash）\n  - [小波哈希](https:\u002F\u002Ffullstackml.com\u002Fwavelet-image-hash-in-python-3504fdd282b5)（WHash）\n  - [平均哈希](http:\u002F\u002Fwww.hackerfactor.com\u002Fblog\u002Findex.php?\u002Farchives\u002F432-Looks-Like-It.html)（AHash）\n- 使用上述算法之一为图像生成编码。\n- 提供一个框架，用于根据真实标签映射评估去重效果。\n- 绘制针对特定图像文件找到的重复图像。\n\n有关该包的详细文档可在以下网址找到：[https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002F](https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002F)\n\nimagededup 兼容 Python 3.9 及以上版本，并可在 Linux、MacOS X 和 Windows 上运行。\n它采用 Apache 2.0 许可证进行分发。\n\n## 📖 目录\n\n- [安装](#%EF%B8%8F-installation)\n- [快速入门](#-quick-start)\n- [基准测试](#-benchmarks)\n- [贡献](#-contribute)\n- [引用](#-citation)\n- [维护者](#-maintainers)\n- [版权](#-copyright)\n\n## ⚙️ 安装\n\n有两种方式可以安装 imagededup：\n\n- 从 PyPI 安装 imagededup（推荐）：\n\n```\npip install imagededup\n```\n\n- 从 GitHub 源代码安装 imagededup：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup.git\ncd imagededup\npip install .\n```  \n\n## 🚀 快速入门\n\n要使用感知哈希方法在一个图像目录中查找重复图像，可以按照以下流程操作：\n\n- 导入感知哈希方法\n\n```python\nfrom imagededup.methods import PHash\nphasher = PHash()\n```\n\n- 为图像目录中的所有图像生成编码\n\n```python\nencodings = phasher.encode_images(image_dir='path\u002Fto\u002Fimage\u002Fdirectory')\n```\n\n- 使用生成的编码查找重复图像\n\n```python\nduplicates = phasher.find_duplicates(encoding_map=encodings)\n```\n\n- 使用重复图像字典为指定文件（例如 'ukbench00120.jpg'）绘制重复图像\n\n```python\nfrom imagededup.utils import plot_duplicates\nplot_duplicates(image_dir='path\u002Fto\u002Fimage\u002Fdirectory',\n                duplicate_map=duplicates,\n                filename='ukbench00120.jpg')\n```\n\n输出如下所示：\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fidealo_imagededup_readme_cc189fd79a37.png\" width=\"600\" \u002F>\n\u003C\u002Fp>\n\n完整的工作流代码如下：\n\n```python\nfrom imagededup.methods import PHash\nphasher = PHash()\n\n# 为图像目录中的所有图像生成编码\nencodings = phasher.encode_images(image_dir='path\u002Fto\u002Fimage\u002Fdirectory')\n\n# 使用生成的编码查找重复图像\nduplicates = phasher.find_duplicates(encoding_map=encodings)\n\n# 使用重复图像字典为指定文件绘制重复图像\nfrom imagededup.utils import plot_duplicates\nplot_duplicates(image_dir='path\u002Fto\u002Fimage\u002Fdirectory',\n                duplicate_map=duplicates,\n                filename='ukbench00120.jpg')\n```\n要在 Windows 上运行上述代码，请参阅[此处](https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002Fuser_guide\u002Fwindows\u002F)。\n此外，还可以使用自定义模型通过 CNN 方法查找重复图像。\n\n有关示例，请参阅仓库中的[此部分](https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Ftree\u002Fmaster\u002Fexamples)。\n\n如需更详细的使用说明，请参考：[https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002F](https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002F)\n\n## ⏳ 基准测试\n\n**更新**：提供的基准测试仅适用于 `imagededup v0.2.2` 及其之前版本。后续版本对所有方法都进行了重大改进，因此当前的基准测试可能不再适用。\n\n关于不同方法的速度和分类指标的详细基准测试已在[文档](https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002Fuser_guide\u002Fbenchmarks\u002F)中提供。\n总体而言，可以得出以下结论：\n\n- CNN 在处理近似重复和包含变换的数据集时表现最佳。\n- 所有去重方法在处理完全重复的数据集时表现良好，但差异哈希的速度最快。\n\n## 🤝 贡献\n\n我们欢迎各种形式的贡献。\n更多详情请参阅[贡献指南](CONTRIBUTING.md)。\n\n## 📝 引用\n\n如果 imagededup 对您的研究有所帮助，请在您的出版物中引用它。以下是一个 BibTeX 条目示例：\n\n```BibTeX\n@misc{idealods2019imagededup,\n  title={Imagededup},\n  author={Tanuj Jain and Christopher Lennan and Zubin John and Dat Tran},\n  year={2019},\n  howpublished={\\url{https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup}},\n}\n```\n\n## 🏗 维护者\n\n- Tanuj Jain，GitHub：[tanujjain](https:\u002F\u002Fgithub.com\u002Ftanujjain)\n- Christopher Lennan，GitHub：[clennan](https:\u002F\u002Fgithub.com\u002Fclennan)\n- Dat Tran，GitHub：[datitran](https:\u002F\u002Fgithub.com\u002Fdatitran)\n\n## © 版权\n\n详情请参阅[LICENSE](LICENSE)。","# imagededup 快速上手指南\n\n`imagededup` 是一个用于在图像集合中查找**完全重复**和**近似重复**图片的 Python 工具包。它支持多种哈希算法（如 PHash, DHash）以及卷积神经网络（CNN），适用于去重、数据清洗等场景。\n\n## 环境准备\n\n- **操作系统**：Linux, MacOS X, Windows\n- **Python 版本**：3.9 及以上\n- **依赖项**：安装时会自动处理所需依赖（如 TensorFlow\u002FKeras 用于 CNN 方法，Pillow 用于图像处理等）\n\n## 安装步骤\n\n推荐使用 pip 从 PyPI 安装：\n\n```bash\npip install imagededup\n```\n\n如果网络较慢，可使用国内镜像源加速安装（以清华源为例）：\n\n```bash\npip install imagededup -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n若需使用最新开发版，可从 GitHub 源码安装：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup.git\ncd imagededup\npip install .\n```\n\n## 基本使用\n\n以下示例演示如何使用**感知哈希（PHash）**算法快速查找目录中的重复图片。\n\n### 1. 导入并初始化\n\n```python\nfrom imagededup.methods import PHash\nphasher = PHash()\n```\n\n### 2. 生成图像编码\n\n将目标图片目录路径替换为实际路径，生成所有图像的哈希编码。\n\n```python\nencodings = phasher.encode_images(image_dir='path\u002Fto\u002Fimage\u002Fdirectory')\n```\n\n### 3. 查找重复图片\n\n基于生成的编码映射，识别重复项。\n\n```python\nduplicates = phasher.find_duplicates(encoding_map=encodings)\n```\n\n### 4. 可视化结果（可选）\n\n查看特定图片的重复项示意图。\n\n```python\nfrom imagededup.utils import plot_duplicates\nplot_duplicates(image_dir='path\u002Fto\u002Fimage\u002Fdirectory',\n                duplicate_map=duplicates,\n                filename='ukbench00120.jpg')\n```\n\n### 完整代码示例\n\n```python\nfrom imagededup.methods import PHash\nphasher = PHash()\n\n# 生成编码\nencodings = phasher.encode_images(image_dir='path\u002Fto\u002Fimage\u002Fdirectory')\n\n# 查找重复\nduplicates = phasher.find_duplicates(encoding_map=encodings)\n\n# 可视化特定文件的重复项\nfrom imagededup.utils import plot_duplicates\nplot_duplicates(image_dir='path\u002Fto\u002Fimage\u002Fdirectory',\n                duplicate_map=duplicates,\n                filename='ukbench00120.jpg')\n```\n\n> **提示**：除了 PHash，该库还支持 `DHash`, `WHash`, `AHash` 以及基于 `CNN` 的近似重复检测。对于包含旋转、裁剪或颜色变化的近似重复图，建议使用 CNN 方法以获得更佳效果。","某电商公司的数据团队正在清洗百万级商品图库，准备用于训练新的视觉推荐模型，但数据集中混入了大量因缩放、裁剪或格式转换产生的重复图片。\n\n### 没有 imagededup 时\n- **人工排查效率极低**：面对海量数据，开发人员只能靠肉眼抽样检查，无法全面覆盖，导致大量“看起来不同但实质相同”的图片漏网。\n- **传统方法失效**：简单的文件哈希（如 MD5）只能识别字节级完全一致的文件，对于经过压缩、调整大小或轻微修图的“近似重复图”完全无能为力。\n- **模型训练资源浪费**：冗余数据导致训练时间成倍增加，且模型容易过拟合于重复样本，严重降低了推荐系统的泛化能力和准确率。\n- **存储成本虚高**：无效的重复图片占用了宝贵的云存储空间，增加了不必要的运维开支。\n\n### 使用 imagededup 后\n- **智能识别近似重复**：利用内置的卷积神经网络（CNN）或感知哈希（PHash）算法，imagededup 能精准揪出那些经过旋转、裁剪或压缩的相似图片，不再受文件格式变化干扰。\n- **自动化清洗流程**：只需几行 Python 代码即可生成全量图片的编码映射并自动输出重复列表，将原本需要数周的人工清洗工作缩短至几小时。\n- **提升模型表现**：剔除冗余数据后，训练数据集更加纯净多样，显著缩短了模型收敛时间，同时提升了视觉推荐结果的准确性。\n- **可视化辅助决策**：通过自带的绘图功能，团队可以直观地查看被判定为重复的图片组，快速验证算法效果并建立信任。\n\nimagededup 通过引入深度学习与哈希技术，将繁琐的图片去重工作转化为高效的自动化流程，从根本上保障了计算机视觉项目的数据质量与算力效率。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fidealo_imagededup_baf967a7.png","idealo","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fidealo_2ce9e4c0.png","idealo's technology org page, Germany's largest price comparison service. Visit us at https:\u002F\u002Fjobs.idealo.com.",null,"github@idealo.de","https:\u002F\u002Fjobs.idealo.com","https:\u002F\u002Fgithub.com\u002Fidealo",[80,84,88,92],{"name":81,"color":82,"percentage":83},"Python","#3572A5",79,{"name":85,"color":86,"percentage":87},"C","#555555",20.4,{"name":89,"color":90,"percentage":91},"Cython","#fedf5b",0.3,{"name":93,"color":94,"percentage":91},"Shell","#89e051",5618,476,"2026-04-12T15:22:54","Apache-2.0",1,"Linux, macOS, Windows","未说明 (CNN 方法通常依赖 GPU 加速，但 README 未明确指定具体型号或 CUDA 版本)","未说明",{"notes":104,"python":105,"dependencies":106},"该工具支持多种去重算法：卷积神经网络 (CNN) 适用于查找近似重复图像（可使用预训练模型或自定义模型），以及多种哈希算法 (PHash, DHash, WHash, AHash) 适用于查找精确重复图像。Windows 用户运行特定代码片段时需参考官方文档的特殊说明。基准测试数据仅适用于 v0.2.2 及以前版本。","3.9+",[],[14,15,16],[109,110,111,112,72,113,114,115,116],"image-deduplication","neural-network","hashing","e-commerce","image-preprocessing","computer-vision","pytorch","python","2026-03-27T02:49:30.150509","2026-04-14T03:09:24.488387",[120,125,130,135,140,145,150],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},32358,"为什么在 M1 Mac 上安装 imagededup 时出现依赖冲突错误？","新版本已不再依赖 TensorFlow，可直接解决安装问题。如果必须使用旧版本或在 M1 Mac 上遇到 TensorFlow 问题，可以尝试以下步骤：\n1. 安装 tensorflow-metal：pip install tensorflow-metal\n2. 从 requirements.txt 和 setup.py 中移除 tensorflow 行\n3. 在 setup.py 中将 COMPILE_LINK_ARGS 更新为：COMPILE_LINK_ARGS = ['-O3', '-mcpu=apple-m1', '-mtune=native']","https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fissues\u002F148",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},32359,"为什么 CNN 方法无法识别来自不同来源的相似图片（如压缩或格式转换后的图片）？","这是由于预训练 CNN 的能力限制所致。CNN 不仅关注轮廓，还关注纹理和其他细微模式。对于此类问题，哈希算法（如 PHash）通常表现更好，因为它们专门针对轮廓进行匹配。建议尝试使用 PHash 方法并设置 max_distance_threshold（例如设为 20），这通常能更准确地找到此类重复图片。","https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fissues\u002F86",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},32360,"如何调整参数以更好地检测特定类型的重复图片？","如果默认设置下未检测到重复，可以尝试调整哈希方法和 CNN 方法的阈值参数。此外，可以使用 `score` 属性查看图像对之间的差异或相似度程度。通过实验不同的阈值，可以找到最适合您数据集的参数。详细用法请参考官方文档：https:\u002F\u002Fidealo.github.io\u002Fimagededup\u002F","https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fissues\u002F80",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},32361,"在 macOS 和 Python 3.8 环境下比较两张图片时返回空结果，如何解决？","在 macOS 和 Python 3.8 环境下，Cython 暴力搜索方法存在已知问题。临时解决方案是参考社区提供的变通方法（见相关评论）。该问题已在后续 PR #117 中修复，建议升级到最新版本。如果使用 CNN 方法，请确保环境配置正确。","https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fissues\u002F114",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},32362,"运行时出现 'tight_layout : falling back to Agg renderer' 警告且无图像显示，如何解决？","该问题通常与 imagededup 包本身无关，而是系统上 matplotlib 配置问题，常见于 Linux\u002FUnix 系统。解决方法：\n1. 首先确保 matplotlib 在您的系统上能正常工作（可运行简单绘图测试）\n2. 检查后端设置：import matplotlib; print(matplotlib.get_backend())\n3. 如果返回 'agg'，可能需要安装图形后端或配置 DISPLAY 环境变量\n4. 参考 matplotlib 官方故障排除指南：https:\u002F\u002Fwww.pyimagesearch.com\u002F2015\u002F08\u002F24\u002Fresolved-matplotlib-figures-not-showing-up-or-displaying\u002F","https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fissues\u002F42",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},32363,"imagededup 能否识别经过不同压缩级别处理的重复图片？","imagededup 的哈希算法（如 PHash）对轻微压缩和格式转换具有一定的鲁棒性，能够识别大多数因上传到不同平台（如 Google、Facebook）后产生的压缩重复图片。但对于重度压缩或元数据大幅改变的情况，效果可能有限。建议先使用 PHash 方法测试您的具体场景，并根据需要调整距离阈值。如果效果不理想，可能需要结合其他专门处理压缩图像的ツール。","https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fissues\u002F186",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},32364,"PyPI 上的版本落后于 GitHub 最新版本，如何获取最新功能？","维护者会定期发布新版本到 PyPI。如果遇到版本滞后，可以：\n1. 等待官方发布新版本（如从 0.2.2 直接发布到 0.3.0）\n2. 考虑使用 PyPI 的预发布功能（pre-release feature）\n3. 直接从 GitHub 安装最新版本：pip install git+https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup.git","https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fissues\u002F129",[156,161,166,171,176,181,186,191,196,201,206],{"id":157,"version":158,"summary_zh":159,"released_at":160},247158,"v0.3.3.post2","## 变更内容\n* 由 @bogdan-galileo 在 https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fpull\u002F201 中实现，避免在导入时自动下载文件。\n* 由 @tanujjain 在 https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fpull\u002F238 中完成文档改进及其他小幅调整。\n* 构建流水线现在会在构建完成后，同时在 macOS 和 manylinux 环境上测试生成的 wheel 包。\n* 更新项目 README，明确最低 Python 版本要求为 3.9。\n\n## 破坏性变更\n无\n\n## 新贡献者\n* @bogdan-galileo 在 https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fpull\u002F201 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fidealo\u002Fimagededup\u002Fcompare\u002F0.3.3.post1...v0.3.3.post2","2025-08-15T15:19:22",{"id":162,"version":163,"summary_zh":164,"released_at":165},247159,"0.3.3.post1","# 变更内容\n- 取消对 Python 3.8 的支持：\n   - Python 3.8 已于 2024 年 10 月停止维护。\n   - `Pytorch` 等依赖库已不再支持 Python 3.8。\n- 项目构建流程现代化：\n    - 引入 `pyproject.toml`。\n    - 移除用于配置安装和版本更新的已弃用文件。\n    - 对于本地安装，移除已弃用的命令：`python setup.py install`。\n\n# Bug 修复\n无\n\n# 重大变更\n- 不再支持 Python 3.8。","2025-06-26T15:00:48",{"id":167,"version":168,"summary_zh":169,"released_at":170},247160,"v03.3","## 变更内容\n- 增加对 **Python 3.12 和 Python 3.11** 的支持\n- 本版本之后支持的 Python 版本：**3.12、3.11、3.10、3.9、3.8**\n\n## 新功能\n无\n\n## 修复的 bug\n无\n\n","2025-05-13T18:48:36",{"id":172,"version":173,"summary_zh":174,"released_at":175},247161,"v0.3.2","## ✨ 新功能与改进\n\n- 在默认的 MobileNetv3 之外，新增更多 CNN 网络——新加入的网络包括 EfficientNet 和 ViT #190\n- 允许用户定义并插入自定义的 CNN 模型用于编码生成；使用示例请参见：`imagededup\u002Fexamples\u002Fuse_custom_model.ipynb` #190\n- 通过移除 torch 的梯度计算，使编码生成过程更加快速且内存效率更高 #192\n\n## 🔴 错误修复\n\n- 更新 README 中的 CNN 链接，使其指向 MobileNetV3 论文。\n- 移除 MobileNetV3 的 `pretrained` 参数，以消除弃用警告，并改用 `weights` 参数。\n- 修复了一些拼写错误。","2023-04-28T17:26:08",{"id":177,"version":178,"summary_zh":179,"released_at":180},247162,"v0.3.1","## ✨ 新功能和改进\r\n\r\n- 添加可选的多进程标志  #185 \r\n- 为 CNN 编码生成添加 GPU 支持  #179 \r\n- 添加对 WebP 图像的支持  #153 \r\n\r\n## 破坏性变更：无","2023-01-16T17:21:57",{"id":182,"version":183,"summary_zh":184,"released_at":185},247163,"v0.3.0","## 安装修复\n- 通过移除 TensorFlow 作为依赖并替换为 PyTorch，使该包可安装 #173\n- 放弃对 Python 3.6 和 Python 3.7 的支持 #173\n\n## ✨ 新功能与改进\n- 使用 MobileNetv3 生成 CNN 编码 #173\n- 引入“递归”选项，以生成按嵌套目录结构组织的图像的编码 #104\n\n## 破坏性变更\n- CNN 编码的尺寸由 1024 变为 576 #173\n- 由于 CNN 编码使用不同的网络生成，其鲁棒性可能有所不同；用户可能需要调整相似度阈值设置 #173\n- 对于给定图像，所有类型的哈希值可能都与先前版本不同 #173","2022-10-15T10:24:37",{"id":187,"version":188,"summary_zh":189,"released_at":190},247164,"v0.2.4","🔴 错误修复\n- 修复 Python 3.8 中损坏的 Cython 暴力破解实现 #117\n- 绘图后关闭图形窗口，以避免图形被覆盖 #111\n- 允许 CNN 的 encode_image 方法接受二维数组 #110\n- 放宽依赖关系并更新相关包 #116、#107、#102、#119","2020-11-23T17:55:24",{"id":192,"version":193,"summary_zh":194,"released_at":195},247165,"v0.2.2","## ✨ 新功能和改进\n- 改用列表推导式按需创建列表，取代了效率较低、每次迭代都需要调用 `append` 方法的显式 `for` 循环。#76\n- 对成员测试使用了集合（set）。\n- 使用广播机制替代显式 `for` 循环。\n","2019-12-11T09:54:51",{"id":197,"version":198,"summary_zh":199,"released_at":200},247166,"v0.2.1","## 🔴 错误修复\n- 添加 Manifest.in，以便将 C 文件包含在源码分发中 #72","2019-11-03T15:26:20",{"id":202,"version":203,"summary_zh":204,"released_at":205},247167,"v0.2.0","##  ✨ 新功能与改进\n- 实现了基于 Cython 的暴力搜索算法。该算法现已成为 Linux 和 macOS X 上的默认 `search_method`。对于 Windows 系统，我们仍以 `bktree` 作为默认方法，因为我们尚不确定是否支持 `popcnt` #56 \n- 扩展了支持的图像格式。现在还支持：'MPO'、'PPM'、'TIFF'、'GIF'、'SVG'、'PGM'、'PBM' #35 \n\n## 🔴 错误修复\n- 放宽软件包依赖关系 #36 \n- 移除打印语句 #39 \n- 修复保存分数时的类型错误 #55 和 #61 \n\n## 👥 贡献者\n感谢 @jonatron、@orf、@DannyFeliz、@ImportTaste、@fridzema、@DannyFeliz、@iozevo、@MomIsBestFriend、@YadunandanH 提交的拉取请求及贡献。","2019-10-30T15:19:26",{"id":207,"version":208,"summary_zh":209,"released_at":210},247168,"v0.1.0","This is the first release of `imagededup`.\r\n\r\nWe added:\r\n🧮 Several hashing algorithms (PHash, DHash, WHash, AHash) and convolutional neural networks\r\n🔎 An evaluation framework to judge the quality of deduplication\r\n🖼 Easy plotting functionality of duplicates\r\n⚙️ Simple API","2019-10-08T13:21:17"]