Face Generator

The face generator is a web app that assembles faces from various elements, generating a wide variety of faces. It supports multiple artists!

Learn how to contribute.

2019-12-20 Hero Forge for portraits

I just saw @attercap saying that one of his favorite ways to do character portraits was to visit HeroForge, craft a minifig and use the .png export functionality. An excellent idea!


And just moments before, I had discovered 108 Terrible Character Portraits: free from DriveThruRPG, from a project realized back in 2012. Humans, elves, dwarves, trolls, robots, zombies, and more. CC BY 3.0 Unported License!

@Provinto mentioned Magic the Gathering pictures. Limited resolution, obviously.

Add Comment

2019-10-09 Ten random dungeons generated

With the random tables of J. Alan Henning and ktrey parker and Text Mapper with the Gridmapper algorithm (which knows how to create five room and seven room dungeons), and Face Generator, we have a funny little thing, now:

There are probably a gazillion things we could still add, but it’s already interesting. 🙂

Talk to us on Diaspora!

If you’re reading this in the future, check my profile for the latest thread called “Hex Describe, Face Generator, Text Mapper, and more” (see this old post for context).


Comments on 2019-10-09 Ten random dungeons generated

I like it! Looks very usable, especially with the yellow highlighting.

Jensan 2019-10-09 12:09 UTC

Thanks! Now that I look at the maps a bit closer I see that many of them are repeats. I need to think about the random number seed a bit more. I fear it’s simply taking the current time and passing it off to the mapp generator, which thus gets the same seed for every map. That’s not cool.

– Alex Schroeder 2019-10-09 13:50 UTC

This is killer Alex

froth 2019-10-15 18:54 UTC

Heh, all thanks to ktrey parker and J. Alan Henning who pushed me towards it because I was quite skeptical, and they wrote the random tables for it. Beautiful!

– Alex Schroeder 2019-10-15 20:36 UTC

This is another amazing resource for randomness – thank you. I use Hex Describe quite a bit to generate random entries for my D&D wilderness treks (using tables I have created from mash ups of existing material/adventures and my own mind) and am wondering how I would add in a chance of generating one of these dungeons? I’ve done a quick search of your wiki, the source file and can’t see anything specific – is it possible?

– VickyR 2020-01-07 20:27 UTC

It depends on what you want. If you’re already writing your own random tables, then it’s easy to simply add [dungeon] and it’ll add one to your entry.

  • the dungeon table (the tables below that show how the images with the maps are included)
  • the forest-hill table (the last entry uses the [dungeon] table)

– Alex Schroeder 2020-01-07 20:59 UTC

Thanks for this. Looking through the tables it’s an amazing piece of work by you and ktrey parker and J. Alan Henning. Much more complex that I usually create, but full of interesting ways of using code you’ve written. Thanks again.

– VickyR 2020-01-09 06:44 UTC

Thanks. 🙂

– Alex Schroeder 2020-01-09 06:48 UTC

Add Comment

2019-08-06 Hex Describe, Face Generator, Text Mapper, and more

If you’re wondering where the discussion regarding Hex Describe, Face Generator, and Text Mapper actually happens, the answer might surprise you: it happens on the Diaspora network!

There, I create new threads every now and then for people who want to talk to me about these applications. They allow people to generate a mini-setting including a map, a key, and NPCs, with but one click, powered by the greatest collection of random tables I know. 😅

I keep creating these threads whenever the previous thread reaches about 100 comments because it starts being unwieldy.

Here’s a list if you want to explore:

You get the idea. 🙂


Add Comment

2019-07-31 Face Generator

A few days ago I was inspired by the idea of swamp gnomes proposed on my Hex Describe thread on Diaspora and I started extending my collection of face elements:


Apparently Diaspora is currently the best place for me to collaborate with people for Hex Describe, Text Mapper and Face Generator. If you feel like joining, just pop into the new thread on Diaspora. If you don’t have an account, I can recommend Pluspora. It’s been working well enough for me.

My current project: trying to get dragon heads into the generator!



Add Comment

2019-05-19 Ettercap Faces

