ControlNet Tile SDXL

xinsir
Texto a imagen

ControlNet Tile SDXL es un modelo de Diffusers especializado en Text-to-Image que utiliza ControlNet para mejorar la generación de imágenes desenfocadas, variaciones de imagen y super-resoluciones.

Como usar

from diffusers import ControlNetModel, StableDiffusionXLControlNetPipeline, AutoencoderKL
from diffusers import DDIMScheduler, EulerAncestralDiscreteScheduler
from PIL import Image
from guided_filter import FastGuidedFilter
import torch
import numpy as np
import cv2

controlnet_conditioning_scale = 1.0
prompt = "tu prompt, cuanto más largo mejor, puedes describirlo con el mayor detalle posible"
negative_prompt = 'longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality'

eulera_scheduler = EulerAncestralDiscreteScheduler.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", subfolder="scheduler")

controlnet = ControlNetModel.from_pretrained(
"xinsir/controlnet-tile-sdxl-1.0",
torch_dtype=torch.float16
)

vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)

pipe = StableDiffusionXLControlNetPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
controlnet=controlnet,
vae=vae,
safety_checker=None,
torch_dtype=torch.float16,
scheduler=eulera_scheduler,
)

controlnet_img = cv2.imread("ruta de tu imagen original")
height, width, _  = controlnet_img.shape
ratio = np.sqrt(1024. * 1024. / (width * height))
W, H = int(width * ratio), int(height * ratio)

crop_w, crop_h = 0, 0
controlnet_img = cv2.resize(controlnet_img, (W, H))

controlnet_img = cv2.cvtColor(controlnet_img, cv2.COLOR_BGR2RGB)
controlnet_img = Image.fromarray(controlnet_img)

images = pipe(
prompt,
negative_prompt=negative_prompt,
image=controlnet_img,
controlnet_conditioning_scale=controlnet_conditioning_scale,
width=W,
height=H,
num_inference_steps=30,
).images

images[0].save(f"ruta de guardado de tu imagen, en formato png generalmente es mejor que jpg o webp en términos de calidad de imagen pero ocupa mucho más espacio")

Funcionalidades

Generación de imágenes a partir de texto
Desenfoque de imágenes
Variación de imágenes similar a MidJourney
Superresolución de imágenes similar a realESRGAN
Soporte para cualquier relación de aspecto y múltiples escalas de aumento

Casos de uso

Desenfoque de detalles en imágenes
Generación de variaciones artísticas de imágenes existentes
Mejora y aumento de la resolución de imágenes de baja calidad