
Show HN: Fursona Editor - arfafax
https://fursona.app
======
pgz
I never expected the day would come when an AI to generate furries would be
the top entry on HN.

~~~
_tw9j
You underestimate the number of furries in tech.

~~~
edhelas
It would have been wurst Edit: damn, edited

------
throwaway744678
This redirects to
[https://colab.research.google.com/](https://colab.research.google.com/) \-
you are identified by your google account (if any).

Perhaps we could change the URL?

~~~
zitterbewegung
It redirects to there because colab can be used to run the model.

You can visit the url in a private window and download the notebook without
using google.

------
arfafax
Sit tight. Colab blocked the notebook without explanation for some reason.
Working on updating the main URL to forward to the new notebook.

Here's a link to a working notebook:
[https://colab.research.google.com/drive/1O5XbpMRU9i83mLAiTrM...](https://colab.research.google.com/drive/1O5XbpMRU9i83mLAiTrMufCqmImgTRI7A?usp=sharing)

~~~
twic
HTTP status 569: Awoo Limit Exceeded

------
WillDaSilva
Not what I expected when I saw the title "Show HN: Fursona Editor". This is
really cool. It kinda feels like sophisticated art theft in a way, but by that
line of thinking you could argue that all creation of art is sophisticated art
theft.

~~~
zitterbewegung
I think it's a transformative work (in both the literal and the figurative
sense).

------
ddlsmurf
Notebook loading error There was an error loading this notebook. Ensure that
the file is accessible and try again. Error loading
[https://apis.google.com/js/client.js](https://apis.google.com/js/client.js)

[https://drive.google.com/drive/?action=locate&id=1h-y--
ip8qr...](https://drive.google.com/drive/?action=locate&id=1h-y--
ip8qrIc4RRG5aA-DJHHujYR0SLa&authuser=0) Error loading
[https://apis.google.com/js/client.js](https://apis.google.com/js/client.js)
Error: Error loading
[https://apis.google.com/js/client.js](https://apis.google.com/js/client.js)
at HTMLScriptElement.k.onerror
([https://colab.research.google.com/v2/external/gapi_loader.js...](https://colab.research.google.com/v2/external/gapi_loader.js:14:415))

------
jmt_
Is this anything but another "this face is not real" clone, i.e same model
just different training set?

~~~
webmaven
The "This Fursona Does Not Exist" site is such a clone, this is an interactive
editor for exploring the latent space in that dataset.

~~~
gwern
Using the new Ganspace tool to find useful directions in said latent space, as
well, rather than bootstrapping from linear variations or classifiers.

But 'just another generator' is a very "Dropbox is just rsync" sort of
middlebrow HN dismissal. It takes a lot to make a model and site like TFDNE.

Here's just a very brief summary, skipping over lots of problems along the
way. To make it, Arfa had to scrape all of e621. Then he had to hand-annotate
several thousand images with the eyes/mouth/face bounding boxes to train a
YOLO NN to detect faces, allowing him to crop them out of e621 as a whole.
Because he did facial landmarks, he could align the eyes/mouth to the center
of the image like FFHQ, throwing out weird faces. This data cleaning gives
much higher face quality. Then with the cropped faces, he trained StyleGAN 2
to convergence on a TPU pod acquired through TFRC. (The StyleGAN 2 codebase
does _not_ remotely support TPUs, or TPU pods, but Shawn Presser had spent a
month adding support and debugging it and setting up infrastructure letting
Arfa iterate on S2.) After experimenting with various levels of data cleaning
and attempting conditional StyleGANs, he picked a final model, and generated
100k images. These images were then upscaled with waifu2x (itself increasingly
a challenge to install since it uses Torch - the original, not PyTorch). Also,
about 10k were generated with different psi settings to create 'weird' faces,
since we knew from TWDNE how very much people enjoy weird and failed faces.
Then a Hetzner dedicated server had to be set up to host it (GCP cloud
bandwidth being ruinously more expensive by a factor of ~100). Arfa reused
These Waifus Do Not Exist, but worked with the original maintainer to improve
scroll control and optimize depiction. That just gets you a static website, of
course. But once launched, he had to deal with an onslaught of criticisms and
falsified DMCAs or accusations of plagiarism. Fortunately, that's over. But
how do you edit? You can't just use a raw StyleGAN model. To enable editing
even in a Colab notebook, you have to figure out what combinations of latent
vectors do what. That requires setting up Ganspace and exploring hundreds of
combinations that Ganspace deduces, in order to find interesting ones and play
with them until you figure out what it 'means' and can give it a human-
meaningful label. Then all of this has to be cleaned up, hosted, and turned
into a usable Colab notebook. But wait, there's more! Apparently Google Colab
will just disable notebooks for no apparent reason! So now he has to change
the domain to redirect to a new (working?) notebook... And so on.

------
nkrisc
So this generates cartoon character or something?

~~~
arfafax
Something like that.

~~~
nkrisc
Why are they only animals?

~~~
hibbelig
Fursona refers to "furry persona", I guess, and furries are described here:

[https://en.wikipedia.org/wiki/Furry_fandom](https://en.wikipedia.org/wiki/Furry_fandom)

~~~
nkrisc
Oh, thanks. That's... something else.

------
lilboiluvr69
I would like to know more about how the different options are selected. How do
we know how to tune something like "fur color" in styleGAN? Can arbitrary
options be added?

I'm very interested in all this, but still pretty new to machine learning in
general.

------
hadrien01
_> Click "Open in Playground" above (if you see that option)_

I don't see any button?

~~~
WillDaSilva
You should be able to click Runtime > Run all, or Ctrl+F9

~~~
rplnt
It says that's disabled for shared playbooks. I guess you can step through it,
haven't tried.

------
bigbizisverywyz
I think I will forbear clicking any links on this page from work :)

