ganspace

GitHub
1.8k 266 较难 1 次阅读 4天前Apache-2.0开发框架图像
AI 解读 由 AI 自动生成,仅供参考

GANSpace 是一款用于探索和控制生成对抗网络(GAN)的开源工具,旨在让原本难以理解的图像生成过程变得直观可控。它主要解决了 GAN 潜在空间中编辑方向不明确的问题,帮助用户轻松实现如改变视角、调整年龄、变换光照或时间等具体的图像编辑效果,而无需重新训练模型。

这款工具非常适合 AI 研究人员、开发者以及希望深入理解生成模型内部机制的设计师使用。通过简单的命令行交互或 Jupyter Notebook,用户即可对 BigGAN、StyleGAN 等多种主流模型进行实时探索和编辑。

GANSpace 的核心技术亮点在于其巧妙地将主成分分析(PCA)应用于 GAN 的激活空间,从而自动发现具有语义意义的潜在变化方向。更独特的是,它支持将这些编辑方向分层应用,实现了类似 StyleGAN 的精细化控制能力,甚至能让原本不支持分层输入的 BigGAN 也具备类似的灵活操控性。无论是用于学术研究还是创意原型设计,GANSpace 都为理解和管理生成模型提供了一套高效且易用的解决方案。

使用场景

某数字艺术工作室的设计师正在为一款复古赛车游戏批量生成不同光照和视角的车辆资产,需要快速调整预训练的 StyleGAN2 模型以产出多样化素材。

没有 ganspace 时

  • 设计师无法直观理解潜空间(Latent Space)中具体向量代表的含义,调整图像属性如同“盲人摸象”,只能随机尝试。
  • 想要改变车辆视角或光照时间,往往会导致车身结构扭曲、纹理断裂等伪影,难以保持图像的高保真度。
  • 每次微调都需要重新训练模型或进行耗时的监督式标注,开发周期从几天延长至数周,严重拖慢项目进度。
  • 缺乏分层控制能力,无法单独修改图像的全局风格(如时间)而不影响局部内容(如车型细节)。

使用 ganspace 后

  • 通过 PCA 分析激活空间,ganspace 自动挖掘出可解释的控制方向,设计师能直接找到代表“视角旋转”或“黄昏光照”的具体向量。
  • 利用分层编辑技术,仅在特定网络层应用编辑方向,在改变光照和视角的同时,完美保留了车辆的几何结构和纹理细节。
  • 无需任何额外训练或标注,只需运行几行命令即可在几分钟内发现数十种可控属性,即时生成所需变体。
  • 支持类似 StyleGAN 的分层输入控制,实现了内容与风格的解耦,让设计师能像调节滑块一样精准定制车辆外观。

ganspace 将黑盒般的 GAN 模型转化为透明、可控的创意工具,让高质量的图像编辑变得简单且高效。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

需要 NVIDIA GPU(文中提及安装 tensorflow-gpu 及 CUDA 兼容性),具体型号和显存未说明,但运行百万级样本 PCA 建议大显存

内存

未说明(建议 16GB+ 以支持大规模采样)

依赖
notes1. Ubuntu 18.04 下交互式查看器启动时可能冻结,需点击终端并按 Ctrl 键解决。2. 支持从 TensorFlow 导入 StyleGAN/StyleGAN2 权重,需按特定步骤转换。3. 包含 BigGAN、StyleGAN 和 StyleGAN2 的修改版本以支持逐层潜在向量控制。4. 首次运行可能需要下载预训练模型检查点。
python3.7
PyTorch>=1.3
TensorFlow>=1.* (仅用于导入 StyleGAN 权重)
Jupyter Notebook
ganspace hero image

快速开始

GANSpace:发现可解释的GAN控制

Python 3.7 PyTorch 1.3 在Colab中打开 预告图

图1: 使用我们方法发现的控制进行图像编辑的序列,应用于三种不同的GAN。白色插图用第3.4节(“逐层编辑”)中解释的符号指明了具体的编辑内容。

GANSpace:发现可解释的GAN控制
埃里克·海科宁1,2、亚伦·赫茨曼2、雅各·莱蒂宁1,3、西尔万·帕里斯2
1阿尔托大学,2Adobe研究院,3NVIDIA
https://arxiv.org/abs/2004.02546

摘要: 本文描述了一种简单的方法来分析生成对抗网络(GAN),并为图像合成创建可解释的控制方式,例如视角变化、老化、光照和一天中的时间等。我们基于在激活空间中应用的主成分分析(PCA),识别出重要的潜在方向。然后,我们证明可以根据这些编辑方向的逐层应用来定义可解释的编辑操作。此外,我们还展示了BigGAN可以通过类似StyleGAN的方式使用逐层输入进行控制。借助这些机制,用户可以识别出大量可解释的控制选项。我们在来自不同数据集的GAN上展示了实验结果。

