gansformer

用 Transformer 注意力机制生成全局协调的场景图像

Gansformer 是一个将 Transformer 架构引入生成对抗网络(GAN)的图像生成模型,旨在解决传统 CNN 生成器在捕捉全局结构和多物体场景组合性方面的局限。它通过引入双向注意力机制,让生成器能够建模图像各部分之间的长距离依赖关系,从而生成具有更清晰全局布局和更合理物体交互的场景图像。项目提供了基于 PyTorch 的实现,包含训练、评估和预训练模型,支持在多个数据集(如 CLEVR、LSUN)上进行场景生成和图像合成。核心能力包括:基于注意力的生成器设计、改进的判别器架构、以及用于提升组合泛化能力的训练策略。该模型特别适用于需要精细控制物体属性和空间关系的合成任务,为图像生成领域提供了一种新的架构选择。

开源 free 图像生成
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1343
维护状态 低维护
是否开源
定价模式 free

项目数据

分类图像生成
开发团队dorarad
所属国家
官网地址
定价模式free
价格说明开源项目,MIT许可证,完全免费,可自行部署使用。
访问状态
是否开源
开源协议MIT
主要语言Python
技术栈/模型attention,compositionality,gans,generative-adversarial-networks,image-generation,scene-generation,transformers
GitHub 星标★ 1343
30天Star增速
HF 下载量
上线时间2021-03-01 00:00:00
最近更新2026-09-23 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:高级 约 30 分钟 部署方式:本地安装 5 步

环境要求

  • 支持 CUDA 的 NVIDIA GPU,并已安装 NVCC(CUDA 编译器)
  • Python 环境(仓库同时提供 TensorFlow 主目录版与 pytorch_version 版)
  • CUDA 与 PyTorch/TensorFlow 版本需匹配
  • 生成示例需联网下载预训练模型(gdrive 快照)

安装与启动步骤

  1. 1克隆仓库

    把 GANformer 源码拉到本地并进入项目根目录,根目录是 TensorFlow 版实现。

    git clone https://github.com/dorarad/gansformer.git
    cd gansformer
  2. 2配置 CUDA 环境变量

    模型依赖 NVCC 即时编译自定义算子,需把 CUDA 的 bin 与 lib64 加入环境变量(示例为 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}}
  3. 3验证 NVCC 可用

    运行仓库自带的测试文件,若同时打印 CPU 与 GPU 的 hello 说明 NVCC 工作正常。

    nvcc test_nvcc.cu -o test_nvcc -run
  4. 4安装依赖

    若要使用 PyTorch 版,进入 pytorch_version 目录并安装其 requirements.txt 中的依赖。

    cd pytorch_version
    pip install -r requirements.txt
  5. 5生成图像

    运行最小示例,自动下载预训练模型并在输出目录生成图片;PyTorch 版对应 pytorch_version/generate.py。

    python generate.py --gpus 0 --model gdrive:bedrooms-snapshot.pkl --output-dir images --images-num 32

关键配置

配置项必填说明示例
--gpus指定使用的 GPU 编号0
--model预训练模型快照路径或 gdrive 标识gdrive:bedrooms-snapshot.pkl
--output-dir生成图像的保存目录images
--images-num一次生成的图像数量32
--truncation-psi控制生成图像质量与多样性的权衡0.8
CUDA_HOMEPyTorch 版编译 CUDA 内核时指定匹配的 CUDA 路径/usr/local/cuda-10.1

如何确认成功

先看 nvcc 测试是否输出 GPU says hello;再运行 generate.py 后确认 images 目录出现生成的图像。

常见问题

Q:出现 “Failed to build CUDA kernels for upfirdn2d. Falling back

A:说明 CUDA 与 PyTorch 版本不匹配。请确认二者版本对应;若装了多个 CUDA,可用 export CUDA_HOME=/usr/local/cuda-10.1 指向匹配版本。

Q:如何从 TensorFlow 版切换到 PyTorch 版?

A:两个实现代码和文件结构接近、接口一致。进入 pytorch_version 目录,安装该目录下的 requirements.txt,再使用其中的 generate.py 即可。

Q:怎样调节生成图像的质量与多样性?

A:使用 --truncation-psi 参数控制二者的权衡,推荐在 0.6–1.0 范围内多试几个值。

Q:NVCC 是否安装正确怎么检查?

A:运行 nvcc test_nvcc.cu -o test_nvcc -run,若同时输出 CPU says hello. 和 GPU says hello. 即正常。

注意事项

  • 预训练模型通过 gdrive 标识下载,执行生成脚本时需保持网络可用。
  • PyTorch 版权重初始化已于 2022-02-21 更新到预期尺度,显著加快模型学习速度。
  • 仓库要求 GPU 与 CUDA 环境,纯 CPU 环境无法按 README 的方式编译自定义算子。
  • README 未给出 TensorFlow 主目录版的独立依赖文件,安装前请先核对自身 CUDA/TF 版本匹配情况。

核心亮点

  • 引入双向注意力,能捕捉图像全局结构,生成布局更合理的多物体场景
  • 在 CLEVR 等数据集上展示了优于传统 CNN 生成器的组合泛化能力
  • 提供预训练模型和完整训练代码,便于复现和二次开发

不足之处

  • 训练资源消耗较大,对显存要求高
  • 文档/社区待观察

适用场景

  • 合成场景图像生成,如室内布局、多物体组合
  • 需要控制物体属性和空间关系的图像编辑
  • 研究 Transformer 在生成模型中的应用

替代项目

TransGAN、ViT-VAE、GANsformer

项目介绍

gansformer 是图像领域的开源项目,由 dorarad 开发,2021 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(1,343)位列前 30%,在图像分类的 837 个项目里位列前 12%。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-23。MIT许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:合成场景图像生成,如室内布局、多物体组合。同类可对比的替代方案包括 TransGAN、ViT-VAE、GANsformer。

上一篇:Conditional-GAN

下一篇:retrieval-augmented-ddpm

同类项目推荐

satori 开源

网页代码一键变高清图,放大不糊,不用截图

Enlightened library to convert HTML and CSS to SVG

★ 13967 2026-08-09
C2GAN 开源

用关键点精准控制图像生成,让AI画出你想要的结构

[ACM MM 2019 Oral] Cycle In Cycle Generative Adversarial Networks for Keypoint-Guide···

★ 70 2026-08-09
DeTikZify 开源

上传图表或草图,秒变可编译的TikZ矢量代码。

Synthesizing Graphics Programs for Scientific Figures and Sketches with TikZ.

★ 1820 2026-08-09