I was talking to ktrey parker again on Diaspora, and they said: “First, I will definitely have to dig up some the face templates, because I definitely want to do some ettercap faces! All eyes and mandibles!”

This morning I was hitting a lull and those words kept coming back to me. I searched for spider face images and felt inspired. Behold the faces of spider people.

Faces of the spider people

I knew this was going to be an alien face so I don’t actually need a lot of material. They all look the same to us, anyway.

I printed the elf template (narrow faces) and started drawing...

A bad scan from a very old scanner

Rotating image, cropping, scaling, and applying the tintenblau palette...

Cleaned up scan

Cutting these up, splitting the one image where I drew both some hair and a mouth, and looking at them using a local installation of the Face Generator, moving some elements around so that they fit better, less overlap, all of that...

And we’re done!

Oh, and making sure there’s at least one single pixel for “extra spiders” otherwise 10% of the spider faces get a nasty scar, haha.


Comments on 2019-05-19 Ettercap Faces

I’ve always treated Ettercaps as similar to Driders, except Lolth didn’t particularly like them. Being horrible mutants they have been mostly forced out of Drow society, although they linger around the outskirts hoping, ever hoping. Like the Ettercap faces very much.

– Ruprecht 2019-10-18 18:39 UTC

Thanks! Personally, I have never used driders. All the drow details are basically too weird for me. Perhaps I should have read the Drizzt Do’Urden books.

– Alex Schroeder 2019-10-18 22:09 UTC

Add Comment

2019-04-15 Rotating projects

Today I added a picture from a previous post to the About page for Face Generator, plus a copy of what it might look if you used the electronic process (in my example, using Procreate on the tablet).

As I was updating the documentation I started wondering... I have so many projects that I’m working on every now and then, with episodes of activity followed by years of silence, it’s amazing I get anything done, and that I’m not burning out. Why is that? I think two elements are key:

  1. The projects are not very popular so unlike the big endeavours we see online, I have slack. I don’t mind the issues not getting worked on, I don’t mind the services being down, and nobody is giving me any shit about it because I only have a small number of users and most people are nice, anyway.
  2. I have no problems giving projects away. I have written a lot of Emacs code over the years. Simple packages, one here, one there, not a lot in comparison to some very prolific writers, but enough for some of them to get lost. When people do come back to me with issues about software I no longer use, I’m open about it. “I’m sorry, I no longer use it. I will apply your fix, if you have one, or I can try and help you understand the problem and then you can fix it, or ideally you’d take over and I’ll be happy to point people your way. Please do!”

Sometimes I get mail regarding one of the projects I no longer maintain, and I sigh with relief as I know, somebody else is going take care of that. 🙂


Add Comment

2018-11-04 New Faces for the Face Generator

Here’s how to create a new collection for the face generator.

First, print some templates.

Second, get a pen and start drawing a sheet of eyes, of eyebrows, of noses, of mouths, of ears, of hair, of chins.

Drawing face elements

Scan them. I use Gimp and there the FileCreateXSaneDevice dialog... menu opens the scanner application. There, I pick Gray and 300 DPI. Then I scan all the stuff I drew.


Next, in Gimp, the processing begins. The first problem is that either the printer or the scanner don’t really get straight lines.

I like to work at 50% zoom...

Use the rotate tool to rotate the image until it looks as straight as possible (shortcut Shift+R). Move the window edges around until you have the opportunity to check whether the lines are in fact straight. In the screenshot below I’m looking at the left edge to verify that the rotation is good.

Rotating the template

Use the crop tool to cut off anything outside the template (shortcut Shift+C).

Got to ImageScale Image.... Scale it to 2250×3000, breaking the link between width and height.

Got to ColorsLevels. In the top bar, move the tiny white triangle to the left until the template is no longer visible in the image. Click the black pipette and then click onto a line that you have drawn such that all your lines are now pitch black.

Using levels to clean up the image

Export your image (shortcut Ctrl+Shift+E).

Cut the image into elements using cutter.pl. It cuts the scan into 5 × 5 images of 450 × 600 pixels each and labels them by row. You’d invoke it as follows: perl helpers/cutter.pl source1.png alex eyes_all nose_all mouth_all hair_all chin_all or perl helpers/cutter.pl source2.png alex eyes_all nose_all mouth_all hair_all ears_all.

