IP-Adapter:文本兼容图像提示适配器,用于文本到图像扩散模型

news2024/9/29 23:34:59

IP-Adapter这是一种有效且轻量级的适配器,用于实现预训练文本到图像扩散模型的图像提示功能。只有 22M 参数的 IP 适配器可以实现与微调图像提示模型相当甚至更好的性能。IP-Adapter 不仅可以推广到从同一基本模型微调的其他自定义模型,还可以推广到使用现有可控工具的可控生成。此外,图像提示还可以与文本提示配合使用,以完成多模态图像生成。

项目地址:https://github.com/tencent-ailab/IP-Adapter

image.png

释放

  • [2023/11/22] 由于 Diffusers 团队,Diffusers 中提供了 IP-Adapter。
  • [2023/11/10] 🔥 添加IP-Adapter-Face的更新版本。演示在这里。
  • [2023/11/05] 🔥 使用 IP 适配器和 Kandinsky 2.2 Prior 添加文本到图像的演示
  • [2023/11/02] 支持安全张量
  • [2023/9/08] 🔥 更新新版本的 IP-Adapter SDXL_1.0。更多信息可以在这里找到。
  • [2023/9/05] 🔥🔥🔥 WebUI 和 ComfyUI(或 ComfyUI_IPAdapter_plus)支持 IP-Adapter。
  • [2023/8/30] 🔥 根据提示添加带有人脸图像的 IP 适配器。演示在这里。
  • [2023/8/29] 🔥 发布训练代码。
  • [2023/8/23] 🔥 添加具有细粒度功能的 IP-Adapter 代码和型号。演示在这里。
  • [2023/8/18] 🔥 为 SDXL 1.0 添加代码和模型。演示在这里。
  • [2023/8/16] 🔥 我们发布代码和模型。

安装

# install latest diffusers
pip install diffusers==0.22.1

# install ip-adapter
pip install git+https://github.com/tencent-ailab/IP-Adapter.git

# download the models
cd IP-Adapter
git lfs install
git clone https://huggingface.co/h94/IP-Adapter
mv IP-Adapter/models models
mv IP-Adapter/sdxl_models sdxl_models

# then you can use the notebook

install ip-adapter

pip install git+https://github.com/tencent-ailab/IP-Adapter.git

download the models

cd IP-Adapter
git lfs install
git clone https://huggingface.co/h94/IP-Adapter
mv IP-Adapter/models models
mv IP-Adapter/sdxl_models sdxl_models

下载模型

您可以从这里下载模型。要运行演示,您还应该下载以下模型:

  • 跑道ML / 稳定扩散-V1-5
  • 稳定性AI/SD-VAE-FT-MSE
  • SG161222/Realistic_Vision_V4.0_noVAE
  • ControlNet 模型

如何使用

image.png

最佳实践

  • 如果仅使用图像提示,则可以设置 and(或一些通用文本提示,例如“最佳质量”,也可以使用任何否定文本提示)。如果降低 ,可以生成更多样化的图像,但它们可能与图像提示不一致。scale=1.0``text_prompt=""``scale
  • 对于多模式提示,您可以调整 以获得最佳结果。在大多数情况下,设置可以获得良好的效果。对于 SD 1.5 版本,我们建议使用社区模型来生成良好的图像。scale``scale=0.5

用于非方形图像的 IP 适配器

由于图像在 CLIP 的默认图像处理器中居中裁剪,因此 IP 适配器最适合方形图像。对于非正方形图像,它会错过中心之外的信息。

SDXL_1.0

  • ip_adapter_sdxl_demo:带有图像提示的图像变化。
  • ip_adapter_sdxl_controlnet_demo:带有图像提示的结构生成。

IP-Adapter_XL与Reimagine XL的比较如下:

[图片上传失败…(image-8cda2a-1701140382732)]

