[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-haltakov--natural-language-image-search":3,"tool-haltakov--natural-language-image-search":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 真正成长为懂上",151918,2,"2026-04-12T11:33:05",[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":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":72,"owner_website":79,"owner_url":80,"languages":81,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":10,"env_os":94,"env_gpu":95,"env_ram":96,"env_deps":97,"category_tags":102,"github_topics":103,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":110,"updated_at":111,"faqs":112,"releases":143},6885,"haltakov\u002Fnatural-language-image-search","natural-language-image-search","Search photos on Unsplash using natural language","natural-language-image-search 是一款让你能用自然语言描述来搜索 Unsplash 海量图片的开源工具。它解决了传统关键词搜索难以捕捉复杂场景、抽象概念或具体情感表达的痛点。例如，你可以直接输入“两只在雪地里玩耍的小狗”、“墙上写着爱字”甚至“程序终于跑通时的那种感觉”，系统都能精准匹配出意境相符的照片，而不再局限于机械的标签匹配。\n\n这款工具非常适合设计师、内容创作者寻找灵感素材，也适合开发者和对多模态技术感兴趣的研究人员参考学习。普通用户若想体验更智能的搜图方式，也能通过提供的 Google Colab 笔记本快速上手试用。\n\n其核心技术亮点在于利用了 OpenAI 强大的 CLIP 模型。该模型能将图像和文本映射到同一个向量空间中，通过计算相似度来实现跨模态检索。项目预先处理了 Unsplash 数据集中近 200 万张照片的特征向量，使得基于自然语言的即时查询成为可能。无论是具体的地标夜景，还是抽象的情绪表达，natural-language-image-search 都能帮你轻松找到心仪的画面。","# Unsplash Image Search\n\n[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fhaltakov\u002Fnatural-language-image-search\u002Fblob\u002Fmain\u002Fcolab\u002Funsplash-image-search.ipynb)\n\nSearch photos on Unsplash using natural language descriptions. The search is powered by OpenAI's [CLIP model](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP) and the [Unsplash Dataset](https:\u002F\u002Funsplash.com\u002Fdata).\n\n### \"Two dogs playing in the snow\"\n\n![Search results for \"Two dogs playing in the snow\"](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhaltakov_natural-language-image-search_readme_6be3cdc69045.png)\n\u003Csub>Photos by [Richard Burlton](https:\u002F\u002Funsplash.com\u002F@richardworks?utm_source=NaturalLanguageImageSearch&utm_medium=referral), [Karl Anderson](https:\u002F\u002Funsplash.com\u002F@karlkiwi90?utm_source=NaturalLanguageImageSearch&utm_medium=referral) and [Xuecheng Chen](https:\u002F\u002Funsplash.com\u002F@samaritan_?utm_source=NaturalLanguageImageSearch&utm_medium=referral) on [Unsplash](https:\u002F\u002Funsplash.com\u002F?utm_source=NaturalLanguageImageSearch&utm_medium=referral).\u003C\u002Fsub>\n\n### \"The word love written on the wall\"\n\n![Search results for \"The word love written on the wall\"](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhaltakov_natural-language-image-search_readme_8b90f5afc493.png)\n\u003Csub>Photos by [Genton Damian](https:\u002F\u002Funsplash.com\u002F@damiangenton96?utm_source=NaturalLanguageImageSearch&utm_medium=referral) , [Anna Rozwadowska](https:\u002F\u002Funsplash.com\u002F@arozwadowska?utm_source=NaturalLanguageImageSearch&utm_medium=referral), [Jude Beck](https:\u002F\u002Funsplash.com\u002F@judebeck?utm_source=NaturalLanguageImageSearch&utm_medium=referral) on [Unsplash](https:\u002F\u002Funsplash.com\u002F?utm_source=NaturalLanguageImageSearch&utm_medium=referral).\u003C\u002Fsub>\n\n### \"The feeling when your program finally works\"\n\n![Search results for \"The feeling when your program finally works\"](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhaltakov_natural-language-image-search_readme_dcce79831ee3.png)\n\u003Csub>Photos by [bruce mars](https:\u002F\u002Funsplash.com\u002F@brucemars?utm_source=NaturalLanguageImageSearch&utm_medium=referral), [LOGAN WEAVER](https:\u002F\u002Funsplash.com\u002F@lgnwvr?utm_source=NaturalLanguageImageSearch&utm_medium=referral), [Vasyl Skunziak](https:\u002F\u002Funsplash.com\u002F@vskvsk1?utm_source=NaturalLanguageImageSearch&utm_medium=referral) on [Unsplash](https:\u002F\u002Funsplash.com\u002F?utm_source=NaturalLanguageImageSearch&utm_medium=referral).\u003C\u002Fsub>\n\n### \"The Syndey Opera House and the Harbour Bridge at night\"\n\n![Search results for \"The Syndey Opera House and the Harbour Bridge at night\"](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhaltakov_natural-language-image-search_readme_1b9fe97aeb26.png)\n\u003Csub>Photos by [Dalal Nizam](https:\u002F\u002Funsplash.com\u002F@dilson?utm_source=NaturalLanguageImageSearch&utm_medium=referral) and [Anna Tremewan](https:\u002F\u002Funsplash.com\u002F@annatre?utm_source=NaturalLanguageImageSearch&utm_medium=referral) on [Unsplash](https:\u002F\u002Funsplash.com\u002F?utm_source=NaturalLanguageImageSearch&utm_medium=referral).\u003C\u002Fsub>\n\n## How It Works?\n\nOpenAI's [CLIP](https:\u002F\u002Fopenai.com\u002Fblog\u002Fclip\u002F) neural network is able to transform both images and text into the same latent space, where they can be compared using a similarity measure.\n\nFor this project, all photos from the full [Unsplash Dataset](https:\u002F\u002Funsplash.com\u002Fdata) (almost 2M photos) were downloaded and processed with CLIP.\n\nThe pre-computed feature vectors for all images can then be used to find the best match to a natural language search query.\n\n## How To Run The Code?\n\n### On Google Colab\n\nIf you just want to play around with different queries jump to the [Colab notebook](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fhaltakov\u002Fnatural-language-image-search\u002Fblob\u002Fmain\u002Fcolab\u002Funsplash-image-search.ipynb).\n\n[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fhaltakov\u002Fnatural-language-image-search\u002Fblob\u002Fmain\u002Fcolab\u002Funsplash-image-search.ipynb)\n\n### On your machine\n\nBefore running any of the code, make sure to install all dependencies:\n\n```\npip install -r requirements.txt\n```\n\nIf you want to run all the code yourself open the Jupyter notebooks in the order they are numbered and follow the instructions there:\n\n- `01-setup-clip.ipynb` - setup the environment checking out and preparing the CLIP code.\n- `02-download-unsplash-dataset.ipynb` - download the photos from the Unsplash dataset\n- `03-process-unsplash-dataset.ipynb` - process all photos from the dataset with CLIP\n- `04-search-image-dataset.ipynb` - search for a photo in the dataset using natural language queries\n- `09-search-image-api.ipynb` - search for a photo using the Unsplash Search API and filter the results using CLIP.\n\n> NOTE: only the Lite version of the Unsplash Dataset is publicly available. If you want to use the Full version, you will need to [apply](https:\u002F\u002Funsplash.com\u002Fdata) for (free) access.\n\n> NOTE: searching for images using the Unsplash Search API doesn't require access to the Unsplash Dataset, but will probably deliver worse results.\n\n## Acknowledgements\n\nThis project was inspired by these projects:\n\n- [Beyond tags and entering the semantic search era on images with OpenAI CLIP](https:\u002F\u002Ftowardsdatascience.com\u002Fbeyond-tags-and-entering-the-semantic-search-era-on-images-with-openai-clip-1f7d629a9978) by [Ramsri Goutham Golla](https:\u002F\u002Ftwitter.com\u002Framsri_goutham)\n- [Alph, The Sacred River](https:\u002F\u002Fgithub.com\u002Fthoppe\u002Falph-the-sacred-river) by [Travis Hoppe](https:\u002F\u002Ftwitter.com\u002Fmetasemantic)\n- [OpenAI's CLIP](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP)\n- [Unsplash](https:\u002F\u002Funsplash.com\u002F)\n","# Unsplash 图片搜索\n\n[![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fhaltakov\u002Fnatural-language-image-search\u002Fblob\u002Fmain\u002Fcolab\u002Funsplash-image-search.ipynb)\n\n使用自然语言描述在 Unsplash 上搜索照片。搜索由 OpenAI 的 [CLIP 模型](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP) 和 [Unsplash 数据集](https:\u002F\u002Funsplash.com\u002Fdata) 提供支持。\n\n### “两只狗在雪地里玩耍”\n\n![“两只狗在雪地里玩耍”的搜索结果](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhaltakov_natural-language-image-search_readme_6be3cdc69045.png)\n\u003Csub>照片由 [Richard Burlton](https:\u002F\u002Funsplash.com\u002F@richardworks?utm_source=NaturalLanguageImageSearch&utm_medium=referral)、[Karl Anderson](https:\u002F\u002Funsplash.com\u002F@karlkiwi90?utm_source=NaturalLanguageImageSearch&utm_medium=referral) 和 [Xuecheng Chen](https:\u002F\u002Funsplash.com\u002F@samaritan_?utm_source=NaturalLanguageImageSearch&utm_medium=referral) 在 [Unsplash](https:\u002F\u002Funsplash.com\u002F?utm_source=NaturalLanguageImageSearch&utm_medium=referral) 上拍摄。\u003C\u002Fsub>\n\n### “墙上写着‘爱’字”\n\n![“墙上写着‘爱’字”的搜索结果](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhaltakov_natural-language-image-search_readme_8b90f5afc493.png)\n\u003Csub>照片由 [Genton Damian](https:\u002F\u002Funsplash.com\u002F@damiangenton96?utm_source=NaturalLanguageImageSearch&utm_medium=referral)、[Anna Rozwadowska](https:\u002F\u002Funsplash.com\u002F@arozwadowska?utm_source=NaturalLanguageImageSearch&utm_medium=referral)、[Jude Beck](https:\u002F\u002Funsplash.com\u002F@judebeck?utm_source=NaturalLanguageImageSearch&utm_medium=referral) 在 [Unsplash](https:\u002F\u002Funsplash.com\u002F?utm_source=NaturalLanguageImageSearch&utm_medium=referral) 上拍摄。\u003C\u002Fsub>\n\n### “程序终于运行起来时的感觉”\n\n![“程序终于运行起来时的感觉”的搜索结果](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhaltakov_natural-language-image-search_readme_dcce79831ee3.png)\n\u003Csub>照片由 [bruce mars](https:\u002F\u002Funsplash.com\u002F@brucemars?utm_source=NaturalLanguageImageSearch&utm_medium=referral)、[LOGAN WEAVER](https:\u002F\u002Funsplash.com\u002F@lgnwvr?utm_source=NaturalLanguageImageSearch&utm_medium=referral)、[Vasyl Skunziak](https:\u002F\u002Funsplash.com\u002F@vskvsk1?utm_source=NaturalLanguageImageSearch&utm_medium=referral) 在 [Unsplash](https:\u002F\u002Funsplash.com\u002F?utm_source=NaturalLanguageImageSearch&utm_medium=referral) 上拍摄。\u003C\u002Fsub>\n\n### “悉尼歌剧院和海港大桥的夜景”\n\n![“悉尼歌剧院和海港大桥的夜景”的搜索结果](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhaltakov_natural-language-image-search_readme_1b9fe97aeb26.png)\n\u003Csub>照片由 [Dalal Nizam](https:\u002F\u002Funsplash.com\u002F@dilson?utm_source=NaturalLanguageImageSearch&utm_medium=referral) 和 [Anna Tremewan](https:\u002F\u002Funsplash.com\u002F@annatre?utm_source=NaturalLanguageImageSearch&utm_medium=referral) 在 [Unsplash](https:\u002F\u002Funsplash.com\u002F?utm_source=NaturalLanguageImageSearch&utm_medium=referral) 上拍摄。\u003C\u002Fsub>\n\n## 工作原理？\n\nOpenAI 的 [CLIP](https:\u002F\u002Fopenai.com\u002Fblog\u002Fclip\u002F) 神经网络能够将图像和文本转换为同一潜在空间，从而可以通过相似度度量进行比较。\n\n对于本项目，完整 [Unsplash 数据集](https:\u002F\u002Funsplash.com\u002Fdata) 中的所有照片（近 200 万张）都被下载并使用 CLIP 进行处理。\n\n随后，可以使用所有图像的预计算特征向量来找到与自然语言搜索查询最匹配的结果。\n\n## 如何运行代码？\n\n### 在 Google Colab 上\n\n如果您只想尝试不同的查询，请跳转到 [Colab 笔记本](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fhaltakov\u002Fnatural-language-image-search\u002Fblob\u002Fmain\u002Fcolab\u002Funsplash-image-search.ipynb)。\n\n[![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fhaltakov\u002Fnatural-language-image-search\u002Fblob\u002Fmain\u002Fcolab\u002Funsplash-image-search.ipynb)\n\n### 在您的机器上\n\n在运行任何代码之前，请确保安装所有依赖项：\n\n```\npip install -r requirements.txt\n```\n\n如果您想亲自运行所有代码，请按照编号顺序打开 Jupyter 笔记本，并遵循其中的说明：\n\n- `01-setup-clip.ipynb` - 设置环境，检出并准备 CLIP 代码。\n- `02-download-unsplash-dataset.ipynb` - 下载 Unsplash 数据集中的照片。\n- `03-process-unsplash-dataset.ipynb` - 使用 CLIP 处理数据集中所有照片。\n- `04-search-image-dataset.ipynb` - 使用自然语言查询在数据集中搜索照片。\n- `09-search-image-api.ipynb` - 使用 Unsplash 搜索 API 搜索照片，并使用 CLIP 过滤结果。\n\n> 注意：公开可用的是 Unsplash 数据集的精简版。如果想要使用完整版，您需要 [申请](https:\u002F\u002Funsplash.com\u002Fdata) 免费访问权限。\n\n> 注意：使用 Unsplash 搜索 API 搜索图片不需要访问 Unsplash 数据集，但结果可能不如直接在数据集中搜索好。\n\n## 致谢\n\n该项目受到以下项目的启发：\n\n- [超越标签，借助 OpenAI CLIP 进入图像语义搜索时代](https:\u002F\u002Ftowardsdatascience.com\u002Fbeyond-tags-and-entering-the-semantic-search-era-on-images-with-openai-clip-1f7d629a9978) by [Ramsri Goutham Golla](https:\u002F\u002Ftwitter.com\u002Framsri_goutham)\n- [Alph, The Sacred River](https:\u002F\u002Fgithub.com\u002Fthoppe\u002Falph-the-sacred-river) by [Travis Hoppe](https:\u002F\u002Ftwitter.com\u002Fmetasemantic)\n- [OpenAI's CLIP](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP)\n- [Unsplash](https:\u002F\u002Funsplash.com\u002F)","# Natural Language Image Search 快速上手指南\n\n本项目基于 OpenAI 的 **CLIP 模型**和 **Unsplash 数据集**，支持使用自然语言描述（如“两只在雪中玩耍的狗”）来搜索图片。\n\n## 环境准备\n\n*   **系统要求**：支持 Python 3.7+ 的操作系统（Linux\u002FmacOS\u002FWindows）。\n*   **前置依赖**：\n    *   Python 包管理工具 `pip`。\n    *   Jupyter Notebook（可选，用于运行完整流程）。\n    *   GPU 加速（推荐，可显著提升 CLIP 模型处理速度，非必须）。\n*   **数据说明**：\n    *   完整流程需要下载 Unsplash 数据集（公开版为 Lite 版本，全量版需申请）。\n    *   若仅体验搜索功能，可直接使用 API 模式或 Colab，无需本地下载全量数据。\n\n## 安装步骤\n\n1.  克隆项目代码到本地：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fhaltakov\u002Fnatural-language-image-search.git\n    cd natural-language-image-search\n    ```\n\n2.  安装所需依赖包：\n    ```bash\n    pip install -r requirements.txt\n    ```\n    > **提示**：国内用户如遇下载缓慢，可使用清华源加速安装：\n    > `pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 基本使用\n\n### 方式一：在线快速体验（推荐）\n\n无需配置本地环境，直接在 Google Colab 中运行预设好的 Notebook：\n\n1.  点击以下链接打开项目：\n    [Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fhaltakov\u002Fnatural-language-image-search\u002Fblob\u002Fmain\u002Fcolab\u002Funsplash-image-search.ipynb)\n2.  按顺序执行单元格，输入自然语言描述即可看到搜索结果。\n\n### 方式二：本地运行\n\n若需在本地复现完整流程（包括下载和处理数据集），请按顺序运行以下 Jupyter Notebook 文件：\n\n1.  **环境设置**：准备 CLIP 代码环境。\n    ```bash\n    jupyter notebook 01-setup-clip.ipynb\n    ```\n2.  **下载数据**：下载 Unsplash 数据集照片。\n    ```bash\n    jupyter notebook 02-download-unsplash-dataset.ipynb\n    ```\n3.  **处理数据**：使用 CLIP 模型提取所有图片的特征向量。\n    ```bash\n    jupyter notebook 03-process-unsplash-dataset.ipynb\n    ```\n4.  **开始搜索**：输入自然语言查询图片。\n    ```bash\n    jupyter notebook 04-search-image-dataset.ipynb\n    ```\n\n> **注意**：如果不想下载数据集，也可以运行 `09-search-image-api.ipynb`，该脚本调用 Unsplash Search API 并利用 CLIP 进行结果过滤，但搜索效果可能略逊于本地全量数据集方案。","某内容运营团队正在为一篇关于“程序员调试成功瞬间”的技术博客寻找配图，需要精准传达抽象的情绪而非具体的物体。\n\n### 没有 natural-language-image-search 时\n- 只能依赖\"code\"、\"happy\"、\"computer\"等孤立关键词进行检索，结果多为摆拍的假笑照片，缺乏真实感。\n- 难以描述复杂情境（如“代码终于跑通时的如释重负”），不得不花费大量时间人工浏览数千张缩略图来碰运气。\n- 经常搜到与语境不符的图片，例如虽然有关键词但人物表情僵硬，或者场景过于通用无法引起开发者共鸣。\n- 团队协作效率低下，设计师需反复修改搜索词并与文案人员确认意图，沟通成本极高。\n\n### 使用 natural-language-image-search 后\n- 直接输入自然语言描述\"The feeling when your program finally works\"，利用 CLIP 模型语义理解能力，精准匹配到程序员对着屏幕握拳庆祝或长舒一口气的真实瞬间。\n- 支持抽象概念和情感色彩的检索，无需拆解关键词，系统能自动关联“解脱”、“成就感”与视觉画面的潜在联系。\n- 搜索结果高度契合文章基调，直接从近 200 万张 Unsplash 图片中锁定最具感染力的画面，大幅减少人工筛选时间。\n- 非设计背景的文案人员也能独立快速找到高质量配图，实现了从“构思描述”到“获取素材”的无缝衔接。\n\nnatural-language-image-search 通过打破关键词匹配的局限，让机器真正理解了人类对图像意境的描述，将素材检索从“大海捞针”变为“按需所得”。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhaltakov_natural-language-image-search_8b90f5af.png","haltakov","Vladimir Haltakov","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fhaltakov_add32017.jpg","Building products with AI as my cofounder. Ex VP of Eng, cybersecurity. Ex BMW self-driving.","Creafex Lab","Munich, Germany",null,"https:\u002F\u002Fhaltakov.net\u002F","https:\u002F\u002Fgithub.com\u002Fhaltakov",[82,86],{"name":83,"color":84,"percentage":85},"Jupyter Notebook","#DA5B0B",100,{"name":87,"color":88,"percentage":89},"Python","#3572A5",0,1036,104,"2026-03-11T20:00:17","MIT","未说明","未说明（基于 CLIP 模型，通常建议使用支持 CUDA 的 NVIDIA GPU 以加速推理，但 README 未明确具体型号或显存要求）","未说明（处理近 200 万张图片的数据集通常需要较大内存，建议 16GB 以上，但原文未明确）",{"notes":98,"python":94,"dependencies":99},"1. 完整运行需下载并处理 Unsplash 全量数据集（约 200 万张图片），若仅使用公开可用的 Lite 版本数据量较小。2. 若需使用全量数据集，需向 Unsplash 申请免费访问权限。3. 提供了 Google Colab 环境可直接运行，无需本地配置。4. 本地运行需按顺序执行 5 个 Jupyter Notebook 脚本以完成环境设置、数据下载、特征提取及搜索功能。5. 具体依赖库需查看项目中的 requirements.txt 文件，README 中未列出详细清单及版本号。",[100,101,83],"torch (通过 requirements.txt 安装)","CLIP (OpenAI)",[15,52,14],[104,105,106,107,108,109],"unsplash","clip","machine-learning","computer-vision","image-search","photos","2026-03-27T02:49:30.150509","2026-04-13T04:25:53.597395",[113,118,123,128,133,138],{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},31184,"Colab 笔记本无法下载所需文件怎么办？","维护者已合并了一个 PR，添加了替代的下载镜像源以解决此问题。如果之前遇到下载失败，请尝试重新运行笔记本，系统现在会自动使用新的镜像地址进行下载。","https:\u002F\u002Fgithub.com\u002Fhaltakov\u002Fnatural-language-image-search\u002Fissues\u002F9",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},31185,"加载 features.npy 文件时出现 'OSError: Failed to interpret file ... as a pickle' 错误如何解决？","这通常是因为代码试图通过 Unsplash URL 显示图片，而本地数据没有对应的 URL。你需要修改 'Display the results' 部分的代码：不要尝试查找并显示 Unsplash 上的照片 URL，而是直接读取并显示本地文件路径下的图片。","https:\u002F\u002Fgithub.com\u002Fhaltakov\u002Fnatural-language-image-search\u002Fissues\u002F19",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},31186,"下载镜像链接出现 'Permission denied' 或 '404 Not Found' 错误怎么办？","这通常是由于 Google Drive 权限设置错误或第三方托管服务链接失效导致的。维护者已修复了权限问题并将大文件（如 2GB 数据集）托管到了 GitHub Releases 中。请检查项目的 Releases 页面获取最新的稳定下载链接，避免使用过期的 transfer.army 或受限的 Drive 链接。","https:\u002F\u002Fgithub.com\u002Fhaltakov\u002Fnatural-language-image-search\u002Fissues\u002F20",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},31187,"运行代码时遇到 'HTTP Error 502: Bad Gateway' 或 API 限制错误是什么原因？","这是因为同时运行笔记本的用户过多，触发了 Unsplash API 的请求频率限制。虽然维护者已申请生产状态并增加了缓存，但如果仍然报错，建议等待一个小时（直到整点重置限制）后再次尝试运行。直接通过 photo_id 下载图片是不被 Unsplash 政策允许的，必须通过 API 访问。","https:\u002F\u002Fgithub.com\u002Fhaltakov\u002Fnatural-language-image-search\u002Fissues\u002F11",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},31188,"加载数据时出现 'ValueError: cannot reshape array of size ...' 形状不匹配错误怎么办？","这通常意味着 'features.npy' 文件没有完全下载成功（文件损坏或不完整）。请检查该文件大小是否约为 2 GB。如果文件大小明显小于 2 GB，请删除该文件并重新下载完整的版本。","https:\u002F\u002Fgithub.com\u002Fhaltakov\u002Fnatural-language-image-search\u002Fissues\u002F15",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},31189,"运行下载脚本时提示找不到 'photos.tsv000' 文件在哪里获取？","该文件不在代码仓库中，需要从未官方数据集源下载。你可以访问 Unsplash 官方提供的 lite 版本数据页面获取：https:\u002F\u002Funsplash.com\u002Fdata\u002Flite\u002Flatest。下载相应的数据包后，确保将其放置在代码期望的目录结构中。","https:\u002F\u002Fgithub.com\u002Fhaltakov\u002Fnatural-language-image-search\u002Fissues\u002F24",[144],{"id":145,"version":146,"summary_zh":147,"released_at":148},230851,"1.0.0","首个发布包含完整 Unsplash 数据集的笔记本及预计算数据。","2021-08-25T21:34:13"]