Diffusers代码学习-Inpainting

Inpainting可以替换或编辑图像的特定区域。这使得它成为图像恢复的有用工具,比如去除缺陷和伪影,甚至用全新的东西替换图像区域。Inpainting依赖于掩模来确定要填充图像的哪些区域;要修复的区域由白色像素表示,而要保留的区域由黑色像素表示。白色像素由提示词生成内容填充。

 
# 以下代码为程序运行进行设置,并引入Inpainting自动管道

import os

os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
import torch
from diffusers import AutoPipelineForInpainting
from diffusers.utils import load_image, make_image_grid

# 以下代码加载模型

pipeline = AutoPipelineForInpainting.from_pretrained(
"kandinsky-community/kandinsky-2-2-decoder-inpaint", torch_dtype=torch.float16

)

# 这里使用了[~DiffusionPipeline.enable_model_cpu_offload]

# 和[~DiffersionPipelines.enable_xformers_memory_efficient_attention]

# 来节省内存并提高推理速度。

pipeline.enable_model_cpu_offload()

# remove following line if xFormers is not installed or you have PyTorch 2.0 or higher installed

 

# 如果没有安装xFormers或使用的是PyTorch 2.0或更高版本,则无需使用代码

pipeline.enable_xformers_memory_efficient_attention()

# 以下代码加载原始图片

init_image = load_image(

"https://hf-mirror.com/datasets/huggingface/documentation-images/resolve/main/diffusers/inpaint.png")

# 以下代码加载蒙图

mask_image = load_image(
"https://hf-mirror.com/datasets/huggingface/documentation-images/resolve/main/diffusers/inpaint_mask.png")

# 以下代码提供了正面及负面提示词

prompt = "a black cat with glowing eyes, cute, adorable, disney, pixar, highly detailed, 8k"

negative_prompt = "bad anatomy, deformed, ugly, disfigured"

# 以下代码基于提示词,原始图片及蒙图生成Inpainting后的图片

image = pipeline(prompt=prompt, negative_prompt=negative_prompt, image=init_image, mask_image=mask_image).images[0]

# 使用make_image_grid方法将几张图片放在一期对比显示

make_image_grid([init_image, mask_image, image], rows=1, cols=3).show()

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

duhaining1976

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值