Compare commits
6 Commits
0e481609ea
...
6e618baf34
Author | SHA1 | Date |
---|---|---|
|
6e618baf34 | |
|
0edcaae713 | |
|
dff6cec2f9 | |
|
4d1d2c86af | |
|
e00c398825 | |
|
683481804c |
10
README.md
10
README.md
|
@ -45,10 +45,16 @@ Track and change faces on the fly.
|
|||
|
||||
## Quick Start (Windows / Nvidia)
|
||||
|
||||
[](https://hacksider.gumroad.com/l/vccdmm)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Download latest pre-built version with CUDA support](https://hacksider.gumroad.com/l/vccdmm) - No Manual Installation/Downloading required.
|
||||
|
||||
## Installation (Manual)
|
||||
Please be aware that the installation needs technical skills and is NOT for beginners. Please do NOT open platform and installation related issues on GitHub before discussing it on the discord server.
|
||||
**Please be aware that the installation needs technical skills and is NOT for beginners, consider downloading the prebuilt. Please do NOT open platform and installation related issues on GitHub before discussing it on the discord server.**
|
||||
### Basic Installation (CPU)
|
||||
|
||||
This is more likely to work on your computer but will be slower as it utilizes the CPU.
|
||||
|
@ -386,3 +392,5 @@ This is an open-source project developed in our free time. Updates may be delaye
|
|||
<a href="https://github.com/hacksider/Deep-Live-Cam/graphs/contributors" target="_blank">
|
||||
<img src="https://contrib.rocks/image?repo=hacksider/Deep-Live-Cam" />
|
||||
</a>
|
||||
|
||||

|
||||
|
|
BIN
docs/demo.gif
BIN
docs/demo.gif
Binary file not shown.
Before Width: | Height: | Size: 6.2 MiB |
Binary file not shown.
Before Width: | Height: | Size: 80 KiB |
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue