clip-interrogator本地部署

news2024/9/30 19:42:22

clip-interrogator本地部署

  • 1. 克隆源码
  • 2. 创建虚拟环境及配置
  • 3. 下载远程相关文件
    • 3.1 下载Salesforce相关文件失败
    • 3.2 下载cache相关文件失败
    • 3.3 解决库不完整问题
  • 4. 测试代码
    • 4.1 脚本一
    • 4.2 脚本二
    • 4.3 测试run_cli.py文件
    • 4.4 测试run_gradio.py文件

  • 源码链接:https://github.com/pharmapsychotic/clip-interrogator
  • 介绍
    • CLIP询问程序是一个提示工程工具,它结合了OpenAICLIPSalesforceBLIP,以优化文本提示,使其与给定的图像相匹配。
    • 使用由此产生的提示和文本到图像的模型,如DreamStudio上的Stable Diffusion,来创建酷炫的艺术!

1. 克隆源码

  • 克隆命令
    git clone https://github.com/pharmapsychotic/clip-interrogator.git
    

2. 创建虚拟环境及配置

  • 创建虚拟环境
    conda create -n env_clip python==3.8.10
    
  • 进入虚拟环境
    conda activate env_clip 
    
  • 安装pytorch
    pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
    
  • 安装clip-interrogator
    pip install clip-interrogator==0.6.0
    
  • 安装requirements.txt
    pip install -r requirements.txt 
    

3. 下载远程相关文件

3.1 下载Salesforce相关文件失败

  • 运行代码时,会访问国外的网站下载文件,导致访问失败,所以手动下载
    在这里插入图片描述
  • 解决: 下载相关文件
    • 根据报错:Salesforce/blip-image-captioning-large失败
    • 参数文件路径在:clip-interrogator-main\clip_interrogator\clip_interrogator.py
      在这里插入图片描述
    • 这几个文件都要远程下载
    • 但是我运行代码时只用到了Salesforce/blip-image-captioning-large,根据自己需求下载 【我全下了】
    • 下载链接 【链接打不开,自己想办法】
      • https://huggingface.co/Salesforce/blip-image-captioning-large/tree/main
      • https://huggingface.co/Salesforce/blip2-opt-2.7b/tree/main
      • https://huggingface.co/Salesforce/blip2-flan-t5-xl
      • https://huggingface.co/microsoft/git-large-coco/tree/main
      • https://huggingface.co/Salesforce/blip-image-captioning-base/tree/main
    • 在根目录创建:config_data文件夹,将下载的文件放在里面
      在这里插入图片描述
    • 修改目录地址文件
      • clip-interrogator-main\clip_interrogator\clip_interrogator.py
      • Salesforce改为config_data
        在这里插入图片描述

3.2 下载cache相关文件失败

在这里插入图片描述

  • 有个文件下载成功了,默认创建cache文件夹,保存在此文件夹
    在这里插入图片描述
  • 手动下载链接 【链接打不开,自己想办法】
    • ViT-L-14_openai_artists.safetensors
    • ViT-L-14_openai_flavors.safetensors
    • ViT-L-14_openai_mediums.safetensors
    • ViT-L-14_openai_movements.safetensors
    • ViT-L-14_openai_negative.safetensors
    • ViT-L-14_openai_trendings.safetensors
  • 放在cache文件夹中
    在这里插入图片描述

3.3 解决库不完整问题

  • clip-interrogator-main\predict.py文件cog爆红
    在这里插入图片描述
  • 解决:查库找不到这个文件,在git上找到了相关文件
    • 链接:https://github.com/replicate/cog/tree/main/python
      在这里插入图片描述
    • 将cog文件下载下来,放在根目录即可
      在这里插入图片描述

4. 测试代码

4.1 脚本一