新版本 (2023.9.8) 中的改进

  • 切换到 CLIP-ViT-H:我们使用 OpenCLIP-ViT-H-14 而不是 OpenCLIP-ViT-bigG-14 训练新的 IP 适配器。虽然ViT-bigG比ViT-H大得多,但我们的实验结果没有发现显著的差异,更小的模型可以减少推理阶段的内存使用。
  • 更快、更好的训练秘诀:在我们之前的版本中,直接以 1024x1024 的分辨率进行训练被证明是非常低效的。但是,在新版本中,我们实施了更有效的两阶段培训策略。首先,我们以 512x512 的分辨率进行预训练。然后,我们采用多尺度策略进行微调。(也许这种训练策略也可以用来加速控制网的训练)。

如何训练

对于训练,您应该安装 accelerate 并将自己的数据集制作成 json 文件。

accelerate launch --num_processes 8 --multi_gpu --mixed_precision "fp16" \
  tutorial_train.py \
  --pretrained_model_name_or_path="runwayml/stable-diffusion-v1-5/" \
  --image_encoder_path="{image_encoder_path}" \
  --data_json_file="{data.json}" \
  --data_root_path="{image_path}" \
  --mixed_precision="fp16" \
  --resolution=512 \
  --train_batch_size=8 \
  --dataloader_num_workers=4 \
  --learning_rate=1e-04 \
  --weight_decay=0.01 \
  --output_dir="{output_dir}" \
  --save_steps=10000

第三方使用

  • 用于 WebUI 的 IP 适配器 [发行说明]
  • ComfyUI 的 IP 适配器 [IPAdapter-ComfyUI 或ComfyUI_IPAdapter_plus]
  • 用于 InvokeAI 的 IP 适配器 [发行说明]
  • 用于 AnimateDiff 提示行程的 IP 适配器
  • Diffusers_IPAdapter:支持多输入图像等更多功能
  • 官方扩散器

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

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

相关文章

Leetcode—1670.设计前中后队列【中等】

2023每日刷题(四十三) Leetcode—1670.设计前中后队列 实现代码 erase(iterator position)在删除vector中的元素后,会将该元素的后面所有元素都往前挪一位。因此,原先的迭代器指向的元素就不是原来那个了,而是它的后…

C#-创建用于测试的父类StartupBase用于服务注入

当写完C#代码,需要对某个方法进行测试。 创建一个XXXTests.cs文件之后,发现需要注入某个服务怎么办? 再创建一个StartupBase.cs文件: public abstract class StartupBase {public IConfiguration Configuration { get; }public …

Axios 并发请求指南 - 3 种简单实用的方法

在实际开发中,我们经常需要同时发送多个请求,并在所有请求完成后进行处理,这就是所谓的并发请求。实现 Axios 并发请求的关键是使用 Axios.all 方法,它接受一个 Promise 的数组作为参数,当这些 Promise 都 resolve 时&…

vscode 插件TODO TREE简单使用

上面的标签和下面的颜色一一对应(下面一个是背景颜色一个是前景颜色),如果上面的标签个数大于下面颜色个数则从头开始

2023年全国硕士研究生入学统一考试管理类专业学位联考英语(二)试题

2023年全国硕士研究生招生考试英语(二)试题 Section I Use of English Here’s a common scenario that any number of entrepreneurs face today: you’re the CEO of a small business, and though you’re making a nice (1)…

linux 安装 mvn

mvn 下载地址:https://maven.apache.org/download.cgi 选择一个合适的版本 cd /opt && curl -o apache-maven-3.8.6-bin.tar.gz https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz tar -xzf apache-maven-3.8.6-bin.…

Net6.0或Net7.0项目升级到Net8.0 并 消除.Net8中SqlSugar的警告

