딥페이크
둘러보기로 가기
검색하러 가기
1 개요
범죄에도 악용될 수 있는... 위험한 기술. 간단하게 서비스 해주는 곳도 있다.(https://www.youtube.com/watch?v=qaB0YqSfasM)
샌프란샘박사님의 딥페이크 영상 만들기에 공개된 코드이다.
https://github.com/iperov/DeepFaceLab도 참고해보자.
이곳저곳 찾아본 결과... 코드 실행 한 번으로 간단하게 결과물이 나오는 것은 없었다;;; 다 번거로운 중간 클릭과정들을 거쳐야 했다..ㅜ
1.1 결론
어플을 사용하는 게 가장 간편한 방법. 다양한 코드들로 진행한다 해서 간단하게 아주 양질의 결과물을 얻을 수 있는 것은 아니다.
2 사전준비
과정 | 설명 | 방법 |
---|---|---|
필요 패키지 설치 | 프로젝트 디렉터리에서 진행. | pip install scikit-video
git clone https://github.com/drminix/first-order-model |
3 사용
과정 | 설명 | 방법 |
---|---|---|
입력영상과 사진 불러오기 | 영상과 그 영상에 덧입힐 사진을 지정한다. | import imageio
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from skimage.transform import resize
from IPython.display import HTML
import warnings
import os
import skvideo.io
warnings.filterwarnings("ignore")
#입력사진
source_image = imageio.imread('/이미지 경로.jpg')
#입력영상
driving_video = skvideo.io.vread('/영상 경로.mp4')
#Resize image and video to 256x256
source_image = resize(source_image, (256, 256))[..., :3]
driving_video = [resize(frame, (256, 256))[..., :3] for frame in driving_video]
def display(source, driving, generated=None):
fig = plt.figure(figsize=(8 + 4 * (generated is not None), 6))
ims = []
for i in range(len(driving)):
cols = [source]
cols.append(driving[i])
if generated is not None:
cols.append(generated[i])
im = plt.imshow(np.concatenate(cols, axis=1), animated=True)
plt.axis('off')
ims.append([im])
ani = animation.ArtistAnimation(fig, ims, interval=50, repeat_delay=1000)
plt.close()
return ani
HTML(display(source_image, driving_video).to_html5_video())
|
영상만들기 | from demo import load_checkpoints
import os
generator, kp_detector = load_checkpoints(config_path='config/vox-256.yaml',
checkpoint_path=os.path.join(target_folder,'vox-cpk.pth.tar'))
from demo import make_animation
from skimage import img_as_ubyte
predictions = make_animation(source_image, driving_video, generator, kp_detector, relative=True)
#save resulting video
imageio.mimsave('../생성할파일경로.mp4', [img_as_ubyte(frame) for frame in predictions])
#video can be downloaded from /content folder
HTML(display(source_image, driving_video, predictions).to_html5_video())
|