mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-08-20 13:33:24 -07:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
a60e57eae8
3 changed files with 39 additions and 29 deletions
62
README.md
62
README.md
|
@ -29,17 +29,23 @@ More than 95% of deepfake videos are created with DeepFaceLab.
|
||||||
|
|
||||||
DeepFaceLab is used by such popular youtube channels as
|
DeepFaceLab is used by such popular youtube channels as
|
||||||
|
|
||||||
|
| [deeptomcruise](https://www.tiktok.com/@deeptomcruise)|
|
||||||
|
|---|
|
||||||
|
|
||||||
| [Ctrl Shift Face](https://www.youtube.com/channel/UCKpH0CKltc73e4wh0_pgL3g)| [VFXChris Ume](https://www.youtube.com/channel/UCGf4OlX_aTt8DlrgiH3jN3g/videos)| [Sham00k](https://www.youtube.com/channel/UCZXbWcv7fSZFTAZV4beckyw/videos)|
|
| [Ctrl Shift Face](https://www.youtube.com/channel/UCKpH0CKltc73e4wh0_pgL3g)| [VFXChris Ume](https://www.youtube.com/channel/UCGf4OlX_aTt8DlrgiH3jN3g/videos)| [Sham00k](https://www.youtube.com/channel/UCZXbWcv7fSZFTAZV4beckyw/videos)|
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
|
|
||||||
| [Collider videos](https://www.youtube.com/watch?v=A91P2qtPT54&list=PLayt6616lBclvOprvrC8qKGCO-mAhPRux)| [iFake](https://www.youtube.com/channel/UCC0lK2Zo2BMXX-k1Ks0r7dg/videos)| [NextFace](https://www.youtube.com/channel/UCFh3gL0a8BS21g-DHvXZEeQ/videos)|
|
| [Collider videos](https://www.youtube.com/watch?v=A91P2qtPT54&list=PLayt6616lBclvOprvrC8qKGCO-mAhPRux)| [iFake](https://www.youtube.com/channel/UCC0lK2Zo2BMXX-k1Ks0r7dg/videos)| [NextFace](https://www.youtube.com/channel/UCFh3gL0a8BS21g-DHvXZEeQ/videos)|
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
|
|
||||||
| [Futuring Machine](https://www.youtube.com/channel/UCC5BbFxqLQgfnWPhprmQLVg)| [RepresentUS](https://www.youtube.com/channel/UCRzgK52MmetD9aG8pDOID3g)|
|
| [Futuring Machine](https://www.youtube.com/channel/UCC5BbFxqLQgfnWPhprmQLVg)| [RepresentUS](https://www.youtube.com/channel/UCRzgK52MmetD9aG8pDOID3g)| [Corridor Crew](https://www.youtube.com/c/corridorcrew/videos)|
|
||||||
|
|---|---|---|
|
||||||
|
|
||||||
|
| [DeepFaker](https://www.youtube.com/channel/UCkHecfDTcSazNZSKPEhtPVQ)| [DeepFakes in movie](https://www.youtube.com/c/DeepFakesinmovie/videos)|
|
||||||
|---|---|
|
|---|---|
|
||||||
|
|
||||||
| [DeepFakeCreator](https://www.youtube.com/channel/UCkNFhcYNLQ5hr6A6lZ56mKA)| [DeepFaker](https://www.youtube.com/channel/UCkHecfDTcSazNZSKPEhtPVQ)| [DeepFakes in movie](https://www.youtube.com/c/DeepFakesinmovie/videos)|
|
| [DeepFakeCreator](https://www.youtube.com/channel/UCkNFhcYNLQ5hr6A6lZ56mKA)| [Jarkan](https://www.youtube.com/user/Jarkancio/videos)|
|
||||||
|---|---|---|
|
|---|---|
|
||||||
|
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
|
||||||
|
@ -144,12 +150,6 @@ DeepFaceLab is used by such popular youtube channels as
|
||||||
(voice replacement is not included!)
|
(voice replacement is not included!)
|
||||||
(also requires a skill in video editors such as *Adobe After Effects* or *Davinci Resolve*)
|
(also requires a skill in video editors such as *Adobe After Effects* or *Davinci Resolve*)
|
||||||
|
|
||||||
|
|
||||||
<img src="doc/political_speech1.jpg" align="center">
|
|
||||||
|
|
||||||
 https://www.youtube.com/watch?v=rYKkQ3BOo_E
|
|
||||||
|
|
||||||
|
|
||||||
<img src="doc/political_speech2.jpg" align="center">
|
<img src="doc/political_speech2.jpg" align="center">
|
||||||
|
|
||||||
 https://www.youtube.com/watch?v=IvY-Abd2FfM
|
 https://www.youtube.com/watch?v=IvY-Abd2FfM
|
||||||
|
@ -269,27 +269,18 @@ Unfortunately, there is no "make everything ok" button in DeepFaceLab. You shoul
|
||||||
|
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
|
||||||
|
<tr><td align="right">
|
||||||
|
<a href="https://discord.gg/S2h7kPySQp">Discord</a>
|
||||||
|
</td><td align="center">Official discord channel. English / Russian.</td></tr>
|
||||||
|
|
||||||
<tr><td align="right">
|
<tr><td align="right">
|
||||||
<a href="https://discord.gg/S2h7kPySQp">Discord channel (English / Русский)</a>
|
<a href="https://t.me/joinchat/ElkhqlgJ0I5HhdJyFar80w">Telegram group</a>
|
||||||
|
</td><td align="center">Official telegram group. English / Russian. For anonymous communication. Don't forget to hide your phone number</td></tr>
|
||||||
|
|
||||||
|
<tr><td align="right">
|
||||||
|
<a href="https://mrdeepfakes.com/forums/forum-russian-community">Русский форум</a>
|
||||||
</td><td align="center"></td></tr>
|
</td><td align="center"></td></tr>
|
||||||
|
|
||||||
<tr><td align="right">
|
|
||||||
<a href="https://www.reddit.com/r/RUdeepfakes/new/">reddit r/RUdeepfakes/</a>
|
|
||||||
</td><td align="center">Постим русские дипфейки сюда !</td></tr>
|
|
||||||
|
|
||||||
<tr><td align="right">
|
|
||||||
<a href="https://mrdeepfakes.com/forums/forum-russian-community">Русское сообщество</a>
|
|
||||||
</td><td align="center"></td></tr>
|
|
||||||
|
|
||||||
<tr><td align="right">
|
|
||||||
<a href="https://t.me/joinchat/ElkhqlgJ0I5HhdJyFar80w">telegram (English / Русский)</a>
|
|
||||||
</td><td align="center">Don't forget to hide your phone number</td></tr>
|
|
||||||
|
|
||||||
<tr><td align="right">
|
|
||||||
<a href="https://t.me/joinchat/ElkhqkzB6uqyjCzoXwv3gg">telegram (English only)</a>
|
|
||||||
</td><td align="center">Don't forget to hide your phone number</td></tr>
|
|
||||||
|
|
||||||
<tr><td align="right">
|
<tr><td align="right">
|
||||||
<a href="https://mrdeepfakes.com/forums/">mrdeepfakes</a>
|
<a href="https://mrdeepfakes.com/forums/">mrdeepfakes</a>
|
||||||
</td><td align="center">the biggest NSFW English community</td></tr>
|
</td><td align="center">the biggest NSFW English community</td></tr>
|
||||||
|
@ -298,6 +289,10 @@ Unfortunately, there is no "make everything ok" button in DeepFaceLab. You shoul
|
||||||
<a href="https://www.reddit.com/r/DeepFakesSFW/new/">reddit r/DeepFakesSFW/</a>
|
<a href="https://www.reddit.com/r/DeepFakesSFW/new/">reddit r/DeepFakesSFW/</a>
|
||||||
</td><td align="center">Post your deepfakes there !</td></tr>
|
</td><td align="center">Post your deepfakes there !</td></tr>
|
||||||
|
|
||||||
|
<tr><td align="right">
|
||||||
|
<a href="https://www.reddit.com/r/RUdeepfakes/new/">reddit r/RUdeepfakes/</a>
|
||||||
|
</td><td align="center">Постим русские дипфейки сюда !</td></tr>
|
||||||
|
|
||||||
<tr><td align="right">
|
<tr><td align="right">
|
||||||
QQ 951138799
|
QQ 951138799
|
||||||
</td><td align="center">中文 Chinese QQ group for ML/AI experts</td></tr>
|
</td><td align="center">中文 Chinese QQ group for ML/AI experts</td></tr>
|
||||||
|
@ -392,10 +387,25 @@ Register github account and push "Star" button.
|
||||||
<img src="doc/meme3.jpg" align="center">
|
<img src="doc/meme3.jpg" align="center">
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
|
||||||
|
<tr><td align="center" width="50%">
|
||||||
|
|
||||||
|
## You don't need deepfake detector. You need to stop lying.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td><td align="center" width="10%">
|
||||||
|
|
||||||
|
<img src="https://i.imgur.com/z0e0xFB.jpg" align="center">
|
||||||
|
|
||||||
|
V.I. Lenin
|
||||||
|
</td></tr>
|
||||||
|
|
||||||
<tr><td colspan=2 align="center">
|
<tr><td colspan=2 align="center">
|
||||||
|
|
||||||
<sub>#deepfacelab #deepfakes #faceswap #face-swap #deep-learning #deeplearning #deep-neural-networks #deepface #deep-face-swap #fakeapp #fake-app #neural-networks #neural-nets #tensorflow #cuda #nvidia</sub>
|
<sub>#deepfacelab #deepfakes #faceswap #face-swap #deep-learning #deeplearning #deep-neural-networks #deepface #deep-face-swap #fakeapp #fake-app #neural-networks #neural-nets #tensorflow #cuda #nvidia</sub>
|
||||||
|
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
BIN
doc/tiktok_icon.png
Normal file
BIN
doc/tiktok_icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 268 B |
|
@ -142,7 +142,7 @@ def MergeMaskedFace (predictor_func, predictor_input_shape,
|
||||||
|
|
||||||
elif 'raw' in cfg.mode:
|
elif 'raw' in cfg.mode:
|
||||||
if cfg.mode == 'raw-rgb':
|
if cfg.mode == 'raw-rgb':
|
||||||
out_img = cv2.warpAffine( prd_face_bgr, face_output_mat, img_size, img_bgr.copy(), cv2.WARP_INVERSE_MAP | cv2.INTER_CUBIC, cv2.BORDER_TRANSPARENT )
|
out_img = cv2.warpAffine( prd_face_bgr, face_output_mat, img_size, img_bgr.copy(), cv2.WARP_INVERSE_MAP | cv2.INTER_CUBIC )
|
||||||
out_merging_mask_a = img_face_mask_a
|
out_merging_mask_a = img_face_mask_a
|
||||||
elif cfg.mode == 'raw-predict':
|
elif cfg.mode == 'raw-predict':
|
||||||
out_img = prd_face_bgr
|
out_img = prd_face_bgr
|
||||||
|
@ -214,7 +214,7 @@ def MergeMaskedFace (predictor_func, predictor_input_shape,
|
||||||
img_face_seamless_mask_a[img_face_seamless_mask_a <= i / 10.0] = 0.0
|
img_face_seamless_mask_a[img_face_seamless_mask_a <= i / 10.0] = 0.0
|
||||||
break
|
break
|
||||||
|
|
||||||
out_img = cv2.warpAffine( prd_face_bgr, face_output_mat, img_size, np.empty_like(img_bgr), cv2.WARP_INVERSE_MAP | cv2.INTER_CUBIC, cv2.BORDER_TRANSPARENT )
|
out_img = cv2.warpAffine( prd_face_bgr, face_output_mat, img_size, np.empty_like(img_bgr), cv2.WARP_INVERSE_MAP | cv2.INTER_CUBIC )
|
||||||
out_img = np.clip(out_img, 0.0, 1.0)
|
out_img = np.clip(out_img, 0.0, 1.0)
|
||||||
|
|
||||||
if 'seamless' in cfg.mode:
|
if 'seamless' in cfg.mode:
|
||||||
|
@ -297,7 +297,7 @@ def MergeMaskedFace (predictor_func, predictor_input_shape,
|
||||||
img_bgr_downscaled = cv2.resize (img_bgr, ( int(img_size[0]*p), int(img_size[1]*p ) ), interpolation=cv2.INTER_CUBIC)
|
img_bgr_downscaled = cv2.resize (img_bgr, ( int(img_size[0]*p), int(img_size[1]*p ) ), interpolation=cv2.INTER_CUBIC)
|
||||||
img_bgr = cv2.resize (img_bgr_downscaled, img_size, interpolation=cv2.INTER_CUBIC)
|
img_bgr = cv2.resize (img_bgr_downscaled, img_size, interpolation=cv2.INTER_CUBIC)
|
||||||
|
|
||||||
new_out = cv2.warpAffine( out_face_bgr, face_mat, img_size, np.empty_like(img_bgr), cv2.WARP_INVERSE_MAP | cv2.INTER_CUBIC, cv2.BORDER_TRANSPARENT )
|
new_out = cv2.warpAffine( out_face_bgr, face_mat, img_size, np.empty_like(img_bgr), cv2.WARP_INVERSE_MAP | cv2.INTER_CUBIC )
|
||||||
|
|
||||||
out_img = np.clip( img_bgr*(1-img_face_mask_a) + (new_out*img_face_mask_a) , 0, 1.0 )
|
out_img = np.clip( img_bgr*(1-img_face_mask_a) + (new_out*img_face_mask_a) , 0, 1.0 )
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue