woctezuma/stylegan2-projecting-images

question about projection

fivoskal opened this issue · 5 comments

How do I manipulate the seed of the initial face (and change it) used in projections?

If you have only 1 initial face, you need to have latent directions for different expressions in order to perform:

  • expression transfer.

If you have at least 2 initial faces, you could perform:

  • morphing,
  • style transfer.

To edit latent vectors of projected images, run stylegan2_editing_latent_vectors.ipynb Open In Colab

You can also check expression transfer done with encoder4editing Open In Colab or other methods.

Thanks for the answer but sorry for not being clear enough. I am using your script project_images.py but can't find my way around changing the initial face used for projections. How can I do this?

This script is only used to project the initial face, i.e. to find the latent vector which would encode the face.

To change the face, you need to edit the latent vector, which I do in some of the cells of the notebook linked above.

This is also done a bit by encoder4editing linked above, which is a nice project which did not exist when I created this repository.

so the initial face (not the one I input) is created by a random seed. where can I edit this noise vector in the project_images.py script?

What you call the "initial face" must be the first face that you see during the projection. This is actually the "average" face.

It is initialized here in the official code by Nvidia:
https://github.com/NVlabs/stylegan2/blob/81ae61d7753c6a7b5a38c29aa81aed15adb19c2f/projector.py#L67