breast_cancer_classifier
breast_cancer_classifier 是一个基于深度神经网络的开源项目,旨在辅助放射科医生提升乳腺癌筛查的准确率。该工具通过处理标准的乳腺 X 光摄影图像(包含左右两侧的 CC 和 MLO 四种视图),自动分析并输出每侧乳房患有良性或恶性病变的概率预测。它有效解决了传统人工阅片可能存在的漏诊或误诊问题,为医生提供客观的量化参考,从而优化诊断决策。
该项目主要适合医疗 AI 研究人员、深度学习开发者以及相关领域的学者使用。需要注意的是,根据官方声明,此模型版本发布于 2019 年,其精度已落后于团队后续研发的新模型,且明确未在任何临床场景中实际部署,因此仅适用于学术研究、算法复现或教学演示,不可直接用于临床诊断。
在技术亮点方面,breast_cancer_classifier 提供了两种预训练模式:一种是仅输入图像的“纯图像模型”,另一种是结合图像与热力图输入的“图像加热力图模型”,后者能更精细地定位可疑区域。项目基于 PyTorch 框架构建,同时也提供了 TensorFlow 版本的实现代码,并附带了示例数据和完整的运行脚本,方便用户快速上手实验与二次开发。
使用场景
某三甲医院放射科在引入 AI 辅助筛查系统时,利用 breast_cancer_classifier 对历史乳腺 X 光影像数据进行回溯性分析,以验证深度学习模型辅助医生诊断的可行性。
没有 breast_cancer_classifier 时
- 放射科医生需完全依赖肉眼逐帧判读四视角(CC/MLO)高清影像,长时间工作易导致视觉疲劳,增加微小病灶漏诊风险。
- 面对海量历史数据,人工复核耗时极长,难以快速量化评估不同年资医生的诊断一致性,缺乏客观的基准参考。
- 仅凭经验判断良恶性概率,缺乏像素级的热图(Heatmap)可视化支持,难以向患者或初级医师直观解释可疑区域的具体依据。
- 无法高效处理标准化的 16 位 PNG 影像数据,人工预处理流程繁琐且容易引入人为误差,影响后续科研数据的准确性。
使用 breast_cancer_classifier 后
- 模型自动输出左右乳房的良恶性概率预测(如
left_malignant),为医生提供“第二意见”,显著降低因疲劳导致的漏诊率。 - 批量运行脚本即可快速完成全量数据的推理,生成包含详细概率值的 CSV 报告,帮助科室快速建立诊断性能评估基线。
- 结合输入的热图数据,模型能高亮显示疑似恶性区域,让诊断依据从“直觉”转变为可视化的数据支撑,提升医患沟通效率。
- 内置的标准化预处理流程自动适配不同视角的影像尺寸,确保输入数据的一致性,大幅缩短科研数据准备周期。
breast_cancer_classifier 通过提供客观的概率预测与可视化热图,将放射科医生从繁重的初筛工作中解放出来,使其能更专注于复杂病例的决策与患者关怀。
运行环境要求
- 未说明
- 非必需(支持 CPU 模式),需修改配置将 DEVICE_TYPE 设为 'cpu'
- 若使用 GPU,需指定 GPU 编号,具体型号和显存未说明
未说明

快速开始
免责声明:该模型目前未在纽约大学朗格尼健康中心用于临床实践。由于它是2019年开发的,其准确率远低于我们此后训练出的最先进模型。如果您有意讨论我们近期的任何模型,请发送邮件至 Krzysztof J. Geras。
深度神经网络提升放射科医生乳腺癌筛查表现
引言
这是我们在论文《深度神经网络提升放射科医生乳腺癌筛查表现》(IEEE Transactions on Medical Imaging, 2019)中描述的乳腺癌分类模型的实现。该实现允许用户通过应用我们预训练的两种模型来获取乳腺癌预测结果:一种仅以图像为输入的模型(“仅图像”模型),另一种同时接受图像和热图作为输入的模型(“图像与热图”模型)。
- 输入图像:2张CC位乳腺X线摄影图像,尺寸为2677×1942;2张MLO位乳腺X线摄影图像,尺寸为2974×1748。每张图像保存为16位PNG文件,并在输入模型前分别进行标准化处理。
- 输入热图:由补丁分类器生成,其大小与对应的乳腺X线片相同。每张乳腺X线片会生成两张热图,分别对应良性与恶性类别。两张热图中每个像素的值均介于0到1之间。
- 输出:每侧乳房的两项预测结果,即良性与恶性的概率:
left_benign、right_benign、left_malignant和right_malignant。
两种模型均针对包含四个标准视图(左CC、右CC、左MLO、右MLO)的筛查性乳腺X线检查进行处理。作为本仓库的一部分,我们提供了4个示例检查(位于 sample_data/images 目录中,检查列表存储在 sample_data/exam_list_before_cropping.pkl 文件中)。热图生成模型和癌症分类模型均采用PyTorch实现。
更新(2019年10月26日):我们的论文(IEEE Transactions on Medical Imaging, 2019)即将发表!
更新(2019年8月26日):我们新增了基于TensorFlow的 逐图像 模型实现(参见 using_tensorflow.md)。
更新(2019年6月21日):我们加入了论文中描述的 逐图像 模型,该模型基于单张乳腺X线片生成预测结果。虽然该模型的性能略逊于上述 逐视图 模型,但它可以应用于单张乳腺X线片,而无需完整的检查数据。
更新(2019年5月15日):修复了一个小错误,该错误会导致输出DataFrame中的列(left_malignant 和 right_benign)顺序颠倒。请注意,此问题并不影响模型的正常运行。
系统要求
- Python (3.6)
- PyTorch (0.4.1)
- torchvision (0.2.0)
- NumPy (1.14.3)
- SciPy (1.0.0)
- H5py (2.7.1)
- imageio (2.4.1)
- pandas (0.22.0)
- tqdm (4.19.8)
- opencv-python (3.4.2)
许可证
本仓库遵循GNU AGPLv3许可证条款。
如何运行代码
检查级别
以下介绍如何使用我们性能最佳的 逐视图 模型获取预测结果。该模型以每个视图的4张图像作为输入,输出每份检查的预测结果。
bash run.sh
将自动运行整个流程,并将预测结果保存为CSV文件。
建议使用GPU运行代码(默认设置)。若仅使用CPU运行,请将 run.sh 中的 DEVICE_TYPE 改为 'cpu'。
如果单独运行Python脚本,请确保将本仓库路径添加到您的 PYTHONPATH 中。
对于仓库中提供的示例检查,您应得到如下输出:
使用 仅图像 模型的预测结果(默认保存于 sample_output/image_predictions.csv):
| index | left_benign | right_benign | left_malignant | right_malignant |
|---|---|---|---|---|
| 0 | 0.0580 | 0.0754 | 0.0091 | 0.0179 |
| 1 | 0.0646 | 0.9536 | 0.0012 | 0.7258 |
| 2 | 0.4388 | 0.3526 | 0.2325 | 0.1061 |
| 3 | 0.3765 | 0.6483 | 0.0909 | 0.2579 |
使用 图像与热图 模型的预测结果(默认保存于 sample_output/imageheatmap_predictions.csv):
| index | left_benign | right_benign | left_malignant | right_malignant |
|---|---|---|---|---|
| 0 | 0.0612 | 0.0555 | 0.0099 | 0.0063 |
| 1 | 0.0507 | 0.8025 | 0.0009 | 0.9000 |
| 2 | 0.2877 | 0.2286 | 0.2524 | 0.0461 |
| 3 | 0.4181 | 0.3172 | 0.3174 | 0.0485 |
单张图像
在此我们还提供了 逐图像 模型,它与上述 逐视图 模型不同,且性能稍逊。本节中 逐视图 模型的CSV输出将不同于 逐图像 模型。由于该模型具有对每张图像单独生成预测结果的优势,我们将其公开,以方便迁移学习的应用。
要使用 逐图像 模型,请运行类似以下的命令:
bash run_single.sh "sample_data/images/0_L_CC.png" "L-CC"
其中第一个参数是乳腺X线片的路径,第二个参数是该图像对应的视图。
根据上述示例命令,您应获得如下输出:
阶段1:裁剪乳腺X线片
阶段2:提取中心区域
阶段3:生成热图
阶段4a:运行分类器(仅图像)
{"benign": 0.040191903710365295, "malignant": 0.008045293390750885}
阶段4b:运行分类器(图像+热图)
{"benign": 0.052365876734256744, "malignant": 0.005510155577212572}
图像级别笔记本
我们附带了一个示例笔记本,其中包含了运行带热图和不带热图的分类器的代码(不包括预处理步骤)。
数据
要使用其中一个预训练模型,输入必须包含至少四张图像,每种视图(左乳CC位、左乳MLO位、右乳CC位、右乳MLO位)各一张。
原始的12位乳腺X线片以重新缩放后的16位图像形式保存,以便保留像素强度的精细度,同时仍能在图像查看器中正确显示。
sample_data/exam_list_before_cropping.pkl 包含预处理前的检查信息列表。每个检查以字典形式表示,格式如下:
{
'horizontal_flip': 'NO',
'L-CC': ['0_L_CC'],
'R-CC': ['0_R_CC'],
'L-MLO': ['0_L_MLO'],
'R-MLO': ['0_R_MLO'],
}
我们期望来自 L-CC 和 L-MLO 视图的图像朝向右侧,而来自 R-CC 和 R-MLO 视图的图像则朝向左侧。horizontal_flip 表示该次检查中的所有图像是否相对于预期方向进行了水平翻转。L-CC、R-CC、L-MLO 和 R-MLO 的值是不含扩展名和目录名的图像文件名列表。
每张图像的附加信息会以字典形式包含在内。该字典以四种视图为键,对应的值则是相应视图的附加信息。例如,window_location 用于指示裁剪窗口的上、下、左、右边界,它是一个包含四个键的字典,每个键对应一个列表,其中包含了相应图像的裁剪窗口信息。此外,在预处理之后,还添加了 rightmost_pixels、bottommost_pixels、distance_from_starting_side 和 best_center 等信息。
这些属性的说明可在预处理部分找到。
以下是裁剪并提取最佳中心点后的检查信息示例:
{
'horizontal_flip': 'NO',
'L-CC': ['0_L_CC'],
'R-CC': ['0_R_CC'],
'L-MLO': ['0_L_MLO'],
'R-MLO': ['0_R_MLO'],
'window_location': {
'L-CC': [(353, 4009, 0, 2440)],
'R-CC': [(71, 3771, 952, 3328)],
'L-MLO': [(0, 3818, 0, 2607)],
'R-MLO': [(0, 3724, 848, 3328)]
},
'rightmost_points': {
'L-CC': [((1879, 1958), 2389)],
'R-CC': [((2207, 2287), 2326)],
'L-MLO': [((2493, 2548), 2556)],
'R-MLO': [((2492, 2523), 2430)]
},
'bottommost_points': {
'L-CC': [(3605, (100, 100))],
'R-CC': [(3649, (101, 106))],
'L-MLO': [(3767, (1456, 1524))],
'R-MLO': [(3673, (1164, 1184))]
},
'distance_from_starting_side': {
'L-CC': [0],
'R-CC': [0],
'L-MLO': [0],
'R-MLO': [0]
},
'best_center': {
'L-CC': [(1850, 1417)],
'R-CC': [(2173, 1354)],
'L-MLO': [(2279, 1681)],
'R-MLO': [(2185, 1555)]
}
}
所包含检查的标签如下:
| index | 左乳良性 | 右乳良性 | 左乳恶性 | 右乳恶性 |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 2 | 1 | 0 | 0 | 0 |
| 3 | 1 | 1 | 1 | 1 |
流程
该流程由四个阶段组成。
- 裁剪乳腺X线片
- 计算最佳中心点
- 生成热力图
- 运行分类器
以下在 run.sh 中定义的变量可根据需要进行修改:
NUM_PROCESSES: 预处理过程中使用的进程数(src/cropping/crop_mammogram.py和src/optimal_centers/get_optimal_centers.py)。默认值:10。DEVICE_TYPE: 用于生成热力图和运行分类器的设备类型,可为 ‘cpu’ 或 ‘gpu’。默认值:‘gpu’。NUM_EPOCHS: 分类器输出结果中取平均的轮次数。默认值:10。HEATMAP_BATCH_SIZE: 生成热力图时使用的批次大小。默认值:100。GPU_NUMBER: 当有多块GPU可用时,指定使用哪一块GPU。默认值:0。DATA_FOLDER: 存放乳腺X线片的目录。INITIAL_EXAM_LIST_PATH: 存放不含任何元数据的初始检查列表的路径。PATCH_MODEL_PATH: 保存补丁分类器权重的路径。IMAGE_MODEL_PATH: 保存仅基于图像的模型权重的路径。IMAGEHEATMAPS_MODEL_PATH: 保存结合图像与热力图的模型权重的路径。CROPPED_IMAGE_PATH: 保存裁剪后乳腺X线片的目录。CROPPED_EXAM_LIST_PATH: 保存包含裁剪元数据的新检查列表的路径。EXAM_LIST_PATH: 保存包含最佳中心点元数据的新检查列表的路径。HEATMAPS_PATH: 保存热力图的目录。IMAGE_PREDICTIONS_PATH: 保存仅基于图像的模型预测结果的路径。IMAGEHEATMAPS_PREDICTIONS_PATH: 保存结合图像与热力图的模型预测结果的路径。
预处理
运行以下命令以裁剪乳腺X光片并计算增强窗口的相关信息。
裁剪乳腺X光片
python3 src/cropping/crop_mammogram.py \
--input-data-folder $DATA_FOLDER \
--output-data-folder $CROPPED_IMAGE_PATH \
--exam-list-path $INITIAL_EXAM_LIST_PATH \
--cropped-exam-list-path $CROPPED_EXAM_LIST_PATH \
--num-processes $NUM_PROCESSES
src/import_data/crop_mammogram.py 会围绕乳房区域裁剪乳腺X光片,并去除背景,以提高图像加载速度和分割算法的运行效率。裁剪后的每张图像将使用 h5py 保存到 $PATH_TO_SAVE_CROPPED_IMAGES/short_file_path.png。此外,该脚本还会为每张图像添加额外信息,并创建一个新的图像列表保存到 $CROPPED_IMAGE_LIST_PATH,同时丢弃无法成功裁剪的图像。可选的 --verbose 参数会打印每张图像的相关信息。附加信息包括:
window_location: 裁剪窗口相对于原始 DICOM 图像的位置,以便在训练时能够以相同的方式裁剪分割图。rightmost_points: 正确翻转后最右侧的非零像素位置。bottommost_points: 正确翻转后最下方的非零像素位置。distance_from_starting_side: 记录在乳房开始出现的一侧是否出现了零值间隙,而实际上此处不应存在间隙。根据数据集的不同,此值可用于判断horizontal_flip的取值是否正确。
计算最佳中心点
python3 src/optimal_centers/get_optimal_centers.py \
--cropped-exam-list-path $CROPPED_EXAM_LIST_PATH \
--data-prefix $CROPPED_IMAGE_PATH \
--output-exam-list-path $EXAM_LIST_PATH \
--num-processes $NUM_PROCESSES
src/optimal_centers/get_optimal_centers.py 会输出包含额外元数据的新检查列表到 $EXAM_LIST_PATH。附加信息包括:
best_center: 每张图像的最佳窗口中心点。以best_center作为精确中心绘制的增强窗口可能会超出图像边界。这种情况通常发生在裁剪后的图像尺寸小于窗口尺寸时。在这种情况下,我们会在增强过程中对图像进行填充,并将窗口移至填充后的图像内部。更多细节请参阅 数据报告。
热力图生成
python3 src/heatmaps/run_producer.py \
--model-path $PATCH_MODEL_PATH \
--data-path $EXAM_LIST_PATH \
--image-path $CROPPED_IMAGE_PATH \
--batch-size $HEATMAP_BATCH_SIZE \
--output-heatmap-path $HEATMAPS_PATH \
--device-type $DEVICE_TYPE \
--gpu-number $GPU_NUMBER
src/heatmaps/run_producer.py 通过组合图像补丁的预测结果生成热力图,并使用 $DEVICE_TYPE 设备以 HDF5 格式保存到 $HEATMAPS_PATH。$DEVICE_TYPE 可以是 'gpu' 或 'cpu'。$HEATMAP_BATCH_SIZE 应根据可用内存大小进行调整。可选参数 --gpu-number 可用于指定使用的 GPU 编号。
运行模型
src/modeling/run_model.py 可以使用裁剪后的图像,无论是否结合热力图,来提供预测结果。当使用热力图时,请使用 --use-heatmaps 标志,并提供相应的 --model-path 和 --heatmaps-path 参数。根据可用内存情况,还可以提供可选参数 --batch-size。另一个可选参数 --gpu-number 可用于指定使用的 GPU 编号。
仅使用图像的模型运行
python3 src/modeling/run_model.py \
--model-path $IMAGE_MODEL_PATH \
--data-path $EXAM_LIST_PATH \
--image-path $CROPPED_IMAGE_PATH \
--output-path $IMAGE_PREDICTIONS_PATH \
--use-augmentation \
--num-epochs $NUM_EPOCHS \
--device-type $DEVICE_TYPE \
--gpu-number $GPU_NUMBER
此命令仅使用图像进行预测,执行 $NUM_EPOCHS 个周期的随机增强操作,并将每份检查的平均预测结果输出到 $IMAGE_PREDICTIONS_PATH。
使用图像和热力图的模型运行
python3 src/modeling/run_model.py \
--model-path $IMAGEHEATMAPS_MODEL_PATH \
--data-path $EXAM_LIST_PATH \
--image-path $CROPPED_IMAGE_PATH \
--output-path $IMAGEHEATMAPS_PREDICTIONS_PATH \
--use-heatmaps \
--heatmaps-path $HEATMAPS_PATH \
--use-augmentation \
--num-epochs $NUM_EPOCHS \
--device-type $DEVICE_TYPE \
--gpu-number $GPU_NUMBER
此命令使用图像和热力图进行预测,执行 $NUM_EPOCHS 个周期的随机增强操作,并将每份检查的平均预测结果输出到 $IMAGEHEATMAPS_PREDICTIONS_PATH。
从 DICOM 文件中提取图像并保存为 16 位 PNG 文件
可以使用以下函数将 DICOM 文件转换为 PNG 文件,随后这些文件即可被本仓库中的代码所使用(需安装 pypng 0.0.19 和 pydicom 1.2.2 库)。
import png
import pydicom
def save_dicom_image_as_png(dicom_filename, png_filename, bitdepth=12):
"""
将 12 位乳腺 X 光片从 DICOM 文件中保存为重新缩放后的 16 位 PNG 文件。
:param dicom_filename: 输入 DICOM 文件的路径。
:param png_filename: 输出 PNG 文件的路径。
:param bitdepth: 输入图像的位深度。对于 12 位乳腺 X 光片,设置为 12。
"""
image = pydicom.read_file(dicom_filename).pixel_array
with open(png_filename, 'wb') as f:
writer = png.Writer(height=image.shape[0], width=image.shape[1], bitdepth=bitdepth, greyscale=True)
writer.write(f, image.tolist())
参考文献
如果您觉得这段代码有用,请引用我们的论文:
深度神经网络提升放射科医师乳腺癌筛查性能
吴楠、杰森·庞、朴正奎、沈一秋、黄哲、玛莎·佐林、斯坦尼斯瓦夫·雅斯特任布斯基、蒂博·费夫里、乔·卡茨内尔森、埃里克·金、斯泰西·沃尔夫森、乌贾斯·帕里克、苏什玛·加达姆、玲玲·杨琳、卡拉·霍、乔舒亚·D·韦因斯坦、贝阿特丽乌·雷伊格、仰明高、希尔德加德·托斯、克里斯汀·皮萨连科、阿拉娜·刘温、李智媛、克里斯塔尔·艾罗拉、埃拉尔达·梅马、斯蒂芬妮·钟、埃丝特·黄、纳齐娅·萨姆林、S. 金、劳拉·希科克、琳达·莫伊、曹庆贤、克日什托夫·J·格拉斯
IEEE 医学成像汇刊
2019年
@article{wu2019breastcancer,
title = {Deep Neural Networks Improve Radiologists' Performance in Breast Cancer Screening},
author = {Nan Wu and Jason Phang and Jungkyu Park and Yiqiu Shen and Zhe Huang and Masha Zorin and Stanis\l{}aw Jastrz\k{e}bski and Thibault F\'{e}vry and Joe Katsnelson and Eric Kim and Stacey Wolfson and Ujas Parikh and Sushma Gaddam and Leng Leng Young Lin and Kara Ho and Joshua D. Weinstein and Beatriu Reig and Yiming Gao and Hildegard Toth and Kristine Pysarenko and Alana Lewin and Jiyon Lee and Krystal Airola and Eralda Mema and Stephanie Chung and Esther Hwang and Naziya Samreen and S. Gene Kim and Laura Heacock and Linda Moy and Kyunghyun Cho and Krzysztof J. Geras},
journal = {IEEE Transactions on Medical Imaging},
year = {2019}
}
常见问题
相似工具推荐
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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器