FIX: Separate STATUS logger level
This commit is contained in:
parent
4e877445ba
commit
6be9162b1a
@ -114,7 +114,7 @@ def apply_logging_patch(console_logging_level):
|
||||
logger.setLevel(logging.WARNING)
|
||||
elif console_logging_level == 1:
|
||||
patch_insightface(*patched_functions)
|
||||
logger.setLevel(logging.INFO)
|
||||
logger.setLevel(logging.STATUS)
|
||||
elif console_logging_level == 2:
|
||||
patch_insightface(*original_functions)
|
||||
logger.setLevel(logging.INFO)
|
||||
logger.setLevel(logging.STATUS)
|
||||
|
||||
@ -89,7 +89,7 @@ def reactor_api(_: gr.Blocks, app: FastAPI):
|
||||
result_file_path = default_file_path()
|
||||
try:
|
||||
result[0].save(result_file_path, format='PNG')
|
||||
logger.info("Result has been saved to: %s", result_file_path)
|
||||
logger.status("Result has been saved to: %s", result_file_path)
|
||||
except Exception as e:
|
||||
logger.error("Error while saving result: %s",e)
|
||||
return {"image": api.encode_pil_to_base64(result[0])}
|
||||
|
||||
@ -266,11 +266,11 @@ class FaceSwapScript(scripts.Script):
|
||||
if self.source is not None:
|
||||
apply_logging_patch(console_logging_level)
|
||||
if isinstance(p, StableDiffusionProcessingImg2Img) and swap_in_source:
|
||||
logger.info("Working: source face index %s, target face index %s", self.source_faces_index, self.faces_index)
|
||||
logger.status("Working: source face index %s, target face index %s", self.source_faces_index, self.faces_index)
|
||||
|
||||
for i in range(len(p.init_images)):
|
||||
if len(p.init_images) > 1:
|
||||
logger.info("Swap in %s", i)
|
||||
logger.status("Swap in %s", i)
|
||||
result, output, swapped = swap_face(
|
||||
self.source,
|
||||
p.init_images[i],
|
||||
@ -311,14 +311,14 @@ class FaceSwapScript(scripts.Script):
|
||||
# result_info: List = processed.infotexts
|
||||
|
||||
if self.swap_in_generated:
|
||||
logger.info("Working: source face index %s, target face index %s", self.source_faces_index, self.faces_index)
|
||||
logger.status("Working: source face index %s, target face index %s", self.source_faces_index, self.faces_index)
|
||||
if self.source is not None:
|
||||
for i,(img,info) in enumerate(zip(orig_images, orig_infotexts)):
|
||||
if check_process_halt():
|
||||
postprocess_run = False
|
||||
break
|
||||
if len(orig_images) > 1:
|
||||
logger.info("Swap in %s", i)
|
||||
logger.status("Swap in %s", i)
|
||||
result, output, swapped = swap_face(
|
||||
self.source,
|
||||
img,
|
||||
@ -371,7 +371,7 @@ class FaceSwapScript(scripts.Script):
|
||||
return
|
||||
|
||||
if self.source is not None:
|
||||
logger.info("Working: source face index %s, target face index %s", self.source_faces_index, self.faces_index)
|
||||
logger.status("Working: source face index %s, target face index %s", self.source_faces_index, self.faces_index)
|
||||
image: Image.Image = script_pp.image
|
||||
result, output, swapped = swap_face(
|
||||
self.source,
|
||||
|
||||
@ -3,6 +3,7 @@ from collections import Counter
|
||||
from PIL import Image
|
||||
from math import isqrt, ceil
|
||||
from typing import List
|
||||
import logging
|
||||
|
||||
from modules.images import FilenameGenerator, get_next_sequence_number
|
||||
from modules import shared, script_callbacks
|
||||
@ -100,3 +101,19 @@ def get_image_path(image, path, basename, seed=None, prompt=None, extension='png
|
||||
fullfn = params.filename
|
||||
|
||||
return fullfn
|
||||
|
||||
def addLoggingLevel(levelName, levelNum, methodName=None):
|
||||
if not methodName:
|
||||
methodName = levelName.lower()
|
||||
|
||||
def logForLevel(self, message, *args, **kwargs):
|
||||
if self.isEnabledFor(levelNum):
|
||||
self._log(levelNum, message, args, **kwargs)
|
||||
|
||||
def logToRoot(message, *args, **kwargs):
|
||||
logging.log(levelNum, message, *args, **kwargs)
|
||||
|
||||
logging.addLevelName(levelNum, levelName)
|
||||
setattr(logging, levelName, levelNum)
|
||||
setattr(logging.getLoggerClass(), methodName, logForLevel)
|
||||
setattr(logging, methodName, logToRoot)
|
||||
|
||||
@ -4,6 +4,7 @@ import sys
|
||||
|
||||
from modules import shared
|
||||
from scripts.reactor_globals import IS_RUN
|
||||
from scripts.reactor_helpers import addLoggingLevel
|
||||
|
||||
|
||||
class ColoredFormatter(logging.Formatter):
|
||||
@ -29,8 +30,8 @@ class ColoredFormatter(logging.Formatter):
|
||||
logger = logging.getLogger("ReActor")
|
||||
logger.propagate = False
|
||||
|
||||
# Custom Level name
|
||||
logging.addLevelName(logging.INFO, "STATUS")
|
||||
# Add Custom Level
|
||||
addLoggingLevel("STATUS", logging.INFO - 5)
|
||||
|
||||
# Add handler if we don't have one.
|
||||
if not logger.handlers:
|
||||
@ -41,8 +42,8 @@ if not logger.handlers:
|
||||
logger.addHandler(handler)
|
||||
|
||||
# Configure logger
|
||||
loglevel_string = getattr(shared.cmd_opts, "reactor_loglevel", "INFO")
|
||||
loglevel = getattr(logging, loglevel_string.upper(), "info")
|
||||
loglevel_string = getattr(shared.cmd_opts, "reactor_loglevel", "STATUS")
|
||||
loglevel = getattr(logging, loglevel_string.upper(), "status")
|
||||
logger.setLevel(loglevel)
|
||||
|
||||
def set_Run(value):
|
||||
|
||||
@ -58,12 +58,12 @@ def check_process_halt(msgforced: bool = False):
|
||||
global MESSAGED_STOPPED, MESSAGED_SKIPPED
|
||||
if state.interrupted:
|
||||
if not MESSAGED_STOPPED or msgforced:
|
||||
logger.info("Stopped by User")
|
||||
logger.status("Stopped by User")
|
||||
MESSAGED_STOPPED = True
|
||||
return True
|
||||
if state.skipped:
|
||||
if not MESSAGED_SKIPPED or msgforced:
|
||||
logger.info("Skipped by User")
|
||||
logger.status("Skipped by User")
|
||||
MESSAGED_SKIPPED = True
|
||||
return True
|
||||
return False
|
||||
@ -102,7 +102,7 @@ def restore_face(image: Image, enhancement_options: EnhancementOptions):
|
||||
|
||||
if enhancement_options.face_restorer is not None:
|
||||
original_image = result_image.copy()
|
||||
logger.info("Restoring the face with %s", enhancement_options.face_restorer.name())
|
||||
logger.status("Restoring the face with %s", enhancement_options.face_restorer.name())
|
||||
numpy_image = np.array(result_image)
|
||||
if enhancement_options.face_restorer.name() == "CodeFormer":
|
||||
numpy_image = codeformer_model.codeformer.restore(
|
||||
@ -125,7 +125,7 @@ def upscale_image(image: Image, enhancement_options: EnhancementOptions):
|
||||
|
||||
if enhancement_options.upscaler is not None and enhancement_options.upscaler.name != "None":
|
||||
original_image = result_image.copy()
|
||||
logger.info(
|
||||
logger.status(
|
||||
"Upscaling with %s scale = %s",
|
||||
enhancement_options.upscaler.name,
|
||||
enhancement_options.scale,
|
||||
@ -181,15 +181,15 @@ def get_face_gender(
|
||||
face_gender = gender_detected
|
||||
if face_gender == "None":
|
||||
return None, 0
|
||||
logger.info("%s Face %s: Detected Gender -%s-", operated, face_index, face_gender)
|
||||
logger.status("%s Face %s: Detected Gender -%s-", operated, face_index, face_gender)
|
||||
if (gender_condition == 1 and face_gender == "F") or (gender_condition == 2 and face_gender == "M"):
|
||||
logger.info("OK - Detected Gender matches Condition")
|
||||
logger.status("OK - Detected Gender matches Condition")
|
||||
try:
|
||||
return sorted(face, key=lambda x: x.bbox[0])[face_index], 0
|
||||
except IndexError:
|
||||
return None, 0
|
||||
else:
|
||||
logger.info("WRONG - Detected Gender doesn't match Condition")
|
||||
logger.status("WRONG - Detected Gender doesn't match Condition")
|
||||
return sorted(face, key=lambda x: x.bbox[0])[face_index], 1
|
||||
|
||||
def get_face_age(face, face_index):
|
||||
@ -210,7 +210,7 @@ def get_face_age(face, face_index):
|
||||
# return get_face_single(img_data, face, face_index=face_index, det_size=det_size_half, gender_source=gender_source, gender_target=gender_target)
|
||||
|
||||
def half_det_size(det_size):
|
||||
logger.info("Trying to halve 'det_size' parameter")
|
||||
logger.status("Trying to halve 'det_size' parameter")
|
||||
return (det_size[0] // 2, det_size[1] // 2)
|
||||
|
||||
def analyze_faces(img_data: np.ndarray, det_size=(640, 640)):
|
||||
@ -299,24 +299,24 @@ def swap_face(
|
||||
output_info: str = ""
|
||||
swapped = 0
|
||||
|
||||
logger.info("Analyzing Source Image...")
|
||||
logger.status("Analyzing Source Image...")
|
||||
source_faces = analyze_faces(source_img)
|
||||
|
||||
if source_faces is not None:
|
||||
|
||||
logger.info("Analyzing Target Image...")
|
||||
logger.status("Analyzing Target Image...")
|
||||
target_faces = analyze_faces(target_img)
|
||||
|
||||
logger.info("Detecting Source Face, Index = %s", source_faces_index[0])
|
||||
logger.status("Detecting Source Face, Index = %s", source_faces_index[0])
|
||||
source_face, wrong_gender, source_age, source_gender = get_face_single(source_img, source_faces, face_index=source_faces_index[0], gender_source=gender_source)
|
||||
if source_age != "None" or source_gender != "None":
|
||||
logger.info("Detected: -%s- y.o. %s", source_age, source_gender)
|
||||
logger.status("Detected: -%s- y.o. %s", source_age, source_gender)
|
||||
|
||||
output_info = f"SourceFaceIndex={source_faces_index[0]};Age={source_age};Gender={source_gender}\n"
|
||||
output.append(output_info)
|
||||
|
||||
if len(source_faces_index) != 0 and len(source_faces_index) != 1 and len(source_faces_index) != len(faces_index):
|
||||
logger.info("Source Faces must have no entries (default=0), one entry, or same number of entries as target faces.")
|
||||
logger.status("Source Faces must have no entries (default=0), one entry, or same number of entries as target faces.")
|
||||
elif source_face is not None:
|
||||
|
||||
result = target_img
|
||||
@ -328,10 +328,10 @@ def swap_face(
|
||||
if check_process_halt():
|
||||
return result_image, [], 0
|
||||
if len(source_faces_index) > 1 and source_face_idx > 0:
|
||||
logger.info("Detecting Source Face, Index = %s", source_faces_index[source_face_idx])
|
||||
logger.status("Detecting Source Face, Index = %s", source_faces_index[source_face_idx])
|
||||
source_face, wrong_gender, source_age, source_gender = get_face_single(source_img, source_faces, face_index=source_faces_index[source_face_idx], gender_source=gender_source)
|
||||
if source_age != "None" or source_gender != "None":
|
||||
logger.info("Detected: -%s- y.o. %s", source_age, source_gender)
|
||||
logger.status("Detected: -%s- y.o. %s", source_age, source_gender)
|
||||
|
||||
output_info = f"SourceFaceIndex={source_faces_index[source_face_idx]};Age={source_age};Gender={source_gender}\n"
|
||||
output.append(output_info)
|
||||
@ -339,16 +339,16 @@ def swap_face(
|
||||
source_face_idx += 1
|
||||
|
||||
if source_face is not None and wrong_gender == 0:
|
||||
logger.info("Detecting Target Face, Index = %s", face_num)
|
||||
logger.status("Detecting Target Face, Index = %s", face_num)
|
||||
target_face, wrong_gender, target_age, target_gender = get_face_single(target_img, target_faces, face_index=face_num, gender_target=gender_target)
|
||||
if target_age != "None" or target_gender != "None":
|
||||
logger.info("Detected: -%s- y.o. %s", target_age, target_gender)
|
||||
logger.status("Detected: -%s- y.o. %s", target_age, target_gender)
|
||||
|
||||
output_info = f"TargetFaceIndex={face_num};Age={target_age};Gender={target_gender}\n"
|
||||
output.append(output_info)
|
||||
|
||||
if target_face is not None and wrong_gender == 0:
|
||||
logger.info("Swapping Source into Target")
|
||||
logger.status("Swapping Source into Target")
|
||||
result = face_swapper.get(result, target_face, source_face)
|
||||
swapped += 1
|
||||
|
||||
@ -364,7 +364,7 @@ def swap_face(
|
||||
return result_image, output, swapped
|
||||
|
||||
else:
|
||||
logger.info(f"No target face found for {face_num}")
|
||||
logger.status(f"No target face found for {face_num}")
|
||||
|
||||
elif wrong_gender == 1:
|
||||
wrong_gender = 0
|
||||
@ -378,7 +378,7 @@ def swap_face(
|
||||
return result_image, output, swapped
|
||||
|
||||
else:
|
||||
logger.info(f"No source face found for face number {source_face_idx}.")
|
||||
logger.status(f"No source face found for face number {source_face_idx}.")
|
||||
|
||||
result_image = Image.fromarray(cv2.cvtColor(result, cv2.COLOR_BGR2RGB))
|
||||
|
||||
@ -386,8 +386,8 @@ def swap_face(
|
||||
result_image = enhance_image(result_image, enhancement_options)
|
||||
|
||||
else:
|
||||
logger.info("No source face(s) in the provided Index")
|
||||
logger.status("No source face(s) in the provided Index")
|
||||
else:
|
||||
logger.info("No source face(s) found")
|
||||
logger.status("No source face(s) found")
|
||||
|
||||
return result_image, output, swapped
|
||||
|
||||
@ -6,5 +6,5 @@ from scripts.reactor_logger import logger, get_Run, set_Run
|
||||
is_run = get_Run()
|
||||
|
||||
if not is_run:
|
||||
logger.info(f"Running {version_flag}")
|
||||
logger.status(f"Running {version_flag}")
|
||||
set_Run(True)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user