本文基于NetCore3.1或Net6.0项目升级到Net7.0,参考连接:NetCore3.1或Net6.0项目升级到Net7.0-CSDN博客 所有项目按照此步骤操作一遍,完成后再将所有引用的包(即 *.dll)更新升级到最新版(注意:有…

(免费领源码)java#ssm#mysql 招聘客户管理系统78049-计算机毕业设计项目选题推荐

摘 要 由于数据库和数据仓库技术的快速发展,招聘客户管理系统建设越来越向模块化、智能化、自我服务和管理科学化的方向发展。招聘客户系统对处理对象和服务对象,自身的系统结构,处理能力,都将适应技术发展的要求发生重大的变化。…

GaussDB数据库SQL系列-触发器

目录 一、前言 二、触发器概念 三、GaussDB数据库中的触发器 1、语法格式 2、创建步骤 3、注意事项 4、附:表和视图上支持的触发器种类 四、GaussDB数据库中的示例 示例一、在GaussDB数据库中创建一个触发器,以便在插入新记录时自动将记录的创建…

WebGL技术框架及功能

WebGL(Web Graphics Library)是一种用于在Web浏览器中渲染交互式3D和2D图形的JavaScript API。它允许在不需要插件的情况下,在支持WebGL的浏览器中直接运行高性能的图形渲染。WebGL没有一个固定的技术框架,而是基于JavaScript API…

提升业务质量:实践中应用跨境电商ERP源码

作为跨境电商领域的专家,我们深知业务质量对于企业的重要性。在这篇文章中,我将向您介绍如何通过应用跨境电商ERP源码来提升业务质量。 跨境电商ERP源码的优势 跨境电商ERP源码为企业提供了一种全面管理业务的解决方案。它集成了订单管理、库存管理、供…

虚幻学习笔记2—点击场景3D物体的两种处理方式

一、前言 本文使用的虚幻引擎为5.3.2,两种方式分别为:点击根物体和精准点击目标物体。 二、实现 2.1、玩家控制器中勾选鼠标点击事件:这一步很重要,如图2.1.1所示:在自定义玩家控制器中勾 图2.1.1 选该项&#xff0c…

win11系列:避坑宝典|win11升级最新预览体验版bug梳理

win11系列:避坑宝典|win11升级最新预览体验版bug梳理 一、亲测win11升级的前世今生。(一)问题描述梳理。(二)故障原因分析。(三)具体解决方案。2.【已解决】①尝试关Hyper-v重启;②从…

“2024杭州人工智能展览会”加快推进浙江省人工智能产业创新发展

杭州市人民政府加快推进人工智能产业创新发展,贯彻党的二十大精神和新的发展理念,把握人工智能技术演进趋势和创新发展新范式,以促进人工智能与实体经济深度融合为主线,以优质算力普惠供给为基础,到2025年,…

Python自动化办公:PDF文件的分割与合并

我们平时办公中,可能需要对pdf进行合并或者分割,但奈何没有可以白嫖的工具,此时python就是一个万能工具库。 其中PyPDF2是一个用于处理PDF文件的Python库,它提供了分割和合并PDF文件的功能。 在本篇博客中,我们将详细…

「Verilog学习笔记」信号发生器

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 方波的实现,较为简单,只需要设置一个计数器,使输出保持10个时钟为0,跳变为20,再保持10个时钟。依次循环。可以按…

LeetCode [中等]3. 无重复字符的最长子串

3. 无重复字符的最长子串 - 力扣(LeetCode) 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 1. 滑动窗口(Sliding Window): 滑动窗口是一种用于处理数组或列表的子数组或子序列的问题…

信奥编程 1168:大整数加法

解析:在c中需要考虑这么几个问题,第一个是大数据的输入,第二个是大数据的存储,第三是大数据的计算方式,最后是输出。 针对上述几个问题,第一个问题,采用字符串的方式或者数组加循环的方式接收输…

视频文件+EasyDarwin做摄像机模拟器模拟RTSP流很方便,还能做成系统服务,方法与流程

之前我看到过一家人工智能做算法的企业,用EasyDarwinFFMPEG做了一个摄像机的模拟器,方法大概是: 用ffmpeg读取mp4等类型的视频文件(当然ffmpeg啥都能读取),再以RTSP协议的形式推送给EasyDarwin&#xff1b…

【Python】基础练习题_组合数据类型_2

dictMenu f’卡布奇洛’:32,‘摩卡’:30,‘抹茶蛋糕’:28,‘布朗尼’:26}, dictMenu 中存放了你的双人下午套餐(包括咖啡2份和点心2份)的价格,请编写程序,让Python帮忙计算并输出消费总额。 dictMenu {卡布奇洛: 32, 摩卡: 30, 抹茶蛋糕: 28, 布朗尼: 2…