GeoCalib

GitHub
825 59 简单 1 次阅读 昨天Apache-2.0开发框架
AI 解读 由 AI 自动生成,仅供参考

GeoCalib 是一款基于深度学习的开源算法,专为单张图像的相机标定而设计。它只需输入一张照片,就能精准估算出相机的内参(如焦距、畸变系数)以及重力方向,无需依赖多视角图像或复杂的标定板。

在传统视觉任务中,获取准确的相机参数往往需要专业设备或多帧数据,这在处理历史照片或单图场景时极具挑战。GeoCalib 巧妙地将几何优化技术与深度学习模型相结合,不仅提升了标定的准确性,还增强了对不同畸变类型的适应能力,有效解决了单图条件下参数估计难的问题。

这款工具非常适合计算机视觉开发者、科研人员以及需要处理图像几何信息的工程师使用。无论是用于三维重建、增强现实,还是摄影测量分析,GeoCalib 都能提供可靠的底层参数支持。其独特的技术亮点在于引入了可微分的几何优化层,让神经网络不仅能“猜测”参数,还能通过几何约束进行自我修正。此外,项目提供了便捷的 Python 接口、Colab 在线演示以及实时摄像头交互功能,让用户能快速上手验证效果,极大地降低了单图标定的使用门槛。

使用场景

一位城市街景采集工程师正在处理由手持设备拍摄的数万张非专业监控照片,需要快速构建高精度的 3D 地图模型。

没有 GeoCalib 时

  • 依赖昂贵硬件:必须使用预先经过严格标定的专业工业相机,普通手机或运动相机拍摄的照片因缺乏内参数据而无法直接用于重建。
  • 人工干预繁琐:面对海量单张图片,工程师需手动估算焦距和畸变参数,或运行耗时的多视图几何算法,一旦图片重叠度不足即宣告失败。
  • 重力方向缺失:由于无法自动识别地平面,生成的 3D 模型往往发生倾斜或旋转,后期需要大量人工操作才能将建筑物“扶正”。
  • 容错率极低:对于存在明显镜头畸变的广角照片,传统方法极易计算发散,导致整批数据作废,严重影响项目交付进度。

使用 GeoCalib 后

  • 单图即时标定:GeoCalib 能直接从任意单张 JPG 图片中精准推算出相机内参(焦距、主点)及畸变系数,让低成本消费级相机也能产出专业级数据。
  • 自动化流水线:结合深度学习与几何优化,GeoCalib 无需多视角约束即可批量处理独立图片,将原本数小时的预处理工作压缩至分钟级。
  • 自动垂直校正:GeoCalib 同步输出精确的重力方向向量,自动修正图像姿态,确保重建出的街道和建筑天然保持垂直于地面,无需后期手动调整。
  • 强抗畸变能力:针对鱼眼或大广角镜头产生的严重形变,GeoCalib 展现出卓越的鲁棒性,显著提升了复杂场景下的三维重建成功率。

GeoCalib 通过单图即可实现高精度相机标定与重力对齐,彻底打破了 3D 视觉重建对专业硬件和多视图约束的依赖。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU
  • 可选(支持 CPU 运行)
  • 若使用 GPU,需支持 CUDA 的 NVIDIA 显卡(具体型号和显存未说明),通过 `torch.cuda.is_available()` 自动检测
内存

未说明

依赖
notes该工具主要依赖 PyTorch,支持在 CPU 或 GPU 上运行。安装可通过 pip 直接安装本地包或从 GitHub 安装。评估部分需要额外安装 `siclib` 库。部分评估任务(如 LaMAR, MegaDepth)会自动下载数据集,需预留数百 MB 至 2GB+ 的磁盘空间。交互式演示支持 webcam 或 DroidCam。
python3.9+
torch
geocalib (内置)
siclib (用于评估和训练)
GeoCalib hero image

快速开始

GeoCalib 📸
基于几何优化的单张图像标定

Alexander Veicht · Paul-Edouard Sarlin · Philipp Lindenberger · Marc Pollefeys

