img2img-turbo
快速开始: 本地运行 | Gradio(本地托管) | 训练
猫咪素描
鱼类素描
我们提出了一种通用的方法,通过对抗学习将单步扩散模型(如SD-Turbo)适应新任务和领域。这使我们能够在实现高效推理的同时(例如,对于512x512图像,A6000上0.29秒,A100上0.11秒),利用预训练扩散模型的内部知识。
我们的一步条件模型 CycleGAN-Turbo 和 pix2pix-turbo 可以执行各种图像到图像的转换任务,无论是未配对还是配对的设置。CycleGAN-Turbo 优于现有的基于GAN和扩散的方法,而 pix2pix-turbo 则与最新的工作(如用于Sketch2Photo和Edge2Image的ControlNet)相当,但具有一步推理的优势。
使用文本到图像模型的一步图像转换
Gaurav Parmar, Taesung Park, Srinivasa Narasimhan, Jun-Yan Zhu
CMU 和 Adobe, arXiv 2403.12036
结果
使用pix2pix-turbo的配对转换
边缘到图像
生成多样化的输出
通过改变输入噪声图,我们的方法可以从相同的输入条件生成多样化的输出。 输出风格可以通过改变文本提示来控制。
使用CycleGAN-Turbo的未配对转换
白天到夜晚
夜晚到白天
晴天到雨天
雨天到晴天
方法
我们的生成器架构: 我们将原始潜在扩散模型中的三个独立模块紧密地集成为一个带有小型可训练权重的端到端网络。该架构使我们能够在保留输入场景结构的同时将输入图像 x 转换为输出 y。我们在每个模块中使用 LoRA 适配器,引入了跳跃连接和Zero-Convs在输入和输出之间,并重新训练了U-Net的第一层。蓝色框表示可训练层。半透明层被冻结。相同的生成器可用于各种GAN目标。
输入图像 | Canny 边缘 | 模型输出 |
---|---|---|
- 以下命令将草图和提示作为输入,并将结果保存在指定的目录中。
python src/inference_paired.py --model_name "sketch_to_image_stochastic" \ --input_image "assets/examples/sketch_input.png" --gamma 0.4 \ --prompt "ethereal fantasy concept art of an asteroid. magnificent, celestial, ethereal, painterly, epic, majestic, magical, fantasy art, cover art, dreamy" \ --output_dir "outputs"
输入 模型输出
非配对图像翻译(CycleGAN-Turbo)
-
以下命令将白天图像文件作为输入,并在指定目录中保存输出的夜晚图像。
python src/inference_unpaired.py --model_name "day_to_night" \ --input_image "assets/examples/day2night_input.png" --output_dir "outputs"
输入(白天) 模型输出(夜晚) -
以下命令将夜晚图像文件作为输入,并在指定目录中保存输出的白天图像。
python src/inference_unpaired.py --model_name "night_to_day" \ --input_image "assets/examples/night2day_input.png" --output_dir "outputs"
输入(夜晚) 模型输出(白天) -
以下命令将晴天图像文件作为输入,并在指定目录中保存输出的雨天图像。
python src/inference_unpaired.py --model_name "clear_to_rainy" \ --input_image "assets/examples/clear2rainy_input.png" --output_dir "outputs"
输入(晴天) 模型输出(雨天)
以下命令将带有雨天的图像文件作为输入,并将输出保存到指定目录作为晴天。
python src/inference_unpaired.py --model_name "rainy_to_clear" \
--input_image "assets/examples/rainy2clear_input.png" --output_dir "outputs"
输入(雨天) | 模型输出(晴天) |
---|---|
Gradio Demo
- 我们提供了配对图像转换任务的 Gradio 演示。
- 以下命令将使用 Gradio 本地启动素描到图像。
gradio gradio_sketch2image.py
- 以下命令将使用 gradio 本地启动 Canny 边缘到图像的演示。
gradio gradio_canny2image.py
使用您自己的数据进行训练
致谢
我们的工作使用了 Stable Diffusion-Turbo 作为基础模型,并遵循以下许可证。