0

我正在尝试使用 stylegan2 生成围绕所选种子图像来回反弹的视频。我已经有一个使用投影矢量执行此操作的脚本,但想切换到使用另一个脚本找到的专门选择的种子。我是编码新手,所以这可能很简单,但我只是不知道如何选择起始种子以传递到脚本的其余部分。目前,我所写的内容会产生一个 mp4,但只显示噪音。

import numpy as np
import dnnlib
import dnnlib.tflib as tflib

import projector
import pretrained_networks
from training import dataset
from training import misc
import dataset_tool
import PIL.Image
import math
import moviepy.editor


def main():
  tflib.init_tf()
  network_pkl = "/content/network.pkl"
  _G, _D, Gs = pretrained_networks.load_networks(network_pkl)

  Gs_kwargs = dnnlib.EasyDict()
  Gs_kwargs.output_transform = dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True)
  Gs_kwargs.randomize_noise = False
  Gs_kwargs.truncation_psi = .5
  trunc_psi=.5
  seed=10


  Z_SIZE = Gs.input_shape[1]
  z = np.random.RandomState(seed)
  latent1 = z.randn(1, *Gs.input_shape[1:])



  totFrames = 120
  step = 24
  latentList = []
  for i in range(5):
    latent2 = Gs.components.mapping.run(np.random.rand(1,Z_SIZE), None, truncation_psi=trunc_psi)
    latentList.append(latent2)

  curPos = 0
  curLatent = 0
  frame_List = []
  for i in range(totFrames):
    print(i)
    factor = curPos/(step)
    factor = math.cos(factor*(math.pi*2))*.5+3
    current_latent = latentList[curLatent]*(1-factor) + latent1*factor
    current_image = Gs.components.synthesis.run(current_latent, **Gs_kwargs)[0]
    frame_List.append(current_image)
    curPos = curPos+1
    if curPos == step:
      curPos = 0
      curLatent+=1
  mp4_file = "/content/forest_bounce2.mp4"
  mp4_codec = "libx264"
  mp4_bitrate = "3M"
  mp4_fps = step

  frames = moviepy.editor.ImageSequenceClip(frame_List, fps=mp4_fps)
  frames.write_videofile(mp4_file,fps=mp4_fps,codec=mp4_codec,bitrate=mp4_bitrate)

if __name__ == "__main__":
    main()
4

0 回答 0