Skip to content
Avatars

Consent

A likeness is a person. Consent is a row that is queried on every call, not a checkbox.

Consent to use somebody's likeness is a row in the database, written in the same transaction as the avatar, and queried live on every path that could put that face on a call.

It is not a flag on the avatar, and it is not a checkbox in a form that nothing reads afterwards.

What is stored#

One row in if_consents — the table that already exists for exactly this, generically, across avatars and voices:

ColumnValue
subject_typeavatar
subject_idthe avatar's id
consent_typelikeness_use
grantor, grantor_emailwho agreed — a named person
scopethe attestation text, in your own words
commercial_use_allowedTRUE
training_allowedFALSE
statusactive

training_allowed defaults to false, and that default is the point: agreeing to appear on a call is not agreeing to be training data, and conflating the two is the failure this table exists to prevent.

Why it is queried and not cached#

lg_avatar_consent_ok(avatar_id) is one function, written once so nobody re-implements it slightly differently. It returns true when the avatar is not revoked and either it is a stock face whose consent you hold, or an active, unexpired likeness_use consent exists for it.

Every read of an avatar computes consent_ok live rather than returning a stored column, so a lapsed consent shows as lapsed the moment it lapses — not at the next write, not at the next deploy. A consent with a valid_until in the past stops being sufficient by itself, with nothing to run.

Withdrawing#

DELETE /public/avatars/<id>?reason=withdrawn%20by%20subject

Marks the avatar revoked, marks the consent revoked, and deletes the stored recording and the rendered artifact.

The row itself stays. lg_calls.avatar_id references it, and erasing the history of every call a person appeared in would be an odd way to honour their request to be forgotten. What goes is the likeness — the recording, the artifact, and any future ability to call it.

What this does not do for you#

It records that somebody said yes, in a form you can produce later. It is not legal advice, it does not check that the attestation is true, and it does not know what jurisdiction you are in. What it guarantees is narrower and worth having: no face reaches a call without a named person attached to it, and withdrawing takes effect immediately.

Up nextProviders and pricing