gansformer
gansformer 是一款专为图像生成任务设计的开源深度学习模型,巧妙融合了生成对抗网络(GAN)与 Transformer 架构的优势。它主要解决了传统方法在生成高分辨率图像时,难以兼顾长距离依赖捕捉与计算效率的难题。通过独特的“二分结构”,gansformer 能在保持线性计算复杂度的同时,实现图像全局信息的有效交互,从而轻松扩展至 1024x1024 甚至更高分辨率的图像合成。
该工具特别适合人工智能研究人员、深度学习开发者以及对高质量图像生成感兴趣的技术探索者使用。其核心亮点在于采用了乘法积分机制进行基于区域的灵活调制,这不仅是对经典 Transformer 的创新改进,也可视为对著名 StyleGAN 网络的泛化与升级。模型通过潜变量与视觉特征之间的迭代信息传播,促进了物体和场景组合化表示的自然涌现。此外,gansformer 训练效率极高,达到同等效果所需的训练步数仅为 StyleGAN2 的五分之一到七分之一。目前项目已提供完善的 PyTorch 和 TensorFlow 版本,包含预训练模型及可视化脚本,帮助用户快速上手并复现前沿研究成果。
使用场景
某游戏工作室的美术团队正急需为开放世界项目批量生成高分辨率(1024x1024)的多样化场景概念图,以加速前期视觉探索。
没有 gansformer 时
- 训练成本高昂:依赖传统 StyleGAN2 架构,需要极多的训练步数才能收敛,消耗大量 GPU 算力和时间。
- 全局控制力弱:难以通过潜在变量有效调节图像的整体布局或长距离结构,导致生成的场景构图混乱。
- 缺乏组合性表达:模型倾向于记忆纹理而非理解物体关系,无法灵活生成具有清晰物体层级和逻辑的场景。
- 扩展性受限:随着分辨率提升,计算复杂度急剧增加,难以高效扩展到高清合成任务。
使用 gansformer 后
- 训练效率飞跃:凭借线性计算效率的双部结构,仅需传统模型 5-7 倍的更少步数即可完成高质量训练,大幅节省算力。
- 长程交互增强:利用 Transformer 机制实现像素间的长距离互动,能精准控制场景的全局结构与布局一致性。
- 组合式生成能力:通过潜变量与视觉特征的双向迭代传播,自然涌现出具有明确物体边界和逻辑关系的组合式场景。
- 高清合成轻松应对:架构设计原生支持高分辨率扩展,可稳定生成细节丰富的 1024x1024 图像而无须牺牲效率。
gansformer 通过引入高效的生成式 Transformer 架构,将场景生成的训练速度、结构可控性与 compositional 表达能力提升到了全新高度。
运行环境要求
- 未说明
需要 NVIDIA GPU,推荐 Titan V,显存至少 12GB(更大显存可加速训练),CUDA 10.0,cuDNN 7.5
未说明