ECCV 2024

论文 | Demo 🤗 | Colab | 视频

example
GeoCalib通过将几何优化与深度学习相结合,能够从单张图像中精确估计相机内参和重力方向。

GeoCalib是一种用于单张图像标定的算法:它仅需一张图像即可估计相机内参和重力方向。通过结合几何优化与深度学习,GeoCalib相比以往的方法提供了更灵活、更准确的标定结果。本仓库包含了GeoCalib的推理评估训练代码,以及下载我们的训练数据集OpenPano的说明。

设置与演示

在Colab中打开 Hugging Face

我们提供了一个小型的推理包geocalib,它只需要极少的依赖项和Python >= 3.9。首先克隆仓库并安装依赖:

git clone https://github.com/cvg/GeoCalib.git && cd GeoCalib
python -m pip install -e .
# 或者
python -m pip install -e "git+https://github.com/cvg/GeoCalib#egg=geocalib"

以下是一个最小使用示例:

import torch
from geocalib import GeoCalib

device = "cuda" if torch.cuda.is_available() else "cpu"
model = GeoCalib().to(device)

# 加载图像为范围 [0, 1] 的张量,形状为 [C, H, W]
image = model.load_image("path/to/image.jpg").to(device)
result = model.calibrate(image)

print("camera:", result["camera"])
print("gravity:", result["gravity"])

请查看我们的演示笔记本,以获取完整的运行示例。

[针对你的摄像头的交互式演示 - 点击展开] 运行以下命令:
python -m geocalib.interactive_demo --camera_id 0

演示会打开一个窗口,显示摄像头画面和标定结果。如果未提供--camera_id,演示会提示输入droidcam摄像头的IP地址。

控制方式:

使用以下按键切换不同的功能:

  • h: 显示估计的地平线
  • u: 显示估计的向上向量
  • l: 显示估计的纬度热图
  • c: 显示向上向量和纬度的置信度热图
  • d: 显示去畸变后的图像,会覆盖其他功能
  • g: 显示虚拟网格点
  • b: 显示虚拟盒子物体

使用以下按键更改相机模型:

  • 1: 小孔模型 -> 简单快速
  • 2: 简单径向模型 -> 适用于小畸变
  • 3: 简单分割模型 -> 适用于大畸变

按下q退出演示。

[使用torch hub加载GeoCalib - 点击展开]
model = torch.hub.load("cvg/GeoCalib", "GeoCalib", trust_repo=True)

相机模型

