remember/save switch states

pull/746/head
KRSHH 2024-10-14 20:32:17 +05:30
parent 72d4c9e9c4
commit 6649e2a5df
2 changed files with 110 additions and 12 deletions

View File

@ -16,24 +16,23 @@ source_path = None
target_path = None target_path = None
output_path = None output_path = None
frame_processors: List[str] = [] frame_processors: List[str] = []
keep_fps = None keep_fps = True # Initialize with default value
keep_audio = None keep_audio = True # Initialize with default value
keep_frames = None keep_frames = False # Initialize with default value
many_faces = None many_faces = False # Initialize with default value
map_faces = None map_faces = False # Initialize with default value
color_correction = None # New global variable for color correction toggle color_correction = False # Initialize with default value
nsfw_filter = None nsfw_filter = False # Initialize with default value
video_encoder = None video_encoder = None
video_quality = None video_quality = None
live_mirror = None live_mirror = False # Initialize with default value
live_resizable = None live_resizable = False # Initialize with default value
max_memory = None max_memory = None
execution_providers: List[str] = [] execution_providers: List[str] = []
execution_threads = None execution_threads = None
headless = None headless = None
log_level = "error" log_level = "error"
fp_ui: Dict[str, bool] = {} fp_ui: Dict[str, bool] = {"face_enhancer": False} # Initialize with default value
camera_input_combobox = None camera_input_combobox = None
webcam_preview_running = False webcam_preview_running = False
opacity = 100 show_fps = False # Initialize with default value
show_fps = False

View File

@ -7,6 +7,8 @@ from cv2_enumerate_cameras import enumerate_cameras
from PIL import Image, ImageOps from PIL import Image, ImageOps
import tkinterdnd2 as tkdnd import tkinterdnd2 as tkdnd
import time import time
import json
import modules.globals import modules.globals
import modules.metadata import modules.metadata
from modules.face_analyser import ( from modules.face_analyser import (
@ -200,6 +202,46 @@ class TargetLabel(DragDropLabel):
target_label.configure(text="") target_label.configure(text="")
def save_switch_states():
switch_states = {
"keep_fps": modules.globals.keep_fps,
"keep_audio": modules.globals.keep_audio,
"keep_frames": modules.globals.keep_frames,
"many_faces": modules.globals.many_faces,
"map_faces": modules.globals.map_faces,
"color_correction": modules.globals.color_correction,
"nsfw_filter": modules.globals.nsfw_filter, # Add this line
"live_mirror": modules.globals.live_mirror,
"live_resizable": modules.globals.live_resizable,
"fp_ui": modules.globals.fp_ui,
"show_fps": modules.globals.show_fps,
}
with open("switch_states.json", "w") as f:
json.dump(switch_states, f)
def load_switch_states():
try:
with open("switch_states.json", "r") as f:
switch_states = json.load(f)
modules.globals.keep_fps = switch_states.get("keep_fps", True)
modules.globals.keep_audio = switch_states.get("keep_audio", True)
modules.globals.keep_frames = switch_states.get("keep_frames", False)
modules.globals.many_faces = switch_states.get("many_faces", False)
modules.globals.map_faces = switch_states.get("map_faces", False)
modules.globals.color_correction = switch_states.get("color_correction", False)
modules.globals.nsfw_filter = switch_states.get(
"nsfw_filter", False
) # Add this line
modules.globals.live_mirror = switch_states.get("live_mirror", False)
modules.globals.live_resizable = switch_states.get("live_resizable", False)
modules.globals.fp_ui = switch_states.get("fp_ui", {"face_enhancer": False})
modules.globals.show_fps = switch_states.get("show_fps", False)
except FileNotFoundError:
# If the file doesn't exist, use default values
pass
def init(start: Callable[[], None], destroy: Callable[[], None]) -> tkdnd.TkinterDnD.Tk: def init(start: Callable[[], None], destroy: Callable[[], None]) -> tkdnd.TkinterDnD.Tk:
global ROOT, PREVIEW, donate_frame global ROOT, PREVIEW, donate_frame
@ -214,6 +256,8 @@ def create_root(
) -> tkdnd.TkinterDnD.Tk: ) -> tkdnd.TkinterDnD.Tk:
global source_label, target_label, status_label, donate_frame, show_fps_switch global source_label, target_label, status_label, donate_frame, show_fps_switch
load_switch_states()
ctk.set_appearance_mode("dark") ctk.set_appearance_mode("dark")
ctk.set_default_color_theme("blue") ctk.set_default_color_theme("blue")
@ -395,6 +439,61 @@ def create_root(
) )
show_fps_switch.pack(pady=5, anchor="w") show_fps_switch.pack(pady=5, anchor="w")
keep_fps_checkbox.configure(
command=lambda: (
setattr(modules.globals, "keep_fps", keep_fps_value.get()),
save_switch_states(),
)
)
keep_frames_switch.configure(
command=lambda: (
setattr(modules.globals, "keep_frames", keep_frames_value.get()),
save_switch_states(),
)
)
enhancer_switch.configure(
command=lambda: (
update_tumbler("face_enhancer", enhancer_value.get()),
save_switch_states(),
)
)
keep_audio_switch.configure(
command=lambda: (
setattr(modules.globals, "keep_audio", keep_audio_value.get()),
save_switch_states(),
)
)
many_faces_switch.configure(
command=lambda: (
setattr(modules.globals, "many_faces", many_faces_value.get()),
save_switch_states(),
)
)
color_correction_switch.configure(
command=lambda: (
setattr(modules.globals, "color_correction", color_correction_value.get()),
save_switch_states(),
)
)
# nsfw_switch.configure( # Uncomment if you're using the NSFW filter
# command=lambda: (
# setattr(modules.globals, "nsfw_filter", nsfw_value.get()),
# save_switch_states(),
# )
# )
map_faces_switch.configure(
command=lambda: (
setattr(modules.globals, "map_faces", map_faces.get()),
save_switch_states(),
)
)
show_fps_switch.configure(
command=lambda: (
setattr(modules.globals, "show_fps", show_fps_value.get()),
save_switch_states(),
)
)
button_frame = ctk.CTkFrame(main_frame, fg_color="#1a1a1a") button_frame = ctk.CTkFrame(main_frame, fg_color="#1a1a1a")
button_frame.grid(row=2, column=0, columnspan=3, padx=10, pady=10, sticky="nsew") button_frame.grid(row=2, column=0, columnspan=3, padx=10, pady=10, sticky="nsew")