from PIL import Image
from clip_interrogator import Config, Interrogator
image = Image.open('data/1.png').convert('RGB')  # 自己的图片路径
ci = Interrogator(Config(clip_model_name="ViT-L-14/openai"))
print(ci.interrogate(image))
  • 生成文本结果
    在这里插入图片描述

4.2 脚本二

from clip_interrogator import Config, Interrogator, LabelTable, load_list
from PIL import Image

ci = Interrogator(Config())
# ci = Interrogator(Config(blip_model_type=None))
image = Image.open('data/page1_1.jpg').convert('RGB')
table = LabelTable(load_list('clip_interrogator/data/flavors.txt'), 'flavors', ci)
best_match = table.rank(ci.image_to_features(image), top_count=1)[0]
print(best_match)
  • 生成文本结果
    在这里插入图片描述

4.3 测试run_cli.py文件

  • 添加文件路径,设置default默认路径
    • 图生文整个文件夹
      parser.add_argument('-f', '--folder',default=r'/images', help='path to folder of images')   # 图片文件夹路径
      
    • 图生文一张图片
      parser.add_argument('-i', '--image',default=r'data/page1_1.jpg', help='image file or url')  # 图片路径
      
  • 结果和脚本一一样

4.4 测试run_gradio.py文件

  • 安装gradio
    pip install gradio
    
  • 打开url
    在这里插入图片描述
  • 前端界面
    在这里插入图片描述
  • 上传图片结果
    在这里插入图片描述

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

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

相关文章

d3dcompiler_47.dll缺失怎么办?d3dcompiler_47.dll缺失修复方法(详解)

d3dcompiler_47.dll在Windows操作系统和 DirectX应用程序中使用此 DLL 文件,包括游戏,图形处理软件,CAD软件和其他3D应用程序中。如果电脑提示“由于找不到d3dcompiler_47.dll,无法继续执行此代码”,“d3dcompiler_47.dll缺失”&a…

Docker卷与持久化数据

数据主要分为两类,持久化的与非持久化的。 两者都很重要,并且Docker均有对应的支持方式。每个Docker容器都有自己的非持久化存储。非持久化存储自动创建,从属于容器,生命周期与容器相同。这意味着删除容器也会删除全部非持久化数…

网络维护岗位个人求职简历

网络维护岗位个人求职简历1 姓名: 国籍:中国 目前所在地:广州民族:汉族 户口所在地:湖南身材:170cm64kg 婚姻状况:未婚年龄:28 求职意向及工作经历 应聘职位: 工作年限&a…

day14_面向对象的三大特征之一(继承)

继承的概述 Java是对现实社会的模拟,现实中有儿子可以继承父亲的财产,因此有了富二代的。 java中多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类中无需再定义这些属性和行为,只需要和抽取出来…

【Java-SpringBoot+Vue+MySql】项目开发杂记

