mirror of
https://github.com/hacksider/Deep-Live-Cam.git
synced 2025-12-06 00:20:02 +01:00
Compare commits
15 Commits
ac845d927c
...
8e36bc34c8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e36bc34c8 | ||
|
|
2411f1e9b1 | ||
|
|
96224efe07 | ||
|
|
8e05142cda | ||
|
|
a007db2ffa | ||
|
|
475740b22b | ||
|
|
600ce34c8d | ||
|
|
865ab3ca02 | ||
|
|
178578b034 | ||
|
|
b53132f3a4 | ||
|
|
00da11b491 | ||
|
|
0999c0447e | ||
|
|
9c42993d0c | ||
|
|
ea73f6b890 | ||
|
|
2c1c567a31 |
26
.github/ISSUE_TEMPLATE/bug_report.md
vendored
26
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
|
@ -1,26 +0,0 @@
|
|||
***[Remove this]The issue would be closed without notice and be considered spam if the template is not followed.***
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Error Message**
|
||||
|
||||
`<The error message in terminal>`
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. Windows]
|
||||
- Version [e.g. 22]
|
||||
- GPU
|
||||
- CPU
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
||||
**Confirmation (Mandatory)**
|
||||
- [ ] I have followed the template
|
||||
- [ ] This is not a query about how to increase performance
|
||||
- [ ] I have checked the issues page, and this is not a duplicate
|
||||
|
||||
70
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
70
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
# @format
|
||||
|
||||
name: Bug Report
|
||||
description: File a bug report to help us improve
|
||||
title: "[Bug]: "
|
||||
labels: ["bug", "triage"]
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report!
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
label: What happened?
|
||||
description: Also tell us, what did you expect to happen?
|
||||
placeholder: Tell us what you see!
|
||||
value: "A bug happened!"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: steps-to-reproduce
|
||||
attributes:
|
||||
label: Steps to Reproduce
|
||||
description: Please provide detailed steps to reproduce the behavior.
|
||||
placeholder: |
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: What operating system are you using?
|
||||
options:
|
||||
- Windows
|
||||
- macOS
|
||||
- Linux
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: gpu-backend
|
||||
attributes:
|
||||
label: GPU Backend
|
||||
description: Which GPU backend were you using (if applicable)?
|
||||
options:
|
||||
- CUDA (NVIDIA)
|
||||
- DirectML (AMD/Intel/NVIDIA)
|
||||
- CPU Only
|
||||
- Not Applicable
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant log output
|
||||
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||
render: shell
|
||||
- type: checkboxes
|
||||
id: terms
|
||||
attributes:
|
||||
label: Code of Conduct
|
||||
description: By submitting this issue, you agree to follow our [Collaboration Guidelines](CONTRIBUTING.md)
|
||||
options:
|
||||
- label: I agree to follow this project's Collaboration Guidelines
|
||||
required: true
|
||||
|
|
@ -30,7 +30,7 @@ By using this software, you agree to these terms and commit to using it in a man
|
|||
|
||||
Users are expected to use this software responsibly and legally. If using a real person's face, obtain their consent and clearly label any output as a deepfake when sharing online. We are not responsible for end-user actions.
|
||||
|
||||
## Exclusive v2.3 Quick Start - Pre-built (Windows/Mac Silicon)
|
||||
## Exclusive v2.3c Quick Start - Pre-built (Windows/Mac Silicon)
|
||||
|
||||
<a href="https://deeplivecam.net/index.php/quickstart"> <img src="media/Download.png" width="285" height="77" />
|
||||
|
||||
|
|
@ -354,11 +354,13 @@ Looking for a CLI mode? Using the -s/--source argument will make the run program
|
|||
- [*"Alright look look look, now look chat, we can do any face we want to look like chat"*](https://www.youtube.com/live/mFsCe7AIxq8?feature=shared&t=2686) - IShowSpeed
|
||||
- [*"They do a pretty good job matching poses, expression and even the lighting"*](https://www.youtube.com/watch?v=wnCghLjqv3s&t=551s) - TechLinked (LTT)
|
||||
- [*"Als Sean Connery an der Redaktionskonferenz teilnahm"*](https://www.golem.de/news/deepfakes-als-sean-connery-an-der-redaktionskonferenz-teilnahm-2408-188172.html) - Golem.de (German)
|
||||
- [*"What the F***! Why do I look like Vinny Jr? I look exactly like Vinny Jr!? No, this shit is crazy! Bro This is F*** Crazy! "*](https://youtu.be/JbUPRmXRUtE?t=3964) - IShowSpeed
|
||||
|
||||
|
||||
## Credits
|
||||
|
||||
- [ffmpeg](https://ffmpeg.org/): for making video-related operations easy
|
||||
- [Henry](https://github.com/henryruhs): One of the major contributor in this repo
|
||||
- [deepinsight](https://github.com/deepinsight): for their [insightface](https://github.com/deepinsight/insightface) project which provided a well-made library and models. Please be reminded that the [use of the model is for non-commercial research purposes only](https://github.com/deepinsight/insightface?tab=readme-ov-file#license).
|
||||
- [havok2-htwo](https://github.com/havok2-htwo): for sharing the code for webcam
|
||||
- [GosuDRM](https://github.com/GosuDRM): for the open version of roop
|
||||
|
|
|
|||
45
locales/id.json
Normal file
45
locales/id.json
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
"Source x Target Mapper": "Pemetaan Sumber x Target",
|
||||
"select a source image": "Pilih gambar sumber",
|
||||
"Preview": "Pratinjau",
|
||||
"select a target image or video": "Pilih gambar atau video target",
|
||||
"save image output file": "Simpan file keluaran gambar",
|
||||
"save video output file": "Simpan file keluaran video",
|
||||
"select a target image": "Pilih gambar target",
|
||||
"source": "Sumber",
|
||||
"Select a target": "Pilih target",
|
||||
"Select a face": "Pilih wajah",
|
||||
"Keep audio": "Pertahankan audio",
|
||||
"Face Enhancer": "Peningkat wajah",
|
||||
"Many faces": "Banyak wajah",
|
||||
"Show FPS": "Tampilkan FPS",
|
||||
"Keep fps": "Pertahankan FPS",
|
||||
"Keep frames": "Pertahankan frame",
|
||||
"Fix Blueish Cam": "Perbaiki kamera kebiruan",
|
||||
"Mouth Mask": "Masker mulut",
|
||||
"Show Mouth Mask Box": "Tampilkan kotak masker mulut",
|
||||
"Start": "Mulai",
|
||||
"Live": "Langsung",
|
||||
"Destroy": "Hentikan",
|
||||
"Map faces": "Petakan wajah",
|
||||
"Processing...": "Sedang memproses...",
|
||||
"Processing succeed!": "Pemrosesan berhasil!",
|
||||
"Processing ignored!": "Pemrosesan diabaikan!",
|
||||
"Failed to start camera": "Gagal memulai kamera",
|
||||
"Please complete pop-up or close it.": "Harap selesaikan atau tutup pop-up.",
|
||||
"Getting unique faces": "Mengambil wajah unik",
|
||||
"Please select a source image first": "Silakan pilih gambar sumber terlebih dahulu",
|
||||
"No faces found in target": "Tidak ada wajah ditemukan pada target",
|
||||
"Add": "Tambah",
|
||||
"Clear": "Bersihkan",
|
||||
"Submit": "Kirim",
|
||||
"Select source image": "Pilih gambar sumber",
|
||||
"Select target image": "Pilih gambar target",
|
||||
"Please provide mapping!": "Harap tentukan pemetaan!",
|
||||
"At least 1 source with target is required!": "Minimal 1 sumber dengan target diperlukan!",
|
||||
"Face could not be detected in last upload!": "Wajah tidak dapat terdeteksi pada unggahan terakhir!",
|
||||
"Select Camera:": "Pilih Kamera:",
|
||||
"All mappings cleared!": "Semua pemetaan telah dibersihkan!",
|
||||
"Mappings successfully submitted!": "Pemetaan berhasil dikirim!",
|
||||
"Source x Target Mapper is already open.": "Pemetaan Sumber x Target sudah terbuka."
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@ file_types = [
|
|||
]
|
||||
|
||||
# Face Mapping Data
|
||||
souce_target_map: List[Dict[str, Any]] = [] # Stores detailed map for image/video processing
|
||||
source_target_map: List[Dict[str, Any]] = [] # Stores detailed map for image/video processing
|
||||
simple_map: Dict[str, Any] = {} # Stores simplified map (embeddings/faces) for live/simple mode
|
||||
|
||||
# Paths
|
||||
|
|
@ -26,7 +26,7 @@ keep_fps: bool = True
|
|||
keep_audio: bool = True
|
||||
keep_frames: bool = False
|
||||
many_faces: bool = False # Process all detected faces with default source
|
||||
map_faces: bool = False # Use souce_target_map or simple_map for specific swaps
|
||||
map_faces: bool = False # Use source_target_map or simple_map for specific swaps
|
||||
color_correction: bool = False # Enable color correction (implementation specific)
|
||||
nsfw_filter: bool = False
|
||||
|
||||
|
|
@ -68,4 +68,4 @@ enable_interpolation: bool = True # Toggle temporal smoothing
|
|||
interpolation_weight: float = 0 # Blend weight for current frame (0.0-1.0). Lower=smoother.
|
||||
# --- END: Added for Frame Interpolation ---
|
||||
|
||||
# --- END OF FILE globals.py ---
|
||||
# --- END OF FILE globals.py ---
|
||||
|
|
|
|||
|
|
@ -341,7 +341,7 @@ def process_frame_v2(temp_frame: Frame, temp_frame_path: str = "") -> Frame:
|
|||
source_target_pairs = []
|
||||
|
||||
# Ensure maps exist before accessing them
|
||||
souce_target_map = getattr(modules.globals, "souce_target_map", None)
|
||||
source_target_map = getattr(modules.globals, "source_target_map", None)
|
||||
simple_map = getattr(modules.globals, "simple_map", None)
|
||||
|
||||
# Check if target is a file path (image or video) or live stream
|
||||
|
|
@ -349,11 +349,11 @@ def process_frame_v2(temp_frame: Frame, temp_frame_path: str = "") -> Frame:
|
|||
|
||||
if is_file_target:
|
||||
# Processing specific image or video file with pre-analyzed maps
|
||||
if souce_target_map:
|
||||
if source_target_map:
|
||||
if modules.globals.many_faces:
|
||||
source_face = default_source_face() # Use default source for all targets
|
||||
if source_face:
|
||||
for map_data in souce_target_map:
|
||||
for map_data in source_target_map:
|
||||
if is_image(modules.globals.target_path):
|
||||
target_info = map_data.get("target", {})
|
||||
if target_info: # Check if target info exists
|
||||
|
|
@ -371,7 +371,7 @@ def process_frame_v2(temp_frame: Frame, temp_frame_path: str = "") -> Frame:
|
|||
for target_face in faces_in_frame:
|
||||
source_target_pairs.append((source_face, target_face))
|
||||
else: # Single face or specific mapping
|
||||
for map_data in souce_target_map:
|
||||
for map_data in source_target_map:
|
||||
source_info = map_data.get("source", {})
|
||||
if not source_info: continue # Skip if no source info
|
||||
source_face = source_info.get("face")
|
||||
|
|
|
|||
|
|
@ -465,7 +465,7 @@ def analyze_target(start: Callable[[], None], root: ctk.CTk):
|
|||
return
|
||||
|
||||
if modules.globals.map_faces:
|
||||
modules.globals.souce_target_map = []
|
||||
modules.globals.source_target_map = []
|
||||
|
||||
if is_image(modules.globals.target_path):
|
||||
update_status("Getting unique faces")
|
||||
|
|
@ -474,8 +474,8 @@ def analyze_target(start: Callable[[], None], root: ctk.CTk):
|
|||
update_status("Getting unique faces")
|
||||
get_unique_faces_from_target_video()
|
||||
|
||||
if len(modules.globals.souce_target_map) > 0:
|
||||
create_source_target_popup(start, root, modules.globals.souce_target_map)
|
||||
if len(modules.globals.source_target_map) > 0:
|
||||
create_source_target_popup(start, root, modules.globals.source_target_map)
|
||||
else:
|
||||
update_status("No faces found in target")
|
||||
else:
|
||||
|
|
@ -855,9 +855,9 @@ def webcam_preview(root: ctk.CTk, camera_index: int):
|
|||
return
|
||||
create_webcam_preview(camera_index)
|
||||
else:
|
||||
modules.globals.souce_target_map = []
|
||||
modules.globals.source_target_map = []
|
||||
create_source_target_popup_for_webcam(
|
||||
root, modules.globals.souce_target_map, camera_index
|
||||
root, modules.globals.source_target_map, camera_index
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user