Diffusers代码学习: Outpainting

Outpainting绘制将图像扩展到其原始边界之外,允许在保留原始图像的同时添加、替换或修改图像中的视觉元素。与Inpainting一样,可以用新的视觉元素填充蒙版指定区域(在这种情况下,是原始图像之外的区域),同时保留原始图像。

有几种方法可以进行绘制,例如使用ControlNet或Differential Diffusion。下面展示如何使用Inpainting 模型ControlNet和ZoeDepth估计器进行绘制。在开始之前,请确保已安装controlnet_aux库,以便可以使用ZoeDepth估计器。

# 以下代码为程序运行进行设置

import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
import random
import requests
import torch
from controlnet_aux import ZoeDetector
from PIL import Image, ImageOps

from diffusers import (
    AutoencoderKL,
    ControlNetModel,
    StableDiffusionXLControlNetPipeline,
    StableDiffusionXLInpaintPipeline,
)

""" Stable Diffusion XL(SDXL)型号最适合1024x1024张图像,但只要硬件有足够的内存支持,就可以将图像调整为任何大小。图像中的透明背景也应该替换为白色背景。创建一个函数(如下图所示),将图像缩放并粘贴到白色背景上。"""


def scale_and_paste(original_image):
aspect_ratio = original_image.width / original_image.height

if original_image.width > original_image.height:
new_width = 1024
new_height = round(new_width / aspect_ratio)
else:
new_height = 1024
new_width = round(new_height * aspect_ratio)

resized_original = original_image

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

duhaining1976

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

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

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

打赏作者

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

抵扣说明:

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

余额充值