IP-Adapter還可以通過Inpainting自動管道和蒙圖方式生成目標圖片。
#?以下代碼為程序運行進行設置,使用Inpainting?的自動管道,
import os os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
from diffusers import AutoPipelineForInpainting
# 程序需要能夠支持加載圖片
from diffusers.utils import load_image
import torch
#?以下代碼加載模型,但是用的是Inpainting的自動管道
pipeline = AutoPipelineForInpainting.from_pretrained("diffusers/stable-diffusion-xl-1.0-inpainting-0.1",
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)
# 以下代碼加載原始圖片,參考圖片和蒙圖
mask_image = load_image(
"ip_adapter_mask.png")
image = load_image(
"ip_adapter_bear_1.png")
ip_image = load_image(
"ip_adapter_gummy.png")
?
generator = torch.Generator(device="cpu").manual_seed(4)
# 以下代碼加載并處理提示詞,基于原始圖片,參考圖片和蒙圖生成圖片
images = pipeline(
prompt="a cute gummy bear waving",
image=image,
mask_image=mask_image,
ip_adapter_image=ip_image,
generator=generator,
num_inference_steps=100,
).images
images[0].show()
原圖的效果是這樣的
參考圖片的效果是這樣的
蒙圖的效果是這樣的
生成的圖片的效果是這樣的(如果真有這么一個軟糖北極熊,真能舍得吃嗎?)