[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-IliasHad--edit-mind":3,"tool-IliasHad--edit-mind":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 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,52],"视频",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[14,35],{"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":76,"owner_email":76,"owner_twitter":76,"owner_website":76,"owner_url":77,"languages":78,"stars":103,"forks":104,"last_commit_at":105,"license":106,"difficulty_score":10,"env_os":107,"env_gpu":108,"env_ram":109,"env_deps":110,"category_tags":124,"github_topics":125,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":136,"updated_at":137,"faqs":138,"releases":139},4248,"IliasHad\u002Fedit-mind","edit-mind","Local-first AI video intelligence platform. Index your video library with multi-modal analysis (YOLO, DeepFace, Whisper), search semantically via natural language, Docker-ready.","edit-mind 是一款主打“本地优先”的 AI 视频智能平台，旨在成为视频创作者的“第二大脑”。它不仅能自动索引你的视频库，还能通过多模态分析技术（如 YOLO 物体检测、DeepFace 人脸识别、Whisper 语音转录）深度理解视频内容。\n\n面对海量视频素材难以检索的痛点，edit-mind 让你摆脱繁琐的手动标签整理。只需使用自然语言描述，例如“寻找所有出现红色汽车的场景”或“搜索提到项目截止日期的片段”，它就能利用语义搜索精准定位到具体的视频画面或时间段。由于所有数据处理均在本地完成，无需上传云端，它能充分保障用户的隐私安全与数据主权。\n\n目前 edit-mind 处于积极开发阶段，非常适合具备一定技术基础的开发者、研究人员以及注重隐私的视频编辑人员试用和贡献代码。其独特的技术亮点在于完全基于 Docker 容器化部署，开箱即用；后端融合了 ChromaDB 向量数据库进行高效语义匹配，并支持接入 Ollama、Google Gemini 等多种大模型进行自然语言处理，构建了一个灵活且强大的本地视频知识库。","### Edit Mind: Local Video Knowledge Base\n\nEdit Mind lets you index your videos **(including transcription, frame analysis, and multi-model embedding)**, and you can search your videos (or specific video scenes) using natural language.\n\n> **Development Status:** Edit Mind is currently in **active development** and **not yet production-ready**.\n> Expect incomplete features and occasional bugs. We welcome contributors to help us reach **v1.0**!\n\n\n[![PRs Welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![ChromaDB](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVectorDB-ChromaDB-purple.svg)](https:\u002F\u002Fwww.trychroma.com\u002F)\n[![Docker](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FContainerized-Docker-blue.svg)](https:\u002F\u002Fwww.docker.com\u002F)\n\n\n---\nNote: (Edit Mind name is coming from Video Editor Mind, so this will be the editor's second brain and companion in the future)\n\n## Sponsors of this project \n\n[![brycedev](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSponosor-brycedev-blue?logo=github)](https:\u002F\u002Fgithub.com\u002Fbrycedev)\n[![alittlebitweird](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSponosor-alittlebitweird-blue?logo=github)](https:\u002F\u002Fgithub.com\u002Falittlebitweird)\n[![mgerasolo](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSponosor-mgerasolo-blue?logo=github)](https:\u002F\u002Fgithub.com\u002Fmgerasolo)\n\n## Showcase Video\n\n[![Edit Mind Demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIliasHad_edit-mind_readme_5b6547d22cc6.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=YrVaJ33qmtg)  \n*Click to watch a walkthrough of Edit Mind's core features.*\n\n---\n\n## Why Edit Mind?\n- Search videos by spoken words, objects, faces, etc...\n- Runs fully **locally**, respecting privacy.\n- Works on **any computer or server with Docker installed**.\n- Uses AI for rich metadata extraction and semantic search.\n\n## Core Features\n\n*   **Video Indexing and Processing:** A background service watches for new video files and queues them for AI-powered analysis.\n*   **AI-Powered Video Analysis:** Extracts metadata like face recognition, transcription, object & text detection, scene analysis, and more.\n*   **Vector-Based Semantic Search:** Powerful natural language search capabilities on video content using ChromaDB.\n---\n\n\n### Core Technologies\n\n| Area | Technology |\n| :---------------- | :------------------------------------------------ |\n| **Monorepo**      | [pnpm workspaces](https:\u002F\u002Fpnpm.io\u002Fworkspaces)   |\n| **Containerization** | [Docker](https:\u002F\u002Fwww.docker.com\u002F), [Docker Compose](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002F) |\n| **Web Service**      | [React Router V7](https:\u002F\u002Freactrouter.com\u002F), [TypeScript](https:\u002F\u002Fwww.typescriptlang.org\u002F), [Vite](https:\u002F\u002Fvitejs.dev\u002F) |\n| **Background Jobs Service** | [Node.js](https:\u002F\u002Fnodejs.org\u002F), [Express.js](https:\u002F\u002Fexpressjs.com\u002F), [BullMQ](https:\u002F\u002Fbullmq.io\u002F) |\n| **ML Sevice**       | [Python](https:\u002F\u002Fwww.python.org\u002F), [PyAV](https:\u002F\u002Fgithub.com\u002FPyAV-Org\u002FPyAV), [PyTorch](https:\u002F\u002Fpytorch.org\u002F), OpenAI Whisper, Google Gemini or Ollama (Used for NLP) |\n| **Vector Database** | [ChromaDB](https:\u002F\u002Fwww.trychroma.com\u002F)           |\n| **Relational DB** | [PostgreSQL](https:\u002F\u002Fwww.postgresql.org\u002F) (via [Prisma ORM](https:\u002F\u002Fwww.prisma.io\u002F)) |\n\n---\n\n## Getting Started\n\nEdit Mind uses Docker Compose to run everything in containers.\n\n## Setup Video\n\n[![Edit Setup Guide](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIliasHad_edit-mind_readme_ef364eed24a4.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=WVNuP8ic3uY)  \n*Click to watch a walkthrough of Edit Mind's setup guide.*\n\n### Prerequisites\n\n*   [Docker Desktop](https:\u002F\u002Fwww.docker.com\u002Fproducts\u002Fdocker-desktop\u002F) installed and running.\n*   That's it! Everything else runs in containers.\n\n### 1. Project Setup\n```bash\nmkdir edit-mind\ncd edit-mind\n```\n\n### 2. Configure Docker File Sharing\n\n**Important:** Before proceeding, configure Docker to access your media folder.\n\n**macOS\u002FWindows:**\n1. Open Docker Desktop\n2. Go to **Settings** → **Resources** → **File Sharing**\n3. Add the path where your videos are stored (e.g., `\u002FUsers\u002Fyourusername\u002FVideos`)\n4. Click **Apply & Restart**\n\n**Linux:** File sharing is typically enabled by default.\n\n### 3. Configure Environment Variables\n\nEdit Mind uses a **two-file environment configuration**:\n- **`.env`** - Your personal configuration (required)\n- **`.env.system`** - System defaults (required)\n\n#### Step 3.1: Create Your Personal Configuration\n\nCopy the example file and customize it:\n\n```bash\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002F.env.example -o .env\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002F.env.system.example -o .env.system\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002Fdocker-compose.yml -o docker-compose.yml\n ```\n\nIf you have NVIDIA GPU, use `docker-compose.cuda.yml` file instead\n\n```bash\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002Fdocker-compose.cuda.yml -o docker-compose.yml\n ```\n\n**Edit the `.env` file and configure these critical settings:**\n```ini\n# 1. SET YOUR VIDEO FOLDER PATH (REQUIRED)\n# Must match the path you added to Docker File Sharing\nHOST_MEDIA_PATH=\"\u002FUsers\u002Fyourusername\u002FVideos\"\n\n# 2. CHOOSE AI MODEL (Pick one option)\n# Option A: Use Ollama (more private, requires model download)\nUSE_OLLAMA_MODEL=\"true\"\nOLLAMA_HOST=\"http:\u002F\u002F172.17.0.1\"\nOLLAMA_PORT=\"11434\"\nOLLAMA_MODEL=\"qwen2.5:7b-instruct\"\n\n# Please make sure to run ollama server first using this command \n\n# OLLAMA_HOST=0.0.0.0:11434 ollama serve\n# and pull the ollama model first \n# ollama pull qwen2.5:7b-instruct\n\n# Option B: Use Gemini API (requires API key)\nUSE_GEMINI=\"true\"\nGEMINI_API_KEY=\"your-gemini-api-key-from-google-ai-studio\"\n\n# 3. GENERATE SECURITY KEYS (REQUIRED)\n# Generate with: openssl rand -base64 32\nENCRYPTION_KEY=\"your-random-32-char-base64-key\"\n# Generate with: openssl rand -hex 32\nSESSION_SECRET=\"your-random-session-secret\"\n```\n\n**Quick Key Generation:**\n```bash\n# Generate ENCRYPTION_KEY\nopenssl rand -base64 32\n\n# Generate SESSION_SECRET\nopenssl rand -hex 32\n```\n\n\n### 4. Start the Services\n\nStart all services with a single command:\n\n```bash\ndocker compose up\n```\n\n\n### 5. Access the Applications\n\nOnce all services are running (look for \"ready\" messages in logs):\n\n* **Web App:** [http:\u002F\u002Flocalhost:3745](http:\u002F\u002Flocalhost:3745)\n\nIf you're using Safari, use [http:\u002F\u002F127.0.0.1:3745](http:\u002F\u002F127.0.0.1:3745)\n\n### 6. Add Your First Videos\n\n1. Navigate to the web app at `http:\u002F\u002Flocalhost:3745`\n2. Login using `admin@example.com` and the password is `admin`\n3. Navigate to the web app at `http:\u002F\u002Flocalhost:3745\u002Fapp\u002Fsettings`\n4. Click **\"Add Folder\"**\n3. Select a folder from your `HOST_MEDIA_PATH` location\n4. Navigate to the folder details page and click on `Rescan`\n4. The background job service will automatically start processing your videos and will start watching for new video file events \n\n### Special Thanks\n\nA huge thank you to the `r\u002Fselfhosted` community on Reddit for their amazing support, valuable feedback, and encouragement.\n\nOriginal discussion:\nhttps:\u002F\u002Fwww.reddit.com\u002Fr\u002Fselfhosted\u002Fcomments\u002F1ogis3j\u002Fi_built_a_selfhosted_alternative_to_googles_video\u002F\n\n\n## Contributing\n\nWe welcome contributions of all kinds! Please read `CONTRIBUTING.md` for details on our code of conduct and the process for submitting pull requests.\n\n## Development Setup\n\nFollow the steps below if you want to extend the app functionality or fix bugs.\n\n### 1. Clone the Repository\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Filiashad\u002Fedit-mind\ncd edit-mind\n```\n\n### 2. Setup dev environment\n```bash\ncp .env.system.example docker\u002F.env.system\ncp .env.example docker\u002F.env.dev\n```\n\n### 3. Start docker container in dev mode\n```bash\npnpm install\ncd docker \ndocker-compose -f docker-compose.dev.yml up --build\n```\n\n## Community Presentations\n\n[![Edit Mind at Twelve Labs](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIliasHad_edit-mind_readme_4bd559e2cfe0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=k_aesDa3sFw&t=1272s)  \n*Watch the Edit Mind presentation at Twelve Labs (starts at 21:12)*\n\n---\n---\n## License\n\nThis project is licensed under the Edit Mind License - see the `LICENSE.md` file for details.\n","### Edit Mind：本地视频知识库\n\nEdit Mind 可以对您的视频进行索引（包括转录、帧分析和多模态嵌入），并且您可以通过自然语言搜索视频或特定的视频场景。\n\n> **开发状态**：Edit Mind 目前处于 **积极开发中**，**尚未达到生产就绪状态**。\n> 您可能会遇到功能不完整或偶尔出现的 bug。我们欢迎贡献者帮助我们实现 **v1.0**！\n\n\n[![欢迎提交 PR](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![ChromaDB](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVectorDB-ChromaDB-purple.svg)](https:\u002F\u002Fwww.trychroma.com\u002F)\n[![Docker](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FContainerized-Docker-blue.svg)](https:\u002F\u002Fwww.docker.com\u002F)\n\n\n---\n注：（Edit Mind 这个名字来源于“Video Editor Mind”，因此它将成为未来编辑的第二大脑和得力助手）\n\n## 本项目的赞助商\n\n[![brycedev](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSponosor-brycedev-blue?logo=github)](https:\u002F\u002Fgithub.com\u002Fbrycedev)\n[![alittlebitweird](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSponosor-alittlebitweird-blue?logo=github)](https:\u002F\u002Fgithub.com\u002Falittlebitweird)\n[![mgerasolo](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSponosor-mgerasolo-blue?logo=github)](https:\u002F\u002Fgithub.com\u002Fmgerasolo)\n\n## 展示视频\n\n[![Edit Mind 演示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIliasHad_edit-mind_readme_5b6547d22cc6.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=YrVaJ33qmtg)  \n*点击观看 Edit Mind 核心功能的演示。*\n\n---\n\n## 为什么选择 Edit Mind？\n- 可以通过语音、物体、人脸等关键词搜索视频。\n- 完全在本地运行，保护用户隐私。\n- 适用于任何安装了 Docker 的电脑或服务器。\n- 利用 AI 提取丰富的元数据并实现语义搜索。\n\n## 核心功能\n\n*   **视频索引与处理**：后台服务会监控新上传的视频文件，并将其加入队列进行 AI 驱动的分析。\n*   **AI 驱动的视频分析**：提取诸如人脸识别、语音转录、物体与文本检测、场景分析等元数据。\n*   **基于向量的语义搜索**：利用 ChromaDB 对视频内容实现强大的自然语言搜索能力。\n---\n\n\n### 核心技术\n\n| 领域 | 技术 |\n| :---------------- | :------------------------------------------------ |\n| **Monorepo**      | [pnpm workspaces](https:\u002F\u002Fpnpm.io\u002Fworkspaces)   |\n| **容器化** | [Docker](https:\u002F\u002Fwww.docker.com\u002F)、[Docker Compose](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002F) |\n| **Web 服务**      | [React Router V7](https:\u002F\u002Freactrouter.com\u002F)、[TypeScript](https:\u002F\u002Fwww.typescriptlang.org\u002F)、[Vite](https:\u002F\u002Fvitejs.dev\u002F) |\n| **后台任务服务** | [Node.js](https:\u002F\u002Fnodejs.org\u002F)、[Express.js](https:\u002F\u002Fexpressjs.com\u002F)、[BullMQ](https:\u002F\u002Fbullmq.io\u002F) |\n| **ML 服务**       | [Python](https:\u002F\u002Fwww.python.org\u002F)、[PyAV](https:\u002F\u002Fgithub.com\u002FPyAV-Org\u002FPyAV)、[PyTorch](https:\u002F\u002Fpytorch.org\u002F)、OpenAI Whisper、Google Gemini 或 Ollama（用于 NLP） |\n| **向量数据库** | [ChromaDB](https:\u002F\u002Fwww.trychroma.com\u002F)           |\n| **关系型数据库** | [PostgreSQL](https:\u002F\u002Fwww.postgresql.org\u002F)（通过 [Prisma ORM](https:\u002F\u002Fwww.prisma.io\u002F)） |\n\n---\n\n## 快速开始\n\nEdit Mind 使用 Docker Compose 在容器中运行所有服务。\n\n## 设置视频\n\n[![设置指南](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIliasHad_edit-mind_readme_ef364eed24a4.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=WVNuP8ic3uY)  \n*点击观看 Edit Mind 设置指南的演示。*\n\n### 前置条件\n\n*   已安装并运行 [Docker Desktop](https:\u002F\u002Fwww.docker.com\u002Fproducts\u002Fdocker-desktop\u002F)。\n*   就这些！其余部分都在容器中运行。\n\n### 1. 创建项目目录\n```bash\nmkdir edit-mind\ncd edit-mind\n```\n\n### 2. 配置 Docker 文件共享\n\n**重要提示**：在继续之前，请配置 Docker 以访问您的媒体文件夹。\n\n**macOS\u002FWindows：**\n1. 打开 Docker Desktop\n2. 转到 **设置** → **资源** → **文件共享**\n3. 添加存储视频的路径（例如 `\u002FUsers\u002Fyourusername\u002FVideos`）\n4. 点击 **应用并重启**\n\n**Linux**：文件共享通常默认启用。\n\n### 3. 配置环境变量\n\nEdit Mind 使用 **两文件环境配置**：\n- **`.env`** - 您的个人配置（必填）\n- **`.env.system`** - 系统默认值（必填）\n\n#### 步骤 3.1：创建您的个人配置\n\n复制示例文件并进行自定义：\n\n```bash\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002F.env.example -o .env\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002F.env.system.example -o .env.system\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002Fdocker-compose.yml -o docker-compose.yml\n ```\n\n如果您有 NVIDIA GPU，请使用 `docker-compose.cuda.yml` 文件代替：\n\n```bash\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002Fdocker-compose.cuda.yml -o docker-compose.yml\n ```\n\n**编辑 `.env` 文件并配置以下关键设置：**\n```ini\n# 1. 设置您的视频文件夹路径（必填）\n# 必须与您添加到 Docker 文件共享中的路径一致\nHOST_MEDIA_PATH=\"\u002FUsers\u002Fyourusername\u002FVideos\"\n\n# 2. 选择 AI 模型（任选其一）\n# 选项 A：使用 Ollama（更私密，需下载模型）\nUSE_OLLAMA_MODEL=\"true\"\nOLLAMA_HOST=\"http:\u002F\u002F172.17.0.1\"\nOLLAMA_PORT=\"11434\"\nOLLAMA_MODEL=\"qwen2.5:7b-instruct\"\n\n# 请确保先使用以下命令启动 Ollama 服务器\n\n# OLLAMA_HOST=0.0.0.0:11434 ollama serve\n# 并且先拉取 Ollama 模型\n# ollama pull qwen2.5:7b-instruct\n\n# 选项 B：使用 Gemini API（需要 API 密钥）\nUSE_GEMINI=\"true\"\nGEMINI_API_KEY=\"来自 Google AI Studio 的您的 Gemini API 密钥\"\n\n# 3. 生成安全密钥（必填）\n# 使用 openssl rand -base64 32 生成\nENCRYPTION_KEY=\"您的随机 32 字符 Base64 密钥\"\n# 使用 openssl rand -hex 32 生成\nSESSION_SECRET=\"您的随机会话密钥\"\n```\n\n**快速生成密钥：**\n```bash\n# 生成 ENCRYPTION_KEY\nopenssl rand -base64 32\n\n# 生成 SESSION_SECRET\nopenssl rand -hex 32\n```\n\n\n### 4. 启动服务\n\n只需一条命令即可启动所有服务：\n\n```bash\ndocker compose up\n```\n\n\n### 5. 访问应用程序\n\n当所有服务都启动并运行时（查看日志中的“ready”消息）：\n\n* **Web 应用程序**：[http:\u002F\u002Flocalhost:3745](http:\u002F\u002Flocalhost:3745)\n\n如果您使用的是 Safari 浏览器，请访问 [http:\u002F\u002F127.0.0.1:3745](http:\u002F\u002F127.0.0.1:3745)\n\n### 6. 添加您的第一批视频\n\n1. 打开网页应用 `http:\u002F\u002Flocalhost:3745`\n2. 使用 `admin@example.com` 登录，密码为 `admin`\n3. 进入网页应用的设置页面 `http:\u002F\u002Flocalhost:3745\u002Fapp\u002Fsettings`\n4. 点击 **“添加文件夹”**\n3. 从您的 `HOST_MEDIA_PATH` 位置选择一个文件夹\n4. 进入该文件夹的详情页面，点击 **“重新扫描”**\n4. 后台作业服务将自动开始处理您的视频，并持续监控新的视频文件事件。\n\n### 特别感谢\n\n非常感谢 Reddit 上的 `r\u002Fselfhosted` 社区提供的大力支持、宝贵反馈和鼓励。\n\n原始讨论：\nhttps:\u002F\u002Fwww.reddit.com\u002Fr\u002Fselfhosted\u002Fcomments\u002F1ogis3j\u002Fi_built_a_selfhosted_alternative_to_googles_video\u002F\n\n\n## 贡献\n\n我们欢迎各种形式的贡献！请阅读 `CONTRIBUTING.md` 文件，了解我们的行为准则以及提交拉取请求的流程。\n\n## 开发环境搭建\n\n如果您想扩展应用功能或修复 bug，请按照以下步骤操作。\n\n### 1. 克隆仓库\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Filiashad\u002Fedit-mind\ncd edit-mind\n```\n\n### 2. 设置开发环境\n```bash\ncp .env.system.example docker\u002F.env.system\ncp .env.example docker\u002F.env.dev\n```\n\n### 3. 以开发模式启动 Docker 容器\n```bash\npnpm install\ncd docker \ndocker-compose -f docker-compose.dev.yml up --build\n```\n\n## 社区分享\n\n[![Edit Mind 在 Twelve Labs 的演示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIliasHad_edit-mind_readme_4bd559e2cfe0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=k_aesDa3sFw&t=1272s)  \n*观看 Edit Mind 在 Twelve Labs 的演示（从 21 分 12 秒开始）*\n\n---\n---\n## 许可证\n\n本项目采用 Edit Mind 许可证授权——详情请参阅 `LICENSE.md` 文件。","# Edit Mind 快速上手指南\n\nEdit Mind 是一个本地视频知识库工具，支持对视频进行转录、帧分析和多模型嵌入索引。你可以使用自然语言搜索视频内容或特定场景。所有数据均在本地运行，保障隐私安全。\n\n> **注意**：本项目目前处于**积极开发阶段**，尚未达到生产就绪状态，可能存在功能不完整或偶发 Bug。\n\n## 环境准备\n\n### 系统要求\n- 操作系统：macOS、Windows 或 Linux\n- 必须安装并运行 **Docker Desktop** (包含 Docker Compose)\n- 可选：NVIDIA GPU（用于加速 AI 推理，需配置 CUDA）\n\n### 前置依赖\n- [Docker Desktop](https:\u002F\u002Fwww.docker.com\u002Fproducts\u002Fdocker-desktop\u002F)\n- 若使用 Ollama 模型，需预先在宿主机安装并运行 Ollama 服务。\n\n## 安装步骤\n\n### 1. 创建项目目录\n```bash\nmkdir edit-mind\ncd edit-mind\n```\n\n### 2. 配置 Docker 文件共享\n**重要**：必须先让 Docker 能够访问你的视频存储文件夹。\n\n- **macOS\u002FWindows**:\n    1. 打开 Docker Desktop。\n    2. 进入 **Settings** → **Resources** → **File Sharing**。\n    3. 添加存放视频的路径（例如：`\u002FUsers\u002Fyourusername\u002FVideos` 或 `D:\\Videos`）。\n    4. 点击 **Apply & Restart**。\n- **Linux**: 通常默认已启用，无需额外配置。\n\n### 3. 下载配置文件\n根据你的硬件情况选择下载对应的 `docker-compose.yml`。\n\n**通用版本 (CPU):**\n```bash\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002F.env.example -o .env\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002F.env.system.example -o .env.system\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002Fdocker-compose.yml -o docker-compose.yml\n```\n\n**NVIDIA GPU 版本:**\n```bash\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002F.env.example -o .env\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002F.env.system.example -o .env.system\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002FIliasHad\u002Fedit-mind\u002Frefs\u002Fheads\u002Fmain\u002Fdocker-compose.cuda.yml -o docker-compose.yml\n```\n\n### 4. 编辑环境变量 (.env)\n使用编辑器打开 `.env` 文件，配置以下关键项：\n\n```ini\n# 1. 设置视频文件夹路径 (必填)\n# 必须与步骤 2 中添加到 Docker 文件共享的路径一致\nHOST_MEDIA_PATH=\"\u002FUsers\u002Fyourusername\u002FVideos\"\n\n# 2. 选择 AI 模型 (二选一)\n\n# 选项 A: 使用 Ollama (推荐，更隐私，需提前下载模型)\nUSE_OLLAMA_MODEL=\"true\"\nOLLAMA_HOST=\"http:\u002F\u002F172.17.0.1\"\nOLLAMA_PORT=\"11434\"\nOLLAMA_MODEL=\"qwen2.5:7b-instruct\"\n# 注意：使用前需在宿主机运行: \n# OLLAMA_HOST=0.0.0.0:11434 ollama serve\n# ollama pull qwen2.5:7b-instruct\n\n# 选项 B: 使用 Google Gemini API (需 API Key)\n# USE_GEMINI=\"true\"\n# GEMINI_API_KEY=\"your-gemini-api-key-from-google-ai-studio\"\n\n# 3. 生成安全密钥 (必填)\n# 运行下方命令生成随机字符串并填入\nENCRYPTION_KEY=\"your-random-32-char-base64-key\"\nSESSION_SECRET=\"your-random-session-secret\"\n```\n\n**生成密钥命令参考：**\n```bash\n# 生成 ENCRYPTION_KEY\nopenssl rand -base64 32\n\n# 生成 SESSION_SECRET\nopenssl rand -hex 32\n```\n\n### 5. 启动服务\n在项目根目录执行：\n```bash\ndocker compose up\n```\n等待日志中出现 \"ready\" 相关提示，表示服务启动成功。\n\n## 基本使用\n\n### 1. 访问 Web 界面\n打开浏览器访问：\n- 常规浏览器：[http:\u002F\u002Flocalhost:3745](http:\u002F\u002Flocalhost:3745)\n- Safari 浏览器：[http:\u002F\u002F127.0.0.1:3745](http:\u002F\u002F127.0.0.1:3745)\n\n### 2. 登录系统\n- **账号**: `admin@example.com`\n- **密码**: `admin`\n\n### 3. 添加并索引视频\n1. 登录后，进入设置页面：`http:\u002F\u002Flocalhost:3745\u002Fapp\u002Fsettings`\n2. 点击 **\"Add Folder\"**。\n3. 选择你在 `HOST_MEDIA_PATH` 中配置的文件夹。\n4. 进入该文件夹详情页，点击 **\"Rescan\"**。\n5. 后台服务将自动开始处理视频（提取元数据、转录、分析等），并持续监控新文件。\n\n### 4. 搜索视频\n处理完成后，即可在主界面使用自然语言（如“穿红衣服的人”、“关于会议的讨论”）搜索视频片段。","某独立纪录片导演需要整理长达 500 小时的采访与实地拍摄素材，以便快速定位特定人物发言或关键画面进行剪辑。\n\n### 没有 edit-mind 时\n- 只能依靠人工逐段拖拽进度条观看，耗时数周才能粗略浏览完所有素材。\n- 寻找“某位受访者在提到‘环保’时的表情特写”几乎不可能，因为无法同时检索语音内容和画面细节。\n- 视频文件散落在硬盘各处，缺乏统一的元数据索引，经常重复下载或遗漏关键片段。\n- 担心将敏感未公开素材上传至云端 AI 服务会引发泄露风险，导致不敢使用高效的在线分析工具。\n- 团队协作时，成员间沟通成本极高，往往需要口头描述大致时间点，效率低下且容易出错。\n\n### 使用 edit-mind 后\n- 后台自动利用 Whisper 和 YOLO 模型完成全库索引，导演可直接通过自然语言搜索“所有包含红色安全帽的工地场景”。\n- 实现多模态精准定位，输入“张三谈论气候变化时的皱眉镜头”，系统能瞬间定位到具体的秒级时间戳。\n- 所有分析数据本地化存储并建立向量数据库，素材无需出域，彻底保障了独家内容的隐私安全。\n- 基于 Docker 一键部署在任意工作站上，团队成员可共享同一套本地知识库，统一检索标准。\n- 系统持续监控新导入的视频并自动分析，确保最新拍摄的素材也能立即被语义搜索覆盖。\n\nedit-mind 将原本非结构化的海量视频库转化为可对话的本地知识大脑，让创作者从繁琐的查找工作中解放出来，专注于内容本身。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIliasHad_edit-mind_5b6547d2.jpg","IliasHad","Ilias Haddad ","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FIliasHad_bce0b1ff.jpg","Full stack developer",null,"https:\u002F\u002Fgithub.com\u002FIliasHad",[79,83,87,91,95,99],{"name":80,"color":81,"percentage":82},"TypeScript","#3178c6",88.9,{"name":84,"color":85,"percentage":86},"Python","#3572A5",10.5,{"name":88,"color":89,"percentage":90},"JavaScript","#f1e05a",0.3,{"name":92,"color":93,"percentage":94},"OCaml","#ef7a08",0.2,{"name":96,"color":97,"percentage":98},"PLpgSQL","#336790",0.1,{"name":100,"color":101,"percentage":102},"CSS","#663399",0,1279,88,"2026-04-06T00:24:36","NOASSERTION","Linux, macOS, Windows","非必需。若使用 NVIDIA GPU 加速，需安装支持 CUDA 的 Docker 环境（使用 docker-compose.cuda.yml），具体显存和 CUDA 版本未说明；也可选择 CPU 运行或使用云端 API (Gemini)。","未说明",{"notes":111,"python":112,"dependencies":113},"1. 必须安装并运行 Docker Desktop 及 Docker Compose。\n2. macOS\u002FWindows 用户需在 Docker 设置中手动配置媒体文件夹的文件共享权限。\n3. 支持两种 AI 模式：本地私有模式（需自行部署 Ollama 并下载模型如 qwen2.5:7b-instruct）或云端 API 模式（需配置 Google Gemini API Key）。\n4. 首次运行前需生成加密密钥 (ENCRYPTION_KEY) 和会话密钥 (SESSION_SECRET)。\n5. 项目目前处于活跃开发阶段，尚未达到生产就绪状态，可能存在功能不完整或 Bug。","未说明 (ML 服务基于 Python，具体版本未在文档中指定)",[114,115,116,117,118,119,120,121,122,123],"PyTorch","PyAV","OpenAI Whisper","ChromaDB","PostgreSQL","Node.js","Express.js","BullMQ","Ollama","Google Gemini",[13,14,52,15],[126,127,128,129,130,131,132,133,134,135],"ai","face-recognition","ml","video-indexing","video-processing","computer-vision","video-editing","deepface","self-hosted","videos","2026-03-27T02:49:30.150509","2026-04-06T15:03:05.381031",[],[140,145,150,155,160,165,170,175,180,185,190,195,200,205],{"id":141,"version":142,"summary_zh":143,"released_at":144},117349,"v0.20.4","## 概述\n这是一个小型补丁版本，修复了一个与视频转码（H.265 编码）相关的单一 bug。该 bug 导致视频无法在浏览器中播放，但仍然能够通过视频处理流水线。\n\n## Bug 修复\n- 添加对 H.265 视频及其他不兼容浏览器的编码格式的支持，通过由 FFmpeg 处理的后台任务转码路由实现：由 @atomixy 报告。\n- 扫描文件夹后刷新文件夹任务：由 @atomixy 报告。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fcompare\u002Fv0.20.3...v0.20.4","2026-03-17T22:47:05",{"id":146,"version":147,"summary_zh":148,"released_at":149},117350,"v0.20.3","## 概述\n这是一个小型的补丁版本，修复了两个问题：一是视频转码（MXF 转 MP4）时出现的“未找到 moov 原子”错误；二是文件监视器相关的问题。\n\n## 错误修复\n- 更新文件监视服务，使其在连续一分钟内没有写入事件时，再将视频文件加入视频处理队列，以避免添加不完整的视频文件。\n- 在使用 FFmpeg 将 MXF 转码为 MP4 时，添加 mov 原子。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fcompare\u002Fv0.20.2...v0.20.3","2026-03-15T23:38:49",{"id":151,"version":152,"summary_zh":153,"released_at":154},117351,"v0.20.2","## 概述\r\n这是一个小型补丁版本，修复了与 H.265 编解码器相关的 bug、视频在处理阶段卡住的问题，并进行了一些小幅更新。\n\n\n## Bug 修复\n- 添加对 NVDEC 支持的编解码器（hevc、h264、vp9、vp8、av1、mpeg2、mpeg4、mjpeg、vc1）的支持，具备自动检测功能及优雅的 CPU 回退机制 #104，由 @atomixy 提供\n- 在切换到其他处理阶段后，重置视频处理各阶段的进度\n- 为文件夹、任务及任务列表页面添加分页 UI。#104，由 @atomixy 提供\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fcompare\u002Fv0.20.1...v0.20.2","2026-03-15T21:47:32",{"id":156,"version":157,"summary_zh":158,"released_at":159},117352,"v0.20.1","## 概述\r\n一个小型补丁版本，修复了一个与嵌入模型相关的 bug（protobuf 解析问题）。https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers.js\u002Fissues\u002F1228\n\n## Bug 修复\n- 添加了一个包装函数，用于在嵌入模型文件损坏时将其删除。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fcompare\u002Fv0.20.0...v0.20.1","2026-03-14T14:29:16",{"id":161,"version":162,"summary_zh":163,"released_at":164},117353,"v0.20.0","## 概述\n\n本次发布重点在于新增对 MXF 视频文件的支持、优化新手引导体验，以及更好地管理您的视频处理任务。\n\n## 重大变更\n- **新增对 MXF 视频的支持**：Edit Mind 现已支持 MXF 文件。我们引入了一个预处理后台任务，用于将 MXF 文件转码为 MP4，以便在后续的视频处理阶段使用，并在浏览器中直接播放视频。由于之前的处理流程不支持 MXF 格式，因此无法在浏览器中直接播放 MXF 视频。  \n\n注意：您需要在 `docker-compose.yml` 文件中更新 background-jobs 服务的媒体卷配置为 `- ${HOST_MEDIA_PATH:-.\u002Fmedia}:\u002Fmedia\u002Fvideos:rw`，以赋予写入权限。\n\n## 新功能\n1. **优化新手引导体验**：我们一直在努力改进新手引导流程。现新增下载示例视频的功能（https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Ftree\u002Fmain\u002Fvideos），方便您快速导入并处理短视频，从而更快上手使用 Edit Mind 的各项功能。  \n\n注意：您需要在 `docker-compose.yml` 文件中更新 background-jobs 服务的媒体卷配置为 `- ${HOST_MEDIA_PATH:-.\u002Fmedia}:\u002Fmedia\u002Fvideos:rw`，以赋予写入权限。\n\n2. **新增取消与重试任务操作**：我们新增了取消和重试任务的操作，帮助您更高效地管理视频处理任务。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fcompare\u002Fv0.14.5...v0.20.0","2026-03-14T10:32:38",{"id":166,"version":167,"summary_zh":168,"released_at":169},117354,"v0.14.5","## 概述\n社区功能请求。\n\n## 功能\n- 使文件夹深度扫描可配置，通过添加 `MAX_SCAN_DEPTH` 环境变量，方便扫描嵌套文件夹（@mgerasolo 提出）：#97\n- 在服务侧边栏部分添加 Bull 仪表盘链接，并引入 `ENABLE_QUEUE_UI` 环境变量，以启用 Bull 消息队列仪表盘访问权限（@mgerasolo 提出）：#98\n- 添加自定义 UI、API 端点和后台任务处理器，允许用户更新视频位置并添加自定义标签，通过将其嵌入为向量文档文本，实现基于文本的搜索功能。（@johnsicoli 提出）：#96\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fcompare\u002Fv0.14.4...v0.14.5","2026-03-10T00:17:09",{"id":171,"version":172,"summary_zh":173,"released_at":174},117355,"v0.14.4","## 概述\n这是一个小型补丁版本，修复了在 Windows 11 上使用 WSL 2 时与音频嵌入相关的一个 bug。\n\n## Bug 修复\n- 更新网页注册页面的测试用例。\n\n## 功能改进\n- 添加环境变量 `DISABLE_AUDIO_EMBEDDINGS` 和 `DISABLE_VISUAL_EMBEDDINGS`，用于禁用视觉或音频嵌入阶段。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fcompare\u002Fv0.14.3...v0.14.4","2026-03-04T23:07:30",{"id":176,"version":177,"summary_zh":178,"released_at":179},117356,"v0.14.3","## 概述\r\n这是一个小型补丁版本，修复了 v0.14.2 中的两个问题。\n\n## 问题修复\n1. 修复了在无 GPU 环境下运行时，Web Docker 服务中 CUDA 可用性检查器的故障。\n2. 修复了在 Docker 服务尚未就绪时，重新扫描文件夹按钮仍保持启用状态的问题。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fcompare\u002Fv0.14.2...v0.14.3","2026-02-25T13:45:30",{"id":181,"version":182,"summary_zh":183,"released_at":184},117357,"v0.14.2","## 概述\n\n本次发布主要聚焦于整个视频处理流水线的性能提升、向以 Docker 为主导的部署架构的重大转变，以及多项重要 bug 修复。\n\n## 破坏性变更\n- **桌面应用移除**：我们正全面转向 Docker 部署。基于 Electron 的桌面应用已被移除，取而代之的是通过 Docker Compose 运行的 Web 界面。未来我们可能会在独立的代码库中开发一个单独的桌面客户端。\n- **`node-llama-cpp` 移除**：通过 `node-llama-cpp` 提供的本地 LLM 支持已被移除。AI 后端选项现仅限于 Ollama 和 Gemini。相比 `node-llama-cpp`，使用 Ollama 更加简便。\n\n## 新特性\n1. **基准测试页面**：新增了一个用于分享和调试视频处理性能指标的页面，包括各阶段的帧分析指标。访问地址：`http:\u002F\u002Flocalhost:3745\u002Fapp\u002Fbenchmarks`\n3. **嵌入服务 GPU 支持**：嵌入服务现已支持通过 CUDA 实现 GPU 加速。\n4. **使用 PyAV 进行帧提取**：将视频帧提取工具从 OpenCV 切换至 PyAV，显著提升了帧提取速度及兼容性。同时，新增对 NVDEC 的支持，可在 NVIDIA GPU 上进一步加速帧提取。\n5. **场景缩略图生成由 Python 完成**：为提升性能与一致性，场景缩略图的生成已从 Node.js 队列迁移至 Python 脚本中进行。此举还确保缩略图准确反映用于帧分析的具体帧。\n\n## Bug 修复\n1. 修复了转录模型的 GPU 支持问题，解决了 `int8_float16` 相关问题。#54\n2. 重构并优化了 Docker 镜像，以加快构建速度。\n3. 修复了向量主集合元数据更新的问题。\n4. 修复了按文本查询搜索场景时返回错误结果的 bug。\n6. 修复了生成缩略图时的 JPEG 质量设置问题。\n7. 改进了进度回调相关的错误处理机制，避免静默失败。\n8. 优化了新用户的引导流程，使系统能够在开始处理视频之前先下载 ML 服务所需的模型。#86\n9. 移除了 `ffmpeg-installer` npm 包。现直接从 Docker 镜像中获取 FFmpeg（此前该包用于同时支持 Docker 和桌面应用）。\n10. 修复了各类 TypeScript 类型相关问题。\n\n## 性能改进\n- 对插件进行了大幅性能优化。\n- 优化了视频帧提取流水线。\n- 在帧分析过程中开始跟踪各阶段的性能指标。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fcompare\u002Fv0.14.1...v0.14.2","2026-02-24T20:38:16",{"id":186,"version":187,"summary_zh":188,"released_at":189},117358,"v0.14.1","## 概述\n\n本次发布在视频处理可靠性、测试基础设施以及用户界面方面带来了显著的改进。\n\n## 新特性\n\n1. 为机器学习服务新增了支持 GPU（通过 CUDA）的 Docker 镜像。\n2. 为后台任务服务新增了对 FFmpeg 的支持，使其能够通过 CUDA 利用 GPU。\n3. 添加了环境变量 `MAX_CONCURRENT_TRANSCRIPTIONS` 和 `MAX_CONCURRENT_ANALYSES`，用于控制同时并行运行的视频转录和帧分析任务数量。\n\n## 问题修复\n\n1. 在 Web 界面和检查器中添加了基于 GitHub 发布版本的应用版本显示。\n2. 修复了 Immich 导入器更新按钮的问题。\n4. 使用 BullMQ 移除失败的视频处理任务。\n5. 对于文件夹层级为两层或以上的视频处理任务，更新其文件夹 ID。\n\n#### 注意事项：\n\n启用 GPU 的机器学习服务镜像大小约为 10.7 GB（而仅 CPU 的镜像为 3.6 GB），这是由于一些不可避免的依赖项所致：\n\n1. TensorFlow（1.8 GB）—— DeepFace 人脸识别功能所必需（待 [此问题](https:\u002F\u002Fgithub.com\u002Fserengil\u002Fdeepface\u002Fissues\u002F1512) 解决后，我们将考虑使用 PyTorch 作为人脸识别的后端）。\n2. PyTorch + CUDA（1.5 GB）—— YOLO 物体检测功能所必需。\n3. NVIDIA CUDA 运行时库（2.8 GB）—— 基础 GPU 库。\n\n\n感谢 @alikhanich 的帮助 :)\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fcompare\u002Fv0.14.0...v0.14.1","2026-01-30T13:09:21",{"id":191,"version":192,"summary_zh":193,"released_at":194},117359,"v0.14.0","## Overview\r\n\r\nThis release brings significant improvements to video processing reliability, testing infrastructure, and UI improvements.\r\n\r\n## New Features\r\n\r\n1. Implemented ML models caching for Ultralytics, Hugging Face, and PyTorch to reduce redundant downloads. \r\n2. Added video model upsert functionality for improved data persistence.\r\n\r\n## Bug Fixes\r\n\r\n1. Updated face recognizer to reduce false negatives and improve accuracy  (ML service). \r\n2. Fixed multiple Docker image configuration issues for better stability. \r\n3. Increased Redis timeout and Bull MQ lock duration settings to handle long video processing tasks more reliably (Background-jobs service). \r\n4. Removed unnecessary heartbeat mechanism and fixed project details form functionality (ML service).\r\n5. Improve Immich face importer UI\u002FUX with a better way to visualize the progress of importing the faces and an option to test the connection before saving or updating the configuration\r\n\r\n## Testing\r\n\r\nAdded comprehensive test cases to improve code coverage and reliability, including background jobs testing.\r\n\r\n## Infrastructure\r\n\r\nUpdated Docker compose configurations and enhanced caching mechanisms for ML models.\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fcompare\u002Fv0.13.1...v0.14.","2026-01-28T12:23:55",{"id":196,"version":197,"summary_zh":198,"released_at":199},117360,"v0.13.0","## Overview\r\n\r\nI've been working over the last couple of weeks to make the proof of concept for Edit Mind have the features the users asked for and the ones that I was looking to have when I started this project.\r\n\r\nIn this release, I've improved the PostgreSQL database schema that will store key data that will be accessed by the user like Videos, Chats, Collections, and Projects.\r\n\r\n#### Split main video indexer into stages:\r\nInstead of having one background job that will handle all tasks, we now have multiple stages starting from transcription, frame analysis, scene creation, text embedding, visual embedding, audio embedding and the final job will be importing the video into PostgresDB and cleaning up files.\r\n\r\n#### New DB Models:\r\n\r\nI have added three new database models:\r\n\r\n- Projects: will be responsible for organizing video files into a project that will contain instructions when we're chatting with Edit Mind assistant. For example, I have created a project for my YouTube videos and I added more context about what I'm presenting in these videos. When I'm chatting with the assistant, I can limit the search to only the videos I have in the project and the assistant can have more context about the project itself.\r\n\r\n- Collections: will be auto-generated to help you organize your video library. It will be something like the iOS photos app. We have pre-defined collection definitions and we run them over the 3 vector database collections that we have. For example, you can have a collection of \"Happy moments\", \"Conversations and Talks\", \"Moments captured at Location X\" or \"Moments captured with Person X\".\r\n\r\n- Exports: when you're chatting with the assistant, you can have the option to stitch the selected scenes that you get back from the assistant or export them as a ZIP file and this is what exports is about.\r\n\r\n#### Audio and Visual Embedding:\r\n\r\nWe have the text embedding as the base collection but it was limited for the project. I added support for visual or image embedding.\r\n\r\nFor visual embedding, we extract 5 keyframes per video scene (a video segment of the full video that will be shorter for faster processing) using FFmpeg, get the embedding using `clip-vit-base-patch32` and save them in the vector DB with metadata like source, start and end time, faces with the same document ID as the text collection.\r\n\r\nFor audio embedding, we extract the audio from the video scene using FFmpeg, get the embedding using `clap-htsat-unfused` and save them in the vector DB with metadata like source, start and end time, faces with the same document ID as the text collection.\r\n\r\n#### Improved Unknown Face Clustering:\r\n\r\nWhen we're passing the video frame into the Face recognition plugin using Deep Face package, we will recognize the face in the frame based on your personal faces library. When we can't recognize the face, we save them in the unknown face registry and folders. I worked on new improvements to compare the face in the current frame with the one in the next frame to check if they're similar or not. If they're similar, we'll update the face X appearance in the JSON file.\r\n\r\nSo, the user later on in the UI can label the face with less repetition.\r\n\r\n#### Improved Text Search:\r\n\r\nI've worked on improving the text search after adding text, visual and audio collections. When you're typing now in the search input, you may get search suggestions and it could be the face name, object, transcription or detected text. If not, we'll take the search query, convert it to embedding for each vector collection (text, visual and audio) and run the search across all 3 and get back the combined results.\r\n\r\n#### New Image Search:\r\n\r\nBecause we added the visual collection, we can now have the option to search over the videos using an image. We take the uploaded image, convert it to image embedding and search over the visual collection and then get back the exact video scenes where the image or a similar one has appeared.\r\n\r\n#### Improved Python Script:\r\n\r\nI have split the python script from the background jobs docker service. Now we have 3 docker services. The python script will communicate with the background job docker service using web socket.\r\n\r\nAlso, I've worked on refactoring the python script into smaller modular files to make it easier for new contributors and myself to develop and debug.\r\n\r\nWe're still working on getting the system working properly. Previously the focus was on getting the proof of concept working but right now, the goal is to make it work reliably, improve the code quality, and implement best practices.","2026-01-15T19:07:43",{"id":201,"version":202,"summary_zh":203,"released_at":204},117361,"v0.12.0","## Overview\r\n\r\nWith this release, we can support Linux ARM64 and AMD64. I dropped support of the [face_recongition](https:\u002F\u002Fpypi.org\u002Fproject\u002Fface-recognition), which was responsible for face recognition over video frames, but I had a lot of issues getting it to work cross platforms (arm specially) [this issue](https:\u002F\u002Fpypi.org\u002Fproject\u002Fface-recognition\u002F).\r\n\r\nI switched to using [deepface](https:\u002F\u002Fpypi.org\u002Fproject\u002Fdeepface\u002F), which was easier to migrate, and I don't need to precompile dlib for the project use case and the model that I'm using (```VGG-Face```). And reduce the Docker build time and image size.  [More details here](https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fblob\u002Fdff28e0c0ae56910e7a55fcfbdfb5822aa16bfb9\u002Fpython\u002Fface_recognizer.py#L113)\r\n\r\nAnd now, the face labeling will be folder-based, and we don't need to load face encoding into a json file. I can pass the faces folder to deepface and they handle the rest.   [More details here](https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fblob\u002Fdff28e0c0ae56910e7a55fcfbdfb5822aa16bfb9\u002Fpython\u002Fface_recognizer.py#L98)\r\n\r\n\r\nAnd I dropped the emotion detection plugin, and now I'm using face recognition to do both in one shot (face and emotion recognized). [More details here](https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fblob\u002Fdff28e0c0ae56910e7a55fcfbdfb5822aa16bfb9\u002Fpython\u002Fface_recognizer.py#L47)\r\n\r\n## New Contributors and special shoutouts \r\n\r\n* @lv-zy made their first contribution in https:\u002F\u002Fgithub.com\u002FIliasHad\u002Fedit-mind\u002Fpull\u002F17\r\n* and more contributions to come :) ","2025-12-26T18:19:25",{"id":206,"version":207,"summary_zh":208,"released_at":209},117362,"v0.11.0","# 📝 Changelog (v11.0-alpha)\r\n\r\n### New Updates \r\n\r\n- **Full Docker & Docker Compose Support**  \r\n  Edit Mind can now be deployed entirely via Docker Compose, offering a consistent, frictionless setup on any machine or server.\r\n\r\n- **Pre-built Docker Image**  \r\n  An official pre-built Docker image is now available, enabling instant startup without manual builds.\r\n\r\nSo, the setup process got simpler:\r\n\r\n1. Clone the Repository\r\n\r\n```bash\r\ngit clone https:\u002F\u002Fgithub.com\u002Filiashad\u002Fedit-mind\r\ncd edit-mind\r\n```\r\n\r\n2. Set up the environment variables\r\n\r\n```bash\r\ncp .env.example .env\r\ncp .env.system.example .env.system\r\n```\r\n\r\n3. Run the Docker containers\r\n\r\n```bash\r\ndocker compose up\r\n```\r\n\r\n\r\n- **Immich Integration (Face Labels)**  \r\n  Edit Mind now integrates with **Immich** to automatically import face labels.  \r\n\r\n- **Web UI**  \r\n  Edit Mind now includes a Web interface (http:\u002F\u002Flocalhost:3745) alongside the Desktop app, making it accessible from:\r\n  - Home servers  \r\n  - NAS systems  \r\n  - Cloud servers  \r\n\r\n\r\n## 🧱 Summary\r\n- Added Docker Compose workflows for backend, frontend, and background jobs  \r\n- Integrated Immich face label syncing into the analysis pipeline  \r\n- Published a pre-built Docker image for one-command deployment  \r\n- Expanded architecture from **desktop-only** to **desktop + web server**\r\n\r\n\r\n","2025-12-07T11:52:25"]