demofaces.dev

Royalty-free · synthetic · ready to ship

Nobody here is real.
Everybody's free.

Drop-in placeholder portraits for the pages you're still pretending are done. Every face is generated, not photographed — no model, no release, no attribution, nothing to license. Refresh for a new cast.

Get early access
48 synthetic portraits · 0 real people · 0 licenses

The placeholder tax

The face in your mockup is a liability.

Every comp needs people — testimonials, team grids, avatar stacks. Where they usually come from is a small, quiet risk you keep shipping.

01 — LICENSING

That "free" stock photo

Half the placeholders in your comps came from an image search. Exactly one of them has a license you didn't read — and it's always the one that ships.

02 — LIKENESS

A stranger in your demo

Real people end up starring in mockups they never agreed to. A synthetic face has no likeness to violate, no release to chase, no email to dread.

03 — CONSISTENCY

The uncanny grab-bag

Ten photos, ten lighting setups, ten different decades. A generated cast shares one deliberate style — so the page reads as designed, not assembled.

Generated, not photographed

Free by construction — not by license.

There's no rights holder because there was never a person. Address any face by a seed and it's identical on every build; change the seed for a new one.

  • Deterministic by seed. The same URL returns the same face forever — your snapshots and demos stay stable.
  • Dial the room. Age, expression, style and diversity balance are parameters, not a lucky search.
  • Swap the whole pack with one flag. Drawn or photoreal today — both synthetic, both free; illustrated packs on the roadmap.
  • Drop-in anywhere. An <img> tag, an SVG string, or seed data for your fixtures. No SDK required.
<!-- one face, deterministic by handle -->
<img src="https://demofaces.dev/u/aria-b3f0.svg" alt="">

# a whole cast, your parameters
GET https://demofaces.dev/v1/cast
     ?count=8
     &seed=demo-team

# roadmap — a CLI to seed your fixtures
$ npx demofaces cast --count 50 --out ./seed

↑ The /u, /p and /v1/cast endpoints are real; the CLI is roadmap. Add ?style=photo to a cast for the photoreal pack.

Where they earn their keep

Every surface that needs a person, minus the person.

Same faces, everywhere you'd otherwise reach for stock.

Avatar stacks Testimonial rows Team pages Empty states Seed & fixtures Slide decks Onboarding flows Design comps

Early access

Ship the mockup. Keep the faces.

We're building it now. Leave an email and we'll ping you the day the first cast goes live — nothing before that.

0 real people were used · 0 licenses required