dinov2
dinov2 是由 Meta AI 研发的一套基于 PyTorch 的自监督学习框架,旨在无需任何人工标注的情况下,从海量图像中自动学习强大且通用的视觉特征。它有效解决了传统计算机视觉模型依赖昂贵标注数据、跨领域泛化能力弱的痛点。通过仅在 1.42 亿张无标签图像上进行预训练,dinov2 生成的特征极具鲁棒性,可直接配合简单的线性分类器应用于各类视觉任务,无需针对特定场景进行微调即可表现出色。
该项目特别适合计算机视觉领域的研究人员和开发者使用,尤其是那些希望利用高质量预训练模型加速算法开发、或探索自监督学习潜力的团队。其核心技术亮点包括独特的“寄存器(Registers)”机制,显著提升了 Vision Transformer 处理高分辨率图像的能力;此外,生态还在不断扩展,已衍生出专为生物细胞显微成像设计的 Cell-DINO 以及面向医疗 X 光分析的 XRay-DINO 等垂直领域变体。无论是作为基础骨干网络提取特征,还是作为新研究的起点,dinov2 都提供了一个高效、灵活且性能卓越的开源解决方案。
使用场景
某医疗科技公司的算法团队正在开发一套自动筛查肺部 X 光片的辅助诊断系统,面临标注数据稀缺且模型泛化能力差的挑战。
没有 dinov2 时
- 数据标注成本高昂:团队需要放射科医生手动标注数万张 X 光片才能训练出可用的监督模型,耗时数月且预算超支。
- 跨医院泛化失败:在 A 医院数据上训练的模型,一旦应用到 B 医院不同设备拍摄的影像上,准确率因分布差异急剧下降。
- 细微病灶漏检:传统预训练模型(如 ImageNet pretrained)缺乏医学纹理理解,难以提取早期微小结节的鲁棒特征,导致漏诊率高。
- 迭代周期漫长:每次调整网络结构或增加新病种,都必须重新进行耗时的全量微调,研发效率极低。
使用 dinov2 后
- 零样本特征提取:直接加载支持 X 光分析的 XRay-DINO 预训练权重,无需任何标注即可提取高质量视觉特征,将冷启动时间从数月缩短至几天。
- 域适应能力强:dinov2 在无监督学习中掌握了通用的解剖结构特征,模型在不同医院、不同成像设备的影像上均保持稳定的高准确率。
- 捕捉微小异常:得益于自监督学习对局部纹理的深刻理解,dinov2 能精准定位并编码早期微小病灶,显著提升了敏感度和召回率。
- 轻量级快速部署:只需在冻结的 dinov2 骨干网络上训练简单的线性分类器即可完成新任务适配,大幅降低了算力需求和迭代周期。
dinov2 通过强大的自监督学习能力,让医疗 AI 在极少标注数据下也能实现高精度、强泛化的疾病筛查,彻底改变了小样本场景下的开发范式。
运行环境要求
- 未说明
强烈建议安装支持 CUDA 的 PyTorch(具体显存和 CUDA 版本未说明,但运行 ViT-g/14 等大模型通常需要高显存)
未说明

