原文链接: StyleGan 生成各种老婆 保存为视频
上一篇: StyleGan 使用 预训练模型 生成 老婆图像
下一篇: react todos 简单实现
视频
https://www.bilibili.com/video/av47390952/
代码,在线性空间做渐变
import pickle
import dnnlib
import dnnlib.tflib as tflib
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
batch_size = 16
size = 20
step = 45
model_path = r"D:\data\network-snapshot-008155.pkl"
video_path = './video/faces.mp4'
dnnlib.tflib.init_tf()
_G, _D, Gs = pickle.load(open(model_path, "rb"))
print(_G, _D, Gs)
fmt = dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True)
st = np.random.random((batch_size, Gs.input_shape[1]))
fourcc = cv.VideoWriter_fourcc(*"mp4v")
out_file = None
for _ in range(size):
ed = np.random.random((batch_size, Gs.input_shape[1]))
dx = (ed - st) / step
for i in range(1 + step):
z = st + i * dx
images = Gs.run(z, None, truncation_psi=0.7, randomize_noise=False, output_transform=fmt)
# print(images.shape)
rows = [
np.concatenate(i, axis=1)
for i in np.array_split(images, 4)
]
images_val = np.concatenate(rows, axis=0)
# print(images_val.shape)
# plt.imsave(f'./faces/{i}.jpg', images_val)
# plt.imshow(images_val)
# plt.show()
# 设置输出文件路径和大小
if not out_file:
out_file = cv.VideoWriter(video_path, fourcc, 30, images_val.shape[:2])
out_file.write(images_val[:, :, ::-1])
st = ed
print(f"{_} / {size}")