快速开始
GANformer:生成对抗变换器
欢迎查看我们的全新PyTorch版本以及GANformer2论文!
更新(2022年2月21日): 我们已将PyTorch版本的权重初始化调整为预期规模,从而显著提升了模型的学习速度!
这是GANformer模型的实现,该模型是一种新颖且高效的变换器架构,专为图像生成任务而设计。网络采用一种_二分结构_,能够在保持线性计算效率的同时,实现跨图像的长距离交互,并轻松扩展到高分辨率合成。
该模型通过迭代地在潜在变量集合与不断演化的视觉特征之间传递信息,使两者相互补充、相互促进,从而鼓励对象和场景的组合式表征的出现。 与经典的变换器架构不同,它使用乘法融合机制,允许灵活的区域调制,因此可以被视为对成功StyleGAN网络的一种推广。
第一篇论文:https://arxiv.org/pdf/2103.01209
第二篇论文:https://arxiv.org/abs/2111.08960
联系方式:dorarad@cs.stanford.edu
实现代码:network.py (TF / Pytorch)
我们现在同时支持PyTorch和TF!
:white_check_mark: 上传初始代码和README文件
:white_check_mark: 图像采样与可视化脚本
:white_check_mark: 代码清理与重构,添加文档
:white_check_mark: 训练与数据预处理说明
:white_check_mark: 所有数据集的预训练网络
:white_check_mark: 额外的可视化与评估
:white_check_mark: 提供训练时间更长的模型
:white_check_mark: 发布PyTorch版本
:white_check_mark: 发布高分辨率(最高1024×1024)的预训练模型
⬜️ 发布GANformer2模型(支持布局生成及条件布局到图像生成)
如果您遇到任何问题,或有任何改进建议及功能扩展需求,请随时通过Issues页面或发送邮件至dorarad@stanford.edu与我联系。
Bibtex
@article{hudson2021ganformer,
title={Generative Adversarial Transformers},
author={Hudson, Drew A and Zitnick, C. Lawrence},
journal={Proceedings of the 38th International Conference on Machine Learning, {ICML} 2021},
year={2021}
}
@article{hudson2021ganformer2,
title={Compositional Transformers for Scene Generation},
author={Hudson, Drew A and Zitnick, C. Lawrence},
journal={Advances in Neural Information Processing Systems {NeurIPS} 2021},
year={2021}
}
样例图片
使用预训练模型(这些模型仅需比StyleGAN2少5-7倍的训练步数即可生成!进一步延长训练时间将进一步提升图像质量):
环境要求
- 支持Python 3.6或3.7。
- 对于TF版本:我们推荐使用开发时所用的TensorFlow 1.14,但TensorFlow 1.15也同样适用。
- 对于PyTorch版本:我们支持PyTorch >= 1.8。
- 代码已在CUDA 10.0工具包和cuDNN 7.5环境下测试通过。
- 我们曾在Titan V GPU上进行过实验。假设拥有12GB显存(更多显存可加速训练)。
- 请参阅
requirements.txt(TF / PyTorch),其中列出了所需的Python包,运行pip install -r requirements.txt即可安装。
快速入门与概览
我们的仓库同时支持TensorFlow(主目录下)和PyTorch(位于pytorch_version)。两种实现的代码和文件结构非常接近,接口也完全一致。如需从TF切换至PyTorch,只需进入pytorch_version,并安装其中的依赖项。
如有任何关于新实现的问题或建议,欢迎随时提交Issue或直接联系[dorarad@cs.stanford.edu]!
一个使用预训练GANformer的最小示例可在generate.py中找到(TF / PyTorch)。执行该程序时,这段仅有10行的代码会下载一个预训练模型,并用其生成一些图像:
python generate.py --gpus 0 --model gdrive:bedrooms-snapshot.pkl --output-dir images --images-num 32
您可以通过--truncation-psi来控制生成图像的质量与多样性之间的权衡。
我们建议尝试0.6-1.0范围内的不同值。
预训练模型与高分辨率
我们为所有数据集提供了256×256分辨率的预训练模型,同时为FFHQ提供了1024×1024分辨率的模型,为Cityscapes提供了1024×2048分辨率的模型。
要生成高分辨率模型的图像,请运行以下命令: (我们将批量大小降低到1,以便它们可以加载到单个GPU上)
python generate.py --gpus 0 --model gdrive:ffhq-snapshot-1024.pkl --output-dir ffhq_images --images-num 32 --batch-size 1
python generate.py --gpus 0 --model gdrive:cityscapes-snapshot-2048.pkl --output-dir cityscapes_images --images-num 32 --batch-size 1 --ratio 0.5 # 目前仅TF版本支持1024 x 2048的Cityscapes
我们可以使用run_network.py(TF / Pytorch)对新模型或预训练模型进行定量和定性的训练与评估。
模型架构可以在network.py(TF / Pytorch)中找到。训练流程则在training_loop.py(TF / Pytorch)中实现。
数据准备
我们在四个图像和场景数据集上探索了GANformer模型:CLEVR、LSUN-Bedrooms、Cityscapes和FFHQ。该模型也可以在其他数据集上进行训练。 我们以256×256分辨率训练了模型。更高分辨率同样受支持。模型会自动适应数据集中图像的分辨率。
prepare_data.py(TF / Pytorch)既可以从我们的目录中准备数据集,也可以创建新的数据集。
默认数据集
要从目录中准备数据集,请运行以下命令:
python prepare_data.py --ffhq --cityscapes --clevr --bedrooms --max-images 100000
下表详细列出了目录中的数据集信息。
常用选项:
--data-dir输出数据目录(默认:datasets)--shards-num选择数据分片的数量(默认:根据每个数据集调整)--max-images只存储数据集的一部分,以减少存储的tfrecord/图像文件大小(默认:最大)。
这对于节省大型数据集的空间特别有用,例如LSUN-bedrooms(原始包含300万张图像)。
自定义数据集
您也可以使用该脚本创建新的自定义数据集。例如:
python prepare_data.py --task <dataset-name> --images-dir <source-dir> --format png --ratio 0.7 --shards-num 5
该脚本支持多种格式:png、jpg、npy、hdf5、tfds和lmdb。
数据集目录
| 数据集 | 图像数量 | 分辨率 | 下载大小 | TFrecords大小 | Gamma |
|---|---|---|---|---|---|
| FFHQ | 70,000 | 256×256 | 13GB | 13GB | 10 |
| CLEVR | 100,015 | 256×256 | 18GB | 15.5GB | 40 |
| Cityscapes | 24,998 | 256×256 | 1.8GB | 8GB | 20 |
| LSUN-Bedrooms | 3,033,042 | 256×256 | 42.8GB | 最高可达480GB | 100 |
使用--max-images可以减小tfrecord文件的大小。
训练
模型通过使用--train选项进行训练。要微调一个预训练的GANformer模型:
python run_network.py --train --gpus 0 --ganformer-default --expname clevr-pretrained --dataset clevr \
--pretrained-pkl gdrive:clevr-snapshot.pkl
我们为bedrooms、cityscapes、clevr和ffhq提供了预训练模型。
要从头开始以默认配置训练GANformer模型:
python run_network.py --train --gpus 0 --ganformer-default --expname clevr-scratch --dataset clevr --eval-images-num 10000
默认情况下,模型训练会从最新的快照恢复。使用--restart可开始一个新的实验,或使用--pretrained-pkl选择特定的快照进行加载。
为了与当前最先进的方法进行比较,我们使用50,000个样本图像计算指标分数。然而,为了加快训练速度,我们建议将--eval-images-num设置为较低的数值。请注意,这可能会影响指标的精确性,因此我们建议在训练过程中使用较低的值,并在最终评估时将其提高。
我们支持多种命令行选项来调整模型、训练和评估。运行python run_network.py -h即可查看完整的选项列表!
我们建议在训练新数据集时尝试不同的--gamma值。如果您以≥512分辨率进行训练并遇到OOM问题,请考虑将--batch-gpu降低到较低的值。
日志记录
- 在训练过程中,样本图像和注意力图会被生成并存储在
results/<expname>-<run-id>目录下(--keep-samples)。 - 指标也会定期计算并记录在
metric-<name>.txt文件中。--metrics可设置为fid用于FID、is用于Inception Score以及pr用于Precision/Recall。 - 还会创建TensorBoard日志(
--summarize),跟踪指标、生成器和判别器的损失值以及其他有用的统计信息。
基线模型
除了GANformer之外,代码库还支持多种基线模型。例如,要运行一个普通的GAN模型:
python run_network.py --train --gpus 0 --baseline GAN --expname clevr-gan --dataset clevr
- Vanilla GAN:
--baseline GAN,一种没有风格调制的标准GAN。 - StyleGAN2:
--baseline StyleGAN2,使用一个全局潜在变量来调制图像特征。 - k-GAN:
--baseline kGAN,独立生成多个图像层,然后将它们合并为一张共享图像(仅TF版本支持)。 - SAGAN:
--baseline SAGAN,在低分辨率层(如32x32)中对所有图像特征进行自注意力操作(仅TF版本支持)。
评估
要评估模型,请使用 --eval 选项:
python run_network.py --eval --gpus 0 --expname clevr-exp --dataset clevr
添加 --pretrained-pkl gdrive:<dataset>-snapshot.pkl 可以评估预训练模型。
下面我们提供了 GANformer(使用上述预训练检查点)以及基线模型的 FID-50k 分数。
请注意,这些分数与 StyleGAN2 论文中报告的分数不同,因为我们的实验进行了多达 7 倍的训练步数(所有模型的实验中为 5k–15k kimg 步,使用 4 张 GPU 卡大约需要 3–4 天),而他们的实验则进行了 50k–70k kimg 步,耗时超过 90 个 GPU 天。
关于生成器/判别器的说明:经过消融实验,我们发现将单纯形和双工注意力机制仅应用于生成器(而非同时应用于生成器和判别器)能够提升模型性能。因此,我们发布了仅在生成器中加入注意力机制的预训练模型,并已更新论文以反映这一改进!
| 模型 | CLEVR | LSUN-Bedroom | FFHQ | Cityscapes |
|---|---|---|---|---|
| GAN | 25.02 | 12.16 | 13.18 | 11.57 |
| kGAN | 28.28 | 69.9 | 61.14 | 51.08 |
| SAGAN | 26.04 | 14.06 | 16.21 | 12.81 |
| StyleGAN2 | 16.05 | 11.53 | 16.21 | 8.35 |
| GANformer | 9.24 | 6.15 | 7.42 | 5.23 |
模型变更日志
与论文中描述的原始 GANformer 相比,本仓库进行了多项额外改进,从而提升了性能:
- 使用
--mapping_ltnt2ltnt选项,使潜在变量在映射网络内部通过自注意力机制直接相互交流,然后再开始生成图像。 - 在
k个潜在组件之外增加一个全局潜在变量 (--style)。首先由全局潜在变量统一调节图像的所有特征,然后由k个潜在变量根据二分图变换器的注意力机制分别调节不同区域。
全局潜在变量有助于协调图像的整体方面,例如全局光照条件、人脸等的整体风格属性等。 - 经过这些调整后,我们发现向判别器添加变换器层并无额外益处,因此为了简化,我们将其禁用了。
可视化
该代码支持生成定性结果和可视化效果。例如,要创建每一层的注意力图:
python run_network.py --gpus 0 --vis --expname clevr-exp --dataset clevr --vis-layer-maps
下面可以看到 GANformer 生成的示例图像和注意力图:
命令行选项
以下列出了一些最常用的模型选项。
训练
--gamma:建议针对所选数据集尝试不同的值(默认值为10)。--truncation-psi:控制图像质量与多样性之间的权衡。(默认值为0.7)--eval-images-num:用于计算指标的图像数量。建议选择较小的数值以加快训练速度(默认值为50,000)。--restart:从头开始重新训练,而不是从最新快照恢复。--pretrained-pkl:加载预训练模型,可以是本地文件,也可以是从云端加载gdrive:<dataset>-snapshot.pkl格式的文件,适用于目录中的各类数据集。--data-dir和--result-dir:分别指定数据集(tfrecords)和日志/结果的存储目录。
模型(最常用)
--transformer:在生成器中添加变换器层(GANformer)。--components-num:潜在组件的数量,这些组件将对图像进行注意力操作。建议取值范围为8–16(默认值为1)。--latent-size:整体潜在空间大小(默认值为512)。每个潜在组件的大小则为latent_size/components_num。--num-heads:注意力头的数量(默认值为1)。--integration:变换器层中信息的整合方式,例如add或mul(默认值为mul)。
模型(其他)
--g-start-res和--g-end-res:变换器层的起始和结束分辨率(默认值为所有层直至分辨率为 28)。--kmeans:跟踪并更新图像到潜在变量的分配中心点,用于双工注意力机制。--mapping-ltnt2ltnt:在映射网络中对潜在变量执行自注意力操作。--use-pos:为潜在变量使用可训练的位置编码。--style False:关闭单向量全局风格调节功能(StyleGAN2)。
可视化
- 样本图像
--vis-images:生成图像样本。--vis-latents:保存源潜在向量。
- 注意力图
--vis-maps:可视化最后一层和第一个注意力头的注意力图。--vis-layer-maps:可视化所有层和所有注意力头的注意力图。--blending-alpha:在可视化图像与注意力图的混合时设置透明度权重。
- 图像插值
--vis-interpolations:生成源潜在变量之间的一系列插值图像。--interpolation-density:插值过程中两个端点之间的样本数量(默认值为8)。
- 其他
--vis-noise-var:创建噪声变化的可视化效果。--vis-style-mix:创建风格混合的可视化效果。
运行 python run_network.py -h 可查看完整的选项列表。
示例图像(更多案例)
CUDA / 安装
该模型依赖于自定义的 TensorFlow/PyTorch 操作,这些操作使用 NVCC 动态编译。
要设置环境,例如针对 CUDA 10.0:
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
要测试 NVCC 安装是否正常工作,请运行:
nvcc test_nvcc.cu -o test_nvcc -run
| CPU 说你好。
| GPU 说你好。
在 PyTorch 版本中,如果出现以下重复信息:
“无法构建 upfirdn2d 的 CUDA 内核。正在回退到低效的参考实现。”
请确保你的 CUDA 和 PyTorch 版本匹配。如果你安装了多个 CUDA 版本,可以考虑将 CUDA_HOME 设置为对应的版本。例如:
export CUDA_HOME=/usr/local/cuda-10.1
架构概述
GANformer 由两个网络组成:
生成器:根据随机采样的潜在变量 (z) 生成图像 (x)。潜在变量 z 的形状为 [batch_size, component_num, latent_dim],其中 component_num 默认为 1(Vanilla GAN、StyleGAN),但在 GANformer 模型中大于 1。我们可以通过沿第二个维度拆分 z 来获得 z_1,...,z_k 个潜在组件。生成器同样分为两部分:
- 映射网络:将来自正态分布的采样潜在变量 (
z) 转换为中间空间 (w)。它由一系列前馈层组成。这k个潜在组件可以从z空间独立映射到w空间,也可以通过自注意力机制相互作用(可选标志)。 - 合成网络:中间潜在变量
w用于指导新图像的生成。图像特征从一个小型的常量或采样网格(4x4)开始,然后经过多层卷积和上采样,直到达到所需的分辨率(如256x256)。每次卷积后,图像特征都会被中间潜在向量w调制(即控制其方差和偏置)。而在 StyleGAN 模型中,只有一个全局的w向量来平等地控制所有特征。GANformer 使用注意力机制,使k个潜在组件分别专注于控制图像中的不同区域,从而协同生成图像,因此在生成包含多物体场景的图像时表现更佳。 - 注意力机制可以以多种方式应用:
- 单向注意力:当注意力仅从潜在变量单向作用于图像特征时(自上而下)。
- 双向注意力:当注意力同时在两个方向上作用——从潜在变量到图像特征(自上而下),再从图像特征反馈回潜在变量(自下而上),从而使两种表示相互迭代地提供信息。
- 潜在变量之间的自注意力:也可用于直接促进潜在变量之间的交互。
- 图像特征之间的自注意力(SAGAN 模型):早期方法直接在图像特征之间使用注意力,但这种方法扩展性较差,因为特征数量与分辨率成平方关系,在高分辨率下会变得非常高。
判别器:接收一张图像,并预测它是真实的还是伪造的——即来源于数据集还是生成器。该模型会对图像进行多层卷积和下采样,逐步降低图像表示的分辨率,直至做出最终预测。可选地,判别器中也可以加入注意力机制,配备多个(k)聚合变量,这些变量利用注意力机制在图像处理过程中自适应地收集信息。我们观察到,在判别器中使用注意力机制时,模型性能会有小幅提升,不过需要注意的是,根据我们的观察,使用注意力机制所带来的主要收益来自于生成器。
代码库
该代码库基于并扩展了 Karras 等人优秀的 StyleGAN2 和 StyleGAN2-ADA 仓库。
GANformer 模型也可以被视为 StyleGAN 的一种泛化:StyleGAN 只有一个全局潜在向量来全局控制所有图像特征的风格,而 GANformer 则拥有 k 个潜在向量,它们通过注意力机制协作控制图像中的不同区域,从而更好地建模多物体和组合场景的图像。
致谢
我谨向 Christopher D. Manning 表示感谢,感谢他在开发二部图 Transformer 时给予的富有成效的讨论和建设性意见,尤其是在语言表示领域内的探索;同时也感谢他提供的慷慨资金支持,使得这项工作得以顺利开展! :sunflower:
如果您有任何问题、评论或反馈,请随时通过 dorarad@cs.stanford.edu 与我联系。谢谢! :)
版本历史
v1.5.22022/02/02v1.02021/03/17常见问题
相似工具推荐
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 协议完全开源,是提升终端工作效率的理想助手。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备