In other words: First is the source image, then the artist name, and then you provide the element for every row. If the remaining rows are all the same element, you don’t need to repeat it. Thus, if you’ve drawn a sheet full of eyes, just use perl helpers/cutter.pl source4.png alex eyes_all and you’re good. Make sure you use _all in the filename. That’s how the system knows the face element can be used for all types of faces.

In my case:

perl helpers/cutter.pl alex3-chin-man-2.png alex3 chin_man
perl helpers/cutter.pl alex3-ears-2.png alex3 ears_all
perl helpers/cutter.pl alex3-eyebrows-2.png alex3 face_all
perl helpers/cutter.pl alex3-eyes-2.png alex3 eyes_all
perl helpers/cutter.pl alex3-hair-2.png alex3 hair_man
perl helpers/cutter.pl alex3-mouths-2.png alex3 mouth_all
perl helpers/cutter.pl alex3-noses-2.png alex3 nose_all

And then to write a license file, the README, we should be ready to go, more or less. Let’s see...

Generated Faces

Check it out!


Comments on 2018-11-04 New Faces for the Face Generator


  1. Cleanup images that have some transparency left in them
  2. Draw more!

– Alex Schroeder 2018-11-04 15:59 UTC

Add Comment

2017-03-24 New Faces

A few days ago I started wondering whether there was an efficient way to draw new face elements for my face generator on a tablet. I used the iPad, the Apple Pencil, and Procreate, started a new image based on the empty grid I always use, used a separate layer for every kind of element (one layer each for eyes, nose, ears, mouth, chin, hair, and extra), exported the image as a PSD file, used ImageMagick to get at the separate PNG layers, split the PNG layers into the various tiles, made sure the naming conventions were good to go, and here we are.

A few things to note: no effort at categorisation was made. For now, the generator mixes all the elements even if later the long ears will be used for elves only, for example. It’s just a first stab at things. I also feel that there ought to be no gender differences as far as eyes or mouth are concerned because I’m assuming no makeup (or equal use of makeup, I guess). I’d like to see how far I can get with sticking to just the chin and baldness as far as sexual dimorphism goes. I think it might work even though we’re pretty used to makeup and hairdo these days.

Anyway, this is the first time I’m seeing some random faces assembled from my PSD file. The proportions still seem to be off. What’s wrong with these heads. Too small, too round? Need more hair? Men need stronger jaws? Something is still wrong.

Feel free to use my template and give it a try!

If you do it, I’d love to get your PSD file to add to the web app. And I’m hoping you’re as willing as I am to dedicate it to the public domain. That makes it easier for everybody else to just use the generated faces for their character sheets, booklets, or whatever they’re doing.


Add Comment

2016-01-03 Squid Faces

The Face Generator now generates squid faces, a.k.a. mindflayers... For those of you needing a squid face or two. And as always, the faces generated are dedicated to the public domain.

The things I’m not happy with:

  1. I ran out of ink half way through drawing the elements and since I try to always wash the fountain pen as I change cartridges, the tentacles turned out very light. I tried to correct it in The Gimp but it isn’t perfect.
  2. I discovered that my layout of facial features was sloppy. There’s a big white area where a human nose would be, but I can’t put a nose there. I can’t move the tentacles up because the jaw lines and the lower eye ridges will interfere. Gah! More planning, less enthusiasm, next time.

I’m not sure whether I’m going to spend more time fixing squid faces. I don’t expect to use them all that often. If you find that you really, really need then, contact me and we’ll talk about it. Hope springs eternal, after all.

Squid Faces


Add Comment



Please make sure you contribute only your own work, or work licensed under the GNU Free Documentation License. Note: in order to facilitate peer review and fight vandalism, we will store your IP number for a number of days. See Privacy Policy for more information. See Info for text formatting rules. You can edit the comment page if you need to fix typos. You can subscribe to new comments by email without leaving a comment.

To save this page you must answer this question:

Just say HELLO