img2img-turbo学习以及部署记录

img2img-turbo简介

img2img-turbo 的框架结构设计紧凑、灵活,主要围绕着扩散模型和生成对抗网络(GAN)的优化实现。其架构设计有助于在图像到图像转换任务中实现高效的推理和良好的生成效果,尤其是在不同场景之间保持输入图像结构的完整性。以下是该框架的主要组成部分:

1. 核心模型结构

  • 扩散模型与轻量化调优 :img2img-turbo 通过改进预训练的扩散模型(如 Stable Diffusion ),并引入 LoRA(Low-Rank Adaptation)适配器,使模型更加高效。LoRA 的使用帮助减少模型的参数量,同时通过保持某些层冻结,减少了对计算资源的需求。
  • 跳跃连接与 Zero-Convs :为了更好地在图像生成过程中保持图像结构,模型使用了跳跃连接零卷积层(Zero-Convs),这确保了输入图像和输出图像之间的重要信息传递。

2. 主要模型模块

  • pix2pix-turbo:这是项目中的成对图像翻译模块,专门用于将输入图像转换为与其配对的输出图像。例如,它可以将草图转换为真实图片,或将边缘图像转换为完整的场景。
  • CycleGAN-Turbo:这是一个非成对图像翻译模型,能够在没有成对训练数据的情况下进行图像转换任务,如白天转换为夜晚,或者天气从晴天变为雨天。它在无监督学习场景中表现尤其突出。

3. 训练与推理过程

  • 快速推理:img2img-turbo 通过单步推理来加速图像生成过程,相比传统的逐步迭代扩散模型,这种优化显著减少了推理时间。例如,512x512 尺寸图像在 A100 GPU 上的推理时间仅为 0.11 秒。
  • 多种任务支持 :该框架支持多种图像转换任务,如 Edge2Image(边缘到图像)Sketch2Image(草图到图像)Day2Night(日夜转换),这些任务可以通过简单的调整模型架构或输入数据来实现。

4. 环境设置与灵活扩展

  • 环境与依赖 :该项目提供了 condavirtual environment 两种环境配置方式,方便用户快速搭建和运行模型。其训练和推理代码可以直接在本地或远程服务器上运行。
  • Gradio 集成 :为了便于用户体验,img2img-turbo 提供了集成的 Gradio 界面,用户可以通过图形界面直接进行图像转换操作,而不需要深入编写代码。

5. 性能优化

  • 跳跃连接与 LoRA 模块的集成 让模型在执行任务时既能保持高效推理,又能在转换过程中保留输入图像的关键特征。与其他模型相比,这种优化使其在图像到图像转换任务中能实现更高的保真度和更快的响应时间。

通过这些设计,img2img-turbo 实现了在多任务处理、快速推理、环境适配性和资源效率之间的良好平衡,适合在创意设计、科研、环境监测等多个领域中使用。


部署img2img-turbo

相关链接

https://github.com/GaParmar/img2img-turbo

https://zhuanlan.zhihu.com/p/688973522

https://blog.csdn.net/gitblog_00320/article/details/141050129

img2img-turbo: 革命性的单步图像转换技术 - 懂AI

在线sketch2image测试平台(国内无法访问):

Img2img Turbo Sketch - a Hugging Face Space by gparmar

部署环境

conda env:

conda env create -f environment.yaml

conda activate img2img-turbo

注意每个包的版本问题

遇到的问题

conda env create

部署环境时由于网速的问题,创建不了conda env环境。解决方法就是多试几次,总会有一次成功的。(网络问题)

huggingface_hub

版本:0.26

ImportError: cannot import name 'cached_download' from 'huggingface_hub' (/home/hxr/anaconda3/envs/img2img-turbo/lib/python3.10/site-packages/huggingface_hub/init.py)

升级,但是又出现以下diffusers的问题

diffusers

版本:0.30.3

AttributeError: 'AutoencoderKL' object has no attribute 'add_adapter'

解决方法:huggingface_hub 安装为0.25以下,diffusers版本为0.25.1,可以跑代码。

模型加载失败

RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory

解决方法:删除checkpoint中已下载的模型,由于某种原因模型下载不完整或者损坏,所以重新下载模型。模型下载地址:https://www.cs.cmu.edu/\~img2img-turbo/models/

测试命令

paired

python src/inference_paired.py --model_name "edge_to_image" --input_image "assets/examples/bird.png" --prompt "a blue bird" --output_dir "outputs"

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"

unpaired

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可视化界面

gradio gradio_sketch2image.py

gradio gradio_canny2image.py

端口从服务器映射到自己的物理主机:

ssh -L 7860:127.0.0.1:7860 username@ip

训练自己的模型img2mig-turbo

相关推荐
超龄超能程序猿1 分钟前
(5)机器学习小白入门 YOLOv:数据需求与图像不足应对策略
人工智能·python·机器学习·numpy·pandas·scipy
卷福同学2 分钟前
【AI编程】AI+高德MCP不到10分钟搞定上海三日游
人工智能·算法·程序员
帅次10 分钟前
系统分析师-计算机系统-输入输出系统
人工智能·分布式·深度学习·神经网络·架构·系统架构·硬件架构
AndrewHZ38 分钟前
【图像处理基石】如何入门大规模三维重建?
人工智能·深度学习·大模型·llm·三维重建·立体视觉·大规模三维重建
5G行业应用42 分钟前
【赠书福利,回馈公号读者】《智慧城市与智能网联汽车,融合创新发展之路》
人工智能·汽车·智慧城市
悟空胆好小1 小时前
分音塔科技(BABEL Technology) 的公司背景、股权构成、产品类型及技术能力的全方位解读
网络·人工智能·科技·嵌入式硬件
探讨探讨AGV1 小时前
以科技赋能未来,科聪持续支持青年创新实践 —— 第七届“科聪杯”浙江省大学生智能机器人创意竞赛圆满落幕
人工智能·科技·机器人
cwn_1 小时前
回归(多项式回归)
人工智能·机器学习·数据挖掘·回归
聚客AI2 小时前
🔥 大模型开发进阶:基于LangChain的异步流式响应与性能优化
人工智能·langchain·agent
CareyWYR2 小时前
每周AI论文速递(250707-250711)
人工智能