cutan.characters.licenses¶
DiceBear per-style licences, as data.
The DiceBear software licence (MIT) is a separate fact from each style
licence — DiceBear itself splits them under literal # Design and # Code
headings inside every per-style licence file. Reading the repo’s top-level MIT
and concluding the avatars are MIT is the trap this table exists to close.
Verified against the per-style licence files and style pages at the pinned API
major; the sources are recorded in misc/docs/wave1_verification.md §2.
Of the styles an can request: 11 are CC0 (no attribution duty), 12 are
CC BY 4.0 (a real duty), and the Pablo Stanley set carries bespoke
“free for personal and commercial use” terms that are not Creative Commons —
which is why they are their own code here rather than being rounded to one.
Module Attributes
Pablo Stanley's own terms. |
|
style name -> its DESIGN licence. |
|
Licences that need no credit from whoever ships the output. |
Functions
|
DiceBear's own attribution template, filled in. |
|
Build the provenance record for a DiceBear avatar. |
|
Recover provenance from a descriptor written before |
|
Whether using |
Classes
|
One style's design licence and the credit it obliges. |
- cutan.characters.licenses.DICEBEAR_STYLE_LICENSES: dict[str, StyleLicense] = {'adventurer': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'Lisa Wischofsky', 'https://www.instagram.com/lischi_art/', 'Adventurer', 'https://www.figma.com/community/file/1184595184137881796'), 'adventurer-neutral': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'Lisa Wischofsky', 'https://www.instagram.com/lischi_art/', 'Adventurer Neutral', 'https://www.figma.com/community/file/1184595184137881796'), 'avataaars': ('free-personal-and-commercial', 'https://avataaars.com/', 'Pablo Stanley', 'https://twitter.com/pablostanley', None, 'https://avataaars.com/'), 'avataaars-neutral': ('free-personal-and-commercial', 'https://avataaars.com/', 'Pablo Stanley', 'https://twitter.com/pablostanley', None, 'https://avataaars.com/'), 'big-ears': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'The Visual Team', 'https://thevisual.team/', 'Face Generator', 'https://www.figma.com/community/file/986078800058673824'), 'big-ears-neutral': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'The Visual Team', 'https://thevisual.team/', 'Face Generator', 'https://www.figma.com/community/file/986078800058673824'), 'big-smile': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'Ashley Seo', 'http://www.ashleyseo.com/', 'Custom Avatar', 'https://www.figma.com/community/file/881358461963645496'), 'bottts': ('free-personal-and-commercial', 'https://bottts.com/', 'Pablo Stanley', 'https://twitter.com/pablostanley', None, 'https://bottts.com/'), 'bottts-neutral': ('free-personal-and-commercial', 'https://bottts.com/', 'Pablo Stanley', 'https://twitter.com/pablostanley', None, 'https://bottts.com/'), 'croodles': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'vijay verma', 'https://vjy.me/', 'Croodles - Doodle your face', 'https://www.figma.com/community/file/966199982810283152'), 'croodles-neutral': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'vijay verma', 'https://vjy.me/', 'Croodles - Doodle your face', 'https://www.figma.com/community/file/966199982810283152'), 'dylan': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'Natalia Spivak', 'https://nataspvk.tilda.ws/', 'Dylan! The Avatar Generator', 'https://www.figma.com/community/file/1356575240759683500'), 'fun-emoji': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'Davis Uche', 'https://www.instagram.com/davedirect3/', 'Fun Emoji Set', 'https://www.figma.com/community/file/968125295144990435'), 'glass': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'DiceBear', 'https://www.dicebear.com', 'Glass', 'https://www.dicebear.com'), 'icons': ('mit', 'https://opensource.org/licenses/MIT', 'The Bootstrap Authors', None, None, None), 'identicon': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'DiceBear', None, None, 'https://www.dicebear.com'), 'initials': ('mit', 'https://opensource.org/licenses/MIT', 'Florian Körner', None, None, None), 'lorelei': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'Lisa Wischofsky', 'https://www.instagram.com/lischi_art/', 'Lorelei', 'https://www.figma.com/community/file/1198749693280469639'), 'lorelei-neutral': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'Lisa Wischofsky', 'https://www.instagram.com/lischi_art/', 'Lorelei Neutral', 'https://www.figma.com/community/file/1198749693280469639'), 'micah': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'Micah Lanier', 'https://dribbble.com/micahlanier', 'Avatar Illustration System', 'https://www.figma.com/community/file/829741575478342595'), 'miniavs': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'Webpixels', 'https://webpixels.io/', 'Miniavs - Free Avatar Creator', 'https://www.figma.com/community/file/923211396597067458'), 'notionists': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'Zoish', 'https://bio.link/heyzoish', 'Notionists', 'https://heyzoish.gumroad.com/l/notionists'), 'notionists-neutral': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'Zoish', 'https://bio.link/heyzoish', 'Notionists', 'https://heyzoish.gumroad.com/l/notionists'), 'open-peeps': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'Pablo Stanley', 'https://twitter.com/pablostanley', 'Open Peeps', 'https://www.openpeeps.com/'), 'personas': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'Draftbit', 'https://draftbit.com/', 'Personas by Draftbit', 'https://personas.draftbit.com/'), 'pixel-art': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'DiceBear', None, 'Pixel Art', 'https://www.figma.com/community/file/1198754108850888330'), 'pixel-art-neutral': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'DiceBear', None, 'Pixel Art Neutral', 'https://www.figma.com/community/file/1198754108850888330'), 'rings': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'DiceBear', 'https://www.dicebear.com', 'Rings', 'https://www.dicebear.com'), 'shapes': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'DiceBear', None, None, 'https://www.dicebear.com'), 'thumbs': ('cc0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/', 'DiceBear', None, None, 'https://www.dicebear.com'), 'toon-head': ('cc-by-4.0', 'https://creativecommons.org/licenses/by/4.0/', 'Johan Melin', 'https://www.johanmelin.com', 'ToonHead', 'https://www.figma.com/community/file/1589627891082866389')}¶
style name -> its DESIGN licence. Absent from this table means “unverified”, which is refused rather than assumed permissive.
- cutan.characters.licenses.FREE_PERSONAL_AND_COMMERCIAL = 'free-personal-and-commercial'¶
Pablo Stanley’s own terms. Permissive in effect, not a CC licence, and not something to silently relabel as one.
- cutan.characters.licenses.NO_ATTRIBUTION_REQUIRED: frozenset[str] = frozenset({'cc0-1.0', 'free-personal-and-commercial', 'mit'})¶
Licences that need no credit from whoever ships the output.
- class cutan.characters.licenses.StyleLicense(license, license_url, author, author_url, source_title, source_page_url)[source]¶
Bases:
NamedTupleOne style’s design licence and the credit it obliges.
- cutan.characters.licenses.attribution_for(style)[source]¶
DiceBear’s own attribution template, filled in.
Nonewhen none is owed.The wording is theirs, verbatim from the per-style package README, including the “Remix of the original” half — which is what discharges CC BY’s “indicate if changes were made” clause.
anwraps the avatar into a rig, so it genuinely produces a modified work.
- cutan.characters.licenses.dicebear_source(style, *, seed)[source]¶
Build the provenance record for a DiceBear avatar.
Raises on an unlisted style rather than returning an empty record: “we did not check” and “there is nothing to discharge” must not look the same, and a
Nonelicence silently reads as the latter everywhere downstream.- Return type:
AssetSource
- cutan.characters.licenses.reconstruct_legacy_source(descriptor)[source]¶
Recover provenance from a descriptor written before
sourceexisted.**The users most at risk are the ones with no
sourcefield**, because every character created before it existed used a CC BY default. Reporting those as “no third-party assets recorded” is not an absence of information — it is an affirmative, false compliance statement, made to exactly the people who need the opposite.The evidence is right there in the same file:
new_characterhas always writtenmetadata.dicebear_styleandmetadata.dicebear_seed. So this reconstructs the record rather than shrugging.Returns
Noneonly when the art genuinely was not third-party (the offline geometric fallback), which is the one case where “nothing owed” is the true answer.- Return type:
AssetSource|None