joliGEN
GAN与Diffusion双引擎加持的图像翻译框架,保留语义标注进行风格/天气/物体转换
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
GAN与Diffusion双引擎加持的图像翻译框架,保留语义标注进行风格/天气/物体转换
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你在开发一个自动驾驶数据标注系统,需要将仿真环境生成的晴天图像批量转换为暴雨天、雾天、雪天的恶劣天气场景,用来扩充训练数据集。或者你是电商平台的图像工程师,需要把模特穿西装的照片自动换成同一人戴墨镜的样子——但不能改变背景、不能改变脸型,只能精准替换配件。传统做法是人工逐张 PS,或者训练专用模型——耗时数周,数据标注成本极高。
JoliGEN 正在改变这一切。这是一款由法国 AI 公司 Jolibrain 主导开发的开源图像翻译(Image-to-Image Translation)框架,GitHub 获星 282 颗。它同时支持 GAN(生成对抗网络) 和 Diffusion(扩散模型) 两种生成范式,核心能力是:将图像从一种风格或领域转换到另一种,同时严格保留原始图像中的语义信息——包括物体类别、边框标注、分割掩码等关键元素。

图1:马里奥→索尼克风格迁移,保留角色动作语义
JoliGEN 并非凭空出现。它的代码结构深受 pytorch-CycleGAN-and-pix2pix、CUT、AttentionGAN 等经典图像翻译工作的影响,这些项目在生成对抗网络时代奠定了无配对图像翻译的基础范式。Jolibrain 团队在此基础上做了两件事:
第一,将 Diffusion 和 Consistency Model 纳入框架。Diffusion 模型(如 DDPM)在生成质量和多样性上比 GAN 更稳定,但训练成本高、推理速度慢;GAN 生成速度快但容易出现模式崩溃。JoliGEN 选择让两者共存,让用户根据场景选择合适的武器。
第二,专注于**语义一致性(Semantic Consistency)**这一核心痛点。普通的风格迁移模型会把图像 A 变成图像 B,但丢失了 A 中的边框框、类别标签、分割掩码等信息。对于自动驾驶、医学影像、工业检测这些依赖精确标注的场景,这个缺陷是致命的。JoliGEN 通过引入 SAM(Segment Anything Model)、MobileSAM 等分割模型作为辅助约束,确保翻译过程中语义信息不被破坏。
JoliGEN 的开发得到了法国国家 AI 计划 Confiance.AI 的支持,背后还有法国巴黎高等师范学院(HSP)研究团队的参与,属于学术与工业界协同的成果。
JoliGEN 的能力可以归纳为三大使用场景:
1. 图像翻译(Image Translation)
这是最核心的功能,支持配对(Paired)和非配对(Unpaired)两种训练模式。典型应用包括:

