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

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.rhkb.cn/news/205286.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux小程序之进度条

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:自己能实现进度条 > 毒鸡汤: > …

js双击修改元素内容并提交到后端封装实现

前面发过一个版本了,后来又追加了些功能。重新发一版。新版支持select和radio。 效果图: 右上角带有绿标的,是可以修改的单元格。如果不喜欢显示绿标,可以传递参数时指定不显示,如果想改为其它颜色,也可以…

[Java]JUC并发编程

JUC并发编程 一、什么是JUC 使用到 java.util 工具包、包、分类 二、线程和进程 进程:一个正在运行的程序,QQ.exe Music.exe 程序的集合; 一个进程往往可以包含多个线程,至少包含一个! Java默认有两个线程&#x…

浅学指针(3)

系列文章目录 文章目录 系列文章目录前言系列文章目录前言1. 字符指针变量2. 数组指针变量那数组指针变量应该是:存放的应该是数组的地址,能够指向数组的指针变量。2.2 数组指针变量怎么初始化总结:函数名就是地址,&函数名和直…

ubuntu22.04在线安装redis,可选择版本

安装脚本7.0.5版本 在线安装脚本,默认版本号是7.0.5,可以根据需要选择需要的版本进行下载编译安装 sudo apt-get install gcc -y sudo apt-get install pkg-config -y sudo apt-get install build-essential -y#安装redis rm -rf ./tmp.log systemctl …

AI4S Cup学习赛-中枢神经系统药物研发:药物筛选与优化

赛题介绍 链接:Bohrium 案例广场 (dp.tech) 中枢神经系统类疾病长期以来存在着重要的临床未满足需求。据统计,在当前人口老龄化趋势下,阿兹海默(AD)、帕金森病(PD)等神经退行性疾病和脑癌、中…

MySQL主从复制架构

MySQL主从复制架构 一、MySQL集群概述 ##1、集群的主要类型 高可用集群(High Available Cluster,HA Cluster) 高可用集群是指通过特殊的软件把独立的服务器连接起来,组成一个能够提供故障切换(Fail Over&#xff09…

【前端系列】前端存档术之keep-alive

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

电子学会C/C++编程等级考试2022年09月(三级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:课程冲突 小 A 修了 n 门课程, 第 i 门课程是从第 ai 天一直上到第 bi 天。 定义两门课程的冲突程度为 : 有几天是这两门课程都要上的。 例如 a1=1,b1=3,a2=2,b2=4 时, 这两门课的冲突程度为 2。 现在你需要求的是这 n 门课…

如何设置Linux终端提示信息

如何设置Linux终端提示信息 1 方法一:只能在VSCode或者Pycharm终端显示提示信息2 方法二:只能在MobaXterm等远程软件上显示提示3 方法三:避免用户没看到上面的提示,上面两种都设置一下 在使用远程终端时,由于多用户使用…

Qt 软件调试(一) Log日志调试

终于这段时间闲下来了,可以系统的编写Qt软件调试的整个系列。前面零零星星的也有部分输出,但终究没有形成体系。借此机会,做一下系统的总结。慎独、精进~ 日志是有效帮助我们快速定位,找到程序异常点的实用方法。但是好的日志才能…

MATLAB | 官方举办的动图绘制大赛 | 第三周赛情回顾

MATHWORKS官方举办的迷你黑客大赛第三期(MATLAB Flipbook Mini Hack)的最新进展!! 很荣幸前三周都成为了阶段性获奖者~: https://ww2.mathworks.cn/matlabcentral/communitycontests/contests/6/entries/13382 https://ww2.mathworks.cn/mat…

实验一 SAS 基本操作和数据表的导入 2023-11-29

一、上机目的 熟悉SAS的集成环境并掌握它的基本操作。理解SAS程序的结构,理解其中的过程,过程选项,语句,语句选项等概念,掌握SAS编程技术。 二、上机内容 主要有SAS操作界面、SAS窗口操作、SAS菜单操作、SAS按钮操作…

【Java】泛型的简单使用

文章目录 一、包装类1.基本数据类型和对应的包装类2.自动装箱和自动拆箱3.手动装箱和手动拆箱 二、什么是泛型三、泛型的使用四、裸类型(Raw Type)五、泛型是如何编译的六、泛型的上界七、泛型方法总结 一、包装类 在了解泛型之前我们先了解什么是包装类…

对称加密与非对称加密的区别是什么?

对称加密与非对称加密的区别是什么? 对称加密概念:好处和坏处:基本原理 非对称加密概念:工作原理: 两者区别安全性处理速度密钥管理通信双方数量 对称加密 概念: 同一个密钥可以同时用来对信息进行加密和…

Flutter:多线程Isolate的简单使用

在flutter中如果要使用线程,需要借助Isolate来实现。 简介 在Flutter中,Isolate是一种轻量级的线程解决方案,用于在应用程序中执行并发任务。Isolate可以被认为是独立于主线程的工作单元,它们可以在后台执行任务而不会阻塞应用程…

vite项目配置vite.config.ts在打包过程中去除日志

在生产环境上,务必要将日志清除干净,其因有二,在webgis系统中,有很多几何数据,体积大、数量多,很容易引起系统卡顿;清除log后,系统看着舒服,协同开发有很多无聊的日志&am…

【Redis】前言--redis产生的背景以及过程

一.介绍 为什么会出现Redis这个中间件,从原始的磁盘存储到Redis中间又发生了哪些事,下面进入正题 二.发展史 2.1 磁盘存储 最早的时候都是以磁盘进行数据存储,每个磁盘都有一个磁道。每个磁道有很多扇区,一个扇区接近512Byte。…

【送书活动二期】Java和MySQL数据库中关于小数的保存问题

之前总结过一篇文章mysql数据库:decimal类型与decimal长度用法详解,主要是个人学习期间遇到的mysql中关于decimal字段的详解,最近在群里遇到一个小伙伴提出的问题,也有部分涉及,今天就再大致总结一下Java和MySQL数据库…

ArcGIS如何处理并加载Excel中坐标数据?

做GIS行业的各位肯定免不了跟数据打交道,其中数据的处理说复杂也复杂,因为我们要花时间去做数据的转换及调整工作,那说简单也简单,因为我们有很多的工具可以使用,那么今天我就给大家带来处理Excel中的GIS数据中的其中一…