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
|
### 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"
|
> GE (Gourieff Edition), aka "NSFW-Roop"
|
||||||
|
|||||||
@ -12,11 +12,10 @@ import glob
|
|||||||
from modules.face_restoration import FaceRestoration
|
from modules.face_restoration import FaceRestoration
|
||||||
|
|
||||||
from scripts.roop_logging import logger
|
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
|
from scripts.roop_version import version_flag
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
def get_models():
|
def get_models():
|
||||||
models_path = os.path.join(scripts.basedir(), "models/roop/*")
|
models_path = os.path.join(scripts.basedir(), "models/roop/*")
|
||||||
models = glob.glob(models_path)
|
models = glob.glob(models_path)
|
||||||
@ -191,7 +190,7 @@ class FaceSwapScript(scripts.Script):
|
|||||||
model=self.model,
|
model=self.model,
|
||||||
upscale_options=self.upscale_options,
|
upscale_options=self.upscale_options,
|
||||||
)
|
)
|
||||||
p.init_images[i] = result.image()
|
p.init_images[i] = result
|
||||||
else:
|
else:
|
||||||
logger.error(f"Please provide a source face")
|
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.enable and self.swap_in_generated:
|
||||||
if self.source is not None:
|
if self.source is not None:
|
||||||
image: Image.Image = script_pp.image
|
image: Image.Image = script_pp.image
|
||||||
result: ImageResult = swap_face(
|
result = swap_face(
|
||||||
self.source,
|
self.source,
|
||||||
image,
|
image,
|
||||||
source_faces_index=self.source_faces_index,
|
source_faces_index=self.source_faces_index,
|
||||||
@ -211,7 +210,10 @@ class FaceSwapScript(scripts.Script):
|
|||||||
model=self.model,
|
model=self.model,
|
||||||
upscale_options=self.upscale_options,
|
upscale_options=self.upscale_options,
|
||||||
)
|
)
|
||||||
pp = scripts_postprocessing.PostprocessedImage(result.image())
|
try:
|
||||||
|
pp = scripts_postprocessing.PostprocessedImage(result)
|
||||||
pp.info = {}
|
pp.info = {}
|
||||||
p.extra_generation_params.update(pp.info)
|
p.extra_generation_params.update(pp.info)
|
||||||
script_pp.image = pp.image
|
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
|
from scripts.roop_logging import logger
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,7 @@
|
|||||||
import copy
|
import copy
|
||||||
import math
|
|
||||||
import os
|
import os
|
||||||
import tempfile
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import List, Union, Dict, Set, Tuple
|
from typing import List, Union
|
||||||
|
|
||||||
import cv2
|
import cv2
|
||||||
import numpy as np
|
import numpy as np
|
||||||
@ -12,10 +10,11 @@ from PIL import Image
|
|||||||
import insightface
|
import insightface
|
||||||
import onnxruntime
|
import onnxruntime
|
||||||
|
|
||||||
from modules.face_restoration import FaceRestoration, restore_faces
|
from modules.face_restoration import FaceRestoration
|
||||||
from modules.upscaler import Upscaler, UpscalerData
|
from modules.upscaler import UpscalerData
|
||||||
from scripts.roop_logging import logger
|
from scripts.roop_logging import logger
|
||||||
|
|
||||||
|
|
||||||
providers = onnxruntime.get_available_providers()
|
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
|
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(
|
def swap_face(
|
||||||
source_img: Image.Image,
|
source_img: Image.Image,
|
||||||
target_img: Image.Image,
|
target_img: Image.Image,
|
||||||
@ -159,9 +147,8 @@ def swap_face(
|
|||||||
source_faces_index: List[int] = [0],
|
source_faces_index: List[int] = [0],
|
||||||
faces_index: List[int] = [0],
|
faces_index: List[int] = [0],
|
||||||
upscale_options: Union[UpscaleOptions, None] = None,
|
upscale_options: Union[UpscaleOptions, None] = None,
|
||||||
) -> ImageResult:
|
):
|
||||||
result_image = target_img
|
result_image = target_img
|
||||||
fn = tempfile.NamedTemporaryFile(delete=False, suffix=".png")
|
|
||||||
if model is not None:
|
if model is not None:
|
||||||
|
|
||||||
if isinstance(source_img, str): # source_img is a base64 string
|
if isinstance(source_img, str): # source_img is a base64 string
|
||||||
@ -209,5 +196,4 @@ def swap_face(
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
logger.info("No source face(s) found")
|
logger.info("No source face(s) found")
|
||||||
result_image.save(fn.name)
|
return result_image
|
||||||
return ImageResult(path=fn.name)
|
|
||||||
Loading…
x
Reference in New Issue
Block a user