图2:卫星遥感图像缺失区域填充(Diffusion 模型)
2. 数据增强(Smart Augmentation)
JoliGEN 支持基于 GAN 的数据增强机制(APA),可以在线生成新样本解决类别不平衡问题,同时保持标注一致性。这在医疗影像、工业缺陷检测等数据稀缺的领域有直接价值。
3. 目标插入与移除(Object Insertion / Removal)
通过 Diffusion 模型,可以在保留原图背景和语义信息的前提下,精确插入虚拟物品(虚拟试衣间、汽车插入)或移除特定物体。底层使用 SAM 分割模型和 MobileSAM 提取物体边界,配合 HDiT(Hierarchical Diffusion Transformer)生成高质量合成图。
JoliGEN 的代码库结构清晰,分为三个核心层次:
模型层(models/)
包含所有生成和判别网络架构:
base_model.py / base_gan_model.py / base_diffusion_model.py:GAN 和 Diffusion 模型的抽象基类,定义训练循环的前向/反向传播框架gan_networks.py / diffusion_networks.py:具体网络实现modules/ 子目录:模块化网络组件,包含:
resnet_architecture/:ResNet 风格的残差块生成器(实时图像翻译)unet_architecture/ / unet_generator_attn/:U-Net 结构,支持注意力机制segformer/:基于 Transformer 的分割感知生成器hdit/:HDiT(分层 Diffusion Transformer),用于高分辨率图像合成discriminators.py:projected_d(投影判别器)和 vision_aided_d(视觉辅助判别器),来自最新学术成果sam/:Segment Anything Model 集成,支持自动掩码预测img2img_turbo/:腾讯发布的 Img2Img-Turbo 模型集成数据层(data/)
定义了 20+ 种数据集类,覆盖不同标注格式和使用场景:
aligned_dataset.py:配对数据集(输入-输出图像一一对应)unaligned_labeled_mask_dataset.py:非配对 + 分割掩码标注数据集self_supervised_labeled_mask_online_dataset.py:在线数据增强,边训练边生成新样本temporal_*:时序视频数据集类命令行层(train.py / evaluate.py / client.py)
用户通过 JSON 配置文件定义训练参数,由 options/ 目录下的解析器加载。推理阶段可通过 client.py Python 客户端或 REST API server 调用。
| 模型类别 | 具体实现 | 适用场景 |
|---|---|---|
| GAN | CycleGAN, CyCADA, CUT, AttentionGAN | 实时风格迁移、低计算量 |
| Diffusion | DDPM, Consistency Model | 高质量生成、复杂场景 |
| 混合 | GAN + Diffusion 协同训练 | 平衡速度与质量 |
JoliGEN 提供了开箱即用的 REST API server(基于 FastAPI),支持远程推理调用。Docker 化部署只需一条命令:docker run -p 8000:8000 joligen/server。API 支持单图推理、批量推理、模型热切换,适合集成到现有 MLOps 流水线中。

图3:BDD100K 数据集白天→黑夜风格迁移(保留车辆和行人边框标注)
对于 AI 爱好者:建议从 Quickstart 文档开始,使用预置的示例 JSON 配置文件快速跑通一个翻译任务。门槛在于需要一块 NVIDIA GPU(8GB+ 显存),纯 CPU 训练极慢。
对于 AI 开发者:框架基于 PyTorch 2.4 + xFormers,代码结构规范(有 pre-commit + black 格式化),提供了完整的测试套件(pytest)和 CI/CD(Jenkinsfile)。如果你需要自定义生成器或判别器,models/modules/ 下的模块化设计让扩展相对容易。
需要坦诚的是,JoliGEN 并非万能解决方案:
训练成本高:Diffusion 模型训练需要大量 GPU 显存和时间,HDiT 这样的新架构虽然效果惊艳,但调参复杂度也更高。
配置复杂度:框架提供了极为丰富的参数选项(GAN data augmentation、discriminator noise injection、多阶段训练……),新手容易在海量配置项中迷失。文档虽在 Jolibrain 官网提供了 Quickstart,但深入定制仍需要阅读源码。
生态绑定:依赖 Segment Anything、HuggingFace Transformers、Diffusers 等多个第三方生态,版本兼容性管理是维护成本的一部分。
JoliGEN 代表了一个明确趋势:生成式 AI 在计算机视觉领域的落地,正在从生成一张图走向可控地改造一张图。随着 Stable Diffusion、ControlNet 等工具降低了图像生成的门槛,如何确保生成结果保留关键语义(边框、类别、掩码),成为工业部署的核心需求。JoliGEN 正是瞄准这一空白。
它的增长曲线值得关注:支持模型从最初的 GAN 扩展到 Diffusion 再到 Consistency Model,体现了团队对生成技术演进节奏的把握。如果你想在图像翻译领域快速验证想法、同时又不想被单一模型范式束缚,JoliGEN 是目前最值得深入的开源选项之一。
项目地址:jolibrain/joliGEN
官网:joligen.com
文档:joligen.com/doc