Compare commits

...

7 Commits

Author SHA1 Message Date
david-biro f789c167e4
Merge b18a6095c1 into 0edcaae713 2024-09-28 01:21:36 -07:00
KRSHH 0edcaae713
Merge pull request #650 from KRSHH/main
Preview video Frame by Frame using left and right arrow keys
2024-09-28 12:37:40 +05:30
KRSHH dff6cec2f9
Comment Indention fix 2024-09-27 20:59:48 +05:30
KRSHH 4d1d2c86af
Preview video Frame by Frame using left and right arrow keys 2024-09-27 20:40:32 +05:30
KRSHH e00c398825
Merge branch 'hacksider:main' into main 2024-09-27 20:20:22 +05:30
KRSHH 683481804c
Delete outdated docs directory 2024-09-26 11:03:46 +05:30
David Biro b18a6095c1 added WSL display settings to README 2024-09-17 18:28:49 +02:00
4 changed files with 31 additions and 1 deletions

View File

@ -90,6 +90,8 @@ brew install python-tk@3.10
**Run:** If you don't have a GPU, you can run Deep-Live-Cam using `python run.py`. Note that initial execution will download models (~300MB).
> Note: If you have WSL1 then you need to install an X server on Windows (e.g Xming), while if you have WSL2 you no need to do that. The link [here](https://askubuntu.com/a/1418950) describes the options to configure DISPLAY variable depending on your environment.
### GPU Acceleration (Optional)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

View File

@ -5,7 +5,7 @@ from typing import Callable, Tuple
import cv2
from PIL import Image, ImageOps
import tkinterdnd2 as tkdnd
import time
import modules.globals
import modules.metadata
from modules.face_analyser import (
@ -682,6 +682,29 @@ def create_preview(parent: ctk.CTkToplevel) -> ctk.CTkToplevel:
)
preview_slider.pack(fill="x", padx=20, pady=10)
last_update_time = 0
debounce_delay = 0.1 # Adjust this delay as needed (in seconds)
def on_key_press(event):
nonlocal last_update_time
current_time = time.time()
if current_time - last_update_time > debounce_delay:
current_frame = int(preview_slider.get())
if event.keysym == "Left":
new_frame = max(0, current_frame - 1)
elif event.keysym == "Right":
new_frame = min(int(preview_slider.cget("to")), current_frame + 1)
else:
return # Ignore other key presses
preview_slider.set(new_frame)
update_preview(new_frame)
last_update_time = current_time
preview.bind("<Left>", on_key_press)
preview.bind("<Right>", on_key_press)
return preview
@ -879,6 +902,11 @@ def init_preview() -> None:
preview_slider.configure(to=video_frame_total)
preview_slider.pack(fill="x")
preview_slider.set(0)
# Disable slider if it's an image
if is_image(modules.globals.target_path):
preview_slider.configure(state="disabled")
else:
preview_slider.configure(state="normal")
def update_preview(frame_number: int = 0) -> None: