facet

GitHub
531 46 非常简单 1 次阅读 1周前Apache-2.0其他开发框架数据工具
AI 解读 由 AI 自动生成,仅供参考

Facet 是一款专注于“人类可解释性”的开源人工智能库,旨在让复杂的监督学习模型变得透明且易于理解。它主要解决了当前 AI 领域模型决策过程像“黑盒”一样难以捉摸的痛点,帮助使用者不仅知道模型预测了什么,更能清楚理解背后的原因。

Facet 特别适合数据科学家、机器学习工程师以及需要向业务方解释模型逻辑的研究人员使用。其核心优势在于三大独特功能:首先,它提供先进的“模型检查”算法,能量化特征间的依赖与交互关系,弥补了主流 SHAP 方法仅关注局部解释的不足,提供了全局视角;其次,通过“模型模拟”功能,用户可以进行虚拟实验,利用自助法(bootstrapping)量化不确定性,从而找到优化预测结果的最佳场景;最后,Facet 增强了机器学习工作流,兼容并扩展了 scikit-learn 的管道范式,并引入 sklearndf 以完美支持 pandas 数据框,确保从数据输入到模型输出的全链路特征可追溯性。无论是进行深度模型诊断还是构建可信的 AI 应用,Facet 都能提供高效、透明的技术支持。

使用场景

某金融风控团队正在构建信用卡欺诈检测模型,急需向业务部门解释为何拒绝特定客户的申请,并寻找优化审批通过率的策略。

没有 facet 时

  • 只能依赖 SHAP 提供单一样本的局部解释,缺乏对特征间复杂交互作用的全局视角,难以回答“为什么高收入人群在特定地区反而风险更高”这类宏观问题。
  • 想要测试“如果降低年龄阈值会对整体坏账率产生什么影响”时,无法在模型内部进行安全的虚拟实验,只能依靠耗时且有风险的真实 A/B 测试。
  • 模拟结果缺乏不确定性量化,无法告知管理层预测值的置信区间,导致决策层对数据驱动的建議持怀疑态度。
  • 特征工程与模型训练流程割裂,使用原生 scikit-learn 管道时,一旦数据经过转换,往往丢失原始列名,导致端到端的特征溯源困难。

使用 facet 后

  • 利用 facet 的模型检查算法,团队清晰量化了“收入”与“地区”之间的非线性依赖关系,成功向业务方展示了全局风险模式,而不仅仅是单个案例的归因。
  • 通过模型模拟功能执行虚拟实验,快速识别出将特定客群的信用评分阈值下调 5% 可在不增加坏账的前提下提升 10% 的通过率,无需动用真实流量。
  • 内置的分层自助采样(bootstrapping)算法为每次模拟提供了精确的不确定性范围,让管理层清楚看到策略调整的潜在风险边界。
  • 借助 sklearndf 增强的流水线,整个建模过程完美保留 pandas DataFrame 的特征名称,实现了从原始数据到最终预测的全链路透明追溯。

facet 通过将深度的模型洞察与安全的虚拟实验相结合,让黑盒模型变成了业务人员可理解、可信任且可优化的决策助手。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具是一个用于可解释性 AI 的库,主要增强 scikit-learn 的工作流。支持通过 PyPI (pip install gamma-facet) 和 Anaconda (conda install -c bcg_gamma -c conda-forge gamma-facet) 安装。官方强烈建议在专用的虚拟环境(conda 或 venv)中安装。文档示例中使用了 GridSearchCV 和 RepeatedKFold,暗示其依赖标准的科学计算栈,但未明确指定具体的 Python 版本或硬件资源需求。
python未说明
scikit-learn
pandas
sklearndf
pytools
facet hero image

快速开始

.. image:: sphinx/source/_images/Gamma_Facet_Logo_RGB_LB.svg

FACET 是一个面向人类可解释性 AI 的开源库。 它结合了先进的模型检查和基于模型的仿真技术,从而能够更好地解释您的监督式机器学习模型。

FACET 由以下几个关键组件组成:

+-----------------+-----------------------------------------------------------------------+ | |spacer| | 模型检查 | | | | | |inspect| | FACET 引入了一种新算法,用于量化机器学习模型中特征之间的依赖关系和交互作用。| | | 这一面向人类可解释性 AI 的新工具为流行的 SHAP <https://shap.readthedocs.io/en/stable/>__ 方法所提供的样本级解释增添了全局视角。| | | 要了解更多关于 FACET 模型检查功能的信息,请参阅下方的入门示例。 | +-----------------+-----------------------------------------------------------------------+ | |spacer| | 模型仿真 | | | | | |sim| | FACET 的模型仿真算法利用机器学习模型进行 虚拟实验,以帮助识别能够优化预测结果的情形。| | | 为了量化仿真的不确定性,FACET 使用了一系列自助法算法,包括平稳自助法和分层自助法。| | | 关于 FACET 自助法仿真的示例,请参阅下方的快速入门示例。 | +-----------------+-----------------------------------------------------------------------+ | |spacer| | 增强的机器学习工作流 | | | | | |pipe| | FACET 提供了一个高效且透明的机器学习工作流,通过新增的模型选择、检查和仿真能力,增强了| | | scikit-learn <https://scikit-learn.org/stable/index.html>__ 经过验证的流水线范式。| | | 此外,FACET 还引入了 | | | sklearndf <https://github.com/BCG-X-Official/sklearndf>__ | | | [文档 <https://bcg-x-official.github.io/sklearndf/index.html>__]| | | 一个增强版的 scikit-learn,其对 pandas 数据框的支持更加完善,确保特征的端到端可追溯性。| +-----------------+-----------------------------------------------------------------------+

.. Begin-Badges

|pypi| |conda| |azure_build| |azure_code_cov| |python_versions| |code_style| |made_with_sphinx_doc| |License_badge|

.. End-Badges

安装

FACET 同时支持 PyPI 和 Anaconda。我们建议将 FACET 安装在一个专用的环境中。

Anaconda


.. code-block:: sh

    conda create -n facet
    conda activate facet
    conda install -c bcg_gamma -c conda-forge gamma-facet


Pip
~~~

macOS 和 Linux:
^^^^^^^^^^^^^^^^

.. code-block:: sh

    python -m venv facet
    source facet/bin/activate
    pip install gamma-facet

Windows:
^^^^^^^^

.. code-block:: dosbatch

    python -m venv facet
    facet\Scripts\activate.bat
    pip install gamma-facet


快速入门
----------

以下快速入门指南提供了一个最小化的示例工作流,帮助您快速上手 FACET。
如需更多教程和 API 参考,请参阅 `FACET 文档 <https://bcg-x-official.github.io/facet/docs-version/2-0>`__。

新版本的变更和新增内容已在 `发布说明 <https://bcg-x-official.github.io/facet/docs-version/2-0/release_notes.html>`__ 中总结。


增强的机器学习工作流

为了演示 FACET 的模型检查功能,我们首先创建一个流水线来拟合一个学习器。在这个简单的例子中,我们将使用| 糖尿病数据集 <https://web.stanford.edu/~hastie/Papers/LARS/diabetes.data>, 该数据集包含年龄、性别、BMI 和血压,以及 6 项血清指标作为特征。此数据集曾被用于这篇| 论文 <https://statweb.stanford.edu/~tibs/ftp/lars.pdf>。 该数据集的转换版本也可在 scikit-learn 上找到| 此处 <https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset>__。

在本快速入门中,我们将使用 10 次重复的 5 折交叉验证来训练一个随机森林回归模型,以预测一年后的疾病进展。借助| sklearndf,我们可以创建一个与 pandas DataFrame 兼容的工作流。然而,FACET 还提供了额外的功能,可以使用样本对象 (Sample) 来跟踪我们的特征矩阵和目标向量,并轻松比较超参数配置,甚至多个学习器之间的差异,这得益于 LearnerSelector

