SuperGluePretrainedNetwork

GitHub
4k 763 简单 1 次阅读 今天NOASSERTION开发框架
AI 解读 由 AI 自动生成,仅供参考

SuperGluePretrainedNetwork 是一个基于深度学习的图像特征匹配工具,由 Magic Leap 研发并在 CVPR 2020 上发表。它主要解决计算机视觉中“如何在两张不同视角的图片里精准找到对应点”这一核心难题,广泛应用于三维重建、视觉定位和机器人导航等领域。

与传统方法不同,SuperGlue 创新性地结合了图神经网络(GNN)与最优传输层,充当特征提取与最终匹配之间的“中间件”。它能够聚合上下文信息,在端到端的架构中同时完成特征关联、匹配优化和误检过滤,显著提升了在弱纹理、大视角变化或光照差异等复杂场景下的匹配准确率与鲁棒性。项目提供了在室内(ScanNet)和室外(MegaDepth)场景预训练的模型权重,并支持与 SuperPoint 检测器无缝协作。

该工具非常适合计算机视觉研究人员、算法工程师以及需要高精度视觉定位功能的开发者使用。通过提供的 Python 脚本,用户不仅可以轻松对图像对进行批量匹配评估,还能利用摄像头或视频文件运行实时演示,直观观察匹配效果。凭借其开源的代码结构和成熟的预训练模型,SuperGluePretrainedNetwork 降低了高性能特征匹配技术的应用门槛,是构建先进视觉系统的有力助手。

使用场景

某机器人团队正在开发一款用于大型仓储中心的自主导航系统,需要实时通过摄像头画面计算自身位置并构建环境地图。

没有 SuperGluePretrainedNetwork 时

  • 特征匹配不稳定:在仓库货架重复纹理多、光照变化剧烈的环境下,传统算法(如 SIFT+RANSAC)极易产生大量错误匹配点,导致定位漂移。
  • 弱纹理区域失效:面对光滑地面或纯色墙壁等缺乏明显角点的区域,系统经常无法提取足够特征,造成机器人“迷路”或停止运行。
  • 后处理流程繁琐:开发者需要手动编写复杂的几何验证代码和启发式规则来过滤误匹配,调试成本高且难以适应不同场景。
  • 实时性差:为了保证精度不得不增加计算耗时,导致帧率下降,无法满足机器人高速移动时的低延迟控制需求。

使用 SuperGluePretrainedNetwork 后

  • 上下文感知匹配精准:SuperGluePretrainedNetwork 利用图神经网络聚合全局上下文信息,即使在重复纹理或动态光照下,也能准确区分相似特征,大幅降低误匹配率。
  • 稀疏特征鲁棒性强:结合 SuperPoint 检测器,该工具能在弱纹理区域依然保持稳定的特征提取与匹配能力,确保机器人在空旷走廊也能连续定位。
  • 端到端自动过滤:内置的最优匹配层直接输出高置信度匹配结果,无需额外编写复杂的后处理逻辑,显著简化了开发管线。
  • 高效实时推理:经过优化的预训练模型支持 GPU 加速,在保持高精度的同时实现毫秒级推理,完美支撑机器人的实时闭环控制。

SuperGluePretrainedNetwork 通过将深度学习引入特征匹配环节,彻底解决了复杂工业场景下视觉定位的鲁棒性与实时性难题。

运行环境要求

操作系统
  • 未说明
GPU
  • 非必需
  • 支持 CUDA GPU(若检测到则自动使用),也可通过 --force_cpu 标志在 CPU 上运行
  • 未指定具体显卡型号、显存大小或 CUDA 版本要求
内存

未说明

依赖
notes该工具包含两个预训练权重文件(室内模型和室外模型),默认运行室内模型。演示脚本支持网络摄像头、IP 摄像头、图像目录或视频文件输入。若在无显示器的服务器(headless server)上运行,需添加 --no_display 参数。建议 OpenCV 版本为 4.1.2.30 以获得最佳的 GUI 键盘交互体验。
python>=3.5
PyTorch>=1.1
OpenCV>=3.4 (推荐 4.1.2.30)
Matplotlib>=3.1
NumPy>=1.18
SuperGluePretrainedNetwork hero image

快速开始

Magic Leap 的研究(CVPR 2020,口头报告)

