nikopueringer/CorridorKey

GitHub: nikopueringer/CorridorKey

基于神经网络的绿幕抠像工具,通过物理精确的色彩还原技术分离前景与背景,生成干净的前景颜色和线性Alpha通道。

Stars: 11771 | Forks: 709

# CorridorKey https://github.com/user-attachments/assets/1fb27ea8-bc91-4ebc-818f-5a3b5585af08 当你在绿幕前拍摄物体时,主体的边缘不可避免地会与绿色背景融合。这会产生主体颜色与绿幕颜色混合的像素。传统的抠像工具很难解开这些颜色,迫使你花费数小时构建复杂的边缘蒙版或进行手动 Roto。即使是现代的“AI Roto”解决方案通常也只会输出粗糙的二值化蒙版,完全破坏了合成真实感所需的精细半透明像素。 我构建 CorridorKey 就是为了解决这个*色彩还原*问题。 你输入一帧原始的绿幕画面,神经网络就能将前景物体与绿幕完全分离。对于每一个像素,甚至是运动模糊或失焦边缘等高度透明的像素,模型都能预测出前景元素真实的、未经预乘的直通颜色,以及一个干净的线性 Alpha 通道。它不仅仅是猜测什么是不透明、什么是透明;它还会主动重建前景物体的颜色,就好像绿幕从未存在过一样。 无需再与低质量的蒙版作斗争,也无需为“核心”与“边缘”抠像而苦恼。只需给 CorridorKey 一点提示,它就能为你分离光线。 ## 注意! 这是一个全新发布的版本,我确信你会发现许多可以改进的地方!我邀请大家来帮忙。加入我们的“Corridor Creates” Discord 来分享想法、作品、Fork 等等!https://discord.gg/zvwUrdWXJm 如果你想要一个易于安装、对艺术家友好的用户界面版 CorridorKey,请查看 [EZ-CorridorKey](https://github.com/edenaion/EZ-CorridorKey) 本项目使用 [uv](https://docs.astral.sh/uv/) 来管理依赖——它能一步搞定 Python 安装、虚拟环境和软件包,所以你完全不需要操心这些。只需运行适合你操作系统的安装脚本即可。 自然地,我还没有对所有内容进行测试。如果你遇到错误,请考虑根据需要修补代码并提交 Pull Request。 ## 功能特性 * **物理精确的色彩还原:** 干净地提取直通颜色的前景和线性 Alpha 通道,完美保留头发、运动模糊和半透明区域。 * **分辨率无关性:** 引擎动态调整推理规模以处理 4K 素材,同时使用其原生的 2048x2048 高保真主干网络进行预测。 * **VFX 标准输出:** 原生读写 16 位和 32 位线性浮点 EXR 文件,保留真实的色彩数学运算,以便在 Nuke、Fusion 或 Resolve 中进行整合。 * **自动清理:** 包含形态学清理系统,可自动修剪掉任何逃过 CorridorKey 检测的跟踪标记或微小的背景特征。 ## 硬件要求 本项目是在配备 96GB 显存的 NVIDIA RTX Pro 6000 的 Linux 工作站(Puget Systems PC)上设计和构建的。社区正在积极为消费级 GPU 进行优化。 最新版本应该可以在具有 6-8GB 显存的计算机上运行,并且可以在大多数具有统一内存的 M1+ Mac 系统上运行。是的,它甚至可能可以在你那台旧的 MacBook Pro 上运行。请在 Discord 上告诉我们! * **Windows 用户 (NVIDIA):** 要在 Windows 上原生运行 GPU 加速,你的系统必须安装支持 **CUDA 12.8 或更高版本** 的 NVIDIA 驱动程序。如果你的驱动程序只支持较旧的 CUDA 版本,安装程序可能会退回到 CPU 模式。 * **AMD GPU 用户 (ROCm):** 通过 ROCm 在 **Linux** 上支持 AMD Radeon RX 7000 系列 (RDNA3) 和 RX 9000 系列 (RDNA4)。Windows 上的 ROCm 支持是实验性的(torch.compile 尚未起作用)。请参阅下文的 [AMD ROCm 设置](#amd-rocm-setup) 部分。 * **GVM(可选):** 需要大约 **80 GB 显存**,并使用大型的 Stable Video Diffusion 模型。 * **VideoMaMa(可选):** 原生也需要大块显存(最初为 80GB+)。虽然社区已经调整了架构,使其能在不到 24GB 的环境下运行,但这些极限的内存优化尚未完全实现于此仓库中。 * **BiRefNet(可选):** 轻量级 AlphaHint 生成器选项。 由于 GVM 和 VideoMaMa 的模型文件体积巨大且硬件要求极高,因此它们的模块安装完全是可选的。你可以随时提供由你的剪辑软件、BiRefNet 或任何其他方法生成的自定义 Alpha 提示。AlphaHint 质量越高,结果就越好。 ## 新手入门 ### 1. 安装 本项目使用 **[uv](https://docs.astral.sh/uv/)** 来管理 Python 及所有依赖项。uv 是 pip 的快速、现代替代品,可一步自动处理 Python 版本、虚拟环境和软件包安装。你**不需要**自己安装 Python——uv 会为你完成。 **对于 Windows 用户(自动安装):** 1. 将此仓库 Clone 或下载到你的本地计算机。 2. 双击 `Install_CorridorKey_Windows.bat`。这将自动安装 uv(如果需要)、设置你的 Python 环境、安装所有依赖项并下载 CorridorKey 模型。 3. (可选)双击 `Install_GVM_Windows.bat` 和 `Install_VideoMaMa_Windows.bat` 以下载庞大的可选 Alpha 提示生成器权重。 **对于 Linux / Mac 用户(自动安装):** 1. 将此仓库 Clone 或下载到你的本地计算机。 2. 打开终端并输入 `bash`。在 `bash` 后面留一个空格。 3. 将 `Install_CorridorKey_Linux_Mac.sh` 拖放到终端中。然后按回车键。 4. (可选)再次执行第 2 步。但这次拖入 `Install_GVM_Linux_Mac.sh` 和 `Install_VideoMaMa_Linux_Mac.sh` 以下载庞大的可选 Alpha 提示生成器权重。 **对于 Linux / Mac 用户(手动安装):** 1. 将此仓库 Clone 或下载到你的本地计算机。 2. 如果你还没有安装 uv,请安装它: curl -LsSf https://astral.sh/uv/install.sh | sh 3. 安装所有依赖项(如果需要,uv 会自动下载 Python 3.10+): uv sync # CPU/MPS(默认 — 通用) uv sync --extra cuda # CUDA GPU 加速 uv sync --extra mlx # Apple Silicon MLX 加速 关于 **AMD ROCm** 的设置,请参阅下文的 [AMD ROCm 设置](#amd-rocm-setup) 部分。 4. **下载模型:** * **CorridorKey v1.0 模型 (~300MB):** 在首次运行时自动下载。如果在 `CorridorKeyModule/checkpoints/` 中未找到检查点,引擎会从 [CorridorKey 的 HuggingFace](https://huggingface.co/nikopueringer/CorridorKey_v1.0) 获取并将其保存为 `CorridorKey_v1.0.safetensors`(首选 — 更安全,无 pickle)。如果已存在旧的 `.pth` 文件,它们仍会被自动加载。无需手动下载。 * **GVM 权重(可选):** [HuggingFace: geyongtao/gvm](https://huggingface.co/geyongtao/gvm) * 使用 CLI 下载:`uv run hf download geyongtao/gvm --local-dir gvm_core/weights` * **VideoMaMa 权重(可选):** [HuggingFace: SammyLim/VideoMaMa](https://huggingface.co/SammyLim/VideoMaMa) * 下载 VideoMaMa 微调后的权重: uv run hf download SammyLim/VideoMaMa --local-dir VideoMaMaInferenceModule/checkpoints/VideoMaMa * VideoMaMa 还需要 Stable Video Diffusion 基础模型(仅 VAE + 图像编码器,约 2.5GB)。在 [stabilityai/stable-video-diffusion-img2vid-xt](https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt) 接受许可协议,然后: uv run hf download stabilityai/stable-video-diffusion-img2vid-xt \ --local-dir VideoMaMaInferenceModule/checkpoints/stable-video-diffusion-img2vid-xt \ --include "feature_extractor/*" "image_encoder/*" "vae/*" "model_index.json" * VideoMaMa 是一个非常棒的项目,请去给他们的 [仓库](https://github.com/cvlab-kaist/VideoMaMa) 点个 Star 以示支持! ### 2. 工作原理 CorridorKey 处理一帧画面需要两个输入: 1. **原始 RGB 图像:** 待处理的绿幕素材。这需要 sRGB 色域(可与 REC709 色域互换),引擎可以摄取 sRGB gamma 或 Linear gamma 曲线。 2. **粗糙的 Alpha 提示:** 一个粗略的黑白蒙版,大致隔离出主体。这*不需要*非常精确。你可以通过粗略的色度抠像或 AI Roto 来生成它。 我在使用 GVM 或 VideoMaMa 创建 AlphaHint 时取得了最好的效果,因此我重新打包了这些项目,并将它们作为可选模块集成到了 `clip_manager.py` 中。以下是它们的比较: * **GVM:** 完全自动,无需额外输入。它对人像的处理效果非常出色,但对无生命物体可能会遇到困难。 * **VideoMaMa:** 需要你提供一个粗略的 VideoMamaMaskHint(通常由手绘或 AI 生成)来告诉它你想抠出什么。如果你选择使用它,请将你的蒙版提示放置在向导为你的镜头创建的 `VideoMamaMaskHint/` 文件夹中。VideoMaMa 的结果令人惊叹,并且由于有了这个蒙版提示,它比 GVM 更容易控制。 * **请**去给这些项目的创作者点个赞,并为他们的仓库加星。[VideoMaMa](https://github.com/cvlab-kaist/VideoMaMa) 和 [GVM](https://github.com/aim-uofa/GVM) 也许在未来,我会为 AlphaHint 实现其他的生成器!与此同时,你的 Alpha 提示越好,CorridorKey 的最终结果就越好。尝试不同程度的蒙版腐蚀或羽化。该模型是在粗糙、模糊、被腐蚀过的蒙版上训练的,非常擅长根据提示补充细节。然而,如果你的 Alpha 提示扩展得太远,它在减去不需要的蒙版细节方面通常效果较差。 请提供反馈并分享你的结果! ### Docker (Linux + NVIDIA GPU) 如果你不想在本地安装依赖项,可以在 Docker 中运行 CorridorKey。 前置条件: - 已安装 Docker Engine + Docker Compose 插件。 - 主机上已安装 NVIDIA 驱动程序,并且与本项目中使用的 PyTorch CUDA 12.6 wheel 包兼容。 - 已安装并配置好用于 Docker 的 NVIDIA Container Toolkit(主机上应能正常运行 `nvidia-smi`,且 `docker run --rm --gpus all nvidia/cuda:12.6.3-runtime-ubuntu22.04 nvidia-smi` 命令应能成功执行)。 1. 构建镜像: docker build -t corridorkey:latest . 2. 直接运行操作(示例:推理): docker run --rm -it --gpus all \ -e OPENCV_IO_ENABLE_OPENEXR=1 \ -v "$(pwd)/ClipsForInference:/app/ClipsForInference" \ -v "$(pwd)/Output:/app/Output" \ -v "$(pwd)/CorridorKeyModule/checkpoints:/app/CorridorKeyModule/checkpoints" \ -v "$(pwd)/gvm_core/weights:/app/gvm_core/weights" \ -v "$(pwd)/VideoMaMaInferenceModule/checkpoints:/app/VideoMaMaInferenceModule/checkpoints" \ corridorkey:latest run_inference --device cuda 3. Docker Compose(推荐用于重复运行): docker compose build docker compose --profile gpu run --rm corridorkey run_inference --device cuda docker compose --profile gpu run --rm corridorkey list docker compose --profile cpu run --rm corridorkey-cpu run_inference --device cpu 4. 可选:在多 GPU 工作站上绑定到特定的 GPU: NVIDIA_VISIBLE_DEVICES=0 docker compose --profile gpu run --rm corridorkey list NVIDIA_VISIBLE_DEVICES=1,2 docker compose --profile gpu run --rm corridorkey run_inference --device cuda 备注: - 你仍然需要将模型权重放置在原生运行所使用的相同文件夹中(已在上方挂载)。 - 容器不包含内核 GPU 驱动;这些始终由主机提供。镜像提供用户空间依赖项,并依赖 Docker 的 NVIDIA 运行时来传递驱动库/设备。 - 向导也能运行,但请使用容器内的路径,例如: docker run --rm -it --gpus all \ -e OPENCV_IO_ENABLE_OPENEXR=1 \ -v "$(pwd)/ClipsForInference:/app/ClipsForInference" \ -v "$(pwd)/Output:/app/Output" \ -v "$(pwd)/CorridorKeyModule/checkpoints:/app/CorridorKeyModule/checkpoints" \ -v "$(pwd)/gvm_core/weights:/app/gvm_core/weights" \ -v "$(pwd)/VideoMaMaInferenceModule/checkpoints:/app/VideoMaMaInferenceModule/checkpoints" \ corridorkeylatest wizard --win_path /app/ClipsForInference docker compose --profile gpu run --rm corridorkey wizard --win_path /app/ClipsForInference ### 3. 使用方法:命令行向导 为了获得最简单的体验,请使用提供的启动脚本。这些脚本会在你的终端中启动一个基于提示的配置向导。 * **Windows:** 将视频文件或文件夹拖放到 `CorridorKey_DRAG_CLIPS_HERE_local.bat` 上(注意:只能通过拖放或 CMD 启动。直接双击 `.bat` 文件会报错)。 * **Linux / Mac:** 运行或将视频文件或文件夹拖放到 `./CorridorKey_DRAG_CLIPS_HERE_local.sh` 上。 * - 或者在终端中再次输入 `bash`。留一个空格,然后分别将 `CorridorKey_DRAG_CLIPS_HERE_local.sh` 和你的剪辑文件夹一起拖放到终端中。然后按回车键。 **工作流步骤:** 1. **启动:** 你可以将单个松散的视频文件(如 `.mp4`)、包含图像序列的镜头文件夹,甚至是一次性包含多个不同镜头的主“批处理”文件夹拖放到启动脚本上。 2. **整理:** 向导会检测你拖入的内容。如果你拖入的是松散的视频文件或未整理的文件夹,第一个提示会询问你是否希望它将你的剪辑整理成正确的结构。 * 如果你选择是,脚本将自动创建一个镜头文件夹,将你的素材移动到 `Input/` 子文件夹中,并为你生成空的 `AlphaHint/` 和 `VideoMamaMaskHint/` 文件夹。引擎需要这种结构才能正确配对你的提示和素材! 3. **生成提示(可选):** 如果向导检测到你的镜头缺少 `AlphaHint`,它会询问你是否要使用重新打包的 GVM 或 VideoMaMa 模块自动生成它们。 4. **配置:** 一旦你的剪辑同时拥有输入和 AlphaHint,选择“Process Ready Clips”。向导将提示你配置运行参数: * **Gamma 空间:** 告诉引擎你的序列使用的是 Linear 还是 sRGB gamma 曲线。 * **去溢色强度:** 这是一个传统的去溢色滤镜(0-10),如果你希望现在就将其烘焙到输出中,而不是稍后在合成时再应用它。 * **自动去噪点:** 切换自动清理并定义大小阈值。这不仅适用于跟踪点,它还会移除任何微小、断开的像素孤岛。 * **细化强度:** 除非你正在尝试极限的细节推送,否则请使用默认值(1.0)。 5. **结果:** 引擎将在你的镜头目录中生成几个文件夹: * `/Matte`:原始的线性 Alpha 通道(EXR)。 * `/FG`:原始的直通前景颜色对象。(注意:引擎在 sRGB 色域中原生计算此项。在合成软件中与 Alpha 结合之前,你必须手动将此通道转换为 Linear gamma。) * `/Processed`:包含由线性 Alpha 预乘后的线性前景的 RGBA 图像(EXR)。这个通道的存在是为了让你可以立即将素材放入 Premiere/Resolve 进行快速预览,而无需处理复杂的预乘路由。然而,如果你想对图像进行更多控制,使用原始的 FG 和 Matte 输出将能满足你的需求。 * `/Comp`:在棋盘格上合成的抠像简单预览(PNG)。 ## 那么训练和数据集呢? 如果有足够多的人觉得这个项目有趣,我会把训练程序和数据集上传,这样我们就可以一起尽情制作出绝对最好的抠像器微调版本!只需在 Corridor Creates Discord 或这里给我留言即可。如果有足够多的人感兴趣,我会把这些东西打包好。硬件要求很高,文件体积也很大,所以除非有需求,否则我不想投入时间。 ## 设备选择 默认情况下,CorridorKey 会自动检测最佳可用计算设备:**CUDA > MPS > CPU**。 **通过 CLI 标志覆盖:** ``` uv run python clip_manager.py --action wizard --win_path "V:\..." --device mps uv run python clip_manager.py --action run_inference --device cpu ``` **通过环境变量覆盖:** ``` export CORRIDORKEY_DEVICE=cpu uv run python clip_manager.py --action wizard --win_path "V:\..." ``` 优先级:`--device` 标志 > `CORRIDORKEY_DEVICE` 环境变量 > 自动检测。 ### Apple Silicon / MPS 故障排除 **确认 MPS 处于活动状态:** 运行详细日志记录以查看选择了哪个设备: ``` uv run python clip_manager.py --action list 2>&1 | grep -i "device\|backend\|mps" ``` **MPS 运算符错误**(`NotImplementedError: ... not implemented for 'MPS'`):某些 PyTorch 操作尚未在 MPS 上受支持。为这些操作启用 CPU 回退: ``` export PYTORCH_ENABLE_MPS_FALLBACK=1 uv run python corridorkey_cli.py wizard --win_path "/path/to/clips" ``` **静默 CPU 回退**:如果没有设置此变量,MPS 静默回退到 CPU 将会使运行速度慢得多。在你的 shell 配置文件(`~/.zshrc`)中设置 `PYTORCH_ENABLE_MPS_FALLBACK=1` 可确保其始终处于活动状态。 **使用原生 MLX 而不是 PyTorch MPS:** MLX 完全避开了 PyTorch 的 MPS 层,通常在 Apple Silicon 上运行得更快。有关设置步骤,请参阅下文的 [后端选择](#backend-selection) 部分。 ### AMD ROCm 设置 CorridorKey 通过 PyTorch 的 ROCm/HIP 后端支持 AMD GPU。`torch.cuda.*` API 在 AMD 上透明运行——HIP 在运行时拦截所有 CUDA 调用,因此推理代码无需更改即可运行。 **支持的 GPU (ROCm 7.2+):** - RX 7900 XTX (24GB) / XT (20GB) / GRE (16GB) — RDNA3, gfx1100 - RX 7800 XT (16GB) / 7700 XT (12GB) — RDNA3, gfx1101 - RX 9070 XT / 9070 (16GB) — RDNA4, gfx1201 **显存要求:** 在 2048x2048 下 CorridorKey 推理在 NVIDIA 上使用约 10GB,但由于 HIP 分配器开销,在 AMD 上使用约 18GB。RX 7900 XTX (24GB) 和 RX 7900 XT (20GB) 以全分辨率运行。具有 16GB 显存的显卡(RX 7800 XT、9070 XT)可在 Windows(使用系统内存作为溢出)上工作,但在 Linux 上可能会出现 OOM(内存不足)——请参阅下文的注释。 **Linux 原生(推荐):** ``` uv sync --extra rocm # 验证 uv run python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))" ``` **WSL2 (Windows Subsystem for Linux):** 需要在 Windows 上安装 AMD Adrenalin 26.1.1+ 驱动。在 WSL2 内部安装 ROCm,然后使用 AMD 特定于 WSL 的 torch wheel 包: ``` # 1. 为 WSL 安装 ROCm (Ubuntu 24.04) sudo apt update wget https://repo.radeon.com/amdgpu-install/7.2/ubuntu/noble/amdgpu-install_7.2.70200-1_all.deb sudo apt install ./amdgpu-install_7.2.70200-1_all.deb amdgpu-install -y --usecase=wsl,rocm --no-dkms # 2. 验证 GPU 是否可见 rocminfo # should show your AMD GPU # 3. 安装 AMD 的 WSL torch wheels (Python 3.12) pip3 install \ https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torch-2.9.1%2Brocm7.2.0.lw.git7e1940d4-cp312-cp312-linux_x86_64.whl \ https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchvision-0.24.0%2Brocm7.2.0.gitb919bd0c-cp312-cp312-linux_x86_64.whl \ https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/triton-3.5.1%2Brocm7.2.0.gita272dfa8-cp312-cp312-linux_x86_64.whl # 4. 修复 WSL 运行时库冲突 (必需) location=$(pip3 show torch | grep Location | awk -F ": " '{print $2}') rm -f ${location}/torch/lib/libhsa-runtime64.so* # 5. 在 torch 之后安装 CorridorKey deps (以免 pip 覆盖 ROCm torch) pip3 install -e . ``` **Windows 原生(实验性):** Windows ROCm 需要 Python 3.12 和 AMD Adrenalin 25.3.1+ 驱动。`torch.compile` 在 Windows ROCm 上不起作用——推理以 eager 模式运行(明显慢于 Linux)。 ``` py -3.12 -m pip install https://repo.radeon.com/rocm/windows/rocm-rel-7.2/rocm-7.2.0.dev0-py3-none-win_amd64.whl py -3.12 -m pip install --no-cache-dir https://repo.radeon.com/rocm/windows/rocm-rel-7.2/torch-2.9.1+rocmsdk20260116-cp312-cp312-win_amd64.whl https://repo.radeon.com/rocm/windows/rocm-rel-7.2/torchvision-0.24.1+rocmsdk20260116-cp312-cp312-win_amd64.whl ``` **CorridorKey 在 ROCm 上自动执行的操作:** - 设置 `TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1`,以便 SDPA 调度到 RDNA3 上的 Flash Attention 内核(如果没有这个,attention 会回退到缓慢的 O(n²) 路径) - 设置 `MIOPEN_FIND_MODE=2` 以更快地选择卷积内核(将预热时间从 5-8 分钟减少到几秒钟) - 在 Linux 上使用 `torch.compile(mode="default")` 以避免在 16GB 显卡上进行内核 autotuning 时发生 OOM - 在 Windows ROCm 上完全跳过 `torch.compile`,因为 Triton 编译会卡住 - 通过 `/opt/rocm`(Linux)、`HIP_PATH`(Windows)或 `CORRIDORKEY_ROCM=1` 环境变量(显式选择加入)自动检测 ROCm **首次运行注意事项:** 在新的 AMD GPU 上首次运行推理会触发 Triton 内核 autotuning(需要 10-20 分钟)。此内容会缓存在 `~/.cache/corridorkey/inductor/` 中,并且每个 GPU 架构只会发生一次。后续的运行会立即开始。 **Linux 上的 16GB 显卡:** CorridorKey 在 2048x2048 下需要约 18GB 显存。Windows 通过共享 GPU 内存(系统 RAM 溢出)透明地处理此问题。在 Linux 上,GPU 具有硬性的 VRAM 限制。如果你在 16GB 显卡上遇到 OOM,请安装 `pytorch-rocm-gtt` 以启用 GTT(系统 RAM 作为 GPU 溢出)——CorridorKey 会自动检测并使用它: ``` pip install pytorch-rocm-gtt ``` GTT 内存通过 PCIe 访问(比 VRAM 慢约 10-20 倍),因此预计 16GB 显卡的帧处理时间会比 20-24GB 显卡慢。 **WSL2 限制:** WSL2 无法使用 GTT 或共享内存——它具有硬性的 VRAM 限制。16GB 显卡在 WSL2 中以 2048x2048 运行时会出现 OOM。请改用 Windows 原生,或使用配备 20GB+ VRAM 的显卡。 ## 后端选择 CorridorKey 支持两种推理后端: - **Torch**(Linux/Windows 上的默认选项)— CUDA、MPS 或 CPU - **MLX** (Apple Silicon) — 原生 Metal 加速,无 Torch 开销 解决优先级:`--backend` 标志 > `CORRIDORKEY_BACKEND` 环境变量 > 自动检测。 自动模式在 Apple Silicon 上优先使用 MLX(如果可用)。 **通过 CLI 标志覆盖:** ``` uv run python corridorkey_cli.py wizard --win_path "/path/to/clips" --backend mlx uv run python corridorkey_cli.py run_inference --backend torch ``` ### MLX 设置 1. 安装 MLX 后端: uv sync --extra mlx 2. 获取 MLX 权重(`.safetensors`)——选择**一种**方式: **选项 A — 下载预转换的权重(最简单):** # 将 weights 从 GitHub Releases 下载到本地缓存目录 uv run python -m corridorkey_mlx weights download # 打印缓存路径,然后复制到 checkpoints 文件夹 WEIGHTS=$(uv run python -m corridorkey_mlx weights download --print-path) cp "$WEIGHTS" CorridorKeyModule/checkpoints/corridorkey_mlx.safetensors **选项 B — 从现有的 `.pth` 检查点进行转换:** # 克隆 MLX repo (包含转换脚本) git clone https://github.com/nikopueringer/corridorkey-mlx.git cd corridorkey-mlx uv sync # 转换 (将 --checkpoint 指向你的 CorridorKey.pth) uv run python scripts/convert_weights.py \ --checkpoint ../CorridorKeyModule/checkpoints/CorridorKey_v1.0.pth \ --output ../CorridorKeyModule/checkpoints/corridorkey_mlx.safetensors cd .. 无论哪种方式,最终文件必须位于: CorridorKeyModule/checkpoints/corridorkey_mlx.safetensors 3. 使用自动检测或显式后端运行: CORRIDORKEY_BACKEND=mlx uv run python clip_manager.py --action run_inference MLX 默认使用 img_size=2048(与 Torch 相同)。 ### 故障排除 - **"No .safetensors checkpoint found"** — 请将 MLX 权重放置在 `CorridorKeyModule/checkpoints/` 中 - **"corridorkey_mlx not installed"** — 运行 `uv sync --extra mlx` - **"MLX requires Apple Silicon"** — MLX 仅在 M1+ Mac 上运行 - **Auto picked Torch unexpectedly** — 显式设置 `CORRIDORKEY_BACKEND=mlx` ## 高级用法 对于希望深入了解 CorridorKey 引擎具体操作细节的开发者,请查看 `/CorridorKeyModule` 文件夹中的 README。我们还有一份专门的交接文档,在 `/docs/LLM_HANDOVER.md` 中为 AI 助手概述了管道架构。 你也可以在 [DeepWiki](https://deepwiki.com/nikopueringer/CorridorKey) 上浏览完整的、自动生成的代码库文档。 ### 运行测试 本项目包含色彩数学和合成管道的单元测试。无需 GPU 或模型权重——测试可在任何机器上几秒钟内运行完毕。 ``` uv sync --group dev # install test dependencies (pytest) uv run pytest # run all tests uv run pytest -v # verbose output (shows each test name) ``` ## CorridorKey 许可和授权 你可以随意使用此工具,包括将其作为商业项目的一部分来处理图像!你不得重新打包此工具并将其出售,任何发布的此工具的变体或改进版本都必须保持在相同的许可下,并且必须包含 Corridor Key 的名称。 你不得将此模型的推理作为付费 API 服务提供。如果你运营商业软件包或推理服务,并希望将此工具整合到你的软件中,请给我们发送电子邮件以协商达成协议!我保证我们很容易合作。contact@corridordigital.com。除了上述规定外,此许可证实际上是 [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0)](https://creativecommons.org/licenses/by-nc-sa/4.0/) 的一种变体。 请在未来的任何分支或发行版中保留 Corridor Key 这个名字! ## 社扩展 * [CorridorKeyOpenVINO](https://github.com/daniil-lyakhov/CorridorKeyOpenVINO) - 使用 OpenVINO 推理框架在 Intel 硬件上快速运行 CorridorKey 模型。 ## 致谢与许可 CorridorKey 集成了几个用于 Alpha 提示生成的开源模块。我们要明确感谢并致谢以下研究团队: * **Generative Video Matting (GVM):** 由浙江大学先进智能机器 研究团队开发。GVM 的代码和模型在 `gvm_core` 模块中得到了大量使用。他们的工作基于 [2-clause BSD License (BSD-2-Clause)](https://opensource.org/license/bsd-2-clause) 授权。你可以在这里找到他们的源代码仓库:[aim-uofa/GVM](https://github.com/aim-uofa/GVM)。给他们点个 Star 吧! * **VideoMaMa:** 由韩国科学技术院 (KAIST) 的 CVLAB 开发。VideoMaMa 架构被用于 `VideoMaMaInferenceModule` 中。他们的代码基于 [Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0)](https://creativecommons.org/licenses/by-nc/4.0/) 发布,并且他们的特定基础模型检查点(`dino_projection_mlp.pth`、`unet/*`)受 [Stability AI Community License](https://stability.ai/license) 约束。你可以在这里找到他们的源代码仓库:[cvlab-kaist/VideoMaMa](https://github.com/cvlab-kaist/VideoMaMa)。给他们点个 Star 吧! 使用这些可选模块即表示你同意遵守它们各自的非商业许可。请查看它们的仓库以获取完整条款。
标签:Alpha通道, Apex, DNS解析, Python, ROTO抠像, Vectored Exception Handling, 人工智能, 凭据扫描, 前景分离, 合成, 图像分割, 图像处理算法, 图像重建, 开源项目, 无后门, 机器学习, 深度学习, 用户模式Hook绕过, 神经网络, 绿幕抠像, 蒙版生成, 视觉特效, 视频后期处理, 视频编辑工具, 计算机视觉, 请求拦截, 逆向工具, 颜色解混