当前位置: 首页 > news >正文

【AutoencoderKL】基于stable-diffusion-v1.4的vae对图像重构

模型地址:https://huggingface.co/CompVis/stable-diffusion-v1-4/tree/main/vae
主要参考:Using-Stable-Diffusion-VAE-to-encode-satellite-images
在这里插入图片描述

sd1.4 vae

下载到本地

from diffusers import AutoencoderKL
from PIL import Image
import  torch
import torchvision.transforms as T#  ./huggingface/stable-diffusion-v1-4/vae 切换为任意本地路径
vae = AutoencoderKL.from_pretrained("./huggingface/stable-diffusion-v1-4/vae",variant='fp16')
# c:\Users\zeng\Downloads\vae_config.jsondef encode_img(input_img):# Single image -> single latent in a batch (so size 1, 4, 64, 64)# Transform the image to a tensor and normalize ittransform = T.Compose([# T.Resize((256, 256)),T.ToTensor()])input_img = transform(input_img)if len(input_img.shape)<4:input_img = input_img.unsqueeze(0)with torch.no_grad():latent = vae.encode(input_img*2 - 1) # Note scalingreturn 0.18215 * latent.latent_dist.sample()def decode_img(latents):# bath of latents -> list of imageslatents = (1 / 0.18215) * latentswith torch.no_grad():image = vae.decode(latents).sampleimage = (image / 2 + 0.5).clamp(0, 1)image = image.detach().cpu()# image = T.Resize(original_size)(image.squeeze())return T.ToPILImage()(image.squeeze())if __name__ == '__main__':# Load an example imageinput_img = Image.open("huge.jpg")original_size = input_img.sizeprint('original_size',original_size)# Encode and decode the imagelatents = encode_img(input_img)reconstructed_img = decode_img(latents)# Save the reconstructed imagereconstructed_img.save("reconstructed_example2.jpg")# Concatenate the original and reconstructed imagesconcatenated_img = Image.new('RGB', (original_size[0] * 2, original_size[1]))concatenated_img.paste(input_img, (0, 0))concatenated_img.paste(reconstructed_img, (original_size[0], 0))# Save the concatenated imageconcatenated_img.save("concatenated_example2.jpg")

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 无障碍快捷方式图标
  • centos7安装jenkins
  • Databricks 收购 Tabular 的意义:数据开放框架的胜利
  • 安全防御---防火墙实验1
  • 医疗器械FDA |FDA网络安全测试具体内容
  • 初识Laravel(Laravel的项目搭建)
  • 基于随机森林与XGBoost模型的机器故障关键因素分析
  • linux系统php开机自启动 phpfpm
  • Tomcat的安全配置
  • 运营商二三要素是什么?有什么意义
  • 打开excel时弹出stdole32.tlb
  • webpack terser-webpack-plugin 不打包注释及log
  • 几种不同的方式禁止IP访问网站(PHP、Nginx、Apache设置方法)
  • 大模型时代的目标检测
  • Android14系统应用统一裁剪方案
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Cookie 在前端中的实践
  • CSS盒模型深入
  • express如何解决request entity too large问题
  • JavaScript创建对象的四种方式
  • Java反射-动态类加载和重新加载
  • scala基础语法(二)
  • Vim 折腾记
  • Web Storage相关
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 树莓派 - 使用须知
  • 微服务入门【系列视频课程】
  • ​低代码平台的核心价值与优势
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (2)Java 简介
  • (C#)获取字符编码的类
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (力扣)循环队列的实现与详解(C语言)
  • (论文阅读30/100)Convolutional Pose Machines
  • (七)Flink Watermark
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转载)深入super,看Python如何解决钻石继承难题
  • .NET Standard 的管理策略
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET命令行(CLI)常用命令
  • .NET命名规范和开发约定
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET企业级应用架构设计系列之开场白
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .NET正则基础之——正则委托
  • /bin/bash^M: bad interpreter: No such file or directory
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @SentinelResource详解