快速开始
:new: [2025-12-18] 新增对XRay-DINO主干网络的加载支持,基于论文通过整体自监督学习推进鲁棒的X射线分析的人本AI,更多详情请见这里
:new: [2025-12-16] 新增通道自适应DINO代码,基于论文扩展通道自适应自监督学习,更多详情请见这里
:new: [2025-12-16] 新增Cell-DINO代码,基于论文[Cell-DINO:用于细胞荧光显微镜的自监督图像嵌入](即将发表于Plos One Computational Biology),更多详情请见这里
[2025-08-14] 请查看更近期的DINOv3项目,该项目延续了这一研究方向。
[2025-06-11] 新增dino.txt推理代码,基于论文[DINOv2遇见文本:面向图像与像素级视觉-语言对齐的统一框架](https://arxiv.org/abs/2412.16334)。
[2023-10-26] 新增带有寄存器的DINOv2主干网络,基于论文[视觉Transformer需要寄存器](https://arxiv.org/abs/2309.16588)。
DINOv2:无监督学习鲁棒视觉特征
Maxime Oquab, Timothée Darcet, Théo Moutakanni, Huy V. Vo, Marc Szafraniec, Vasil Khalidov, Patrick Labatut, Armand Joulin, Piotr Bojanowski
[论文 #1] 论文 #2] [博客] [演示] [BibTeX]
DINOv2的PyTorch实现及预训练模型。详情请参阅以下两篇论文:DINOv2:无监督学习鲁棒视觉特征 和 视觉Transformer需要寄存器。
DINOv2模型能够生成高性能的视觉特征,这些特征可以直接与诸如线性层之类的分类器结合,应用于多种计算机视觉任务;且无需任何微调即可在不同领域表现出色。该模型是在包含1.42亿张图片的数据集上进行预训练的,过程中未使用任何标签或标注信息。
https://github.com/facebookresearch/dinov2/assets/60359573/f168823e-7922-415a-b429-578badf5c356
预训练模型
| 模型 | # of params |
with registers |
ImageNet k-NN |
ImageNet linear |
下载 |
|---|---|---|---|---|---|
| ViT-S/14蒸馏版 | 21 M | :x: | 79.0% | 81.1% | 仅主干网络 |
| ViT-S/14蒸馏版 | 21 M | :white_check_mark: | 79.1% | 80.9% | 仅主干网络 |
| ViT-B/14蒸馏版 | 86 M | :x: | 82.1% | 84.5% | 仅主干网络 |
| ViT-B/14蒸馏版 | 86 M | :white_check_mark: | 82.0% | 84.6% | 仅主干网络 |
| ViT-L/14蒸馏版 | 300 M | :x: | 83.5% | 86.3% | 仅主干网络 |
| ViT-L/14蒸馏版 | 300 M | :white_check_mark: | 83.8% | 86.7% | 仅主干网络 |
| ViT-g/14 | 1,100 M | :x: | 83.5% | 86.5% | 仅主干网络 |
| ViT-g/14 | 1,100 M | :white_check_mark: | 83.7% | 87.1% | 仅主干网络 |
预训练主干网络(通过PyTorch Hub)
请按照此处的说明安装PyTorch(加载模型所需的唯一依赖项)。强烈建议安装支持CUDA的PyTorch版本。
仓库中附带相应的模型卡片。
import torch
# DINOv2
dinov2_vits14 = torch.hub.load('facebookresearch/dinov2', 'dinov2_vits14')
dinov2_vitb14 = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitb14')
dinov2_vitl14 = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitl14')
dinov2_vitg14 = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitg14')
# 带寄存器的DINOv2
dinov2_vits14_reg = torch.hub.load('facebookresearch/dinov2', 'dinov2_vits14_reg')
dinov2_vitb14_reg = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitb14_reg')
dinov2_vitl14_reg = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitl14_reg')
dinov2_vitg14_reg = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitg14_reg')
预训练主干网络:XRay-DINO
模型下载请求链接如下:
https://ai.meta.com/resources/models-and-libraries/raydino-downloads/
填写表格后,您将收到一封包含临时链接的电子邮件。您可以使用 wget 下载模型,并在本地文件系统中指定检查点路径;或者直接在以下代码中使用邮件中的 URL:
import torch
REPO_DIR = <本地目录路径,DINOV2 仓库被克隆到的位置>
xray_dino_vitl16 = torch.hub.load(REPO_DIR, 'xray_dino_vitl16', source='local', weights=<检查点 URL 或路径>)
许可证 模型权重根据 FAIR 非商业研究许可证发布。更多详情请参阅 LICENSE_XRAY_DINO_MODEL 文件。
预训练头部 - 图像分类
| 主干网络 | 是否带有 注册表 |
下载 |
|---|---|---|
| ImageNet | ||
| ViT-S/14 蒸馏版 | :x: | 线性头部(1 层, 4 层) |
| ViT-S/14 蒸馏版 | :white_check_mark: | 线性头部(1 层, 4 层) |
| ViT-B/14 蒸馏版 | :x: | 线性头部(1 层, 4 层) |
| ViT-B/14 蒸馏版 | :white_check_mark: | 线性头部(1 层, 4 层) |
| ViT-L/14 蒸馏版 | :x: | 线性头部(1 层, 4 层) |
| ViT-L/14 蒸馏版 | :white_check_mark: | 线性头部(1 层, 4 层) |
| ViT-g/14 | :x: | 线性头部(1 层, 4 层) |
| ViT-g/14 | :white_check_mark: | 线性头部(1 层, 4 层) |
完整的分类器模型可以通过 PyTorch Hub 加载:
import torch
# DINOv2
dinov2_vits14_lc = torch.hub.load('facebookresearch/dinov2', 'dinov2_vits14_lc')
dinov2_vitb14_lc = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitb14_lc')
dinov2_vitl14_lc = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitl14_lc')
dinov2_vitg14_lc = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitg14_lc')
# 带有注册表的 DINOv2
dinov2_vits14_reg_lc = torch.hub.load('facebookresearch/dinov2', 'dinov2_vits14_reg_lc')
dinov2_vitb14_reg_lc = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitb14_reg_lc')
dinov2_vitl14_reg_lc = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitl14_reg_lc')
dinov2_vitg14_reg_lc = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitg14_reg_lc')
预训练头 - 深度估计
| 主干网络 | 下载头部 | |
|---|---|---|
| NYUd | KITTI | |
| ViT-S/14 蒸馏版 | 线性层(1 层, 4 层), DPT | 线性层(1 层, 4 层), DPT |
| ViT-B/14 蒸馏版 | 线性层(1 层, 4 层), DPT | 线性层(1 层, 4 层), DPT |
| ViT-L/14 蒸馏版 | 线性层(1 层, 4 层), DPT | 线性层(1 层, 4 层), DPT |
| ViT-g/14 | 线性层(1 层, 4 层), DPT | 线性层(1 层, 4 层), DPT |
预训练头 - 语义分割
| 主干网络 | 下载模型 | 下载头部 | |
|---|---|---|---|
| ADE20K | ADE20K | VOC2012 | |
| ViT-S/14 蒸馏版 | 线性层, 多尺度 | 线性层, 多尺度 | |
| ViT-B/14 蒸馏版 | 线性层, 多尺度 | 线性层, 多尺度 | |
| ViT-L/14 蒸馏版 | 线性层, 多尺度 | 线性层, 多尺度 | |
| ViT-g/14 | Mask2Former | 线性层, 多尺度 | 线性层, 多尺度 |
预训练头 - 使用 dino.txt 的零样本任务
| 骨干网络 | 是否带有 注册表 |
下载 |
|---|---|---|
| ViT-L/14 蒸馏版 | :white_check_mark: | 视觉头, 文本模型, 词汇表, 词汇表许可 |
可以通过 PyTorch Hub 加载完整的 dino.txt 模型:
import torch
# DINOv2
dinov2_vitl14_reg4_dinotxt_tet1280d20h24l = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitl14_reg4_dinotxt_tet1280d20h24l')
安装
训练和评估代码需要 PyTorch 2.0 和 xFormers 0.0.18,以及一些其他的第三方包。请注意,代码仅在指定版本下进行了测试,并且要求使用 Linux 环境。要设置训练和评估所需的所有依赖项,请按照以下步骤操作:
conda (推荐) - 克隆仓库,然后使用提供的环境定义创建并激活一个名为 dinov2 的 conda 环境:
conda env create -f conda.yaml
conda activate dinov2
pip - 克隆仓库,然后使用提供的 requirements.txt 安装依赖项:
pip install -r requirements.txt
对于密集型任务(深度估计和语义分割),还有一些额外的依赖项(特定版本的 mmcv 和 mmsegmentation),这些依赖项被记录在 extras 依赖规范中:
conda (推荐):
conda env create -f conda-extras.yaml
conda activate dinov2-extras
pip:
pip install -r requirements.txt -r requirements-extras.txt
数据准备
ImageNet-1k
数据集的根目录应包含以下内容:
<ROOT>/test/ILSVRC2012_test_00000001.JPEG<ROOT>/test/[..]<ROOT>/test/ILSVRC2012_test_00100000.JPEG<ROOT>/train/n01440764/n01440764_10026.JPEG<ROOT>/train/[...]<ROOT>/train/n15075141/n15075141_9993.JPEG<ROOT>/val/n01440764/ILSVRC2012_val_00000293.JPEG<ROOT>/val/[...]<ROOT>/val/n15075141/ILSVRC2012_val_00049174.JPEG<ROOT>/labels.txt
提供的数据集实现期望在 extra 目录下存在一些额外的元数据文件:
<EXTRA>/class-ids-TRAIN.npy<EXTRA>/class-ids-VAL.npy<EXTRA>/class-names-TRAIN.npy<EXTRA>/class-names-VAL.npy<EXTRA>/entries-TEST.npy<EXTRA>/entries-TRAIN.npy<EXTRA>/entries-VAL.npy
这些元数据文件可以使用以下 Python 代码一次性生成:
from dinov2.data.datasets import ImageNet
for split in ImageNet.Split:
dataset = ImageNet(split=split, root="<ROOT>", extra="<EXTRA>")
dataset.dump_extra()
请注意,根目录和 extra 目录不必是独立的目录。
ImageNet-22k
请根据您的本地设置调整 数据集类。
:warning: 为了执行接下来章节中提供的训练和评估命令,dinov2 包应包含在 Python 模块搜索路径中,即只需在运行命令前加上 PYTHONPATH=.。
训练
快速设置:在 ImageNet-1k 上训练 DINOv2 ViT-L/16
在 SLURM 集群环境中,使用 submitit 在 4 个 A100-80GB 节点(32 个 GPU)上运行 DINOv2 训练:
python dinov2/run/train/train.py \
--nodes 4 \
--config-file dinov2/configs/train/vitl16_short.yaml \
--output-dir <PATH/TO/OUTPUT/DIR> \
train.dataset_path=ImageNet:split=TRAIN:root=<PATH/TO/DATASET>:extra=<PATH/TO/DATASET>
训练时间约为 1 天,最终检查点在 k-NN 评估中应达到 81.6%,在线性评估中应达到 82.9%。
训练代码每 12500 次迭代会在 eval 文件夹中保存教师权重,以便进行评估。
长期设置:在 ImageNet-22k 上训练 DINOv2 ViT-L/14
在 SLURM 集群环境中,使用 submitit 在 12 个 A100-80GB 节点(96 个 GPU)上运行 DINOv2 训练:
python dinov2/run/train/train.py \
--nodes 12 \
--config-file dinov2/configs/train/vitl14.yaml \
--output-dir <PATH/TO/OUTPUT/DIR> \
train.dataset_path=ImageNet22k:root=<PATH/TO/DATASET>:extra=<PATH/TO/DATASET>
训练时间约为 3.3 天,最终检查点在 k-NN 评估中应达到 82.0%,在线性评估中应达到 84.5%。
训练代码每 12500 次迭代会在 eval 文件夹中保存教师权重,以便进行评估。
评估
训练代码会定期保存教师权重。为了评估模型,可以在单个节点上运行以下评估:
ImageNet-1k 上的 k-NN 分类
python dinov2/run/eval/knn.py \
--config-file <PATH/TO/OUTPUT/DIR>/config.yaml \
--pretrained-weights <PATH/TO/OUTPUT/DIR>/eval/training_24999/teacher_checkpoint.pth \
--output-dir <PATH/TO/OUTPUT/DIR>/eval/training_24999/knn \
--train-dataset ImageNet:split=TRAIN:root=<PATH/TO/DATASET>:extra=<PATH/TO/DATASET> \
--val-dataset ImageNet:split=VAL:root=<PATH/TO/DATASET>:extra=<PATH/TO/DATASET>
ImageNet-1k 上的逻辑回归分类
python dinov2/run/eval/log_regression.py \
--config-file <PATH/TO/OUTPUT/DIR>/config.yaml \
--pretrained-weights <PATH/TO/OUTPUT/DIR>/eval/training_24999/teacher_checkpoint.pth \
--output-dir <PATH/TO/OUTPUT/DIR>/eval/training_24999/logreg \
--train-dataset ImageNet:split=TRAIN:root=<PATH/TO/DATASET>:extra=<PATH/TO/DATASET> \
--val-dataset ImageNet:split=VAL:root=<PATH/TO/DATASET>:extra=<PATH/TO/DATASET>
在 ImageNet-1k 数据集上使用数据增强的线性分类
python dinov2/run/eval/linear.py \
--config-file <PATH/TO/OUTPUT/DIR>/config.yaml \
--pretrained-weights <PATH/TO/OUTPUT/DIR>/eval/training_24999/teacher_checkpoint.pth \
--output-dir <PATH/TO/OUTPUT/DIR>/eval/training_24999/linear \
--train-dataset ImageNet:split=TRAIN:root=<PATH/TO/DATASET>:extra=<PATH/TO/DATASET> \
--val-dataset ImageNet:split=VAL:root=<PATH/TO/DATASET>:extra=<PATH/TO/DATASET>
我们发布了对不同模型进行评估后的权重:
| 模型 | 是否使用 寄存器 |
ImageNet top-1 |
线性评估 |
|---|---|---|---|
| ViT-S/14 蒸馏版 | :x: | 81.1% | 线性头权重 |
| ViT-S/14 蒸馏版 | :white_check_mark: | 80.8% | 线性头权重 |
| ViT-B/14 蒸馏版 | :x: | 84.5% | 线性头权重 |
| ViT-B/14 蒸馏版 | :white_check_mark: | 84.4% | 线性头权重 |
| ViT-L/14 蒸馏版 | :x: | 86.3% | 线性头权重 |
| ViT-L/14 蒸馏版 | :white_check_mark: | 86.5% | 线性头权重 |
| ViT-g/14 | :x: | 86.5% | 线性头权重 |
| ViT-g/14 | :white_check_mark: | 87.0% | 线性头权重 |
所提供的预训练模型权重在 ImageNet-1k 上的性能可以通过以下方式评估:
python dinov2/run/eval/linear.py \
--config-file dinov2/configs/eval/vitg14_pretrain.yaml \
--pretrained-weights https://dl.fbaipublicfiles.com/dinov2/dinov2_vitg14/dinov2_vitg14_pretrain.pth \
--train-dataset ImageNet:split=TRAIN:root=<PATH/TO/DATASET>:extra=<PATH/TO/DATASET> \
--val-dataset ImageNet:split=VAL:root=<PATH/TO/DATASET>:extra=<PATH/TO/DATASET>
笔记本
提供了一些笔记本,以帮助社区更好地利用这些模型和代码:
- 深度估计 - 如何通过 mmcv 加载并使用与匹配主干网络结合的深度头部
- 语义分割 - 如何通过 mmcv 加载并使用与匹配主干网络结合的分割头部,以及如何加载并使用基于 Mask2Former、在 ADE20K 数据集上训练的分割模型
许可证
DINOv2 的代码和模型权重根据 Apache License 2.0 发布。更多详细信息请参阅 LICENSE。
贡献
请参阅 contributing 和 code of conduct。
引用 DINOv2
如果您觉得这个仓库有用,请考虑给它一个星标 :star: 并引用 :t-rex::
@misc{oquab2023dinov2,
title={DINOv2: Learning Robust Visual Features without Supervision},
author={Oquab, Maxime and Darcet, Timothée and Moutakanni, Theo and Vo, Huy V. and Szafraniec, Marc and Khalidov, Vasil and Fernandez, Pierre and Haziza, Daniel and Massa, Francisco and El-Nouby, Alaaeldin and Howes, Russell and Huang, Po-Yao and Xu, Hu and Sharma, Vasu and Li, Shang-Wen and Galuba, Wojciech and Rabbat, Mike and Assran, Mido and Ballas, Nicolas and Synnaeve, Gabriel and Misra, Ishan and Jegou, Herve and Mairal, Julien and Labatut, Patrick and Joulin, Armand and Bojanowski, Piotr},
journal={arXiv:2304.07193},
year={2023}
}
@misc{darcet2023vitneedreg,
title={Vision Transformers Need Registers},
author={Darcet, Timothée and Oquab, Maxime and Mairal, Julien and Bojanowski, Piotr},
journal={arXiv:2309.16588},
year={2023}
}
@misc{jose2024dinov2meetstextunified,
title={DINOv2 Meets Text: A Unified Framework for Image- and Pixel-Level Vision-Language Alignment},
author={Cijo Jose and Théo Moutakanni and Dahyun Kang and Federico Baldassarre and Timothée Darcet and Hu Xu and Daniel Li and Marc Szafraniec and Michaël Ramamonjisoa and Maxime Oquab and Oriane Siméoni and Huy V. Vo and Patrick Labatut and Piotr Bojanowski},
journal={arXiv:2412.16334},
year={2024}
}
DINOv2 用于生物学
cell_dino 文件夹中包含的源代码内容,包括代码和模型权重,仅用于研究目的。不得用于任何医疗程序,包括诊断、治疗或治愈性应用。请勿将此模型用于任何临床用途,亦不可将其作为专业医疗判断的替代品。
扩展通道自适应自监督学习(通道自适应 DINO)
Alice V. De Lorenci、Seungeun Yi、Théo Moutakanni、Piotr Bojanowski、Camille Couprie、Juan C. Caicedo、Wolfgang M. Pernice,
特别感谢 Elouan Gardes 对代码库的贡献。
Cell-DINO:用于细胞荧光显微镜的自监督图像嵌入(Cell-DINO)
Théo Moutakanni、Camille Couprie、Seungeun Yi、Elouan Gardes、Piotr Bojanowski、Hugo Touvron、Michael Doron、Zitong S. Chen、Nikita Moshkov、Mathilde Caron、Armand Joulin、Wolfgang M. Pernice、Juan C. Caicedo
即将发表。
预训练模型
ℹ️ 请按照下方提供的链接获取所有模型权重:申请通过后,您将收到一封电子邮件,其中包含指向所有可用模型权重的完整 URL 列表。这些 URL 可用于以下两种方式之一:
- 将模型或适配器权重下载到本地文件系统,并通过
pretrained_path参数将torch.hub.load()指向这些本地权重; - 或者直接调用
torch.hub.load(),通过pretrained_url参数从指定 URL 下载并加载主干网络。
⚠️ 请使用 wget 而不是网页浏览器来下载权重。
下载链接: https://ai.meta.com/resources/models-and-libraries/cell-dino-downloads/
import torch
REPO_DIR = <PATH/TO/A/LOCAL/DIRECTORY/WHERE/THE/DINOV2/REPO/WAS/CLONED>
# 您可以先下载 URL 链接,再进行加载:
cell_dino_vits8 = torch.hub.load(REPO_DIR, 'cell_dino_cp_vits8', source='local', pretrained_path=<CHECKPOINT/PATH>)
# 或者在使用 `torch.hub.load` 的同时直接下载 URL:
cell_dino_vits8 = torch.hub.load(REPO_DIR, 'cell_dino_cp_vits8', source='local', pretrained_url=<CHECKPOINT/URL>)
# 其他模型的加载方式类似:
cell_dino_vitl16_hpa_sc = torch.hub.load(REPO_DIR, 'cell_dino_hpa_vitl16', source='local', pretrained_path=<CHECKPOINT/PATH>)
cell_dino_vitl16_hpa_fov = torch.hub.load(REPO_DIR, 'cell_dino_hpa_vitl16', source='local', pretrained_path=<CHECKPOINT/PATH>)
channel_adaptive_dino_vitl16 = torch.hub.load(REPO_DIR, 'channel_adaptive_dino_vitl16', source='local', pretrained_path=<CHECKPOINT/PATH>)
cell_dino_vitl14 = torch.hub.load(REPO_DIR, 'cell_dino_hpa_vitl14', source='local', pretrained_path=<CHECKPOINT/PATH>)
许可证
代码采用 CC BY NC 许可证发布。更多详情请参阅 [LICENSE_CELL_DINO_CODE]。 模型权重采用 FAIR 非商业研究许可证发布。更多详情请参阅 [LICENSE_CELL_DINO_CODE_WEIGHTS]。
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
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 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器