
CycleGAN
照片拖进去,秒变手绘名画,马也能变斑马
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 12876
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Torch7(Lua 深度学习框架),需按官方 distro 仓库说明安装
- luarocks 可用(随 Torch 安装),用于安装 nngraph、class、display 三个包
- 数据目录下需含 trainA 与 trainB 两个子目录,分别存放 A、B 两个域的图像
- 可选:testA / testB 子目录存放测试图像
- 两个域的图像视觉内容应相似(如马↔斑马),否则效果很差
安装与启动步骤
-
1安装 Torch7
按官方 distro 仓库 https://github.com/torch/distro 的说明安装 Torch 及其依赖,这是本项目的核心运行环境
-
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克隆项目仓库
把 CycleGAN 源码下载到本地并进入项目目录,后续脚本都在该目录下运行
git clone https://github.com/junyanz/CycleGAN cd CycleGAN -
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
同类项目推荐
voltaML-fast-stable-diffusion
开源
开箱即用的 Stable Diffusion 加速 WebUI,轻松产出高质量图像
Beautiful and Easy to use Stable Diffusion WebUI
Simple_Prompt_Generator
开源
不会写提示词?一键生成高质量 AI 绘画咒语
A user-friendly tool for generating high-quality text prompts for AI image generatio···
Infographic
开源
输入文字,AI 自动生成专业信息图,省时省力。
An Infographic Generation and Rendering Framework, bring words to life with AI!
DiffStyle
开源
用扩散模型一键切换多种艺术风格,保留原图结构
DiffStyle: Leverage Diffusion Prior to One-for-All Style Transfer. Course project of···
OASIS
开源
只用对抗损失,就能生成高质量语义图像
Official implementation of the paper "You Only Need Adversarial Supervision for Sema···
smart-comfyui-gallery
开源
不开 ComfyUI,用自然语言管理你的 AI 图片库
SmartGallery DAM is a local-first, browser-based Digital Asset Manager for ComfyUI. ···
MirrorGAN
开源
让AI根据文字画出精准匹配的图片,语义不跑偏
Pytorch implementation of MirrorGAN
discoart
开源
一行代码,用文本生成惊艳的 Disco Diffusion 艺术画作
Create Disco Diffusion artworks in one line
NFTgenerator
开源
拖拽图层,一键生成上千个NFT变体。
SickAlien NFT Art Generator is an interactive tool to generate 1000s of NFTs just by···