SuperGlue 推理与评估演示脚本

简介

SuperGlue 是 Magic Leap 在 CVPR 2020 上发表的一项研究项目。SuperGlue 网络是一种结合了最优匹配层的图神经网络,经过训练后能够在两组稀疏图像特征之间执行匹配任务。本仓库包含 PyTorch 代码及预训练权重,用于在 SuperPoint 关键点和描述子的基础上运行 SuperGlue 匹配网络。给定一对图像,您可以通过本仓库提取这对图像之间的匹配特征。

SuperGlue 作为一个“中间层”,在一个端到端的架构中同时完成上下文聚合、匹配和过滤。更多详情请参阅:

我们提供了两个预训练权重文件:一个是在 ScanNet 数据上训练的室内模型,另一个是在 MegaDepth 数据上训练的室外模型。这两个模型都位于 weights 目录 中。默认情况下,演示将运行 室内 模型。

依赖项

  • Python 3 >= 3.5
  • PyTorch >= 1.1
  • OpenCV >= 3.4(推荐使用 4.1.2.30 以获得最佳 GUI 键盘交互体验,详见此 注释
  • Matplotlib >= 3.1
  • NumPy >= 1.18

只需运行以下命令:pip3 install numpy opencv-python torch matplotlib

内容

本仓库包含两个主要的顶层脚本:

  1. demo_superglue.py:可在网络摄像头、IP 摄像头、图像目录或影片文件上运行实时演示。
  2. match_pairs.py:从文件中读取图像对,并将匹配结果转储到磁盘上(如果提供了真值相对位姿,则还会进行评估)。

实时匹配演示脚本 (demo_superglue.py)

该演示会在锚定图像和实时图像上运行 SuperPoint + SuperGlue 特征匹配。您可以通过按下 n 键来更新锚定图像。演示可以从 USB 或 IP 摄像头、包含图像的目录或视频文件中读取图像流。所有这些输入都可以通过 --input 标志传递。

在实时网络摄像头上运行演示

在默认的 USB 网络摄像头上运行演示(ID #0),如果有 CUDA GPU 则会使用 GPU 运行:

./demo_superglue.py

键盘控制:

  • n:将当前帧设为锚定帧。
  • e/r:分别提高/降低关键点置信度阈值。
  • d/f:分别提高/降低匹配过滤阈值。
  • k:切换关键点的可视化显示。
  • q:退出。

在 CPU 上以 320x240 分辨率运行演示:

./demo_superglue.py --resize 320 240 --force_cpu

--resize 标志可用于三种方式调整输入图像大小:

  1. --resize width height:将图像调整为精确的 width x height 尺寸。
  2. --resize max_dimension:将输入图像的最大边调整为 max_dimension
  3. --resize -1:不进行缩放(即使用原始图像尺寸)。

默认情况下,图像会被调整为 640x480

在图像目录上运行演示

--input 标志也可以接受目录路径。我们提供了一个包含序列样本图像的目录。要在无显示器的服务器上对 freiburg_sequence/ 目录中的图像运行演示,并将输出可视化图像保存到 dump_demo_sequence/

./demo_superglue.py --input assets/freiburg_sequence/ --output_dir dump_demo_sequence --resize 320 240 --no_display

您应该会在 Freiburg-TUM RGBD 示例序列中看到如下输出:

匹配结果按其预测置信度用喷射色图着色(红色表示置信度高,蓝色表示置信度低)。

其他有用的命令行参数

  • 使用 --image_glob 可更改图像文件扩展名(默认:*.png*.jpg*.jpeg)。
  • 使用 --skip 可跳过中间帧(默认:1)。
  • 使用 --max_length 可限制处理的总帧数(默认:1000000)。
  • 使用 --show_keypoints 可可视化检测到的关键点(默认:False)。

运行匹配与评估 (match_pairs.py)

本仓库还包含一个脚本 match_pairs.py,用于从一组图像对中运行匹配。借助此脚本,您可以:

  • 对一组图像对运行匹配器(无需真值)。
  • 根据置信度可视化关键点和匹配结果。
  • 如果提供了真值相对位姿和内参,则可以评估并可视化匹配的正确性。
  • 将关键点、匹配结果和评估结果保存下来以便进一步处理。
  • 整合多对图像的评估结果并生成结果表格。

仅匹配模式

该脚本最简单的用法是处理给定文本文件中列出的图像对,并将关键点和匹配结果转储为压缩的 numpy npz 文件。我们在 assets/example_indoor_pairs/ 中提供了主论文中具有挑战性的 ScanNet 图像对。运行以下命令将在每对图像上运行 SuperPoint + SuperGlue,并将结果转储到 dump_match_pairs/

./match_pairs.py

生成的 .npz 文件可以用 Python 读取如下:

>>> import numpy as np
>>> path = 'dump_match_pairs/scene0711_00_frame-001680_scene0711_00_frame-001995_matches.npz'
>>> npz = np.load(path)
>>> npz.files
['keypoints0', 'keypoints1', 'matches', 'match_confidence']
>>> npz['keypoints0'].shape
(382, 2)
>>> npz['keypoints1'].shape
(391, 2)
>>> npz['matches'].shape
(382,)
>>> np.sum(npz['matches']>-1)
115
>>> npz['match_confidence'].shape
(382,)

对于 keypoints0 中的每个关键点,matches 数组会指示其在 keypoints1 中的匹配关键点索引,若未匹配则为 -1

可视化模式

您可以添加 --viz 标志来转储包含匹配结果的图像输出:

./match_pairs.py --viz

您应该会在 dump_match_pairs/ 目录中看到类似这样的图像(或非常接近的版本,详见此 注释):

匹配结果按其预测置信度用喷射色图着色(红色表示置信度高,蓝色表示置信度低)。

评估模式

你还可以使用 RANSAC + 基本矩阵分解来估计位姿,并在输入的 .txt 文件中提供了真值相对位姿和内参的情况下对其进行评估。每个 .txt 文件包含三个关键的真值矩阵:图像0的 3×3 内参矩阵 K0、图像1的 3×3 内参矩阵 K1,以及相对位姿外参的 4×4 矩阵 T_0to1

要在示例图像集上运行评估(默认读取 assets/scannet_sample_pairs_with_gt.txt),可以运行以下命令:

./match_pairs.py --eval

由于启用了 --eval 参数,你应该会在终端看到汇总的结果打印出来。对于提供的示例图像,你应该会得到以下数值(或非常接近这些数值,详见 注释):

评估结果(15对的平均值):
AUC@5    AUC@10  AUC@20  精度    MScore
26.99    48.40   64.47   73.52   19.60

此时,dump_match_pairs/ 中生成的 .npz 文件将包含与评估相关的标量值,这些值是基于提供的示例图像计算得出的。以下是其中一个生成的评估文件中应包含的内容:

>>> import numpy as np
>>> path = 'dump_match_pairs/scene0711_00_frame-001680_scene0711_00_frame-001995_evaluation.npz'
>>> npz = np.load(path)
>>> print(npz.files)
['error_t', 'error_R', 'precision', 'matching_score', 'num_correct', 'epipolar_errors']

你还可以通过运行以下命令来可视化评估指标:

./match_pairs.py --eval --viz

现在,你也应该会在 dump_match_pairs/ 中看到额外的图像,这些图像展示了评估数值(或非常接近这些数值,详见 注释):

图像的左上角显示了位姿误差和内点数量,而线条则根据其与真值相对位姿计算出的极线误差进行着色:红色表示误差较大,绿色表示误差较小。

在示例室外图像对上运行

[点击展开]

在这个仓库中,我们还提供了一些具有挑战性的 Phototourism 图像对,以便你可以重现论文中的部分图表。运行以下脚本以对提供的图像对执行匹配和可视化操作(未提供真值,详见 注释):

./match_pairs.py --resize 1600 --superglue outdoor --max_keypoints 2048 --nms_radius 3  --resize_float --input_dir assets/phototourism_sample_images/ --input_pairs assets/phototourism_sample_pairs.txt --output_dir dump_match_pairs_outdoor --viz

现在,你应该会在 dump_match_pairs_outdoor/ 中看到类似这样的图像对(或非常接近这些图像,详见 注释):

室内/室外推荐设置

[点击展开]

对于 室内 图像,我们推荐以下设置(这些也是默认设置):

./match_pairs.py --resize 640 --superglue indoor --max_keypoints 1024 --nms_radius 4

对于 室外 图像,我们推荐以下设置:

./match_pairs.py --resize 1600 --superglue outdoor --max_keypoints 2048 --nms_radius 3 --resize_float

你可以通过 --input_pairs 提供自己定义的图像对列表,这些图像位于 --input_dir 目录下。图像可以在网络推理之前通过 --resize 进行缩放。如果你需要多次重复相同的评估,可以使用 --cache 标志来重用之前的计算结果。

测试集图像对文件格式说明

[点击展开]

我们提供了包含真值的 ScanNet 测试图像对列表 assets/scannet_test_pairs_with_gt.txt,以及不包含真值的 Phototourism 测试图像对列表 assets/phototourism_test_pairs.txt,用于评估论文中的匹配效果。每行对应一对图像,其格式如下:

path_image_A path_image_B exif_rotationA exif_rotationB [KA_0 ... KA_8] [KB_0 ... KB_8] [T_AB_0 ... T_AB_15]

其中,path_image_Apath_image_B 分别是图像 A 和图像 B 的路径。exif_rotation 是一个介于 [0, 3] 之间的整数,来自原始图像的 EXIF 元数据:0 表示无旋转,1 表示顺时针旋转 90 度,2 表示顺时针旋转 180 度,3 表示顺时针旋转 270 度。如果不知道 EXIF 数据,可以在此处填写 0,这样就不会进行旋转。KAKB 分别是图像 A 和图像 B 内参的 3×3 矩阵展开形式。T_AB 是这对图像之间外参的 4×4 矩阵展开形式。

在 ScanNet 上重现室内评估

[点击展开]

为了方便起见,我们在 assets/scannet_test_pairs_with_gt.txt 文件中提供了符合我们格式的 ScanNet 真值数据。要重现与论文中相似的表格,你需要下载该数据集(我们不提供原始测试图像)。下载 ScanNet 数据集的步骤如下:

  1. 访问 ScanNet 的 GitHub 仓库,下载 ScanNet 测试集(共 100 个场景)。
  2. 使用 SensReader 工具,从测试集中每个场景的 100 个 .sens 文件中提取原始传感器数据。

一旦 ScanNet 数据集下载到 ~/data/scannet 目录下,你可以运行以下命令:

./match_pairs.py --input_dir ~/data/scannet --input_pairs assets/scannet_test_pairs_with_gt.txt --output_dir dump_scannet_test_results --eval

你应该会得到以下 ScanNet 的评估结果表(或非常接近此结果,详见 注释):

评估结果(1500 对的平均值):
AUC@5    AUC@10  AUC@20  精度    MScore
16.12    33.76   51.79   84.37   31.14

在 YFCC 数据集上复现户外评估

[点击展开]

为方便起见,我们在 assets/yfcc_test_pairs_with_gt.txt 文件中提供了我们格式的 YFCC 真值数据。为了复现论文中类似的表格,您需要下载该数据集(我们不提供原始测试图像)。要下载 YFCC 数据集,您可以使用 OANet 仓库:

git clone https://github.com/zjhthu/OANet
cd OANet
bash download_data.sh raw_data raw_data_yfcc.tar.gz 0 8
tar -xvf raw_data_yfcc.tar.gz
mv raw_data/yfcc100m ~/data

一旦 YFCC 数据集被下载到 ~/data/yfcc100m 目录下,您可以运行以下命令:

./match_pairs.py --input_dir ~/data/yfcc100m --input_pairs assets/yfcc_test_pairs_with_gt.txt --output_dir dump_yfcc_test_results --eval --resize 1600 --superglue outdoor --max_keypoints 2048 --nms_radius 3 --resize_float

您应该会得到如下关于 YFCC 的表格(或与其非常接近的结果,请参阅可复现性说明):

评估结果(4000对的平均值):
AUC@5    AUC@10  AUC@20  Prec    MScore
39.02    59.51   75.72   98.72   23.61  

在 Phototourism 数据集上复现户外评估

[点击展开]

论文中展示的 Phototourism 结果是使用与 2020 年图像匹配挑战赛 测试集相似的数据生成的,而该挑战赛对测试集的真实标签进行了保密。我们使用的配对列表已在 assets/phototourism_test_pairs.txt 中列出。若想在该测试集中复现类似的结果,请提交至该挑战赛的基准测试。由于该挑战赛仍在进行中,我们无法公开测试集,因为我们希望维护挑战赛的公正性。

修正 YFCC 和 Phototourism 数据中的 EXIF 旋转信息

[点击展开]

在此仓库中,我们手动修正了 YFCC 和 Phototourism 户外评估所用图像的 EXIF 旋转信息。对于 YFCC 数据集,我们发现有 7 张图像的 EXIF 旋转标记不正确,导致 4000 对中的 148 对需要修正。对于 Phototourism 数据集,我们发现了 36 张图像的 EXIF 旋转标记不正确,从而修正了 2200 对中的 212 对。

SuperGlue 论文报告的是未修正旋转信息时的结果,而本 README 中的数字则是基于已修正旋转信息得出的。我们发现,无论是否修正旋转信息,最终的评估结论都保持一致。为保持向后兼容性,我们将原始未修正的 EXIF 旋转数据分别保存在 assets/phototourism_test_pairs_original.txtassets/yfcc_test_pairs_with_gt_original.txt 中。

MegaDepth 数据集的户外训练/验证场景划分

[点击展开]

用于户外模型的训练和验证,我们使用了来自 MegaDepth 数据集 的场景。我们在 assets/ 目录中提供了用于训练户外模型的场景列表:

  • 训练集:assets/megadepth_train_scenes.txt
  • 验证集:assets/megadepth_validation_scenes.txt

关于可复现性的说明

[点击展开]

在简化模型代码和评估代码并准备发布之后,我们进行了一些改进和调整,这导致最终结果与论文中报告的结果略有不同。README 中报告的数字和图表是在 Ubuntu 16.04、OpenCV 3.4.5 和 PyTorch 1.1.0 环境下完成的。即使库版本完全一致,我们仍然观察到 Mac 和 Ubuntu 之间的细微差异,我们认为这些差异源于 OpenCV 图像缩放函数实现的不同以及 RANSAC 随机化过程的差异。

创建高质量 PDF 可视化图及使用 --fast_viz 提高可视化速度

[点击展开]

当使用 match_pairs.py 生成输出图像时,默认的 --viz 标志会使用 Matplotlib 渲染器,如果您额外使用 --viz_extension pdf 而不是默认的 png 扩展名,则可以生成适合投稿的 PDF 可视化图。

./match_pairs.py --viz --viz_extension pdf

或者,您可能希望保存可视化图像,但同时希望生成速度更快。此时可以使用 --fast_viz 标志,以 OpenCV 基础的图像渲染器来实现:

./match_pairs.py --viz --fast_viz

如果您还想通过 OpenCV 显示窗口预览结果(必须使用非 PDF 输出并启用 fast_viz),只需运行:

./match_pairs.py --viz --fast_viz --opencv_display

BibTeX 引用

如果您使用了本文中的任何观点或此仓库中的代码,请考虑引用以下文献:

@inproceedings{sarlin20superglue,
  author    = {Paul-Edouard Sarlin and
               Daniel DeTone and
               Tomasz Malisiewicz and
               Andrew Rabinovich},
  title     = {{SuperGlue}: 使用图神经网络学习特征匹配},
  booktitle = {CVPR},
  year      = {2020},
  url       = {https://arxiv.org/abs/1911.11763}
}

其他说明

  • 在演示过程中,我们发现键盘交互在 OpenCV 4.1.2.30 版本下表现良好。较旧的版本响应较慢,而最新版本则存在一个 Mac 上的 OpenCV bug
  • 我们通常不建议将 SuperPoint+SuperGlue 的输入分辨率设置低于 160x120(QQVGA)或高于 2000x1500。
  • 我们无意公开 SuperGlue 的训练代码。
  • 我们无意公开基于 SIFT 或单应矩阵的 SuperGlue 模型。

法律声明

Magic Leap 很荣幸能在 Github 上分享其最新的样本、工具包和研究项目,以促进开发并收集空间计算社区的反馈。使用本仓库中的资源需遵守 (a) 此处包含的许可协议,或 (b) 如果未包含许可协议,则需遵守 Magic Leap 的 开发者协议,该协议可在我们的 开发者门户 上找到。 如果您需要更多帮助,欢迎前往 论坛! 我们很高兴能成为数百万充满善意、友好且热情的社区的一员。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

160.4k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|昨天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架