首页 > 其他分享 >Diffusers代码学习: IP-Adapter(续)

Diffusers代码学习: IP-Adapter(续)

时间:2024-06-07 14:58:31浏览次数:16  
标签:IP adapter Diffusers image ip Adapter 图片

但是IP-Adapter不仅可以通过文生图的方式,也可以通过图生图的方式生成目标图片,就无需使用提示词。只不过同上一篇所述,底层的逻辑和图生图是完全不同的。


# 以下代码为程序运行进行设置,使用图生图的自动管道,

import os

os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
 

from diffusers import AutoPipelineForImage2Image

# 程序需要能够支持加载图片

from diffusers.utils import load_image

import torch

# 以下代码加载模型,但是用的是图生图的自动管道pipeline = AutoPipelineForImage2Image.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16).to("cuda")

# 同时加载IP-Adapter模型

pipeline.load_ip_adapter("h94/IP-Adapter", subfolder="sdxl_models", weight_name="ip-adapter_sdxl.bin")

# 设置IP-Adapter影响力

pipeline.set_ip_adapter_scale(0.6)

# 以下代码加载原始图片和参考图片

image = load_image("ip_adapter_bear_1.png")

ip_image = load_image("ip_adapter_bear_2.png")
 

generator = torch.Generator(device="cpu").manual_seed(4)

# 以下代码加载并处理提示词,基于原始图片,和参考图片生成图片

images = pipeline(
prompt="best quality, high quality",
image=image,
ip_adapter_image=ip_image,
generator=generator,
strength=0.6,
).images
images[0].show()

原图的效果是这样的

图片

参考图片的效果是这样的

图片

生成的图片的效果是这样的(北极熊的毛色不正常了,前掌看得也有点别扭)

图片

标签:IP,adapter,Diffusers,image,ip,Adapter,图片
From: https://blog.csdn.net/duhaining1976/article/details/139527056

相关文章

  • 螺旋转动,矩阵的舞蹈:JavaScript中实现螺旋矩阵遍历算法
    螺旋转动,矩阵的舞蹈:JavaScript中实现螺旋矩阵遍历算法基础概念:什么是螺旋矩阵?核心算法解析示例一:基础螺旋矩阵遍历算法解析进阶技巧示例二:动态生成螺旋矩阵技巧点实战与性能优化问题与解决:大矩阵处理结语与讨论在编程的奇幻世界里,数组与矩阵是构筑数字城堡的基石......
  • 数组大扫雷行动:JavaScript中的高效移除指定元素
    数组大扫雷行动:JavaScript中的高效移除指定元素基本概念:移除元素,何为?方法一:splice()大法方法二:filter()轻功功能使用角度与技巧案例一:简单移除案例二:条件移除实战分析遇到的坑与对策结语与讨论在JavaScript编程的征途中,数组是我们的常伴,而“移除元素”这一任务,则像......
  • UiPath发送邮件给多人时需要注意哪些限制?
    UiPath发送邮件给多人的步骤?如何使用UiPath发信?尽管UiPath提供了强大的邮件发送功能,但在批量发送邮件时,有一些限制和注意事项是我们必须了解的。AokSend将详细介绍这些限制,并提供一些优化建议。UiPath发送邮件给多人:收件数量多数电子邮件服务提供商对单次邮件发送的收件人......
  • CSP历年复赛题-P3955 [NOIP2017 普及组] 图书管理员
    原题链接:https://www.luogu.com.cn/problem/P3955题意解读:给出n个图书编号,q个需求码,找到后缀与需求码匹配的最小图书编号,没有输出-1。解题思路:先对图书编号排序,用枚举法遍历每一个图书编号,看后缀是否与需求码相同。100分代码:#include<bits/stdc++.h>usingnamespacestd;c......
  • 【JS封装-数组操作】强化编程实践:精选JavaScript函数封装集锦-关于数组操作(数组去重、
    目录数组去重数组快速排序过滤数组映射数组数组扁平化数组求和数组最大值数组最小值数组切片数组乱序(洗牌算法)数组去重/***去除数组中的重复项。*@param{Array}array要去重的数组。*@returns{Array}去重后的数组。*/functionuniqueArray(array......
  • ICS TRIPLEX T8800C PD8800 PCB130100 数字输入模块
    T8800CPD8800PCB130100应用领域包括:化学工业纸张制造电力生成石油行业制造业电力行业化学行业等需要自动化控制的工业生产过程。T8800CPD8800PCB130100可以集成到自动化控制系统中,与其他设备和系统协同工作,以提高生产效率、降低能源消耗和减少劳动成本。它还可以设置每......
  • CSP历年复赛题-P2119 [NOIP2016 普及组] 魔法阵
    原题链接:https://www.luogu.com.cn/problem/P2119题意解读:在一组数里找出所有的Xa,Xb,Xc,Xd的组合,使得满足Xa<Xb<Xc<Xd,Xb-Xa=2(Xd-Xc),Xb-Xa<(Xc-Xb)/3,并统计出每个数作为A,B,C,D出现的次数。解题思路:1、枚举(O(n^4))首先想到的是通过4重循环枚举所有可能的Xa,Xb,Xc,Xd,然后判......
  • 新手如何正确使用代理IP,一篇文章学会,包含实战案例
    前言一、代理IP1.1什么是代理IP?1.2代理ip分类1.3代理IP的作用和优势二、更换代理IP的方法2.1重启路由器或光猫2.2用拨号vps重拨更换动态IP代理。2.3使用浏览器更换IP三、IPIDEA代理的优势四、提取代理IP4.1提取步骤4.2浏览器使用代理IP五、使用代理IP获......
  • Android Adapter中组件EditText文本变化监听 addTextChangedListener
    问题背景:使用适配器显示一个列表,列表中Item中有EditText,滚动时会有EditText组件内容消失步骤:1.在Adapter中,添加interfacepublicinterfaceOnEidtTextChangeListener{ voidxxxTextChanged(CharSequences,intstart,intbefore,intcount); voidgetXxxEditedCount(......
  • JavaScript第十一讲:DOM编程“事件”
    前言当涉及到DOM(DocumentObjectModel)的事件时,JavaScript提供了许多内置的事件处理器,用于处理用户在网页上执行的各种操作。1.焦点事件当元素获得或失去焦点时触发。onfocus:当元素获得焦点时触发。onblur:当元素失去焦点时触发。//假设有一个输入框<inputtype="......