FIX: No garbage in local temp folder
+ VersionUP (beta)
This commit is contained in:
parent
c663408f4b
commit
fea0eed7c7
@ -1,4 +1,4 @@
|
||||
# Roop-GE 0.2.2 for StableDiffusion
|
||||
# Roop-GE 0.2.3b for StableDiffusion
|
||||
### NSFW (uncensored) version (use it on your own responsibility) of [original sd-webui-roop](https://github.com/s0md3v/sd-webui-roop) with a lot of improvements
|
||||
|
||||
> GE (Gourieff Edition), aka "NSFW-Roop"
|
||||
|
||||
@ -12,11 +12,10 @@ import glob
|
||||
from modules.face_restoration import FaceRestoration
|
||||
|
||||
from scripts.roop_logging import logger
|
||||
from scripts.swapper import UpscaleOptions, swap_face, ImageResult
|
||||
from scripts.swapper import UpscaleOptions, swap_face
|
||||
from scripts.roop_version import version_flag
|
||||
import os
|
||||
|
||||
|
||||
def get_models():
|
||||
models_path = os.path.join(scripts.basedir(), "models/roop/*")
|
||||
models = glob.glob(models_path)
|
||||
@ -191,7 +190,7 @@ class FaceSwapScript(scripts.Script):
|
||||
model=self.model,
|
||||
upscale_options=self.upscale_options,
|
||||
)
|
||||
p.init_images[i] = result.image()
|
||||
p.init_images[i] = result
|
||||
else:
|
||||
logger.error(f"Please provide a source face")
|
||||
|
||||
@ -203,7 +202,7 @@ class FaceSwapScript(scripts.Script):
|
||||
if self.enable and self.swap_in_generated:
|
||||
if self.source is not None:
|
||||
image: Image.Image = script_pp.image
|
||||
result: ImageResult = swap_face(
|
||||
result = swap_face(
|
||||
self.source,
|
||||
image,
|
||||
source_faces_index=self.source_faces_index,
|
||||
@ -211,7 +210,10 @@ class FaceSwapScript(scripts.Script):
|
||||
model=self.model,
|
||||
upscale_options=self.upscale_options,
|
||||
)
|
||||
pp = scripts_postprocessing.PostprocessedImage(result.image())
|
||||
pp.info = {}
|
||||
p.extra_generation_params.update(pp.info)
|
||||
script_pp.image = pp.image
|
||||
try:
|
||||
pp = scripts_postprocessing.PostprocessedImage(result)
|
||||
pp.info = {}
|
||||
p.extra_generation_params.update(pp.info)
|
||||
script_pp.image = pp.image
|
||||
except:
|
||||
logger.error(f"Cannot create a result image")
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
version_flag = "v0.2.2"
|
||||
version_flag = "v0.2.3b"
|
||||
|
||||
from scripts.roop_logging import logger
|
||||
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import copy
|
||||
import math
|
||||
import os
|
||||
import tempfile
|
||||
from dataclasses import dataclass
|
||||
from typing import List, Union, Dict, Set, Tuple
|
||||
from typing import List, Union
|
||||
|
||||
import cv2
|
||||
import numpy as np
|
||||
@ -12,10 +10,11 @@ from PIL import Image
|
||||
import insightface
|
||||
import onnxruntime
|
||||
|
||||
from modules.face_restoration import FaceRestoration, restore_faces
|
||||
from modules.upscaler import Upscaler, UpscalerData
|
||||
from modules.face_restoration import FaceRestoration
|
||||
from modules.upscaler import UpscalerData
|
||||
from scripts.roop_logging import logger
|
||||
|
||||
|
||||
providers = onnxruntime.get_available_providers()
|
||||
|
||||
|
||||
@ -141,17 +140,6 @@ def get_face_single(img_data: np.ndarray, face_index=0, det_size=(640, 640)):
|
||||
return None
|
||||
|
||||
|
||||
@dataclass
|
||||
class ImageResult:
|
||||
path: Union[str, None] = None
|
||||
similarity: Union[Dict[int, float], None] = None # face, 0..1
|
||||
|
||||
def image(self) -> Union[Image.Image, None]:
|
||||
if self.path:
|
||||
return Image.open(self.path)
|
||||
return None
|
||||
|
||||
|
||||
def swap_face(
|
||||
source_img: Image.Image,
|
||||
target_img: Image.Image,
|
||||
@ -159,9 +147,8 @@ def swap_face(
|
||||
source_faces_index: List[int] = [0],
|
||||
faces_index: List[int] = [0],
|
||||
upscale_options: Union[UpscaleOptions, None] = None,
|
||||
) -> ImageResult:
|
||||
):
|
||||
result_image = target_img
|
||||
fn = tempfile.NamedTemporaryFile(delete=False, suffix=".png")
|
||||
if model is not None:
|
||||
|
||||
if isinstance(source_img, str): # source_img is a base64 string
|
||||
@ -209,5 +196,4 @@ def swap_face(
|
||||
|
||||
else:
|
||||
logger.info("No source face(s) found")
|
||||
result_image.save(fn.name)
|
||||
return ImageResult(path=fn.name)
|
||||
return result_image
|
||||
Loading…
x
Reference in New Issue
Block a user