diff --git a/modules/ui.py b/modules/ui.py
index 04557ae..0914c0c 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -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: