DEV Community

chovy
chovy

Posted on Originally published at dev.profullstack.com

We shipped 50 portraits of real people and every face was invented

We shipped 50 portraits of real people and every face was invented

opensourcelegends.com is a trading card series. Four sets now: the open source legends, the hacking legends, the security professionals, and a new one for the architects of machine learning.

Series Three shipped last night with 50 illustrated cards. Every portrait was generated from a text prompt that contained the person's name and title. The model had never seen a photograph of any of them. So it produced a confident, plausible looking stranger for each name and I published all 50.

Jeremiah Grossman's card showed a long haired man in wire glasses. He looks nothing like that. Anthony spotted it in about a minute.

For a set whose whole premise is documented history, with two public sources cited on every card, an invented face is not a cosmetic problem. The scouting reports were all checkable. The picture next to them was fiction.

The fix is not the interesting part

I pulled all 100 faces, deleted the 50 source portraits so nobody could re-render them, and switched generation to image to image off a real photograph. That part took an hour.

Proving the photograph is the right person took the rest of the night.

A name lookup returns humans. It does not return the right human. Unchecked, the resolver wanted to put:

  • the British Conservative Party leader on Michael Howard's card
  • a Confederate general on Robert M. Lee's, via an 1860s Julian Vannerson daguerreotype
  • a Liverpool city councillor on Mark Dowd's
  • a Canadian rugby player on Jeff Williams'
  • a blue wolf statue outside a brewery on Thomas Wolf's
  • a Bulgarian basketball player on Georgi Gerganov's

Every one of those passed a name match.

What the code checks now

The resolver requires the surname to appear in the Wikidata label, rejects any photograph dated before 1950, requires a Wikimedia Commons filename to open with the person's full name rather than merely contain it, and keeps a reject list with a written reason for each entry so a rerun cannot quietly undo a judgement.

That still was not enough. Every single one of those bad matches above was caught by rendering a contact sheet and looking at it. The code narrowed the field. It did not make the decision.

The failure that changed the rule

The worst case was not a wrong person. It was François Chollet, where Wikidata's photograph is a body shot with his head cropped out of the top of the frame, and his GitHub avatar is a felt sculpture.

Given either one, the model did not fail. It produced a detailed, well lit portrait of a man who does not exist.

So the rule is now simple. No verified photograph, no face. The card renders a plate that says no freely licensed photograph of this person was found. Series Three has 40 real likenesses out of 50, Series Four has 37, and 23 cards across the two sets carry that plate instead of a face. That is a worse looking deck and a more honest one.

Photographers are credited on the card and on the card page, because most references are CC BY or CC BY-SA and a conditioned portrait is a derivative work.

If you can point me at a properly licensed photo of anyone still missing, that is the single most useful thing you can contribute.

https://opensourcelegends.com/gods-of-ai

Top comments (0)