ImageBind与Stable diffusion使用记录

news2025/3/12 13:48:20

参考代码

ImageBind:GitHub - facebookresearch/ImageBind: ImageBind One Embedding Space to Bind Them All

ImageBind + stable-diffusion-2-1-unclip:GitHub - Zeqiang-Lai/Anything2Image: Generate image from anything with ImageBind and Stable Diffusion

最近很火的ImageBind,它通过利用多种类型(depth、text、heatmap、audio、IMU)的图像配对数据来学习单个共享表示空间。ImageBind不需要所有模态同时出现的数据集,它利用了图像的绑定属性,只要将每个模态的embedding与图像embedding对齐,就能实现所有模态的迅速对齐。

但从ImageBind开源的代码来看,作者只开源了encode部分(把不同模态的数据映射到对齐的embedding space中),无法直接实现text2img、audio2img等功能。为了实现上述功能,大佬们便把ImageBind提供的“unified latent space”和stable diffusion中的decoder结合起来,感兴趣的可以去Github上搜Anything2Image或者BindDiffusion。这里我参考了ImageBind和Anything2Image的代码,复现了audio+img to img、text to img等功能,代码运行的依赖库可参考ImageBind的(pip install -r requirements.txt),再加上diffusers即可(pip install diffusers)。

代码示例

import torch
from diffusers import StableUnCLIPImg2ImgPipeline
import sys
sys.path.append("..")
from models import data
from models import imagebind_model
from models.imagebind_model import ModalityType


model = imagebind_model.imagebind_huge(pretrained=True).to("cuda").eval()
pipe = StableUnCLIPImg2ImgPipeline.from_pretrained("stabilityai/stable-diffusion-2-1-unclip", torch_dtype=torch.float16).to("cuda")

with torch.no_grad():
    ## image
    image_path = ["/kaxier01/projects/GPT/ImageBind/assets/image/bird.png"]
    embeddings = model.forward({ModalityType.VISION: data.load_and_transform_vision_data(image_path, "cuda")}, normalize=False)
    img_embeddings = embeddings[ModalityType.VISION]
    ## audio
    audio_path = ["/kaxier01/projects/GPT/ImageBind/assets/wav/wave.wav"]
    embeddings = model.forward({ModalityType.AUDIO: data.load_and_transform_audio_data(audio_path, "cuda")}, normalize=True)
    audio_embeddings = embeddings[ModalityType.AUDIO]
    embeddings = (img_embeddings + audio_embeddings) / 2

    images = pipe(image_embeds=embeddings.half()).images
    images[0].save("/kaxier01/projects/GPT/ImageBind/results/bird_wave_audioimg2img.png")

遇到问题及解决方法

这块遇到的问题主要是模型下载超时的问题,解决方法如下:

方法一:

到官网(Hugging Face – The AI community building the future.)去搜索模型并下载(最好全部文件都下下来),如

下载好后,在代码中指定模型路径即可,如

# 模型路径: "/kaxier01/projects/GPT/ImageBind/checkpoints/stable-diffusion-2-1-unclip"
pipe = StableUnCLIPImg2ImgPipeline.from_pretrained("/kaxier01/projects/GPT/ImageBind/checkpoints/stable-diffusion-2-1-unclip", torch_dtype=torch.float16).to("cuda")

方法二:

下载git-lfs

apt-get update
apt-get install git-lfs
git lfs install

下载并安装好后,即可使用该指令来下载模型,如

git lfs clone https://huggingface.co/stabilityai/stable-diffusion-2-1-unclip

结果展示 

thermal2img

input

output

audio+img2img

input

语音(wave.wav)+图片

output

text2img

input

'a photo of an astronaut riding a horse on mars'

output

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/572361.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

条码控件Aspose Barcode,满足您条码需求的终极解决方案

Aspose.BarCode for .NET 是一个功能强大的API,可以从任意角度生成和识别多种图像类型的一维和二维条形码。开发人员可以轻松添加条形码生成和识别功能,以及在.NET应用程序中将生成的条形码导出为高质量的图像格式。 Aspose API 支持流行文件格式处理&a…

一文了解国内外电子后视镜(CMS)现行法规标准

摘要: 本文小编分享一篇整合了国内外对CMS的安装及功能性做出要求的相关标准与法规。感兴趣的朋友可以专门去搜索学习。 前言:随着GB15084-2022的即将正式实施,以摄像头屏幕组合取代传统光学后视镜的新一代电子后视镜CMS相关车型将被允许上路…

如何卸载Visio秘钥

文章目录 如何卸载Visio秘钥解决的问题我的环境版本查找OSPP.VBS文件使用命令行查看信息卸载Visio秘钥卸载其他版本秘钥查看word激活卸载Office秘钥总结 如何卸载Visio秘钥 解决的问题 本文教你如何卸载Visio或Office秘钥,如果安装了多个Visio无效秘钥&#xff0c…

【SpringBoot教程】开发提效工具Lombok引入 Mybatis-plus-generator代码自动生成工具

⛪ 专栏地址 系列教程更新中 🚀 文章介绍: 在开发过程中免不了与数据库的交互,其中模板类的编写如果手动编写会耗费大量时间,这里可引入MybatisPlus的Mybatis-plus-generator进行代码模板映射生成提高开发效率 🚀 源码获取: 项目中…

STM32 Cubemx Freertos 工程, 用GDB进行debug时候, 跳进HardFault_Handler的问题

现象: 正常运行没问题, 但是一旦用gdb来debug, 开场很快就进hardfault 分析: 进了hardfault时候观察调用栈 竟然是从定时器中断过来的 也就是定时器中断执行这条时候 再往前推, 是初始化systick时候 也就是说, 前一行把中断打开, 这一行打开定时器时钟, 马上进了一次中断…

淘宝图片搜索接口API封装

本篇博文介绍了对淘宝图片搜索API的二次封装,将URL参数封装成Python函数,直接传入参数即可获取搜索结果,例如淘宝商品标题、价格、销量和URL等。提供了详细的代码示例和接口调用Demo。 taobao.item_search_img-按图搜索淘宝商品(拍…

hive 架构及 metastore 功能简单介绍

这两天在调研用 java 怎么能通过 hive metastore 将 hive 表中的数据读出来(不能用 hive2),最好是能直接支持 sql 查询。各种查跟尝试,最终确定这条路走不通。期间研究了下 hive 的内部架构,其实就是看了一遍官方文档。…

企业微信也能接入ChatGPT啦~你也能成功,步骤超详细~

文章目录 配置企业微信创建企业创建应用 配置项目一、OpenAI账号注册二、克隆项目代码三、复制配置文件四、企业微信配置 服务器购买运行项目安装Python安装核心依赖启动项目 个人微信绑定 上次我把ChatGPT接入了微信(请看这篇文章当ChatGpt接入微信群之后&#xff…

【王道·操作系统】第二章 进程管理【未完】

一、进程的基本概念 1.1 进程的概念 程序:静态的,存放在磁盘里的可执行文件,是一系列的指令集合进程Process:动态的,是程序的一次执行过程 1.2 进程的组成 数据结构PCB(process control block),即进程控…

再谈sqlserver事务

事务没提交时,自增字段的数据已经生成 id 3, 此时 脏读数据 select with(nolock) 你获取的id是3 如果 rollback后 我重新提交插入数据,id3 的数据没了,变成了 4 因此,nolock允许脏的语句…

如何在华为OD机试中获得满分?Java实现【查找重复代码】一文详解

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述4. Java算法源码5. 测试6.解题思路1. 题目描述 小陈负责维护项目中的代…

电子劳动合同如何签订才能生效呢?四步就能教会你!

根据人力资源社会保障部发布的《电子劳动合同订立指引》规定:用人单位与劳动者订立电子劳动合同的,要通过电子劳动合同订立平台订立。 电子劳动合同订立平台要通过有效的现代信息技术手段提供劳动合同订立、调取、储存、应用等服务,具备身份…

前端正确处理“文字溢出”的思路

目录 前言 一. 组件效果预览 二. 单行溢出的处理 三. 前期准备 四. 理清思路 五. 完成 autoEllipsis 函数 六. 保留后缀的实现 七. 源码 八. 优化点 前言 最近在项目中需要做到类似于 Mac 下这种,当屏幕宽度足以容下当前文件名称的时候,文件名称…

小心!认证中的这几个坑别再踩了

【小心!认证中的这几个坑别再踩了】 1.三天拿证不可信! 想要今天办理、明天拿证是不可能实现的。一个认证需要经过前期的材料准备、现场审核、提交报告、颁发证书这一整套流程,拿FSC认证来说,就算所有环节都顺利完成,也…

网络安全入门学习路线,CSDN最全!建议收藏!

前言 网络安全行业热度越来越高,我也因此对这个领域充满了好奇。但是我也是一个完全的门外汉,从零开始学习网络安全有多难?下面是我的经验总结。 第一阶段:入门 我的第一步是寻找网络安全的入门书。推荐《黑客攻防技术宝典&…

Revit被遮挡的基础及快速构件显隐

一、Revit被遮挡的基础 在设计中,常常会有某些构件被上部的其他构件遮挡住的情况。在当前的多数样板中,这类构件会以隐藏线的模式表示出来。如下图所示,某设备下有四个条形设备基础。 这些基础被设备挡住的部分就以虚线的”隐藏线“样式显示在…

开发敏捷高效 | 云原生应用开发与运维新范式

5 月 18 日,腾讯云举办了 Techo Day 腾讯技术开放日,以「开箱吧!腾讯云」为栏目,对外发布和升级了腾讯自研的一系列云原生产品和工具。其中,腾讯云开发者产品中心总经理刘毅围绕“开发敏捷高效”这一话题,分…

三天吃透Java面试八股文(2023最新整理)

文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Java的特点 Java是一门面向对象的编程语言。面…

属实不赖!Alibaba开源GitHub星标114K微服务架构全彩进阶手册

开篇必读: 在当今的数字化经济时代,微服务架构已经成为公司业务构建的主流架构模式,代表了未来的技术发展趋势,同时微服务也成为开发者的必备技能。 本书从微服务架构的设计理念和方法论切入,从不同角度全面介绍微服…

Flink第七章:状态编程

系列文章目录 Flink第一章:环境搭建 Flink第二章:基本操作. Flink第三章:基本操作(二) Flink第四章:水位线和窗口 Flink第五章:处理函数 Flink第六章:多流操作 Flink第七章:状态编程 文章目录 系列文章目录前言一、Keyed State(按键分区)1.KeyedStateTest.scala2.PeriodicPVEx…