CycleGAN

照片拖进去,秒变手绘名画,马也能变斑马

经典无监督图像风格迁移框架,无需成对数据即可实现照片转绘画、马变斑马等趣味效果,广泛应用于风格迁移与图像翻译领域,是计算机视觉领域教科书级的开源项目。

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

项目数据

分类图像生成
开发团队junyanz
所属国家
官网地址
定价模式free
价格说明开源项目,完全免费,可自行部署使用。
访问状态
是否开源
开源协议NOASSERTION
主要语言Lua
技术栈/模型computer-graphics,computer-vision,cyclegan,deep-learning,gan,gans,generative-adversarial-network,image-generation,image-manipulation,pix2pix,torch
GitHub 星标★ 12872
30天Star增速
HF 下载量
上线时间2017-03-30 00:00:00
最近更新2026-09-21 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数7

使用教程

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

环境要求

  • Torch7(Lua 深度学习框架),需按官方 distro 仓库说明安装
  • luarocks 可用(随 Torch 安装),用于安装 nngraph、class、display 三个包
  • 数据目录下需含 trainA 与 trainB 两个子目录,分别存放 A、B 两个域的图像
  • 可选:testA / testB 子目录存放测试图像
  • 两个域的图像视觉内容应相似(如马↔斑马),否则效果很差

安装与启动步骤

  1. 1安装 Torch7

    按官方 distro 仓库 https://github.com/torch/distro 的说明安装 Torch 及其依赖,这是本项目的核心运行环境

  2. 2安装 Lua 依赖包

    用 luarocks 依次安装 nngraph、class 与 display;display 用于可视化训练过程,缺一不可

    luarocks install nngraph
    luarocks install class
    luarocks install https://raw.githubusercontent.com/szym/display/master/display-scm-0.rockspec
  3. 3克隆项目仓库

    把 CycleGAN 源码下载到本地并进入项目目录,后续脚本都在该目录下运行

    git clone https://github.com/junyanz/CycleGAN
    cd CycleGAN
  4. 4准备训练数据

    在 data 下建数据集文件夹,再建 trainA 和 trainB 两个子目录,分别放入两个域的图片;有测试图可另建 testA、testB

关键配置

配置项必填说明示例
phase在 test.lua 中设置,填 train 即可用训练集做测试train
trainA / trainB数据目录下必须存在的两个子目录,分别存放 A 域和 B 域图像data/dataset/trainA

如何确认成功

执行 th 能正常进入 Torch 交互环境,且 data 目录下 trainA、trainB 中均已放入图像,即环境与数据准备就绪。

常见问题

Q:必须用 Torch 版本吗?有 PyTorch 版吗?

A:README 首行推荐官方 PyTorch 复现版 junyanz/pytorch-CycleGAN-and-pix2pix,新用户优先用它,本仓库为原版 Torch 实现。

Q:任意两个数据集都能互相转换吗?

A:不可以。README 明确指出两域视觉内容相似效果才好的(如风景画↔风景照),马↔斑马效果不错,而猫↔狗会完全失败。

Q:怎么用训练集来测试模型?

A:在 test.lua 中把 phase 设为 'train',即可直接在自己用于训练的图像上测试。

Q:训练过程的可视化怎么开启?

A:需要先安装 display 包(luarocks install 对应的 rockspec 地址),该项目用它来显示训练结果。

注意事项

  • Torch7 已停止维护,安装依赖较繁琐,新手建议改用官方 PyTorch 版本。
  • README 顶部推荐了后续工作 CUT(contrastive-unpaired-translation),训练更快、更省显存。
  • 数据集组合不要随意搭配,优先选择内容相近的两个域。

核心亮点

  • 首创循环一致性损失,实现无配对图像的风格迁移,突破传统GAN需成对训练数据的限制
  • 代码结构清晰,基于Torch实现,训练和测试流程完整,易于复现和二次开发
  • 提供丰富的预训练模型和示例(如斑马↔马、油画↔照片),社区验证充分,应用广泛

不足之处

  • 依赖Lua/Torch生态,相比现代PyTorch框架维护较少,新手入门门槛较高
  • 训练不稳定且耗时较长,对超参数敏感,生成图像分辨率有限
  • 文档/社区待观察

适用场景

  • 无配对图像风格迁移(如艺术风格转换、季节变换)
  • 图像域转换(如卫星图到地图、素描到彩色)
  • 数据增强(生成合成数据辅助下游任务)

替代项目

pix2pix、StarGAN、MUNIT

项目介绍

CycleGAN 是图像领域的开源项目,由 junyanz 开发,2017 年首次发布。

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

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

它主要面向的使用场景是:无配对图像风格迁移(如艺术风格转换、季节变换)。同类可对比的替代方案包括 pix2pix、StarGAN、MUNIT。

上一篇:satori

下一篇:pix2pix

同类项目推荐

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