目录 1、关闭eslint 2、 新建路由 3、安装jQuery依赖-在Vue使用JQuery语法 4、MySQL———数据全部清除,自增归零 5、前后端数据传递——增加功能 6、使用element-ui获取当前表格中的数据——删除功能 1、关闭eslint 2、 新建路由 {path: /user,component: Lay…

LLM - Hugging Face 工程 BERT base model (uncased) 配置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/131400428 BERT是一个在大量英文数据上以自监督的方式预训练的变换器模型。这意味着它只是在原始文本上进行预训练,没有人以…

RabbitMQ实现延迟消息,RabbitMQ使用死信队列实现延迟消息,RabbitMQ延时队列插件

文章目录 一、什么是延迟消息1、队列的属性2、消息的属性3、什么是死信4、使用死信队列的缺点5、延时消息插件 二、JavaAPI利用死信队列实现RabbitMQ延迟消息1、代码实现2、基本流程 三、JavaAPI利用插件实现RabbitMQ延迟消息1、代码实现2、基本原理 四、Springboot利用死信队列…

5分钟自建可视化平台,在线拖拽组件也太方便了!

一、前言 我们在完成 C 端用户的业务需求时,发现大量电商推广页面的逻辑复杂度和交互程度都比较低,却要消耗大量的开发资源。同时在后台管理系统的开发过程中,我们也发现一些相同套路的页面在不同场景下需要重复开发,即使我们封装…

如何提升企业采购绩效?提高采购绩效的方法

采购是任何企业的一个重要方面,它在确保企业平稳高效运行方面发挥着重要作用。作为一名采购专业人员,你有责任确保你的企业以正确的质量、数量和价格获得所需的货物和服务。 本文将讨论一些最佳做法,这些做法可以帮助你提高采购专业人员的绩…

【032】C++高级开发之多态技术详解(虚函数最全讲解)

C的多态技术(虚函数)详解 引言一、多态的概念二、虚函数2.1、父类指针保存子类空间地址 带来的问题2.2、虚函数的定义2.3、虚函数的动态绑定机制2.4、重载、重定义、重写的区别 三、纯虚函数3.1、纯虚函数的定义方式3.2、纯虚函数的案例:饮品…

mvnd 安装和 idea配置mvnd

一、mvnd 安装 1、mvnd 下载地址 https://github.com/apache/maven-mvnd 2、安装 解压并配置环境变量到path 打开CMD终端,输入 mvnd -v 看到如下信息提示则安装成功 默认使用的是内置的maven,配置修改,兼容本地的maven 打开 Maven-mvn…

基于Java医院医患管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

如何测试webservice接口

看过网上很多对Web Service的解释,有些文章写得通俗易懂,但是缺少深度解读;有的文章图文并茂,但是没有现成案例;有的文章非常详细,但是没有直观感受。 于是,我想从测试一个web service接口的角…

【复习《剑指Offer》6-12题】【每天40分钟,我们一起用50天刷完 (剑指Offer)】第七天 7/50

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

围“桌”详谈|本周六直播,一起聊聊「发版」那些事儿!

🌍 你想要深入了解 ShardingSphere 、与业内技术大咖「面对面」探讨数据库领域的前沿趋势吗?那就一定不能错过由 ShardingSphere 社区出品、SphereEx 公司赞助的全球软件工程师必看的直播节目——《对谈时刻》!每期节目,我们都会邀…

VRRP缺省配置

一、VRRP缺省配置 表:VRRP参数缺省值 二、VRRP场景作用 表:VRRP场景作用 三、VRRP配置缺省参数汇总 1)配置VRRP备份组最大数 缺省情况下,设备只支持配置256个VRRP备份组(VRRP4和VRRP6备份组的总和) 当需…

计算机原理二:磁盘和内存速度差多少?

前言 作为程序员,我们不深究硬件,无需深入了解硬件的各个电路信号等细节,只了解存储器的基本相关知识。 存储器的层次结构 寄存器 计算机的一种硬件组件,用于存储和快速访问处理器的数据,位于CPU内部的小型存储器单…

火拼折叠屏:国产手机的杀手锏还是遮羞布?

刚过去的618,手机市场一反常态。 过去,国产安卓旗舰上演“大跳水”,苹果价格坚挺;现在,安卓旗舰优惠力度小,苹果却大降价,iPhone 14 Pro在各平台的优惠力度达到上千元。 IDC中国研究经理郭天翔…

安卓应用中的版本问题

用android Studio 做了一个应用,想发布在google play 里,就碰到一个版本的问题。 我上传了一个版本,更新了一点点,结果有这样一个错误:Version code 1 has already been used. Try another version code。本文就这问题…

【pytest学习总结2.3 】- 如何使用固定装置 fixtures (1)

目录 2.3 如何使用固定装置 fixtures 2.3.1 请求并调用固定装置 fixture 2.3.2 自动固定装置(不需要你请求调用) 2.3.3 固定装置的范围:function, class, module, package or session. 2.3.4 测试后置 teardown/cleanup 2.3.5 安全的 t…