视频: https://youtu.be/jdTICDa_eAI

设置

请参阅设置说明

使用

本仓库包含经过修改以支持逐层潜在向量的BigGAN、StyleGAN和StyleGAN2版本。

交互式模型探索

# 探索BigGAN-deep哈士奇
python interactive.py --model=BigGAN-512 --class=husky --layer=generator.gen_z -n=1_000_000

# 在W空间探索StyleGAN2 ffhq
python interactive.py --model=StyleGAN2 --class=ffhq --layer=style --use_w -n=1_000_000 -b=10_000

# 在Z空间探索StyleGAN2汽车
python interactive.py --model=StyleGAN2 --class=car --layer=style -n=1_000_000 -b=10_000
# 交互式应用之前保存的编辑
python interactive.py --model=StyleGAN2 --class=ffhq --layer=style --use_w --inputs=out/directions

可视化主成分

# 可视化StyleGAN2 ffhq W空间的主成分
python visualize.py --model=StyleGAN2 --class=ffhq --use_w --layer=style -b=10_000

# 创建StyleGAN wikiart组件的视频(保存到./out)
python visualize.py --model=StyleGAN --class=wikiart --use_w --layer=g_mapping -b=10_000 --batch --video

选项

命令行参数:
  --model      其中之一 [ProGAN, BigGAN-512, BigGAN-256, BigGAN-128, StyleGAN, StyleGAN2]
  --class      类别名称;留空以列出选项
  --layer      进行PCA的层;留空以列出选项
  --use_w      将W视为主要潜在空间(StyleGAN / StyleGAN2)
  --inputs     加载先前导出的编辑目录
  --sigma      在visualize.py中使用的标准差数量
  -n           PCA样本数量
  -b           覆盖自动检测的小批量大小
  -c           保留的成分数量

可重复性

主论文中展示的所有图表都可以使用随附的Jupyter笔记本重现:

  • 图1:figure_teaser.ipynb
  • 图2:figure_pca_illustration.ipynb
  • 图3:figure_pca_cleanup.ipynb
  • 图4:figure_style_content_sep.ipynb
  • 图5:figure_supervised_comp.ipynb
  • 图6:figure_biggan_style_resampling.ipynb
  • 图7:figure_edit_zoo.ipynb

已知问题

  • 交互式查看器在Ubuntu 18.04上启动时有时会卡死。通过点击终端窗口并按下Ctrl键即可解决此问题。如果您对该问题有任何见解,我们将不胜感激!

集成新模型

  1. models/wrappers.py中使用BaseModel接口为该模型创建包装器。
  2. 将模型添加到models/wrappers.py中的get_model()函数中。

从TensorFlow导入StyleGAN检查点

可以将训练好的StyleGAN和StyleGAN2权重从TensorFlow导入到GANSpace中。

StyleGAN

  1. 安装TensorFlow:conda install tensorflow-gpu=1.*
  2. 修改models/wrappers.py中StyleGAN类下的__init__()load_model()方法。

StyleGAN2

  1. 按照models/stylegan2/stylegan2-pytorch/README.md中的说明操作。为确保兼容性,请务必使用此特定文件夹中的分支来转换权重。
  2. 将转换后的检查点保存为checkpoints/stylegan2/<dataset>_<resolution>.pt
  3. 修改models/wrappers.py中StyleGAN2类下的__init__()download_checkpoint()方法。

致谢

我们感谢以下人员:

  • BigGANStyleGANStyleGAN2的PyTorch实现作者:
    托马斯·沃尔夫、皮奥特·比亚莱基、托马斯·维曼和金成贤。
  • ArtBreeder的乔尔·西蒙为我们提供了用于StyleGAN的风景模型。
    (遗憾的是我们无法分发该模型)
  • 大卫·鲍及其同事出色的GAN Dissection项目。
  • 贾斯汀·平克尼的Awesome Pretrained StyleGAN合集。
  • 图奥马斯·金凯尼米在实验中给予我们的帮助。
  • 阿尔托大学科学IT项目为本项目提供的计算资源。

引用

@inproceedings{härkönen2020ganspace,
  title     = {GANSpace: Discovering Interpretable GAN Controls},
  author    = {Erik Härkönen and Aaron Hertzmann and Jaakko Lehtinen and Sylvain Paris},
  booktitle = {Proc. NeurIPS},
  year      = {2020}
}

许可证

本仓库的代码根据Apache 2.0许可证发布。
netdissect目录是GAN Dissection项目的衍生作品,并根据MIT许可证提供。
models/bigganmodels/stylegan2目录则根据MIT许可证提供。

常见问题

相似工具推荐

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 真正成长为懂上

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

ComfyUI

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

108.3k|★★☆☆☆|3天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|3天前
插件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|★★☆☆☆|6天前
插件开发框架