GeoCalib目前通过camera_model参数支持以下相机模型:

  1. pinhole(默认)仅建模焦距fxfy,不考虑镜头畸变。
  2. simple_radial用单个多项式畸变参数k1建模弱畸变。
  3. radial用多项式畸变参数k1k2建模较强畸变(感谢RuibinMa #25)。
  4. simple_divisional按照Fitzgibbon在Simultaneous linear estimation of multiple view geometry and lens distortion(CVPR 2001)的建议,用单个畸变参数k1建模强鱼眼畸变。

默认模型针对小孔图像进行了优化。若需处理镜头畸变,请使用以下方法:

model = GeoCalib(weights="distorted")  # 默认是“pinhole”
result = model.calibrate(image, camera_model="simple_radial")  # 或 pinhole、simple_divisional

主点被假定位于图像中心,且不会被优化。可以通过扩展Camera对象来实现更多模型。

部分标定

当内参或重力方向已知时,可以按如下方式提供先验信息:

# 已知内参:
result = model.calibrate(image, priors={"focal": focal_length_tensor})

# 已知重力方向:
result = model.calibrate(image, priors={"gravity": gravity_direction_tensor})

多图像标定

要标定由同一台相机拍摄的多张图像,可以将图像列表传递给GeoCalib:

# batch 是一个张量列表,每个张量的形状为 [C, H, W]
result = model.calibrate(batch,shared_intrinsics=True)

评估

完整的评估和训练代码包含在单张图像标定库siclib中,可通过以下方式安装:

python -m pip install -e siclib

运行评估命令后,结果将被写入outputs/results/目录。

LaMAR

运行评估命令会将数据集下载到 data/lamar2k 目录下,大约需要 400 MB 的磁盘空间。

[评估 GeoCalib]

要评估在 OpenPano 数据集上训练的 GeoCalib 模型,请运行:

python -m siclib.eval.lamar2k --conf geocalib-pinhole --tag geocalib --overwrite
[评估 DeepCalib]

要评估在 OpenPano 数据集上训练的 DeepCalib 模型,请运行:

python -m siclib.eval.lamar2k --conf deepcalib --tag deepcalib --overwrite
[评估 Perspective Fields]

要评估 Perspective Fields 模型,首先按照 ParamNet-siclib 仓库中的说明设置文件。然后运行:

python -m siclib.eval.lamar2k --conf perspective-cities data.preprocessing.resize_backend="PIL" --overwrite

要评估在我们的 OpenPano 数据集上训练的模型,请运行:

python -m siclib.eval.lamar2k --conf perspective-openpano --overwrite
[评估 UVP]

要评估 UVP 模型,需先在 third_party/VP-Estimation-with-Prior-Gravity 目录下安装 VP-Estimation-with-Prior-Gravity。然后运行:

python -m siclib.eval.lamar2k --conf uvp --tag uvp --overwrite data.preprocessing.edge_divisible_by=null
[评估您自己的模型]

如果您训练了自己的模型,可以通过以下命令进行评估:

python -m siclib.eval.lamar2k --checkpoint <实验名称> --tag <评估名称> --overwrite
[结果]

以下是不同方法在滚转、俯仰和视场角(FoV)误差方面,于 1/5/10 度阈值下的曲线下面积(AUC)结果:

方法 滚转 俯仰 视场角
DeepCalib 44.1 / 73.9 / 84.8 10.8 / 28.3 / 49.8 00.7 / 13.0 / 24.0
ParamNet 38.7 / 69.4 / 82.8 19.0 / 44.7 / 65.7 01.8 / 06.2 / 13.2
ParamNet (OpenPano) 51.7 / 77.0 / 86.0 27.0 / 52.7 / 70.2 02.8 / 06.8 / 14.3
UVP 72.7 / 81.8 / 85.7 42.3 / 59.9 / 69.4 15.6 / 30.6 / 43.5
GeoCalib 86.4 / 92.5 / 95.0 55.0 / 76.9 / 86.2 19.1 / 41.5 / 60.0

MegaDepth

运行评估命令会将数据集下载到 data/megadepth2kdata/memegadepth2k-radial 目录下,分别需要约 2.1 GB 和 1.47 GB 的磁盘空间。

[评估 GeoCalib]

要评估在 OpenPano 数据集上训练的 GeoCalib 模型,请运行:

python -m siclib.eval.megadepth2k --conf geocalib-pinhole --tag geocalib --overwrite

若要在径向畸变图像上运行评估,则执行以下命令:

python -m siclib.eval.megadepth2k_radial --conf geocalib-pinhole --tag geocalib --overwrite model.camera_model=simple_radial
[评估 DeepCalib]

要评估在 OpenPano 数据集上训练的 DeepCalib 模型,请运行:

python -m siclib.eval.megadepth2k --conf deepcalib --tag deepcalib --overwrite
[评估 Perspective Fields]

要评估 Perspective Fields 模型,首先按照 ParamNet-siclib 仓库中的说明设置文件。然后运行:

python -m siclib.eval.megadepth2k --conf perspective-cities data.preprocessing.resize_backend="PIL" --overwrite

要评估在我们的 OpenPano 数据集上训练的模型,请运行:

python -m siclib.eval.megadepth2k --conf perspective-openpano --overwrite
[评估 UVP]

要评估 UVP 模型,需先在 third_party/VP-Estimation-with-Prior-Gravity 目录下安装 VP-Estimation-with-Prior-Gravity。然后运行:

python -m siclib.eval.megadepth2k --conf uvp --tag uvp --overwrite data.preprocessing.edge_divisible_by=null
[评估您自己的模型]

如果您训练了自己的模型,可以通过以下命令进行评估:

python -m siclib.eval.megadepth2k --checkpoint <实验名称> --tag <评估名称> --overwrite
[结果]

以下是不同方法在滚转、俯仰和视场角(FoV)误差方面,于 1/5/10 度阈值下的曲线下面积(AUC)结果:

方法 滚转 俯仰 视场角
DeepCalib 34.6 / 65.4 / 79.4 11.9 / 27.8 / 44.8 5.6 / 12.1 / 22.9
ParamNet 37.0 / 66.4 / 80.8 15.8 / 37.3 / 57.1 5.3 / 12.8 / 24.0
ParamNet (OpenPano) 43.4 / 70.7 / 82.2 15.4 / 34.5 / 53.3 3.2 / 10.1 / 21.3
UVP 69.2 / 81.6 / 86.9 21.6 / 36.2 / 47.4 8.2 / 18.7 / 29.8
GeoCalib 82.6 / 90.6 / 94.0 32.4 / 53.3 / 67.5 13.6 / 31.7 / 48.2

TartanAir

运行评估命令会将数据集下载到 data/tartanair 目录下,大约需要 1.85 GB 的磁盘空间。

[评估 GeoCalib]

要评估在 OpenPano 数据集上训练的 GeoCalib 模型,请运行:

python -m siclib.eval.tartanair --conf geocalib-pinhole --tag geocalib --overwrite
[评估 DeepCalib]

要评估在 OpenPano 数据集上训练的 DeepCalib 模型,请运行:

python -m siclib.eval.tartanair --conf deepcalib --tag deepcalib --overwrite
[评估 Perspective Fields]

要评估 Perspective Fields 模型,首先请按照 ParamNet-siclib 仓库中的说明设置文件。然后运行:

python -m siclib.eval.tartanair --conf perspective-cities data.preprocessing.resize_backend="PIL" --overwrite

要评估在我们的 OpenPano 数据集上训练的模型,请运行:

python -m siclib.eval.tartanair --conf perspective-openpano --overwrite
[评估 UVP]

要评估 UVP 模型,请先在 third_party/VP-Estimation-with-Prior-Gravity 目录下安装 VP-Estimation-with-Prior-Gravity。然后运行:

python -m siclib.eval.tartanair --conf uvp --tag uvp --overwrite data.preprocessing.edge_divisible_by=null
[评估您自己的模型]

如果您训练了自己的模型,可以通过以下命令进行评估:

python -m siclib.eval.tartanair --checkpoint <实验名称> --tag <评估名称> --overwrite
[结果]

以下是不同方法在滚转、俯仰和视场角(FoV)误差方面,于 1/5/10 度下的曲线下面积(AUC)结果:

方法 滚转 俯仰 视场角
DeepCalib 24.7 / 55.4 / 71.5 16.3 / 38.8 / 58.5 01.5 / 08.8 / 27.2
ParamNet 23.3 / 51.4 / 71.0 19.9 / 43.8 / 62.9 08.5 / 22.5 / 40.8
ParamNet (OpenPano) 34.5 / 59.2 / 73.9 19.4 / 42.0 / 60.3 06.0 / 16.8 / 31.6
UVP 52.1 / 64.8 / 71.9 36.2 / 48.8 / 58.6 15.8 / 25.8 / 35.7
GeoCalib 71.3 / 83.8 / 89.8 38.2 / 62.9 / 76.6 14.1 / 30.4 / 47.6

Stanford2D3D

在下载并运行评估之前,您需要同意 Stanford2D3D 数据集的 使用条款。运行评估命令会将数据集下载到 data/stanford2d3d 目录下,大约需要 885 MB 的磁盘空间。

[评估 GeoCalib]

要评估在 OpenPano 数据集上训练的 GeoCalib 模型,请运行:

python -m siclib.eval.stanford2d3d --conf geocalib-pinhole --tag geocalib --overwrite
[评估 DeepCalib]

要评估在 OpenPano 数据集上训练的 DeepCalib 模型,请运行:

python -m siclib.eval.stanford2d3d --conf deepcalib --tag deepcalib --overwrite
[评估 Perspective Fields]

要评估 Perspective Fields 模型,首先请按照 ParamNet-siclib 仓库中的说明设置文件。然后运行:

python -m siclib.eval.stanford2d3d --conf perspective-cities data.preprocessing.resize_backend="PIL" --overwrite

要评估在我们的 OpenPano 数据集上训练的模型,请运行:

python -m siclib.eval.stanford2d3d --conf perspective-openpano --overwrite
[评估 UVP]

要评估 UVP 模型,请先在 third_party/VP-Estimation-with-Prior-Gravity 目录下安装 VP-Estimation-with-Prior-Gravity。然后运行:

python -m siclib.eval.stanford2d3d --conf uvp --tag uvp --overwrite data.preprocessing.edge_divisible_by=null
[评估您自己的模型]

如果您训练了自己的模型,可以通过以下命令进行评估:

python -m siclib.eval.stanford2d3d --checkpoint <实验名称> --tag <评估名称> --overwrite
[结果]

以下是不同方法在滚转、俯仰和视场角(FoV)误差方面,于 1/5/10 度下的曲线下面积(AUC)结果:

方法 滚转 俯仰 视场角
DeepCalib 33.8 / 63.9 / 79.2 21.6 / 46.9 / 65.7 08.1 / 20.6 / 37.6
ParamNet 20.6 / 48.5 / 68.1 20.9 / 44.2 / 61.5 07.4 / 18.0 / 33.2
ParamNet (OpenPano) 44.6 / 73.9 / 84.8 29.2 / 56.7 / 73.1 05.8 / 14.3 / 27.8
UVP 65.3 / 74.6 / 79.1 51.2 / 63.0 / 69.2 22.2 / 39.5 / 51.3
GeoCalib 83.1 / 91.8 / 94.8 52.3 / 74.8 / 84.6 17.4 / 40.0 / 59.4

评估选项

如果您希望在评估过程中提供先验信息,可以添加以下一个或多个标志:

python -m siclib.eval.<benchmark> --conf <config> \
    --tag <tag> \
    data.use_prior_focal=true \
    data.use_prior_gravity=true \
    data.use_prior_k1=true
[可视化检查]

要对评估结果进行可视化检查,可以运行以下命令:

python -m siclib.eval.inspect <benchmark> <一个或多个标签>

例如,要检查 GeoCalib 模型在 LaMAR 数据集上的评估结果,可以运行:

python -m siclib.eval.inspect lamar2k geocalib

OpenPano 数据集

OpenPano 数据集是一个用于单张图像标定的新数据集,包含来自不同来源的约 2,800 张全景图,具体来源包括 HDRMAPSPolyHaven 以及 Laval 光度学室内 HDR 数据集。尽管该数据集规模小于以往的数据集,但它面向公众开放,并且在室内与室外场景之间提供了更好的平衡。

[下载和准备数据集]

为了构建训练集,首先按照 相应项目页面 的说明下载 Laval 数据集,并将全景图放置在 data/indoorDatasetCalibrated 目录下。然后,使用以下命令对 HDR 图像进行色调映射:

python -m siclib.datasets.utils.tonemapping --hdr_dir data/indoorDatasetCalibrated --out_dir data/laval-tonemap

我们提供了一个脚本用于下载 PolyHaven 和 HDRMAPS 的全景图。该脚本会创建 data/openpano/panoramas/{split} 文件夹,其中包含由 {split}_panos.txt 文件指定的全景图。要运行该脚本,请执行以下命令:

python -m siclib.datasets.utils.download_openpano --name openpano --laval_dir data/laval-tonemap

或者,您也可以从 这里 下载 PolyHaven 和 HDRMAPS 的全景图。

下载完全景图后,可以通过运行以下命令来创建训练集:

python -m siclib.datasets.create_dataset_from_pano --config-name openpano

为了加快数据集的创建过程,可以使用多个工作进程和 GPU。为此,在命令中添加以下参数:

python -m siclib.datasets.create_dataset_from_pano --config-name openpano n_workers=10 device=cuda

这将在 data/openpano/openpano 中创建训练集,包含约 37,000 张用于训练的图像、2,100 张用于验证的图像以及 2,100 张用于测试的图像。

[带有径向畸变的 OpenPano]

要创建带有径向畸变的 OpenPano 数据集,可运行以下命令:

python -m siclib.datasets.create_dataset_from_pano --config-name openpano_radial

训练

关于评估部分,训练代码已包含在单张图像标定库 siclib 中,可通过以下命令安装:

python -m pip install -e siclib

一旦 OpenPano 数据集 下载并准备好,我们就可以使用它来训练 GeoCalib:

首先下载 MSCAN-B 主干网络的预训练权重:

mkdir weights
wget "https://cloud.tsinghua.edu.cn/d/c15b25a6745946618462/files/?p=%2Fmscan_b.pth&dl=1" -O weights/mscan_b.pth

然后,使用以下命令开始训练:

python -m siclib.train geocalib-pinhole-openpano --conf geocalib --distributed

您可以自由选择其他实验名称。默认情况下,检查点将被写入 outputs/training/ 目录。默认批量大小为 24,需要两块配备 24GB 显存的 4090 GPU。配置由 Hydra 管理,可通过命令行覆盖。 例如,要在单块 2080 GPU 上以 5 的批量大小训练 GeoCalib,可运行:

python -m siclib.train geocalib-pinhole-openpano \
    --conf geocalib \
    data.train_batch_size=5 # 对于 1x 2080 GPU

请注意,这可能会影响整体性能。您可能需要相应地调整学习率和训练步数。

如果您希望将训练进度记录到 tensorboardwandb 中,可以设置 train.writer 选项:

python -m siclib.train geocalib-pinhole-openpano \
    --conf geocalib \
    --distributed \
    train.writer=tensorboard

随后,可以使用实验名称对该模型进行评估:

python -m siclib.eval.<benchmark> --checkpoint geocalib-pinhole-openpano \
    --tag geocalib-retrained
[训练 DeepCalib]

要使用 OpenPano 数据集训练 DeepCalib,可运行:

python -m siclib.train deepcalib-openpano --conf deepcalib --distributed

请确保您已经生成了带有径向畸变的 OpenPano 数据集,或者在命令中添加 data=openpano 标志,以便在针孔图像上进行训练。

[训练 Perspective Fields]

要训练 Perspective Fields,首先按照 ParamNet-siclib 仓库中的说明设置文件。然后执行以下步骤:

首先训练透视网络:

python -m siclib.train perspective-net --conf perspective-net --distributed

接着将训练好的权重保存到 weights/persnet-pano-old.tar 文件中,再训练完整模型:

python -m siclib.train param-net --conf param-net --distributed

BibTeX 引用

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

@inproceedings{veicht2024geocalib,
  author    = {Alexander Veicht and
               Paul-Edouard Sarlin and
               Philipp Lindenberger and
               Marc Pollefeys},
  title     = {{GeoCalib: Single-image Calibration with Geometric Optimization}},
  booktitle = {ECCV},
  year      = {2024}
}

许可证

代码采用 Apache-2.0 许可证 发布,而训练后的模型权重则采用 知识共享署名 4.0 国际许可协议 发布。感谢 Laval 室内 HDR 数据集 的作者允许我们使用其数据。

版本历史

v1.02024/09/08

常见问题

相似工具推荐

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|★★★☆☆|1周前
开发框架图像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 真正成长为懂上

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

ComfyUI

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

108.3k|★★☆☆☆|1周前
开发框架图像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周前
插件开发框架