Giter Club home page Giter Club logo

davidbau / rewriting Goto Github PK

View Code? Open in Web Editor NEW
536.0 20.0 75.0 102.7 MB

Rewriting a Deep Generative Model, ECCV 2020 (oral). Interactive tool to directly edit the rules of a GAN to synthesize scenes with objects added, removed, or altered. Change StyleGANv2 to make extravagant eyebrows, or horses wearing hats.

Home Page: https://rewriting.csail.mit.edu/

License: MIT License

Python 66.23% Shell 0.61% C 0.51% C++ 1.42% Cuda 5.31% Jupyter Notebook 25.66% HTML 0.25%
vision machine-learning graphics hci gans deep-learning research

rewriting's People

Contributors

davidbau avatar junyanz avatar ssnl avatar stevliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rewriting's Issues

Unable to run custom model on Colab

When attempting to load a custom mode, the following errors are raised:

Error(s) in loading state_dict for SeqStyleGAN2:
	Missing key(s) in state_dict: "noises.noise_0", "noises.noise_1", "noises.noise_2", "noises.noise_3", "noises.noise_4", "noises.noise_5", "noises.noise_6", "noises.noise_7", "noises.noise_8", "noises.noise_9", "noises.noise_10", "noises.noise_11", "noises.noise_12", "noises.noise_13", "noises.noise_14". 

I've tried setting the strict argument of load_state_dict to False but to no avail. After commenting out the noise layers in SeqStyleGAN2, everything runs until:
gw = ganrewrite.SeqStyleGanRewriter(g, zds, layernum, cachedir='experiments') which then complains that the selected layer (e.g. layer 8) is not a Sequential layer. Any ideas?

[Question] Question about labwidget

Hello, first of all, great work but even better way of using Colab for the demo. I am having a lot of fun changing things into trees and horse mouths.

I could not find a license for labwidget or this repo in general on both Github and the linked MIT website. Is it possible for me to use labwidget for some of my notebooks with proper citations/credit? I've wanted to host stylegan models on the web but Heroku doesn't provide GPUs and the ones that do cost money while Colab is free.

How to rewrite on other dataset

sorry to disturb you. As a beginner, I am very interested in your work, and I would like to ask how to rewrite on other dataset

how to select a proper location?

Hi Dr. Bau,

Fistly thanks for all you talk and great work. Perhaps here is not a right place, but I have this question and wanted to ask at one of your workshop, but never get a chance due to time. I greatly apprecite if you could please give me a hint before closing this issue.
My question:

I understand it what it means when you say: to activate and deactivate neurons directly. But cannot figure it out how turning on neurons in a specific location?? I mean, what's the method to select a region?? For example, how to select wall in a generated image?

This is something that is vague when reading your related papers, and seeing talk. Maybe this part is quite easy that nobody metion how to do so.

Thank you very much for your time.
Mike

Rendering in isolation from neighbouring features

Hi, I found the idea of seeing weights as associative memory very interesting. Could you please explain in some more detail what do you mean by rendering feature patch in isolation from neighboring features?

For example, if a network generates an output of 256x256 and I want to generate an isolated patch of 32x32. If we are analyzing a layer L with feature maps with spatial size 32x32, should the features excluding a 4x4 patch be set to 0 and so on for other layers to get final output?

rewriting-interface.ipynb exceeds IOPub data rate with faces

Issue:

rewriting's rewriting-interface.ipynb exceeds colab's IOPub data rate with faces

While in google colab, as directed in the last cell, I changed modelname to faces with no other changes. While executing, the runtime disconnects with no error displayed. When running print(interface._repr_html_()) the following error is displayed:

IOPub data rate exceeded.
The notebook server will temporarily stop sending output
to the client in order to avoid crashing it.
To change this limit, set the config variable
`--NotebookApp.iopub_data_rate_limit`.

Current values:
NotebookApp.iopub_data_rate_limit=1000000.0 (bytes/sec)
NotebookApp.rate_limit_window=3.0 (secs)

As far as I'm able to tell, there are no ways to change the data rate limit in colab.

Steps to reproduce:

Change modelname to faces in the last cell of rewriting-interface.ipynb in google colab

UI doesn't show up in colab when using the faces dataset

Hi! Thanks for making this code available. I saw your lecture in Ali Jahanian's class on yt and wanted to try this out with faces.

However, when changing the colab to use faces instead of church, the UI doesn't show up when the cell completes. There's no error or anything as far as I can tell, execution just ends without anything happening. Things work correctly when I leave the modelname as church though.

Thanks again for the help!

How to choose best layer and rank update for custom dataset

Hi David, thanks for the great work so far. I trained a custom dataset with StyleGAN2 and converted the weight to pytorch. Then I tried on rewriting some of the features, but it proves to be quite challenging.

For example, here I tried to add an extra bottle holder, but it only changed very few of the output.
bike_bottle

And here, I tried changing the back wheel to black, but it changed both wheels instead, and although it changed most of the output, some are not.
black_wheel

I also tried changing some of the other features such as the frame shape and the seat location but failed to give the changes I wanted. I assume this is because I do not choose the best layer to dissect or the wrong value for rank update and the learning parameter.

My question is, how do you choose the best layer and rank update for your previous sample? Especially if I don't have any segmentation labels for the object.

It'd be great if you can make a Colab tutorial on dissecting the network and finding the best layer and other parameters for the features that we selected.

Thanks,

How to get v_*i

In you paper,
image
I am confused how to get v_*i?
Through gan inversion optimization to find the v_*i correspond to x_*iļ¼Ÿ
I can't find in your code, so sorry to bother you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    šŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. šŸ“ŠšŸ“ˆšŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ā¤ļø Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.