.. code-block:: Python

# 标准导入
import pandas as pd
from sklearn.model_selection import RepeatedKFold, GridSearchCV

# sklearndf 中的一些实用导入
from sklearndf.pipeline import RegressorPipelineDF
from sklearndf.regression import RandomForestRegressorDF

# 相关的 FACET 导入
from facet.data import Sample
from facet.selection import LearnerSelector, ParameterSpace

# 声明数据的 URL
data_url = 'https://web.stanford.edu/~hastie/Papers/LARS/diabetes.data'

# 从 URL 导入数据
diabetes_df = pd.read_csv(data_url, delimiter='\t').rename(
    # 重命名列以提高可读性
    columns={
        'S1': 'TC', # 总血清胆固醇
        'S2': 'LDL', # 低密度脂蛋白
        'S3': 'HDL', # 高密度脂蛋白
        'S4': 'TCH', # 总胆固醇与 HDL 的比值
        'S5': 'LTG', # 拉莫三嗪浓度
        'S6': 'GLU', # 血糖水平
        'Y': 'Disease_progression' # 与基线相比一年后的疾病进展度
    }
)

创建 FACET 示例对象

diabetes_sample = Sample(observations=diabetes_df, target_name="Disease_progression")

# 为随机森林回归器创建一个(简单的)管道
rnd_forest_reg = RegressorPipelineDF(
    regressor=RandomForestRegressorDF(n_estimators=200, random_state=42)
)

# 定义用于相互“竞争”的模型的参数空间
rnd_forest_ps = ParameterSpace(rnd_forest_reg)
rnd_forest_ps.regressor.min_samples_leaf = [8, 11, 15]
rnd_forest_ps.regressor.max_depth = [4, 5, 6]

# 创建重复 k 折交叉验证迭代器
rkf_cv = RepeatedKFold(n_splits=5, n_repeats=10, random_state=42)

# 根据性能对候选模型进行排名
selector = LearnerSelector(
    searcher_type=GridSearchCV,
    parameter_space=rnd_forest_ps,
    cv=rkf_cv,
    n_jobs=-3,
    scoring="r2"
).fit(diabetes_sample)

# 获取总结报告
selector.summary_report()

.. image:: sphinx/source/_images/ranker_summary.png :width: 600

从这个最简工作流中可以看出,对于叶节点中的最小样本数,取值 11;对于树的最大深度,取值 5,是所考虑的三个值中表现最好的。 这种方法可以很容易地扩展到学习器的其他超参数,以及多个学习器。

模型检查


FACET 为 `scikit-learn <https://scikit-learn.org/stable/index.html>`__ 的估计器实现了多种模型检查方法。
FACET 通过提供补充 SHAP 局部视角的全局指标来增强模型检查功能(有关正式描述,请参阅
`[arXiv:2107.12436] <https://arxiv.org/abs/2107.12436>`__)。

模型中每对特征的关键全局指标包括:

- **协同性**

  模型将一个特征的信息与另一个特征结合以预测目标的程度。例如,假设我们使用年龄和性别来预测心血管健康状况,而拟合的模型包含了两者之间复杂的交互作用。这意味着这两个特征在预测心血管健康方面具有协同性。此外,这两个特征对模型都很重要,去掉任何一个都会显著影响模型性能。假设年龄在共同贡献中比性别提供了更多的信息。这种不对称的贡献意味着 (age, gender) 的协同性低于 (gender, age) 的协同性。换一种方式来理解:把预测结果看作一个你试图到达的目标坐标。从起点出发,年龄比性别更能让你接近这个目标,然而你需要同时利用两者才能达到。协同性反映了这样一个事实:性别从年龄那里获得的帮助更多(从性别角度看协同性更高),而年龄从性别那里获得的帮助较少(从年龄角度看协同性更低),从而共同达到预测结果。*由此引出一个重要点:协同性是两个相互作用的特征为模型预测贡献的全局信息所具有的天然非对称属性。* 协同性用百分比表示,范围从 0%(完全自主)到 100%(完全协同)。

- **冗余性**

  模型中一个特征在预测目标时对另一个特征信息的重复程度。例如,假设我们使用房屋面积和卧室数量来预测房价。这两个特征捕捉的信息相似:卧室越多,房屋通常越大,平均价格也越高。因此,(number of bedrooms, house size) 的冗余性会大于 (house size, number of bedrooms) 的冗余性。这是因为房屋面积比卧室数量更清楚地知道后者在预测房价方面的作用,所以从卧室数量的角度来看,其冗余性更大。另一种理解方式是:移除房屋面积对模型性能的影响会比移除卧室数量更大,因为房屋面积能够更好地弥补卧室数量缺失带来的影响。这也意味着,在模型中,房屋面积的重要性可能高于卧室数量。*这里的重要点是,与协同性一样,冗余性也是特征对在预测结果方面所具有的全局信息的天然非对称属性。* 冗余性用百分比表示,范围从 0%(完全独特)到 100%(完全冗余)。

.. code-block:: Python

    # 拟合模型检查器
    from facet.inspection import LearnerInspector
    inspector = LearnerInspector(
        pipeline=selector.best_estimator_,
        n_jobs=-3
    ).fit(diabetes_sample)

**协同性**

.. code-block:: Python

    # 将协同性可视化为矩阵
    from pytools.viz.matrix import MatrixDrawer
    synergy_matrix = inspector.feature_synergy_matrix()
    MatrixDrawer(style="matplot%").draw(synergy_matrix, title="Synergy Matrix")

.. image:: sphinx/source/_images/synergy_matrix.png
    :width: 600

对于任意特征对 (A, B),第一个特征 (A) 代表行,第二个特征 (B) 代表列。例如,查看 `LTG`(拉莫三嗪)这一行时,它与其他特征之间的协同性几乎为零(≤ 1%)。然而,从 `LTG` 这一列往下看(即从其他特征相对于 `LTG` 的角度),我们会发现许多特征(行)受益于与 `LTG` 的协同作用(例如,LDL 最高可达 27%)。由此我们可以得出结论:

- `LTG` 是一个高度自主的特征,与其他特征在预测一年后疾病进展方面的协同性极低。
- 其他特征在预测一年后疾病进展中的贡献,部分得益于 `LTG` 的存在。

当研究影响时,必须仔细考虑特征对之间的高协同性,因为两者的值共同决定了最终结果。鉴于 `LDL` 与 `LTG` 在预测一年后疾病进展方面的协同性接近 27%,单独考虑 `LDL` 而不结合 `LTG` 提供的背景信息是没有太大意义的。

**冗余性**

.. code-block:: Python

    # 将冗余性可视化为矩阵
    redundancy_matrix = inspector.feature_redundancy_matrix()
    MatrixDrawer(style="matplot%").draw(redundancy_matrix, title="Redundancy Matrix")

.. image:: sphinx/source/_images/redundancy_matrix.png
    :width: 600


对于任意特征对 (A, B),第一个特征 (A) 代表行,第二个特征 (B) 代表列。例如,如果我们从 `LDL`(低密度脂蛋白)的角度来看特征对 (`LDL`, `TC`),则在 `LDL` 行和 `TC` 列的交界处可以看到 38% 的冗余性。这意味着 `LDL` 用于预测疾病进展的信息中有 38% 在 `TC` 中被重复了。从 `TC` 的角度看待 (`TC`, `LDL`) 时,也会得到相同的冗余性,但并非所有情况都具有对称性(如 `LTG` 与 `TCH` 的例子)。

如果我们来看 `TCH`,它与 `LTG` 和 `HDL` 分别有 22% 到 32% 的冗余度,但
`LTG` 和 `HDL` 之间并不具备同样的冗余性——这意味着 `TCH` 与这两个特征分别共享不同的信息。


**聚类冗余**

如上文所述,对于一对特征而言,冗余和协同是从这对特征中其中一个“视角”来衡量的,因此会得到两个不同的值。然而,也可以计算出一种对称版本的指标,这不仅简化了分析视角,还允许将 (1 - 指标) 作为特征之间的距离使用。利用这种距离,可以应用层次聚类中的单链接法来生成树状图可视化结果。这有助于识别低距离的特征群,即那些在预测结果时“协同”工作的特征。随后,这些信息可用于将高度冗余的特征群缩减为一个子集,或者突出显示那些应始终一起考虑的高度协同特征群。

让我们以冗余为例进行说明。

.. code-block:: Python

    # 使用树状图可视化冗余
    from pytools.viz.dendrogram import DendrogramDrawer
    redundancy = inspector.feature_redundancy_linkage()
    DendrogramDrawer().draw(data=redundancy, title="冗余树状图")

.. image:: sphinx/source/_images/redundancy_dendrogram.png
    :width: 600

根据树状图,我们可以看到 (`LDL`, `TC`) 和 (`HDL`, `TCH`) 这两对特征各自构成了树状图中的一个簇,而 `LTG` 和 `BMI` 则具有最高的重要性。作为下一步行动,我们可以探索移除 `TCH` 以及 `TC` 或 `LDL` 中的一个对模型的影响,从而进一步简化模型并获得一组独立的特征子集。

更多详细信息请参阅
`API 参考 <https://bcg-x-official.github.io/facet/apidoc/facet.html>`__。


模型模拟

BMI 特征为例,它是一个重要且高度独立的特征,我们按照以下步骤进行模拟:

  • 我们使用 FACET 的 ContinuousRangePartitionerBMI 的观测值范围划分为等大小的区间。每个区间由该区间的中心值代表。
  • 对于每个区间,模拟器会创建原始样本的人工副本,假设待模拟的变量在所有观测中都取相同的值——即代表该区间的值。然后,模拟器使用选择器获取的最佳估计器,基于全样本训练的模型重新预测所有目标值,并确定由此带来的目标变量提升。
  • FACET 的 SimulationDrawer 允许我们以 matplotlib 和纯文本两种方式可视化结果。

.. code-block:: Python

# FACET 导入
from facet.validation import BootstrapCV
from facet.simulation import UnivariateUpliftSimulator
from facet.data.partition import ContinuousRangePartitioner
from facet.simulation.viz import SimulationDrawer

# 创建自助法交叉验证迭代器
bscv = BootstrapCV(n_splits=1000, random_state=42)

SIM_FEAT = "BMI"
simulator = UnivariateUpliftSimulator(
    model=selector.best_estimator_,
    sample=diabetes_sample,
    n_jobs=-3
)

# 将模拟范围划分为等大小的区间
partitioner = ContinuousRangePartitioner()

# 运行模拟
simulation = simulator.simulate_feature(feature_name=SIM_FEAT, partitioner=partitioner)

# 可视化结果
SimulationDrawer().draw(data=simulation, title=SIM_FEAT)

.. image:: sphinx/source/_images/simulation_output.png

从图中我们可以得出结论:较高的 BMI 值与一年后疾病进展的加剧相关,当 BMI 达到 28 或以上时,一年后的疾病进展显著增加,至少提高了 26 个点。

贡献

FACET 稳定可靠,并将持续得到长期支持。

欢迎并感谢大家对 FACET 的贡献。如有任何错误报告或功能请求/改进,请使用相应的 GitHub 表单 <https://github.com/BCG-X-Official/facet/issues>_;如果您希望直接提交代码,请打开一个 PR 来解决相应的问题。

对于任何重大更改,请先通过 issue 或发送邮件至我们的团队邮箱 FacetTeam@bcg.com 与我们讨论。

有关贡献的更多信息,请参阅我们的 贡献指南 <https://bcg-x-official.github.io/facet/contribution_guide.html>__。

许可证

FACET 根据 LICENSE <https://github.com/BCG-X-Official/facet/blob/develop/LICENSE>_ 文件的规定,采用 Apache 2.0 许可证授权。

致谢

FACET 构建于两个流行的机器学习库之上:

  • scikit-learn <https://scikit-learn.org/stable/index.html>__ 的学习算法和流水线技术构成了底层算法的实现。此外,我们还努力使 FACET 的 API 与 scikit-learn 的 API 保持一致。
  • SHAP <https://shap.readthedocs.io/en/latest/>__ 的实现用于估算 Shapley 值,FACET 随后将其分解为协同、冗余和独立向量。

BCG GAMMA

如果您想了解更多关于 FACET 团队的信息,请访问 关于我们 <https://bcg-x-official.github.io/facet/about_us.html>__ 页面。

我们始终在寻找充满热情且才华横溢的数据科学家加入 BCG GAMMA 团队。如需了解更多信息,您可以访问 BCG GAMMA <https://www.bcg.com/en-gb/beyond-consulting/bcg-gamma/default>, 或查看 职业机会 <https://www.bcg.com/en-gb/beyond-consulting/bcg-gamma/careers>

.. |pipe| image:: sphinx/source/_images/icons/pipe_icon.png :width: 100px :class: facet_icon

.. |inspect| image:: sphinx/source/_images/icons/inspect_icon.png :width: 100px :class: facet_icon

.. |sim| image:: sphinx/source/_images/icons/sim_icon.png :width: 100px :class: facet_icon

.. |spacer| unicode:: 0x2003 0x2003 0x2003 0x2003 0x2003 0x2003

.. Begin-Badges

.. |conda| image:: https://anaconda.org/bcg_gamma/gamma-facet/badges/version.svg :target: https://anaconda.org/BCG_Gamma/gamma-facet

.. |pypi| image:: https://badge.fury.io/py/gamma-facet.svg :target: https://pypi.org/project/gamma-facet/

.. |azure_build| image:: https://dev.azure.com/gamma-facet/facet/_apis/build/status/BCG-X-Official.facet?repoName=BCG-X-Official%2Ffacet&branchName=develop :target: https://dev.azure.com/gamma-facet/facet/_build?definitionId=7&_a=summary

.. |azure_code_cov| image:: https://img.shields.io/azure-devops/coverage/gamma-facet/facet/7/2.0.x :target: https://dev.azure.com/gamma-facet/facet/_build?definitionId=7&_a=summary

.. |python_versions| image:: https://img.shields.io/badge/python-3.7|3.8|3.9-blue.svg :target: https://www.python.org/downloads/release/python-380/

.. |code_style| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black

.. |made_with_sphinx_doc| image:: https://img.shields.io/badge/Made%20with-Sphinx-1f425f.svg :target: https://bcg-x-official.github.io/facet/index.html

.. |license_badge| image:: https://img.shields.io/badge/License-Apache%202.0-olivegreen.svg :target: https://opensource.org/licenses/Apache-2.0

.. 结束-徽章

版本历史

2.2.22025/09/12
2.2.12025/09/03
2.2.02025/07/25
2.2rc02025/07/25
2.1.12023/11/15
2.0.12023/11/14
2.1.02023/07/11
2.1rc02023/07/11
2.0.02023/05/17
2.0rc22023/01/24
1.2.32022/09/29
2.0rc12022/09/24
2.0rc02022/09/19
1.2.22022/04/25
2.0.dev12022/04/22
1.1.22022/02/22
1.2.12021/09/22
1.1.12021/09/22
2.0.dev02021/09/16
1.2.02021/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.3k|★★☆☆☆|今天
开发框架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周前
插件开发框架