[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-hkchengrex--Cutie":3,"tool-hkchengrex--Cutie":61},[4,18,28,36,45,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":24,"last_commit_at":25,"category_tags":26,"status":17},9989,"n8n","n8n-io\u002Fn8n","n8n 是一款面向技术团队的公平代码（fair-code）工作流自动化平台，旨在让用户在享受低代码快速构建便利的同时，保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点，帮助用户轻松连接 400 多种应用与服务，实现复杂业务流程的自动化。\n\nn8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”：既可以通过直观的可视化界面拖拽节点搭建流程，也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外，n8n 原生集成了基于 LangChain 的 AI 能力，支持用户利用自有数据和模型构建智能体工作流。在部署方面，n8n 提供极高的自由度，支持完全自托管以保障数据隐私和控制权，也提供云端服务选项。凭借活跃的社区生态和数百个现成模板，n8n 让构建强大且可控的自动化系统变得简单高效。",184740,2,"2026-04-19T23:22:26",[16,14,13,15,27],"插件",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"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":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":24,"last_commit_at":42,"category_tags":43,"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 真正成长为懂上",161147,"2026-04-19T23:31:47",[14,13,44],"语言模型",{"id":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":24,"last_commit_at":51,"category_tags":52,"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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":24,"last_commit_at":59,"category_tags":60,"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",[27,13,15,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":76,"owner_website":79,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":10,"env_os":90,"env_gpu":91,"env_ram":92,"env_deps":93,"category_tags":99,"github_topics":101,"view_count":24,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":110,"updated_at":111,"faqs":112,"releases":143},9878,"hkchengrex\u002FCutie","Cutie","[CVPR 2024 Highlight] Putting the Object Back Into Video Object Segmentation","Cutie 是一款专为视频对象分割设计的开源 AI 框架，曾荣获 CVPR 2024 亮点论文奖。它的核心任务是在视频序列中精准地识别并追踪特定物体，生成逐帧的掩码图像。针对以往模型在长视频中容易丢失目标或产生闪烁的问题，Cutie 通过引入更先进的记忆机制，显著提升了分割结果的一致性、鲁棒性以及运行速度，真正实现了将“物体”重新置于视频分割的核心位置。\n\n除了提供高效的命令行脚本供批量处理外，Cutie 还内置了交互式图形界面工具，支持用户实时干预修正分割结果。其独特的技术亮点在于集成了“永久记忆”功能，允许用户在长时间视频中灵活添加或删除跟踪对象，从而获得更强的可控性。\n\n这款工具非常适合计算机视觉研究人员、视频编辑开发者以及需要高精度抠像的专业设计师使用。对于希望在自己的项目中集成视频分割功能，或者需要处理复杂动态场景的用户来说，Cutie 凭借其清晰的代码结构和预训练模型，提供了一个既强大又易于上手的解决方案。无论是学术研究还是实际工程落地，它都能帮助使用者高效地完成从静态图像到动态视频的对象追踪任务。","# [Putting the Object Back into Video Object Segmentation](https:\u002F\u002Fhkchengrex.github.io\u002FCutie)\n\n[Ho Kei Cheng](https:\u002F\u002Fhkchengrex.github.io\u002F), [Seoung Wug Oh](https:\u002F\u002Fsites.google.com\u002Fview\u002Fseoungwugoh\u002F), [Brian Price](https:\u002F\u002Fwww.brianpricephd.com\u002F), [Joon-Young Lee](https:\u002F\u002Fjoonyoung-cv.github.io\u002F), [Alexander Schwing](https:\u002F\u002Fwww.alexander-schwing.de\u002F)\n\nUniversity of Illinois Urbana-Champaign and Adobe\n\nCVPR 2024, Highlight\n\n[[arXiV]](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.12982) [[PDF]](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2310.12982.pdf) [[Project Page]](https:\u002F\u002Fhkchengrex.github.io\u002FCutie\u002F) [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1yo43XTbjxuWA7XgCUO9qxAi7wBI6HzvP?usp=sharing)\n\n## Highlight\n\nCutie is a video object segmentation framework -- a follow-up work of [XMem](https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FXMem) with better consistency, robustness, and speed.\nThis repository contains code for standard video object segmentation and a GUI tool for interactive video segmentation.\nThe GUI tool additionally contains the \"permanent memory\" (from [XMem++](https:\u002F\u002Fgithub.com\u002Fmax810\u002FXMem2)) option for better controllability.\n\n![overview](https:\u002F\u002Fimgur.com\u002Fk84c965.jpg)\n\n## Demo Video\n\nhttps:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie\u002Fassets\u002F7107196\u002F83a8abd5-369e-41a9-bb91-d9cc1289af70\n\nSource: https:\u002F\u002Fraw.githubusercontent.com\u002Fhkchengrex\u002FCutie\u002Fmain\u002Fdocs\u002Fsources.txt\n\n## Installation\n\nTested on Ubuntu only.\n\n**Prerequisite:**\n\n- Python 3.8+\n- PyTorch 1.12+ and corresponding torchvision\n\n**Clone our repository:**\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie.git\n```\n\n**Install with pip:**\n\n```bash\ncd Cutie\npip install -e .\n```\n\n(If you encounter the File \"setup.py\" not found error, upgrade your pip with pip install --upgrade pip)\n\n**Download the pretrained models:**\n\n```python\npython cutie\u002Futils\u002Fdownload_models.py\n```\n\n## Quick Start\n\n### Scripting Demo\n\nThis is probably the best starting point if you want to use Cutie in your project. Hopefully, the script is self-explanatory (additional comments in `scripting_demo.py`). If not, feel free to open an issue. For more advanced usage, like adding or removing objects, see `scripting_demo_add_del_objects.py`.\n\n```python\n@torch.inference_mode()\n@torch.cuda.amp.autocast()\ndef main():\n\n    cutie = get_default_model()\n    processor = InferenceCore(cutie, cfg=cutie.cfg)\n    # the processor matches the shorter edge of the input to this size\n    # you might want to experiment with different sizes, -1 keeps the original size\n    processor.max_internal_size = 480\n\n    image_path = '.\u002Fexamples\u002Fimages\u002Fbike'\n    images = sorted(os.listdir(image_path))  # ordering is important\n    mask = Image.open('.\u002Fexamples\u002Fmasks\u002Fbike\u002F00000.png')\n    palette = mask.getpalette()\n    objects = np.unique(np.array(mask))\n    objects = objects[objects != 0].tolist()  # background \"0\" does not count as an object\n    mask = torch.from_numpy(np.array(mask)).cuda()\n\n    for ti, image_name in enumerate(images):\n        image = Image.open(os.path.join(image_path, image_name))\n        image = to_tensor(image).cuda().float()\n\n        if ti == 0:\n            output_prob = processor.step(image, mask, objects=objects)\n        else:\n            output_prob = processor.step(image)\n\n        # convert output probabilities to an object mask\n        mask = processor.output_prob_to_mask(output_prob)\n\n        # visualize prediction\n        mask = Image.fromarray(mask.cpu().numpy().astype(np.uint8))\n        mask.putpalette(palette)\n        mask.show()  # or use mask.save(...) to save it somewhere\n\n\nmain()\n```\n\n### Interactive Demo\n\nStart the interactive demo with:\n\n```bash\npython interactive_demo.py --video .\u002Fexamples\u002Fexample.mp4 --num_objects 1\n```\n\n[See more instructions here](docs\u002FINTERACTIVE.md).\nIf you are running this on a remote server, X11 forwarding is possible. Start by using `ssh -X`. Additional configurations might be needed but Google would be more helpful than me.\n\n![demo](https:\u002F\u002Fi.imgur.com\u002FnqlYqTq.jpg)\n\n(For single video evaluation, see the unofficial script `scripts\u002Fprocess_video.py` from https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie\u002Fpull\u002F16)\n\n## Training and Evaluation\n\n1. [Running Cutie on video object segmentation data.](docs\u002FEVALUATION.md)\n2. [Training Cutie.](docs\u002FTRAINING.md)\n\n## Citation\n\n```bibtex\n@inproceedings{cheng2023putting,\n  title={Putting the Object Back into Video Object Segmentation},\n  author={Cheng, Ho Kei and Oh, Seoung Wug and Price, Brian and Lee, Joon-Young and Schwing, Alexander},\n  booktitle={arXiv},\n  year={2023}\n}\n```\n\n## References\n\n- The GUI tools uses [RITM](https:\u002F\u002Fgithub.com\u002FSamsungLabs\u002Fritm_interactive_segmentation) for interactive image segmentation. This repository also contains a redistribution of their code in `gui\u002Fritm`. That part of code follows RITM's license.\n\n- For automatic video segmentation\u002Fintegration with external detectors, see [DEVA](https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FTracking-Anything-with-DEVA).\n\n- The interactive demo is developed upon [IVS](https:\u002F\u002Fgithub.com\u002Fseoungwugoh\u002Fivs-demo), [MiVOS](https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FMiVOS), and [XMem](https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FXMem).\n\n- We used [ProPainter](https:\u002F\u002Fgithub.com\u002Fsczhou\u002FProPainter) in our video inpainting demo.\n\n- Thanks to [RTIM](https:\u002F\u002Fgithub.com\u002FSamsungLabs\u002Fritm_interactive_segmentation) and [XMem++](https:\u002F\u002Fgithub.com\u002Fmax810\u002FXMem2) for making this possible.\n","# [将对象重新引入视频目标分割](https:\u002F\u002Fhkchengrex.github.io\u002FCutie)\n\n[Ho Kei Cheng](https:\u002F\u002Fhkchengrex.github.io\u002F), [Seoung Wug Oh](https:\u002F\u002Fsites.google.com\u002Fview\u002Fseoungwugoh\u002F), [Brian Price](https:\u002F\u002Fwww.brianpricephd.com\u002F), [Joon-Young Lee](https:\u002F\u002Fjoonyoung-cv.github.io\u002F), [Alexander Schwing](https:\u002F\u002Fwww.alexander-schwing.de\u002F)\n\n伊利诺伊大学厄巴纳-香槟分校和Adobe\n\nCVPR 2024，亮点\n\n[[arXiV]](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.12982) [[PDF]](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2310.12982.pdf) [[项目页面]](https:\u002F\u002Fhkchengrex.github.io\u002FCutie\u002F) [![在Colab中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1yo43XTbjxuWA7XgCUO9qxAi7wBI6HzvP?usp=sharing)\n\n## 亮点\n\nCutie是一个视频目标分割框架——它是[XMem](https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FXMem)的后续工作，具有更好的一致性、鲁棒性和速度。\n该仓库包含标准视频目标分割的代码以及用于交互式视频分割的GUI工具。\nGUI工具还额外提供了“永久记忆”（来自[XMem++](https:\u002F\u002Fgithub.com\u002Fmax810\u002FXMem2)）选项，以实现更好的可控性。\n\n![overview](https:\u002F\u002Fimgur.com\u002Fk84c965.jpg)\n\n## 演示视频\n\nhttps:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie\u002Fassets\u002F7107196\u002F83a8abd5-369e-41a9-bb91-d9cc1289af70\n\n来源：https:\u002F\u002Fraw.githubusercontent.com\u002Fhkchengrex\u002FCutie\u002Fmain\u002Fdocs\u002Fsources.txt\n\n## 安装\n\n仅在Ubuntu上测试过。\n\n**先决条件：**\n\n- Python 3.8+\n- PyTorch 1.12+及对应的torchvision\n\n**克隆我们的仓库：**\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie.git\n```\n\n**使用pip安装：**\n\n```bash\ncd Cutie\npip install -e .\n```\n\n（如果遇到“setup.py文件未找到”的错误，请使用`pip install --upgrade pip`升级pip）\n\n**下载预训练模型：**\n\n```python\npython cutie\u002Futils\u002Fdownload_models.py\n```\n\n## 快速入门\n\n### 脚本演示\n\n如果你想在自己的项目中使用Cutie，这可能是最好的起点。希望脚本能够自明（`scripting_demo.py`中有额外注释）。如果仍有疑问，欢迎提交问题。更高级的用法，例如添加或删除对象，请参阅`scripting_demo_add_del_objects.py`。\n\n```python\n@torch.inference_mode()\n@torch.cuda.amp.autocast()\ndef main():\n\n    cutie = get_default_model()\n    processor = InferenceCore(cutie, cfg=cutie.cfg)\n    # 处理器会将输入图像的短边调整为这个尺寸\n    # 你可以尝试不同的尺寸，-1表示保持原始尺寸\n    processor.max_internal_size = 480\n\n    image_path = '.\u002Fexamples\u002Fimages\u002Fbike'\n    images = sorted(os.listdir(image_path))  # 顺序很重要\n    mask = Image.open('.\u002Fexamples\u002Fmasks\u002Fbike\u002F00000.png')\n    palette = mask.getpalette()\n    objects = np.unique(np.array(mask))\n    objects = objects[objects != 0].tolist()  # 背景“0”不算作对象\n    mask = torch.from_numpy(np.array(mask)).cuda()\n\n    for ti, image_name in enumerate(images):\n        image = Image.open(os.path.join(image_path, image_name))\n        image = to_tensor(image).cuda().float()\n\n        if ti == 0:\n            output_prob = processor.step(image, mask, objects=objects)\n        else:\n            output_prob = processor.step(image)\n\n        # 将输出概率转换为对象掩码\n        mask = processor.output_prob_to_mask(output_prob)\n\n        # 可视化预测结果\n        mask = Image.fromarray(mask.cpu().numpy().astype(np.uint8))\n        mask.putpalette(palette)\n        mask.show()  # 或者使用mask.save(...)将其保存到某处\n\n\nmain()\n```\n\n### 交互式演示\n\n通过以下命令启动交互式演示：\n\n```bash\npython interactive_demo.py --video .\u002Fexamples\u002Fexample.mp4 --num_objects 1\n```\n\n[更多说明请见这里](docs\u002FINTERACTIVE.md)。\n如果你在远程服务器上运行此程序，可以启用X11转发功能。首先使用`ssh -X`。可能还需要一些额外配置，不过Google可能会比我能提供更多的帮助。\n\n![demo](https:\u002F\u002Fi.imgur.com\u002FnqlYqTq.jpg)\n\n（对于单个视频的评估，请参阅来自https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie\u002Fpull\u002F16的非官方脚本`scripts\u002Fprocess_video.py`）\n\n## 训练与评估\n\n1. [在视频目标分割数据上运行Cutie。](docs\u002FEVALUATION.md)\n2. [训练Cutie。](docs\u002FTRAINING.md)\n\n## 引用\n\n```bibtex\n@inproceedings{cheng2023putting,\n  title={Putting the Object Back into Video Object Segmentation},\n  author={Cheng, Ho Kei and Oh, Seoung Wug and Price, Brian and Lee, Joon-Young and Schwing, Alexander},\n  booktitle={arXiv},\n  year={2023}\n}\n```\n\n## 参考文献\n\n- GUI工具使用了[RITM](https:\u002F\u002Fgithub.com\u002FSamsungLabs\u002Fritm_interactive_segmentation)进行交互式图像分割。该仓库也在`gui\u002Fritm`中重新发布了他们的代码。这部分代码遵循RITM的许可协议。\n\n- 对于自动视频分割或与外部检测器的集成，请参阅[DEVA](https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FTracking-Anything-with-DEVA)。\n\n- 交互式演示基于[IVS](https:\u002F\u002Fgithub.com\u002Fseoungwugoh\u002Fivs-demo)、[MiVOS](https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FMiVOS)和[XMem](https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FXMem)开发而成。\n\n- 我们在视频修复演示中使用了[ProPainter](https:\u002F\u002Fgithub.com\u002Fsczhou\u002FProPainter)。\n\n- 感谢[RITM](https:\u002F\u002Fgithub.com\u002FSamsungLabs\u002Fritm_interactive_segmentation)和[XMem++](https:\u002F\u002Fgithub.com\u002Fmax810\u002FXMem2)，使这一切成为可能。","# Cutie 快速上手指南\n\nCutie 是一个先进的视频对象分割（Video Object Segmentation, VOS）框架，作为 XMem 的继任者，它在一致性、鲁棒性和速度上均有显著提升。本工具支持标准视频分割脚本调用，并提供带有“永久记忆”功能的交互式 GUI 工具。\n\n## 环境准备\n\n**系统要求：**\n- 操作系统：仅限 **Ubuntu** (已在 Ubuntu 上测试通过)\n- Python 版本：3.8 或更高\n- PyTorch 版本：1.12 或更高（需安装对应的 torchvision）\n\n**硬件建议：**\n- 推荐使用 NVIDIA GPU 以获得最佳推理速度。\n\n## 安装步骤\n\n1. **克隆仓库**\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie.git\n   ```\n\n2. **进入目录并安装依赖**\n   ```bash\n   cd Cutie\n   pip install -e .\n   ```\n   > **注意**：如果遇到 `File \"setup.py\" not found` 错误，请先升级 pip：\n   > ```bash\n   > pip install --upgrade pip\n   > ```\n\n3. **下载预训练模型**\n   运行以下脚本自动下载所需的预训练权重：\n   ```python\n   python cutie\u002Futils\u002Fdownload_models.py\n   ```\n\n## 基本使用\n\n### 方式一：脚本化演示（推荐用于项目开发）\n\n这是将 Cutie 集成到自己项目中的最佳起点。以下示例展示了如何加载模型并对图像序列进行推理。\n\n```python\n@torch.inference_mode()\n@torch.cuda.amp.autocast()\ndef main():\n\n    cutie = get_default_model()\n    processor = InferenceCore(cutie, cfg=cutie.cfg)\n    # 处理器会将输入图像的短边调整为此大小\n    # 您可以尝试不同的大小，-1 表示保持原始尺寸\n    processor.max_internal_size = 480\n\n    image_path = '.\u002Fexamples\u002Fimages\u002Fbike'\n    images = sorted(os.listdir(image_path))  # 顺序非常重要\n    mask = Image.open('.\u002Fexamples\u002Fmasks\u002Fbike\u002F00000.png')\n    palette = mask.getpalette()\n    objects = np.unique(np.array(mask))\n    objects = objects[objects != 0].tolist()  # 背景 \"0\" 不计入对象\n    mask = torch.from_numpy(np.array(mask)).cuda()\n\n    for ti, image_name in enumerate(images):\n        image = Image.open(os.path.join(image_path, image_name))\n        image = to_tensor(image).cuda().float()\n\n        if ti == 0:\n            # 第一帧需要传入初始掩码和对象列表\n            output_prob = processor.step(image, mask, objects=objects)\n        else:\n            # 后续帧仅需传入图像\n            output_prob = processor.step(image)\n\n        # 将输出概率转换为对象掩码\n        mask = processor.output_prob_to_mask(output_prob)\n\n        # 可视化预测结果\n        mask = Image.fromarray(mask.cpu().numpy().astype(np.uint8))\n        mask.putpalette(palette)\n        mask.show()  # 或使用 mask.save(...) 保存结果\n\n\nmain()\n```\n\n### 方式二：交互式演示（GUI 工具）\n\n如果您希望通过图形界面手动标注首帧并进行自动跟踪，可以使用交互式 Demo。\n\n**启动命令：**\n```bash\npython interactive_demo.py --video .\u002Fexamples\u002Fexample.mp4 --num_objects 1\n```\n\n> **提示**：如果在远程服务器上运行且需要显示界面，请使用 `ssh -X` 开启 X11 转发。更多详细操作说明请参阅项目文档 `docs\u002FINTERACTIVE.md`。","一家短视频制作公司的后期团队正在处理一段长达 3 分钟的户外骑行素材，需要精确提取移动中的骑手及其自行车以更换背景。\n\n### 没有 Cutie 时\n- **逐帧手动修图**：由于传统算法在快速运动或遮挡下容易丢失目标，剪辑师不得不使用 Photoshop 对数百个关键帧进行手动重绘和修正。\n- **边缘闪烁严重**：自动生成的遮罩在物体高速移动时出现剧烈抖动，导致合成后的视频边缘闪烁，需花费大量时间做平滑降噪处理。\n- **长视频记忆丢失**：当骑手被树木完全遮挡数秒后重新出现时，旧模型往往无法“记住”该物体，导致跟踪中断，必须人工重新标注起始帧。\n- **交互响应迟缓**：每次调整初始掩码后，重新渲染整个序列耗时极长，严重拖慢了创意迭代和反馈修改的节奏。\n\n### 使用 Cutie 后\n- **全自动精准跟踪**：Cutie 凭借强大的时空一致性，仅需在第一帧简单标注，即可自动锁定骑手全程，即使在复杂背景下也能保持高精度。\n- **边缘自然稳定**：利用其先进的架构，生成的物体边缘流畅且无闪烁，直接输出可用的工业级遮罩，无需额外后期平滑。\n- **永久记忆机制**：内置的“永久记忆”功能让 Cutie 在物体长时间遮挡后仍能准确找回目标，彻底解决了跟踪断裂难题。\n- **实时交互反馈**：通过 GUI 工具，剪辑师可实时点击修正错误区域，系统即时更新后续所有帧，将原本数小时的返工缩短为几分钟。\n\nCutie 通过将“物体概念”深度融入视频分割，把繁琐的逐帧抠像工作转化为高效的单点交互，极大释放了视频创作者的生产力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhkchengrex_Cutie_8c21d03b.png","hkchengrex","Rex Cheng","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fhkchengrex_01ff6c35.jpg","Ph.D. student at the University of Illinois Urbana-Champaign.\r\nOxygen consuming.",null,"Champaign, IL","hkchengrex@gmail.com","https:\u002F\u002Fhkchengrex.com","https:\u002F\u002Fgithub.com\u002Fhkchengrex",[82],{"name":83,"color":84,"percentage":85},"Python","#3572A5",100,1035,102,"2026-04-19T08:01:47","MIT","Linux","需要 NVIDIA GPU (代码中使用了 .cuda())，具体型号和显存大小未说明，需安装与 PyTorch 对应的 CUDA 版本","未说明",{"notes":94,"python":95,"dependencies":96},"仅在 Ubuntu 上经过测试。若使用交互式演示且在远程服务器上运行，可能需要配置 X11 转发 (ssh -X)。首次运行前需执行脚本下载预训练模型。","3.8+",[97,98],"torch>=1.12","torchvision",[15,14,100],"视频",[102,103,104,105,106,107,108,109],"computer-vision","deep-learning","pytorch","segmentation","video-editing","video-object-segmentation","video-segmentation","cvpr2024","2026-03-27T02:49:30.150509","2026-04-20T10:24:22.438672",[113,118,123,128,133,138],{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},44371,"在使用 torch.compile 和 AMP（自动混合精度）训练时出现 half 和 float 类型不匹配的问题，该如何解决？","是的，可以通过对齐 AMP 部分来解决。例如，使用 `with torch.cuda.amp.autocast(enabled=False):` 将其设置为 `True`，这样整个模型就可以与 PyTorch nightly 版本兼容编译（例如在包装器的 `forward` 上装饰整个模型）。关于 grad_norm 中出现 NaN 的问题，AMP scaler 会自动跳过这些情况，因此少量的 NaN 是可以接受的。","https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie\u002Fissues\u002F56",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},44372,"运行交互式演示或视频编辑功能时报错，或者图层图像无法正确叠加，原因是什么？","这通常是因为图层图像格式或尺寸不正确。必须使用透明背景的 PNG 图像作为图层。此外，图层图像的尺寸必须与输入图像完全一致，如果不一致，需要先进行缩放（resize）或填充（padding）处理。不要随意更改代码中的通道索引（如将 3 改为 2），除非你确定图像格式确实不同。","https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie\u002Fissues\u002F67",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},44373,"保存软掩码（Soft Masks）时，起始帧生成的是二值掩码而不是软掩码，且如何结合二值掩码的精确性和软掩码的边缘稳定性？","起始帧通常取决于你在 GUI 中的初始点击或绘制方式。若希望获得既有精确主体又有平滑稳定边缘的掩码，目前的做法是利用软掩码优秀的边缘和时间稳定性，但需注意其可能包含灰色区域。虽然官方未提供直接的“混合模式”开关，但性能很大程度上取决于初始掩码的选择。建议通过交互式模式仔细生成第一帧掩码，或者在后期处理中尝试结合两者优势（例如用二值掩码约束主体，用软掩码优化边缘）。","https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie\u002Fissues\u002F41",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},44374,"Cutie 在后续帧中跟踪了错误的对象（例如跟踪了另一个相同的物体），该如何调整参数或处理？","这种情况较为罕见。如果发生，可以通过后处理输出掩码来只保留目标对象。另一种方法是在初始步骤加载所有对象的掩码，但在最终输出时通过逻辑选择仅输出特定对象的掩码，从而避免跟踪漂移或错误对象的问题。目前暂无特定的参数可以直接调整以完全避免此行为，主要依赖后处理或初始掩码的精确性。","https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie\u002Fissues\u002F74",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},44375,"在使用 BURST 数据集工具转换 JSON 到 PNG 再转回 JSON 后，评估指标为何不是 100%？提供的预计算结果中 Annotations 文件夹为空或显示异常怎么办？","这是一个已知的 Bug。提供的预计算结果压缩包中的 \"Annotations\" 文件夹确实存在可视化不正确的问题（显示为空或异常），维护者已推送修复代码，但由于重新生成结果需要大量时间和 GPU 资源，可能不会立即更新提供的下载文件。至于转换工具，`convert_burst_to_vos_train.py` 可以正确转换 JSON 到掩码，评估指标非 100% 可能与评估工具的具体实现或数据对齐有关，建议检查评估脚本是否正确处理了转换后的数据格式。","https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie\u002Fissues\u002F4",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},44376,"在 interactive_demo 中，我没有提供任何掩码或点击，为什么会有不需要的对象被分割和跟踪？","这可能是因为模型在没有明确初始掩码约束的情况下，对视频中的显著物体进行了自动检测或传播。为了避免这种情况，务必在第一帧提供明确的掩码或点击指示，告诉模型具体需要跟踪哪个对象。如果不提供初始输入，模型可能会根据内部机制自动选择前景物体进行跟踪，导致出现未预期的分割结果。","https:\u002F\u002Fgithub.com\u002Fhkchengrex\u002FCutie\u002Fissues\u002F55",[144],{"id":145,"version":146,"summary_zh":76,"released_at":147},351921,"v1.0","2023-10-19T23:28:41"]