jayparmr's picture
Upload folder using huggingface_hub
1bc457e
raw
history blame
1.54 kB
import math
from typing import List, Optional
from PIL import Image
from internals.data.result import Result
from internals.pipelines.commons import AbstractPipeline, Img2Img
from internals.util.config import get_model_dir
class HighRes(AbstractPipeline):
def load(self, img2img: Optional[Img2Img] = None):
if hasattr(self, "pipe"):
return
if not img2img:
img2img = Img2Img()
img2img.load(get_model_dir())
self.pipe = img2img.pipe
self.img2img = img2img
def apply(
self,
prompt: List[str],
negative_prompt: List[str],
images,
width: int,
height: int,
steps: int,
):
images = [image.resize((width, height)) for image in images]
result = self.pipe.__call__(
prompt=prompt,
image=images,
strength=0.5,
negative_prompt=negative_prompt,
guidance_scale=9,
num_inference_steps=steps,
)
return Result.from_result(result)
@staticmethod
def get_intermediate_dimension(target_width: int, target_height: int):
def_size = 512
desired_pixel_count = def_size * def_size
actual_pixel_count = target_width * target_height
scale = math.sqrt(desired_pixel_count / actual_pixel_count)
firstpass_width = math.ceil(scale * target_width / 64) * 64
firstpass_height = math.ceil(scale * target_height / 64) * 64
return firstpass_width, firstpass_height