@nodaro/shared 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +32 -0
- package/dist/index.cjs +12506 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +12269 -0
- package/dist/index.d.ts +12269 -0
- package/dist/index.js +11831 -0
- package/dist/index.js.map +1 -0
- package/package.json +54 -0
- package/src/__tests__/__snapshots__/prompt-builder-segments.test.ts.snap +65 -0
- package/src/__tests__/ai-avatar-pricing.test.ts +321 -0
- package/src/__tests__/apply-video-negative-prompt.test.ts +76 -0
- package/src/__tests__/attach-columns.test.ts +28 -0
- package/src/__tests__/audio-crossfade-curves.test.ts +33 -0
- package/src/__tests__/build-model-menu.test.ts +58 -0
- package/src/__tests__/character-aspect-defaults.test.ts +142 -0
- package/src/__tests__/character-mention-slug.test.ts +199 -0
- package/src/__tests__/character-reference-photo-kinds.test.ts +32 -0
- package/src/__tests__/character-usage-mode.test.ts +147 -0
- package/src/__tests__/character-variant-assets.test.ts +142 -0
- package/src/__tests__/character-voice.test.ts +130 -0
- package/src/__tests__/cinematic-avatar-pricing.test.ts +119 -0
- package/src/__tests__/combine-transitions.test.ts +137 -0
- package/src/__tests__/component-types.test.ts +87 -0
- package/src/__tests__/condition-variables.test.ts +98 -0
- package/src/__tests__/credit-identifiers.test.ts +811 -0
- package/src/__tests__/default-video-provider.test.ts +63 -0
- package/src/__tests__/entity-image-handle.test.ts +43 -0
- package/src/__tests__/entity-variants.test.ts +33 -0
- package/src/__tests__/fal-lip-sync-sets.test.ts +31 -0
- package/src/__tests__/featured-entities.test.ts +33 -0
- package/src/__tests__/film-pricing.test.ts +64 -0
- package/src/__tests__/filter-condition.test.ts +285 -0
- package/src/__tests__/freecut-protocol.test.ts +35 -0
- package/src/__tests__/generate-text-items.test.ts +19 -0
- package/src/__tests__/generated-results.test.ts +50 -0
- package/src/__tests__/graph-utils.test.ts +618 -0
- package/src/__tests__/group-aggregation.test.ts +83 -0
- package/src/__tests__/i18n-locale-completeness.test.ts +156 -0
- package/src/__tests__/image-critic-node.test.ts +86 -0
- package/src/__tests__/image-mask-mode.test.ts +16 -0
- package/src/__tests__/image-ref-limit.test.ts +78 -0
- package/src/__tests__/inpaint-region.test.ts +24 -0
- package/src/__tests__/input-field-map-parity.test.ts +30 -0
- package/src/__tests__/json-evaluator.test.ts +289 -0
- package/src/__tests__/json-path.test.ts +64 -0
- package/src/__tests__/lip-sync-pricing.test.ts +142 -0
- package/src/__tests__/list-merge.test.ts +96 -0
- package/src/__tests__/list-sort.test.ts +134 -0
- package/src/__tests__/llm-models.test.ts +445 -0
- package/src/__tests__/location-mention-slug.test.ts +246 -0
- package/src/__tests__/locations-coverage-critic-schema.test.ts +92 -0
- package/src/__tests__/loop-delimiter.test.ts +39 -0
- package/src/__tests__/lottie-slots.test.ts +245 -0
- package/src/__tests__/model-catalog-flux2-resolutions.test.ts +21 -0
- package/src/__tests__/model-constants-location.test.ts +20 -0
- package/src/__tests__/model-constants.test.ts +122 -0
- package/src/__tests__/model-tree.test.ts +86 -0
- package/src/__tests__/no-internal-imports.test.ts +25 -0
- package/src/__tests__/node-default-mappings.test.ts +175 -0
- package/src/__tests__/node-mappable-fields.test.ts +7 -0
- package/src/__tests__/node-preset-export.test.ts +46 -0
- package/src/__tests__/node-preset-extract.test.ts +166 -0
- package/src/__tests__/node-refs-canonical.test.ts +54 -0
- package/src/__tests__/node-refs-combine.test.ts +54 -0
- package/src/__tests__/node-refs.test.ts +187 -0
- package/src/__tests__/node-runtime-keys.test.ts +99 -0
- package/src/__tests__/object-aspect-defaults.test.ts +59 -0
- package/src/__tests__/parameter-node-value.test.ts +137 -0
- package/src/__tests__/pinterest-url.test.ts +35 -0
- package/src/__tests__/pipeline-chat.test.ts +110 -0
- package/src/__tests__/pipeline-validation.test.ts +98 -0
- package/src/__tests__/presentation-utils.test.ts +1137 -0
- package/src/__tests__/producer-types.test.ts +47 -0
- package/src/__tests__/prompt-length-limits.test.ts +156 -0
- package/src/__tests__/provider-directive-defaults.test.ts +46 -0
- package/src/__tests__/reduce-strategy-registry.test.ts +43 -0
- package/src/__tests__/reference-board-templates.test.ts +33 -0
- package/src/__tests__/reference-roles.test.ts +36 -0
- package/src/__tests__/resolve-field-mappings.test.ts +110 -0
- package/src/__tests__/resolve-pipeline-model.test.ts +76 -0
- package/src/__tests__/scene-node-types.test.ts +80 -0
- package/src/__tests__/scraper-actors.test.ts +67 -0
- package/src/__tests__/seedance-2-catalog.test.ts +18 -0
- package/src/__tests__/seedance-2-credit-id.test.ts +23 -0
- package/src/__tests__/seedance-aspects.test.ts +52 -0
- package/src/__tests__/selector.test.ts +1151 -0
- package/src/__tests__/settled-with-limit.test.ts +214 -0
- package/src/__tests__/social-media-specs.test.ts +129 -0
- package/src/__tests__/sub-workflow-validation.test.ts +88 -0
- package/src/__tests__/switchx-pricing.test.ts +28 -0
- package/src/__tests__/to-connected-references.test.ts +153 -0
- package/src/__tests__/utilities.test.ts +541 -0
- package/src/__tests__/video-analysis-pricing.test.ts +58 -0
- package/src/__tests__/video-analysis.test.ts +63 -0
- package/src/__tests__/video-audio-capability.test.ts +204 -0
- package/src/__tests__/video-gen-providers.test.ts +28 -0
- package/src/__tests__/video-mode-aliases.test.ts +150 -0
- package/src/__tests__/video-ref-limits.test.ts +72 -0
- package/src/__tests__/video-utils.test.ts +303 -0
- package/src/__tests__/voice-changer-models.test.ts +33 -0
- package/src/__tests__/workflow-export-strip.test.ts +46 -0
- package/src/ai-avatar-pricing.ts +213 -0
- package/src/ancestor-refs.ts +48 -0
- package/src/animals.ts +231 -0
- package/src/audio-crossfade-curves.ts +73 -0
- package/src/audio-fx-presets.ts +64 -0
- package/src/avatar-payload-validators.ts +214 -0
- package/src/caption-styles.ts +31 -0
- package/src/character-aspect-defaults.ts +102 -0
- package/src/character-facets.ts +37 -0
- package/src/character-mention-slug.ts +166 -0
- package/src/character-usage-mode.ts +109 -0
- package/src/character-variant-assets.ts +121 -0
- package/src/character-voice.ts +151 -0
- package/src/cinematic-avatar-pricing.ts +111 -0
- package/src/clone-utils.ts +46 -0
- package/src/combine-transitions.ts +482 -0
- package/src/community.ts +112 -0
- package/src/component-types.ts +127 -0
- package/src/condition-variables.ts +65 -0
- package/src/credit-estimators/index.ts +15 -0
- package/src/credit-estimators/video-utils.ts +165 -0
- package/src/credit-identifiers.ts +304 -0
- package/src/entity-approval-types.ts +31 -0
- package/src/entity-aspect-defaults.ts +82 -0
- package/src/entity-asset-types.ts +296 -0
- package/src/entity-image-handle.ts +36 -0
- package/src/extra-refs.ts +139 -0
- package/src/featured-entities.ts +136 -0
- package/src/film-pricing.ts +117 -0
- package/src/filter-condition.ts +250 -0
- package/src/flux2-pricing.ts +18 -0
- package/src/freecut-protocol.ts +52 -0
- package/src/furniture.ts +167 -0
- package/src/generate-text-items.ts +15 -0
- package/src/generated-results.ts +63 -0
- package/src/group-aggregation.ts +75 -0
- package/src/hint-graph-types.ts +18 -0
- package/src/i18n/action-fx.ar.ts +89 -0
- package/src/i18n/action-fx.de.ts +89 -0
- package/src/i18n/action-fx.es.ts +89 -0
- package/src/i18n/action-fx.fr.ts +89 -0
- package/src/i18n/action-fx.he.ts +89 -0
- package/src/i18n/action-fx.hi.ts +89 -0
- package/src/i18n/action-fx.ja.ts +89 -0
- package/src/i18n/action-fx.ko.ts +89 -0
- package/src/i18n/action-fx.pt-BR.ts +89 -0
- package/src/i18n/action-fx.ru.ts +89 -0
- package/src/i18n/action-fx.zh-CN.ts +89 -0
- package/src/i18n/aesthetic.ar.ts +170 -0
- package/src/i18n/aesthetic.de.ts +48 -0
- package/src/i18n/aesthetic.es.ts +169 -0
- package/src/i18n/aesthetic.fr.ts +52 -0
- package/src/i18n/aesthetic.he.ts +169 -0
- package/src/i18n/aesthetic.hi.ts +55 -0
- package/src/i18n/aesthetic.ja.ts +165 -0
- package/src/i18n/aesthetic.ko.ts +169 -0
- package/src/i18n/aesthetic.pt-BR.ts +148 -0
- package/src/i18n/aesthetic.ru.ts +155 -0
- package/src/i18n/aesthetic.zh-CN.ts +172 -0
- package/src/i18n/animals.ar.ts +145 -0
- package/src/i18n/animals.de.ts +144 -0
- package/src/i18n/animals.es.ts +158 -0
- package/src/i18n/animals.fr.ts +144 -0
- package/src/i18n/animals.he.ts +155 -0
- package/src/i18n/animals.hi.ts +157 -0
- package/src/i18n/animals.ja.ts +159 -0
- package/src/i18n/animals.ko.ts +159 -0
- package/src/i18n/animals.pt-BR.ts +157 -0
- package/src/i18n/animals.ru.ts +155 -0
- package/src/i18n/animals.zh-CN.ts +155 -0
- package/src/i18n/atmosphere.ar.ts +49 -0
- package/src/i18n/atmosphere.de.ts +47 -0
- package/src/i18n/atmosphere.es.ts +50 -0
- package/src/i18n/atmosphere.fr.ts +47 -0
- package/src/i18n/atmosphere.he.ts +47 -0
- package/src/i18n/atmosphere.hi.ts +49 -0
- package/src/i18n/atmosphere.ja.ts +49 -0
- package/src/i18n/atmosphere.ko.ts +49 -0
- package/src/i18n/atmosphere.pt-BR.ts +49 -0
- package/src/i18n/atmosphere.ru.ts +47 -0
- package/src/i18n/atmosphere.zh-CN.ts +152 -0
- package/src/i18n/backdrop.ar.ts +53 -0
- package/src/i18n/backdrop.de.ts +46 -0
- package/src/i18n/backdrop.es.ts +54 -0
- package/src/i18n/backdrop.fr.ts +52 -0
- package/src/i18n/backdrop.he.ts +51 -0
- package/src/i18n/backdrop.hi.ts +59 -0
- package/src/i18n/backdrop.ja.ts +61 -0
- package/src/i18n/backdrop.ko.ts +59 -0
- package/src/i18n/backdrop.pt-BR.ts +59 -0
- package/src/i18n/backdrop.ru.ts +57 -0
- package/src/i18n/backdrop.zh-CN.ts +57 -0
- package/src/i18n/camera-format.ar.ts +40 -0
- package/src/i18n/camera-format.de.ts +37 -0
- package/src/i18n/camera-format.es.ts +41 -0
- package/src/i18n/camera-format.fr.ts +37 -0
- package/src/i18n/camera-format.he.ts +37 -0
- package/src/i18n/camera-format.hi.ts +42 -0
- package/src/i18n/camera-format.ja.ts +37 -0
- package/src/i18n/camera-format.ko.ts +37 -0
- package/src/i18n/camera-format.pt-BR.ts +46 -0
- package/src/i18n/camera-format.ru.ts +42 -0
- package/src/i18n/camera-format.zh-CN.ts +42 -0
- package/src/i18n/camera-motions.ar.ts +86 -0
- package/src/i18n/camera-motions.de.ts +74 -0
- package/src/i18n/camera-motions.es.ts +86 -0
- package/src/i18n/camera-motions.fr.ts +86 -0
- package/src/i18n/camera-motions.he.ts +86 -0
- package/src/i18n/camera-motions.hi.ts +99 -0
- package/src/i18n/camera-motions.ja.ts +99 -0
- package/src/i18n/camera-motions.ko.ts +99 -0
- package/src/i18n/camera-motions.pt-BR.ts +99 -0
- package/src/i18n/camera-motions.ru.ts +99 -0
- package/src/i18n/camera-motions.zh-CN.ts +99 -0
- package/src/i18n/character-fx.ar.ts +72 -0
- package/src/i18n/character-fx.de.ts +72 -0
- package/src/i18n/character-fx.es.ts +72 -0
- package/src/i18n/character-fx.fr.ts +72 -0
- package/src/i18n/character-fx.he.ts +72 -0
- package/src/i18n/character-fx.hi.ts +72 -0
- package/src/i18n/character-fx.ja.ts +72 -0
- package/src/i18n/character-fx.ko.ts +72 -0
- package/src/i18n/character-fx.pt-BR.ts +72 -0
- package/src/i18n/character-fx.ru.ts +72 -0
- package/src/i18n/character-fx.zh-CN.ts +72 -0
- package/src/i18n/color-look.ar.ts +50 -0
- package/src/i18n/color-look.de.ts +47 -0
- package/src/i18n/color-look.es.ts +50 -0
- package/src/i18n/color-look.fr.ts +50 -0
- package/src/i18n/color-look.he.ts +49 -0
- package/src/i18n/color-look.hi.ts +52 -0
- package/src/i18n/color-look.ja.ts +54 -0
- package/src/i18n/color-look.ko.ts +54 -0
- package/src/i18n/color-look.pt-BR.ts +54 -0
- package/src/i18n/color-look.ru.ts +52 -0
- package/src/i18n/color-look.zh-CN.ts +53 -0
- package/src/i18n/composition-effects.ar.ts +26 -0
- package/src/i18n/composition-effects.de.ts +25 -0
- package/src/i18n/composition-effects.es.ts +27 -0
- package/src/i18n/composition-effects.fr.ts +25 -0
- package/src/i18n/composition-effects.he.ts +25 -0
- package/src/i18n/composition-effects.hi.ts +27 -0
- package/src/i18n/composition-effects.ja.ts +27 -0
- package/src/i18n/composition-effects.ko.ts +27 -0
- package/src/i18n/composition-effects.pt-BR.ts +25 -0
- package/src/i18n/composition-effects.ru.ts +82 -0
- package/src/i18n/composition-effects.zh-CN.ts +25 -0
- package/src/i18n/era.ar.ts +37 -0
- package/src/i18n/era.de.ts +34 -0
- package/src/i18n/era.es.ts +37 -0
- package/src/i18n/era.fr.ts +37 -0
- package/src/i18n/era.he.ts +36 -0
- package/src/i18n/era.hi.ts +39 -0
- package/src/i18n/era.ja.ts +41 -0
- package/src/i18n/era.ko.ts +39 -0
- package/src/i18n/era.pt-BR.ts +41 -0
- package/src/i18n/era.ru.ts +121 -0
- package/src/i18n/era.zh-CN.ts +39 -0
- package/src/i18n/exposure-settings.ar.ts +28 -0
- package/src/i18n/exposure-settings.de.ts +26 -0
- package/src/i18n/exposure-settings.es.ts +28 -0
- package/src/i18n/exposure-settings.fr.ts +29 -0
- package/src/i18n/exposure-settings.he.ts +28 -0
- package/src/i18n/exposure-settings.hi.ts +31 -0
- package/src/i18n/exposure-settings.ja.ts +31 -0
- package/src/i18n/exposure-settings.ko.ts +31 -0
- package/src/i18n/exposure-settings.pt-BR.ts +31 -0
- package/src/i18n/exposure-settings.ru.ts +31 -0
- package/src/i18n/exposure-settings.zh-CN.ts +31 -0
- package/src/i18n/framing.ar.ts +78 -0
- package/src/i18n/framing.de.ts +73 -0
- package/src/i18n/framing.es.ts +78 -0
- package/src/i18n/framing.fr.ts +78 -0
- package/src/i18n/framing.he.ts +77 -0
- package/src/i18n/framing.hi.ts +82 -0
- package/src/i18n/framing.ja.ts +84 -0
- package/src/i18n/framing.ko.ts +82 -0
- package/src/i18n/framing.pt-BR.ts +84 -0
- package/src/i18n/framing.ru.ts +82 -0
- package/src/i18n/framing.zh-CN.ts +82 -0
- package/src/i18n/furniture.ar.ts +92 -0
- package/src/i18n/furniture.de.ts +93 -0
- package/src/i18n/furniture.es.ts +101 -0
- package/src/i18n/furniture.fr.ts +93 -0
- package/src/i18n/furniture.he.ts +101 -0
- package/src/i18n/furniture.hi.ts +101 -0
- package/src/i18n/furniture.ja.ts +101 -0
- package/src/i18n/furniture.ko.ts +101 -0
- package/src/i18n/furniture.pt-BR.ts +101 -0
- package/src/i18n/furniture.ru.ts +101 -0
- package/src/i18n/furniture.zh-CN.ts +101 -0
- package/src/i18n/held-prop.ar.ts +74 -0
- package/src/i18n/held-prop.de.ts +65 -0
- package/src/i18n/held-prop.es.ts +83 -0
- package/src/i18n/held-prop.fr.ts +74 -0
- package/src/i18n/held-prop.he.ts +73 -0
- package/src/i18n/held-prop.hi.ts +82 -0
- package/src/i18n/held-prop.ja.ts +84 -0
- package/src/i18n/held-prop.ko.ts +84 -0
- package/src/i18n/held-prop.pt-BR.ts +84 -0
- package/src/i18n/held-prop.ru.ts +82 -0
- package/src/i18n/held-prop.zh-CN.ts +82 -0
- package/src/i18n/index.ts +208 -0
- package/src/i18n/instrumentation.ar.ts +195 -0
- package/src/i18n/instrumentation.de.ts +195 -0
- package/src/i18n/instrumentation.es.ts +195 -0
- package/src/i18n/instrumentation.fr.ts +195 -0
- package/src/i18n/instrumentation.he.ts +195 -0
- package/src/i18n/instrumentation.hi.ts +195 -0
- package/src/i18n/instrumentation.ja.ts +195 -0
- package/src/i18n/instrumentation.ko.ts +195 -0
- package/src/i18n/instrumentation.pt-BR.ts +195 -0
- package/src/i18n/instrumentation.ru.ts +195 -0
- package/src/i18n/instrumentation.zh-CN.ts +195 -0
- package/src/i18n/lens.ar.ts +24 -0
- package/src/i18n/lens.de.ts +24 -0
- package/src/i18n/lens.es.ts +24 -0
- package/src/i18n/lens.fr.ts +24 -0
- package/src/i18n/lens.he.ts +24 -0
- package/src/i18n/lens.hi.ts +24 -0
- package/src/i18n/lens.ja.ts +24 -0
- package/src/i18n/lens.ko.ts +24 -0
- package/src/i18n/lens.pt-BR.ts +24 -0
- package/src/i18n/lens.ru.ts +25 -0
- package/src/i18n/lens.zh-CN.ts +24 -0
- package/src/i18n/lighting.ar.ts +86 -0
- package/src/i18n/lighting.de.ts +84 -0
- package/src/i18n/lighting.es.ts +89 -0
- package/src/i18n/lighting.fr.ts +84 -0
- package/src/i18n/lighting.he.ts +88 -0
- package/src/i18n/lighting.hi.ts +90 -0
- package/src/i18n/lighting.ja.ts +90 -0
- package/src/i18n/lighting.ko.ts +90 -0
- package/src/i18n/lighting.pt-BR.ts +90 -0
- package/src/i18n/lighting.ru.ts +88 -0
- package/src/i18n/lighting.zh-CN.ts +92 -0
- package/src/i18n/loop-subject.ar.ts +39 -0
- package/src/i18n/loop-subject.de.ts +39 -0
- package/src/i18n/loop-subject.es.ts +39 -0
- package/src/i18n/loop-subject.fr.ts +39 -0
- package/src/i18n/loop-subject.he.ts +39 -0
- package/src/i18n/loop-subject.hi.ts +39 -0
- package/src/i18n/loop-subject.ja.ts +39 -0
- package/src/i18n/loop-subject.ko.ts +39 -0
- package/src/i18n/loop-subject.pt-BR.ts +39 -0
- package/src/i18n/loop-subject.ru.ts +39 -0
- package/src/i18n/loop-subject.zh-CN.ts +39 -0
- package/src/i18n/materials.ar.ts +80 -0
- package/src/i18n/materials.de.ts +80 -0
- package/src/i18n/materials.es.ts +87 -0
- package/src/i18n/materials.fr.ts +80 -0
- package/src/i18n/materials.he.ts +86 -0
- package/src/i18n/materials.hi.ts +86 -0
- package/src/i18n/materials.ja.ts +88 -0
- package/src/i18n/materials.ko.ts +88 -0
- package/src/i18n/materials.pt-BR.ts +88 -0
- package/src/i18n/materials.ru.ts +86 -0
- package/src/i18n/materials.zh-CN.ts +86 -0
- package/src/i18n/mood.ar.ts +61 -0
- package/src/i18n/mood.de.ts +61 -0
- package/src/i18n/mood.es.ts +66 -0
- package/src/i18n/mood.fr.ts +61 -0
- package/src/i18n/mood.he.ts +64 -0
- package/src/i18n/mood.hi.ts +66 -0
- package/src/i18n/mood.ja.ts +66 -0
- package/src/i18n/mood.ko.ts +66 -0
- package/src/i18n/mood.pt-BR.ts +64 -0
- package/src/i18n/mood.ru.ts +64 -0
- package/src/i18n/mood.zh-CN.ts +64 -0
- package/src/i18n/music-genre.ar.ts +302 -0
- package/src/i18n/music-genre.de.ts +302 -0
- package/src/i18n/music-genre.es.ts +302 -0
- package/src/i18n/music-genre.fr.ts +302 -0
- package/src/i18n/music-genre.he.ts +302 -0
- package/src/i18n/music-genre.hi.ts +302 -0
- package/src/i18n/music-genre.ja.ts +302 -0
- package/src/i18n/music-genre.ko.ts +302 -0
- package/src/i18n/music-genre.pt-BR.ts +302 -0
- package/src/i18n/music-genre.ru.ts +302 -0
- package/src/i18n/music-genre.zh-CN.ts +302 -0
- package/src/i18n/music-mood.ar.ts +75 -0
- package/src/i18n/music-mood.de.ts +75 -0
- package/src/i18n/music-mood.es.ts +75 -0
- package/src/i18n/music-mood.fr.ts +75 -0
- package/src/i18n/music-mood.he.ts +75 -0
- package/src/i18n/music-mood.hi.ts +75 -0
- package/src/i18n/music-mood.ja.ts +75 -0
- package/src/i18n/music-mood.ko.ts +75 -0
- package/src/i18n/music-mood.pt-BR.ts +75 -0
- package/src/i18n/music-mood.ru.ts +75 -0
- package/src/i18n/music-mood.zh-CN.ts +75 -0
- package/src/i18n/person.ar.ts +638 -0
- package/src/i18n/person.de.ts +629 -0
- package/src/i18n/person.es.ts +645 -0
- package/src/i18n/person.fr.ts +621 -0
- package/src/i18n/person.he.ts +656 -0
- package/src/i18n/person.hi.ts +654 -0
- package/src/i18n/person.ja.ts +662 -0
- package/src/i18n/person.ko.ts +662 -0
- package/src/i18n/person.pt-BR.ts +656 -0
- package/src/i18n/person.ru.ts +656 -0
- package/src/i18n/person.zh-CN.ts +656 -0
- package/src/i18n/photo-genre.ar.ts +58 -0
- package/src/i18n/photo-genre.de.ts +52 -0
- package/src/i18n/photo-genre.es.ts +64 -0
- package/src/i18n/photo-genre.fr.ts +58 -0
- package/src/i18n/photo-genre.he.ts +62 -0
- package/src/i18n/photo-genre.hi.ts +63 -0
- package/src/i18n/photo-genre.ja.ts +65 -0
- package/src/i18n/photo-genre.ko.ts +63 -0
- package/src/i18n/photo-genre.pt-BR.ts +65 -0
- package/src/i18n/photo-genre.ru.ts +63 -0
- package/src/i18n/photo-genre.zh-CN.ts +63 -0
- package/src/i18n/photographer.ar.ts +75 -0
- package/src/i18n/photographer.de.ts +74 -0
- package/src/i18n/photographer.es.ts +77 -0
- package/src/i18n/photographer.fr.ts +77 -0
- package/src/i18n/photographer.he.ts +78 -0
- package/src/i18n/photographer.hi.ts +80 -0
- package/src/i18n/photographer.ja.ts +84 -0
- package/src/i18n/photographer.ko.ts +84 -0
- package/src/i18n/photographer.pt-BR.ts +83 -0
- package/src/i18n/photographer.ru.ts +78 -0
- package/src/i18n/photographer.zh-CN.ts +78 -0
- package/src/i18n/pose.ar.ts +95 -0
- package/src/i18n/pose.de.ts +96 -0
- package/src/i18n/pose.es.ts +104 -0
- package/src/i18n/pose.fr.ts +96 -0
- package/src/i18n/pose.he.ts +104 -0
- package/src/i18n/pose.hi.ts +104 -0
- package/src/i18n/pose.ja.ts +104 -0
- package/src/i18n/pose.ko.ts +104 -0
- package/src/i18n/pose.pt-BR.ts +104 -0
- package/src/i18n/pose.ru.ts +104 -0
- package/src/i18n/pose.zh-CN.ts +104 -0
- package/src/i18n/post-process-effects.ar.ts +25 -0
- package/src/i18n/post-process-effects.de.ts +24 -0
- package/src/i18n/post-process-effects.es.ts +26 -0
- package/src/i18n/post-process-effects.fr.ts +24 -0
- package/src/i18n/post-process-effects.he.ts +24 -0
- package/src/i18n/post-process-effects.hi.ts +26 -0
- package/src/i18n/post-process-effects.ja.ts +26 -0
- package/src/i18n/post-process-effects.ko.ts +26 -0
- package/src/i18n/post-process-effects.pt-BR.ts +24 -0
- package/src/i18n/post-process-effects.ru.ts +24 -0
- package/src/i18n/post-process-effects.zh-CN.ts +24 -0
- package/src/i18n/render-quality.ar.ts +34 -0
- package/src/i18n/render-quality.de.ts +30 -0
- package/src/i18n/render-quality.es.ts +35 -0
- package/src/i18n/render-quality.fr.ts +34 -0
- package/src/i18n/render-quality.he.ts +33 -0
- package/src/i18n/render-quality.hi.ts +39 -0
- package/src/i18n/render-quality.ja.ts +39 -0
- package/src/i18n/render-quality.ko.ts +39 -0
- package/src/i18n/render-quality.pt-BR.ts +37 -0
- package/src/i18n/render-quality.ru.ts +37 -0
- package/src/i18n/render-quality.zh-CN.ts +37 -0
- package/src/i18n/seasons.ar.ts +10 -0
- package/src/i18n/seasons.de.ts +10 -0
- package/src/i18n/seasons.es.ts +10 -0
- package/src/i18n/seasons.fr.ts +10 -0
- package/src/i18n/seasons.he.ts +10 -0
- package/src/i18n/seasons.hi.ts +10 -0
- package/src/i18n/seasons.ja.ts +10 -0
- package/src/i18n/seasons.ko.ts +10 -0
- package/src/i18n/seasons.pt-BR.ts +10 -0
- package/src/i18n/seasons.ru.ts +10 -0
- package/src/i18n/seasons.zh-CN.ts +10 -0
- package/src/i18n/setting.ar.ts +73 -0
- package/src/i18n/setting.de.ts +73 -0
- package/src/i18n/setting.es.ts +77 -0
- package/src/i18n/setting.fr.ts +73 -0
- package/src/i18n/setting.he.ts +76 -0
- package/src/i18n/setting.hi.ts +76 -0
- package/src/i18n/setting.ja.ts +78 -0
- package/src/i18n/setting.ko.ts +76 -0
- package/src/i18n/setting.pt-BR.ts +78 -0
- package/src/i18n/setting.ru.ts +76 -0
- package/src/i18n/setting.zh-CN.ts +76 -0
- package/src/i18n/style.ar.ts +55 -0
- package/src/i18n/style.de.ts +54 -0
- package/src/i18n/style.es.ts +54 -0
- package/src/i18n/style.fr.ts +54 -0
- package/src/i18n/style.he.ts +54 -0
- package/src/i18n/style.hi.ts +54 -0
- package/src/i18n/style.ja.ts +54 -0
- package/src/i18n/style.ko.ts +54 -0
- package/src/i18n/style.pt-BR.ts +56 -0
- package/src/i18n/style.ru.ts +54 -0
- package/src/i18n/style.zh-CN.ts +54 -0
- package/src/i18n/styling.ar.ts +295 -0
- package/src/i18n/styling.de.ts +285 -0
- package/src/i18n/styling.es.ts +317 -0
- package/src/i18n/styling.fr.ts +285 -0
- package/src/i18n/styling.he.ts +307 -0
- package/src/i18n/styling.hi.ts +323 -0
- package/src/i18n/styling.ja.ts +317 -0
- package/src/i18n/styling.ko.ts +311 -0
- package/src/i18n/styling.pt-BR.ts +301 -0
- package/src/i18n/styling.ru.ts +301 -0
- package/src/i18n/styling.zh-CN.ts +307 -0
- package/src/i18n/temporal.ar.ts +31 -0
- package/src/i18n/temporal.de.ts +24 -0
- package/src/i18n/temporal.es.ts +27 -0
- package/src/i18n/temporal.fr.ts +28 -0
- package/src/i18n/temporal.he.ts +31 -0
- package/src/i18n/temporal.hi.ts +31 -0
- package/src/i18n/temporal.ja.ts +31 -0
- package/src/i18n/temporal.ko.ts +31 -0
- package/src/i18n/temporal.pt-BR.ts +31 -0
- package/src/i18n/temporal.ru.ts +31 -0
- package/src/i18n/temporal.zh-CN.ts +31 -0
- package/src/i18n/transitions.ar.ts +97 -0
- package/src/i18n/transitions.de.ts +97 -0
- package/src/i18n/transitions.es.ts +97 -0
- package/src/i18n/transitions.fr.ts +97 -0
- package/src/i18n/transitions.he.ts +97 -0
- package/src/i18n/transitions.hi.ts +97 -0
- package/src/i18n/transitions.ja.ts +97 -0
- package/src/i18n/transitions.ko.ts +97 -0
- package/src/i18n/transitions.pt-BR.ts +97 -0
- package/src/i18n/transitions.ru.ts +97 -0
- package/src/i18n/transitions.zh-CN.ts +97 -0
- package/src/i18n/types.ts +158 -0
- package/src/i18n/vehicles.ar.ts +137 -0
- package/src/i18n/vehicles.de.ts +125 -0
- package/src/i18n/vehicles.es.ts +138 -0
- package/src/i18n/vehicles.fr.ts +125 -0
- package/src/i18n/vehicles.he.ts +136 -0
- package/src/i18n/vehicles.hi.ts +138 -0
- package/src/i18n/vehicles.ja.ts +138 -0
- package/src/i18n/vehicles.ko.ts +138 -0
- package/src/i18n/vehicles.pt-BR.ts +136 -0
- package/src/i18n/vehicles.ru.ts +136 -0
- package/src/i18n/vehicles.zh-CN.ts +136 -0
- package/src/i18n/voice-character.ar.ts +126 -0
- package/src/i18n/voice-character.de.ts +126 -0
- package/src/i18n/voice-character.es.ts +126 -0
- package/src/i18n/voice-character.fr.ts +126 -0
- package/src/i18n/voice-character.he.ts +126 -0
- package/src/i18n/voice-character.hi.ts +126 -0
- package/src/i18n/voice-character.ja.ts +126 -0
- package/src/i18n/voice-character.ko.ts +126 -0
- package/src/i18n/voice-character.pt-BR.ts +126 -0
- package/src/i18n/voice-character.ru.ts +126 -0
- package/src/i18n/voice-character.zh-CN.ts +126 -0
- package/src/i18n/voice-delivery.ar.ts +77 -0
- package/src/i18n/voice-delivery.de.ts +77 -0
- package/src/i18n/voice-delivery.es.ts +77 -0
- package/src/i18n/voice-delivery.fr.ts +77 -0
- package/src/i18n/voice-delivery.he.ts +77 -0
- package/src/i18n/voice-delivery.hi.ts +77 -0
- package/src/i18n/voice-delivery.ja.ts +77 -0
- package/src/i18n/voice-delivery.ko.ts +77 -0
- package/src/i18n/voice-delivery.pt-BR.ts +77 -0
- package/src/i18n/voice-delivery.ru.ts +77 -0
- package/src/i18n/voice-delivery.zh-CN.ts +77 -0
- package/src/i18n/weapons.ar.ts +115 -0
- package/src/i18n/weapons.de.ts +114 -0
- package/src/i18n/weapons.es.ts +116 -0
- package/src/i18n/weapons.fr.ts +103 -0
- package/src/i18n/weapons.he.ts +114 -0
- package/src/i18n/weapons.hi.ts +116 -0
- package/src/i18n/weapons.ja.ts +116 -0
- package/src/i18n/weapons.ko.ts +116 -0
- package/src/i18n/weapons.pt-BR.ts +114 -0
- package/src/i18n/weapons.ru.ts +114 -0
- package/src/i18n/weapons.zh-CN.ts +114 -0
- package/src/image-critic-node.ts +61 -0
- package/src/image-critic-types.ts +40 -0
- package/src/index.ts +866 -0
- package/src/inject-upstream.ts +15 -0
- package/src/inpaint-region.ts +51 -0
- package/src/json-evaluator.ts +732 -0
- package/src/json-path.ts +52 -0
- package/src/lip-sync-pricing.ts +90 -0
- package/src/list-merge.ts +40 -0
- package/src/list-sort.ts +122 -0
- package/src/list-source-resolver.ts +50 -0
- package/src/llm-models.ts +245 -0
- package/src/location-mention-slug.ts +291 -0
- package/src/location-preset-catalog-map.ts +128 -0
- package/src/loop-delimiter.ts +73 -0
- package/src/lora-routing.ts +95 -0
- package/src/lottie-overlay-catalog.ts +175 -0
- package/src/lottie-slots.ts +309 -0
- package/src/model-catalog.ts +2386 -0
- package/src/model-constants.ts +1910 -0
- package/src/model-tree.ts +120 -0
- package/src/monetization.ts +15 -0
- package/src/multi-pick.ts +42 -0
- package/src/node-default-mappings.ts +262 -0
- package/src/node-mappable-fields.ts +70 -0
- package/src/node-preset-export.ts +56 -0
- package/src/node-preset-extract.ts +147 -0
- package/src/node-refs.ts +253 -0
- package/src/node-runtime-keys.ts +117 -0
- package/src/object-aspect-defaults.ts +72 -0
- package/src/object-picker-types.ts +22 -0
- package/src/parameter-node-value.ts +284 -0
- package/src/pinterest-url.ts +28 -0
- package/src/pipeline-chat.ts +72 -0
- package/src/pipeline-defaults.ts +318 -0
- package/src/pipeline-events.ts +162 -0
- package/src/pipeline-state-types.ts +196 -0
- package/src/pipeline-types.ts +647 -0
- package/src/pipeline-validation.ts +87 -0
- package/src/presentation-types.ts +23 -0
- package/src/presentation-utils.ts +397 -0
- package/src/producer-types.ts +188 -0
- package/src/progress-curve.ts +99 -0
- package/src/provider-directive-defaults.ts +69 -0
- package/src/reduce-strategy-registry.ts +121 -0
- package/src/reference-board-templates.ts +81 -0
- package/src/reference-roles.ts +153 -0
- package/src/reference-sheet/__tests__/board-to-column.test.ts +20 -0
- package/src/reference-sheet/__tests__/catalog.test.ts +50 -0
- package/src/reference-sheet/__tests__/cost.test.ts +38 -0
- package/src/reference-sheet/__tests__/no-drift.test.ts +28 -0
- package/src/reference-sheet/__tests__/panel-plan.test.ts +61 -0
- package/src/reference-sheet/__tests__/panel-prompts.test.ts +17 -0
- package/src/reference-sheet/__tests__/plan-generation.test.ts +72 -0
- package/src/reference-sheet/__tests__/presets.test.ts +54 -0
- package/src/reference-sheet/__tests__/types.test.ts +24 -0
- package/src/reference-sheet/catalog.ts +144 -0
- package/src/reference-sheet/cost.ts +37 -0
- package/src/reference-sheet/credit-id.ts +7 -0
- package/src/reference-sheet/index.ts +8 -0
- package/src/reference-sheet/panel-plan.ts +65 -0
- package/src/reference-sheet/panel-prompts.ts +14 -0
- package/src/reference-sheet/plan-generation.ts +79 -0
- package/src/reference-sheet/presets.ts +77 -0
- package/src/reference-sheet/types.ts +92 -0
- package/src/repeat-types.ts +97 -0
- package/src/resolve-field-mappings.ts +119 -0
- package/src/route-filter.ts +80 -0
- package/src/scene-helper-types.ts +249 -0
- package/src/scene-node-types.ts +281 -0
- package/src/scraper-actors.ts +57 -0
- package/src/scraper-output-schemas.ts +25 -0
- package/src/seasons.ts +45 -0
- package/src/selector.ts +864 -0
- package/src/settled-with-limit.ts +42 -0
- package/src/shot-element.ts +43 -0
- package/src/social-media-specs.ts +121 -0
- package/src/social-post.ts +24 -0
- package/src/sub-workflow-validation.ts +78 -0
- package/src/supported-fonts.ts +40 -0
- package/src/surround.ts +113 -0
- package/src/switchx-pricing.ts +33 -0
- package/src/text-separators.ts +59 -0
- package/src/to-connected-references.ts +77 -0
- package/src/types.ts +272 -0
- package/src/variant-job-id.ts +17 -0
- package/src/vehicles.ts +213 -0
- package/src/video-analysis-pricing.ts +74 -0
- package/src/video-analysis.ts +127 -0
- package/src/video-duration.ts +25 -0
- package/src/voice-changer-models.ts +36 -0
- package/src/voice-matcher-types.ts +37 -0
- package/src/voices.ts +92 -0
- package/src/weapons.ts +190 -0
- package/src/workflow-export.ts +153 -0
|
@@ -0,0 +1,621 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// Type
|
|
5
|
+
"man": { label: "Homme", description: "Homme adulte" },
|
|
6
|
+
"woman": { label: "Femme", description: "Femme adulte" },
|
|
7
|
+
"not-defined": { label: "Non défini", description: "Genre non précisé — laissé ouvert" },
|
|
8
|
+
"beautiful-woman": { label: "Belle femme", description: "Femme classiquement belle" },
|
|
9
|
+
"girl-next-door": { label: "Fille d'à côté", description: "Sympathique, accessible, saine" },
|
|
10
|
+
"handsome-man": { label: "Bel homme", description: "Homme classiquement séduisant" },
|
|
11
|
+
"boy-next-door": { label: "Garçon d'à côté", description: "Sympathique, accessible, sain" },
|
|
12
|
+
"gentleman": { label: "Gentleman", description: "Homme raffiné, classique, soigné" },
|
|
13
|
+
"elegant-woman": { label: "Femme élégante", description: "Femme posée, raffinée" },
|
|
14
|
+
"rugged-man": { label: "Homme rude", description: "Homme buriné et rude" },
|
|
15
|
+
"bad-boy": { label: "Bad boy", description: "Masculin rebelle et provocant" },
|
|
16
|
+
"graceful-woman": { label: "Femme gracieuse", description: "Femme douce et gracieuse" },
|
|
17
|
+
"baddie": { label: "Baddie", description: "Femme assurée, tendance, stylée" },
|
|
18
|
+
"stylish-influencer": { label: "Influenceuse stylée", description: "Créatrice de contenu raffinée, référente tendance des réseaux" },
|
|
19
|
+
"stunning-model": { label: "Mannequin éblouissant", description: "Esthétique de mannequin de mode" },
|
|
20
|
+
"supermodel": { label: "Top-modèle", description: "Star iconique de podium et de couverture, du plus haut niveau" },
|
|
21
|
+
"femme-fatale": { description: "Séductrice noir attirante et dangereuse" },
|
|
22
|
+
"tough-guy": { label: "Dur à cuire", description: "Homme endurci, dur" },
|
|
23
|
+
"wise-elder": { label: "Sage aîné", description: "Aîné âgé et savant" },
|
|
24
|
+
"silver-fox": { description: "Homme âgé distingué et séduisant" },
|
|
25
|
+
"mysterious-figure": { label: "Figure mystérieuse", description: "Figure énigmatique" },
|
|
26
|
+
"femboy": { label: "Femboy", description: "Type masculin doux-féminin, style fluide en genre" },
|
|
27
|
+
"twink": { label: "Twink", description: "Type gay masculin mince, glabre et juvénile" },
|
|
28
|
+
"soft-butch": { label: "Soft Butch", description: "Femme douce, masculine de centre" },
|
|
29
|
+
"tomboy": { label: "Garçon manqué", description: "Style et énergie de garçon sur un corps féminin" },
|
|
30
|
+
"thick": { label: "Thick", description: "Silhouette voluptueuse body-positive avec courbes" },
|
|
31
|
+
"bear": { label: "Bear", description: "Type masculin grand, barbu, poilu" },
|
|
32
|
+
// Age
|
|
33
|
+
"age-baby": { label: "Bébé", description: "Moins de 2 ans" },
|
|
34
|
+
"age-child": { label: "Enfant", description: "Environ 5-12 ans" },
|
|
35
|
+
"age-teen": { label: "Adolescent", description: "13-19 ans" },
|
|
36
|
+
"age-20s": { label: "20 ans", description: "Vingtaine" },
|
|
37
|
+
"age-30s": { label: "30 ans", description: "Trentaine" },
|
|
38
|
+
"age-40s": { label: "40 ans", description: "Quarantaine" },
|
|
39
|
+
"age-50s": { label: "50 ans", description: "Cinquantaine" },
|
|
40
|
+
"age-60s": { label: "60 ans", description: "Soixantaine" },
|
|
41
|
+
"age-elderly": { label: "Âgé", description: "70 ans et plus" },
|
|
42
|
+
// Ethnicity
|
|
43
|
+
"asian-any": { label: "Asiatique (toute)", description: "Toute origine asiatique — région non précisée" },
|
|
44
|
+
"east-asian": { label: "Asie de l'Est (toute)", description: "Traits d'Asie de l'Est (large)" },
|
|
45
|
+
"chinese": { label: "Chinois", description: "Traits Han chinois" },
|
|
46
|
+
"japanese": { label: "Japonais", description: "Traits japonais" },
|
|
47
|
+
"korean": { label: "Coréen", description: "Traits coréens" },
|
|
48
|
+
"mongolian-tibetan": { label: "Mongol / Tibétain", description: "Traits mongols / tibétains" },
|
|
49
|
+
"south-asian": { label: "Asie du Sud / Indien", description: "Indien / Pakistanais / Bangladais / Sri-Lankais" },
|
|
50
|
+
"southeast-asian": { label: "Asie du Sud-Est (toute)", description: "Asie du Sud-Est (large)" },
|
|
51
|
+
"thai": { label: "Thaïlandais", description: "Traits thaïlandais" },
|
|
52
|
+
"vietnamese": { label: "Vietnamien", description: "Traits vietnamiens" },
|
|
53
|
+
"indonesian-malay": { label: "Indonésien / Malais", description: "Traits indonésiens / malais" },
|
|
54
|
+
"khmer": { label: "Khmer / Cambodgien", description: "Traits khmers / cambodgiens" },
|
|
55
|
+
"filipino": { label: "Philippin", description: "Traits philippins (asiatique + héritage espagnol)" },
|
|
56
|
+
"mena-any": { label: "Moyen-Oriental / Maghrébin (tout)", description: "Tout MENA — non précisé" },
|
|
57
|
+
"middle-eastern": { label: "Moyen-Oriental (Arabe)", description: "Traits arabes / levantins / du Golfe" },
|
|
58
|
+
"turkish": { label: "Turc", description: "Traits anatoliens turcs" },
|
|
59
|
+
"persian": { label: "Persan / Iranien", description: "Traits indo-iraniens" },
|
|
60
|
+
"israeli": { label: "Israélien", description: "Traits israéliens (méditerranéen-levantin, large)" },
|
|
61
|
+
"african": { label: "Africain (tout)", description: "Toute origine subsaharienne — région non précisée" },
|
|
62
|
+
"west-african": { label: "Africain de l'Ouest", description: "Yoruba / Igbo / Akan / Wolof" },
|
|
63
|
+
"east-african": { label: "Africain de l'Est", description: "Somali / Éthiopien / Swahili" },
|
|
64
|
+
"central-african": { label: "Africain central", description: "Bantou / Congolais / Angolais" },
|
|
65
|
+
"southern-african": { label: "Africain du Sud", description: "Zoulou / Xhosa / Sotho" },
|
|
66
|
+
"afro-caribbean": { label: "Afro-caribéen", description: "Caraïbe anglophone (Jamaïque / Trinité / Barbade)" },
|
|
67
|
+
"european-any": { label: "Européen (tout)", description: "Toute origine européenne — région non précisée" },
|
|
68
|
+
"nordic": { label: "Nordique (tout)", description: "Tout scandinave / nord-européen — région non spécifiée" },
|
|
69
|
+
"swedish": { label: "Suédois", description: "Suède — grand, souvent blond, traits fins" },
|
|
70
|
+
"norwegian": { label: "Norvégien", description: "Norvège — peau claire, souvent yeux clairs" },
|
|
71
|
+
"danish": { label: "Danois", description: "Danemark — traits doux, blond cendré courant" },
|
|
72
|
+
"finnish": { label: "Finlandais", description: "Finlande — traits ouraliens, pommettes hautes" },
|
|
73
|
+
"icelandic": { label: "Islandais", description: "Islande — mélange norrois + celtique, traits angulaires" },
|
|
74
|
+
"celtic": { label: "Celtique", description: "Traits britanniques / irlandais" },
|
|
75
|
+
"mediterranean": { label: "Méditerranéen", description: "Européen du Sud (large)" },
|
|
76
|
+
"slavic": { label: "Slave", description: "Traits d'Europe de l'Est" },
|
|
77
|
+
"czech": { label: "Tchèque", description: "Traits tchèques (slave occidental, Europe centrale)" },
|
|
78
|
+
"russian": { label: "Russe", description: "Traits russes (slave oriental)" },
|
|
79
|
+
"ukrainian": { label: "Ukrainien", description: "Traits ukrainiens (slave oriental)" },
|
|
80
|
+
"italian": { label: "Italien", description: "Traits italiens" },
|
|
81
|
+
"iberian": { label: "Ibérique (Espagnol / Portugais)", description: "Espagnol / Portugais avec héritage celtibère + maure" },
|
|
82
|
+
"french": { label: "Français", description: "Traits français (variant du nord au sud)" },
|
|
83
|
+
"germanic": { label: "Germanique", description: "Allemand / Autrichien / Néerlandais / Suisse alémanique" },
|
|
84
|
+
"greek": { label: "Grec", description: "Traits grecs" },
|
|
85
|
+
"baltic": { label: "Baltique", description: "Lituanien / Letton / Estonien" },
|
|
86
|
+
"latin-american": { label: "Latino-américain (tout)", description: "Tout latino-américain — région non précisée" },
|
|
87
|
+
"mexican-mesoamerican": { label: "Mexicain / Mésoaméricain", description: "Mexicain / Guatémaltèque / Métis d'Amérique centrale" },
|
|
88
|
+
"caribbean-latino": { label: "Latino caribéen", description: "Cubain / Dominicain / Portoricain" },
|
|
89
|
+
"brazilian": { label: "Brésilien", description: "Brésilien (portugais + africain + indigène)" },
|
|
90
|
+
"andean-indigenous": { label: "Andin / Indigène latino", description: "Quechua / Aymara / Maya / Nahua" },
|
|
91
|
+
"southern-cone": { label: "Cône sud européen", description: "Argentin / Uruguayen / Chilien (largement européen)" },
|
|
92
|
+
"indigenous-any": { label: "Indigène (tout)", description: "Tout indigène — groupe non précisé" },
|
|
93
|
+
"native-american": { label: "Amérindien", description: "Amérindien / Premières Nations" },
|
|
94
|
+
"aboriginal-australian": { label: "Aborigène australien", description: "Aborigène australien / Détroit de Torres" },
|
|
95
|
+
"pacific-islander": { label: "Insulaire du Pacifique", description: "Polynésien / Maori / Samoan / Hawaïen" },
|
|
96
|
+
"inuit": { label: "Inuit / Arctique", description: "Inuit / Yupik / Aléoute" },
|
|
97
|
+
"mixed": { label: "Métissé", description: "Héritage métissé" },
|
|
98
|
+
// Body (frame / body-mass / bust / waist / hips / silhouette)
|
|
99
|
+
"frame-petite": { label: "Menue", description: "Ossature petite et de faible stature" },
|
|
100
|
+
"frame-slim": { label: "Mince", description: "Ossature étroite et fine" },
|
|
101
|
+
"frame-average": { label: "Moyenne", description: "Ossature moyenne" },
|
|
102
|
+
"frame-broad": { label: "Large", description: "Ossature large, épaules carrées" },
|
|
103
|
+
"mass-lean": { label: "Sèche", description: "Sèche, faible masse corporelle" },
|
|
104
|
+
"mass-average": { label: "Moyenne", description: "Masse corporelle moyenne" },
|
|
105
|
+
"mass-full": { label: "Pleine", description: "Aux formes pleines" },
|
|
106
|
+
"mass-heavy": { label: "Corpulente", description: "Corpulente, forte carrure" },
|
|
107
|
+
"bust-small": { label: "Petite", description: "Petite poitrine" },
|
|
108
|
+
"bust-average": { label: "Moyenne", description: "Poitrine moyenne" },
|
|
109
|
+
"bust-full": { label: "Pleine", description: "Poitrine pleine" },
|
|
110
|
+
"bust-very-full": { label: "Très pleine", description: "Poitrine très pleine" },
|
|
111
|
+
"waist-defined": { label: "Marquée", description: "Taille marquée et cintrée" },
|
|
112
|
+
"waist-average": { label: "Moyenne", description: "Taille moyenne" },
|
|
113
|
+
"waist-straight": { label: "Droite", description: "Taille droite et peu marquée" },
|
|
114
|
+
"hips-narrow": { label: "Étroites", description: "Hanches étroites" },
|
|
115
|
+
"hips-balanced": { label: "Équilibrées", description: "Hanches équilibrées" },
|
|
116
|
+
"hips-wide": { label: "Larges", description: "Hanches larges" },
|
|
117
|
+
"silhouette-hourglass": { label: "Sablier", description: "Poitrine et hanches équilibrées, taille marquée" },
|
|
118
|
+
"silhouette-rectangular": { label: "Rectangulaire", description: "Silhouette droite et verticale" },
|
|
119
|
+
"silhouette-pear": { label: "Poire", description: "Hanches plus larges que les épaules" },
|
|
120
|
+
"silhouette-inverted": { label: "Triangle inversé", description: "Épaules larges, hanches étroites" },
|
|
121
|
+
"silhouette-athletic": { label: "Athlétique", description: "Sèche, tonique, taille en V" },
|
|
122
|
+
// Face shape
|
|
123
|
+
"face-oval": { label: "Ovale", description: "Légèrement plus long que large, courbes douces" },
|
|
124
|
+
"face-round": { label: "Rond", description: "Visage circulaire doux" },
|
|
125
|
+
"face-square": { label: "Carré", description: "Mâchoire forte, front et mâchoire de largeur égale" },
|
|
126
|
+
"face-heart": { label: "Cœur", description: "Front large, menton pointu" },
|
|
127
|
+
"face-diamond": { label: "Losange", description: "Front et menton étroits, pommettes larges" },
|
|
128
|
+
"face-oblong": { label: "Oblong", description: "Long et étroit" },
|
|
129
|
+
"face-triangular": { label: "Triangulaire", description: "Front étroit, mâchoire large" },
|
|
130
|
+
// Jawline
|
|
131
|
+
"jaw-strong": { label: "Forte", description: "Mâchoire nette et définie" },
|
|
132
|
+
"jaw-soft": { label: "Douce", description: "Mâchoire douce et arrondie" },
|
|
133
|
+
"jaw-pointed": { label: "Pointue", description: "Menton pointu, mâchoire étroite" },
|
|
134
|
+
"jaw-wide": { label: "Large", description: "Mâchoire large et imposante" },
|
|
135
|
+
"jaw-double": { label: "Double menton", description: "Double menton visible" },
|
|
136
|
+
// Eye shape
|
|
137
|
+
"eye-almond": { label: "En amande", description: "En amande, légèrement relevés" },
|
|
138
|
+
"eye-round": { label: "Ronds", description: "Yeux larges et ronds" },
|
|
139
|
+
"eye-hooded": { label: "Capuchonnés", description: "Paupière supérieure couvrant en partie le pli" },
|
|
140
|
+
"eye-monolid": { label: "Monolid", description: "Pas de pli visible, paupière lisse" },
|
|
141
|
+
"eye-deep-set": { label: "Enfoncés", description: "Plus enfoncés dans l'orbite" },
|
|
142
|
+
"eye-downturned": { label: "Tombants", description: "Coins extérieurs vers le bas" },
|
|
143
|
+
"eye-upturned": { label: "Relevés", description: "Coins extérieurs vers le haut" },
|
|
144
|
+
"eye-wide-set": { label: "Très espacés", description: "Yeux très écartés" },
|
|
145
|
+
"eye-close-set": { label: "Rapprochés", description: "Yeux très proches l'un de l'autre" },
|
|
146
|
+
// Nose
|
|
147
|
+
"nose-straight": { label: "Droit", description: "Arête droite" },
|
|
148
|
+
"nose-aquiline": { label: "Aquilin", description: "Arête recourbée et crochue" },
|
|
149
|
+
"nose-roman": { label: "Romain", description: "Arête proéminente avec léger renflement" },
|
|
150
|
+
"nose-snub": { label: "Retroussé", description: "Court, légèrement relevé" },
|
|
151
|
+
"nose-button": { label: "Bouton", description: "Petit, au bout arrondi" },
|
|
152
|
+
"nose-broad": { label: "Large", description: "Narines larges, arête large" },
|
|
153
|
+
"nose-narrow": { label: "Étroit", description: "Mince, étroit" },
|
|
154
|
+
"nose-hooked": { label: "Crochu", description: "Pointe fortement recourbée" },
|
|
155
|
+
// Lips
|
|
156
|
+
"lips-thin": { label: "Fines", description: "Lèvres fines" },
|
|
157
|
+
"lips-medium": { label: "Moyennes", description: "Volume moyen" },
|
|
158
|
+
"lips-full": { label: "Pleines", description: "Lèvres pleines et pulpeuses" },
|
|
159
|
+
"lips-wide": { label: "Larges", description: "Bouche large" },
|
|
160
|
+
"lips-cupids-bow": { label: "Arc de Cupidon", description: "Arc de Cupidon prononcé sur la lèvre supérieure" },
|
|
161
|
+
"lips-small": { label: "Petites", description: "Petite bouche" },
|
|
162
|
+
// Lip state
|
|
163
|
+
"lip-state-chapped": { label: "Gercées", description: "Lèvres craquelées, sèches, marquées par le temps" },
|
|
164
|
+
"lip-state-glossy": { label: "Brillantes", description: "Lèvres haute brillance, effet mouillé" },
|
|
165
|
+
"lip-state-bare": { label: "Nues", description: "Naturelles, sans maquillage" },
|
|
166
|
+
"lip-state-bold-red": { label: "Rouge audacieux", description: "Statement de rouge à lèvres rouge saturé" },
|
|
167
|
+
"lip-state-bitten": { label: "Mordillées", description: "Légère morsure ludique de la lèvre" },
|
|
168
|
+
"lip-state-parted": { label: "Entrouvertes", description: "Légèrement écartées, souffle d'air" },
|
|
169
|
+
"lip-state-pursed": { label: "Pincées", description: "Lèvres pressées et avancées" },
|
|
170
|
+
"lip-state-pouting": { label: "Boudeuses", description: "Moue prononcée" },
|
|
171
|
+
// Hair color
|
|
172
|
+
"hair-platinum": { label: "Platine", description: "Très pâle, platine glacial" },
|
|
173
|
+
"hair-creamy": { label: "Crème", description: "Blond crème vanille chaud" },
|
|
174
|
+
"hair-blonde": { label: "Blond", description: "Cheveux blonds classiques" },
|
|
175
|
+
"hair-honey": { label: "Miel", description: "Blond miel doré chaud" },
|
|
176
|
+
"hair-strawberry": { label: "Blond fraise", description: "Blond avec ton rosé-rouge" },
|
|
177
|
+
"hair-ash-blonde": { label: "Blond cendré", description: "Blond cendré et froid" },
|
|
178
|
+
"hair-ginger": { label: "Roux vif", description: "Roux vif (orange-rouge)" },
|
|
179
|
+
"hair-copper": { label: "Cuivre", description: "Cuivre orange-rouge vibrant" },
|
|
180
|
+
"hair-red": { label: "Rouge", description: "Cheveux rouges classiques" },
|
|
181
|
+
"hair-auburn": { label: "Auburn", description: "Brun-roux riche" },
|
|
182
|
+
"hair-burgundy": { label: "Bordeaux", description: "Rouge vin foncé" },
|
|
183
|
+
"hair-light-brown": { label: "Brun clair", description: "Cheveux brun clair" },
|
|
184
|
+
"hair-caramel": { label: "Caramel", description: "Brun caramel chaud" },
|
|
185
|
+
"hair-brown": { label: "Brun", description: "Cheveux brun moyen" },
|
|
186
|
+
"hair-chestnut": { label: "Châtain", description: "Brun châtain rougeâtre chaud" },
|
|
187
|
+
"hair-chocolate": { label: "Chocolat", description: "Brun chocolat foncé riche" },
|
|
188
|
+
"hair-dark-brown": { label: "Brun foncé", description: "Cheveux brun foncé" },
|
|
189
|
+
"hair-black": { label: "Noir", description: "Cheveux noirs classiques" },
|
|
190
|
+
"hair-jet-black": { label: "Noir de jais", description: "Noir profond avec reflets bleus" },
|
|
191
|
+
"hair-gray": { label: "Gris", description: "Cheveux gris" },
|
|
192
|
+
"hair-salt-pepper": { label: "Poivre et sel", description: "Mélange de cheveux noirs et gris" },
|
|
193
|
+
"hair-white": { label: "Blanc", description: "Cheveux blancs" },
|
|
194
|
+
"hair-silver": { label: "Argenté", description: "Argent métallique brillant" },
|
|
195
|
+
"hair-rose-gold": { label: "Or Rose", description: "Or-rose métallique doux" },
|
|
196
|
+
"hair-dyed": { label: "Coloré (tout)", description: "Coloré teinté vibrant — non spécifié" },
|
|
197
|
+
"hair-blue": { label: "Bleu", description: "Cheveux bleus teints vifs" },
|
|
198
|
+
"hair-pastel-blue": { label: "Bleu Pastel", description: "Bleu ciel pastel doux" },
|
|
199
|
+
"hair-teal": { label: "Sarcelle", description: "Bleu-vert saturé" },
|
|
200
|
+
"hair-mint": { label: "Menthe", description: "Vert menthe pâle" },
|
|
201
|
+
"hair-green": { label: "Vert", description: "Cheveux verts teints vifs" },
|
|
202
|
+
"hair-lavender": { label: "Lavande", description: "Violet lavande doux" },
|
|
203
|
+
"hair-purple": { label: "Violet", description: "Violet profond intense" },
|
|
204
|
+
"hair-magenta": { label: "Magenta", description: "Rose-violet magenta vif" },
|
|
205
|
+
"hair-pink": { label: "Rose", description: "Cheveux rose vif teints" },
|
|
206
|
+
"hair-pastel-pink": { label: "Rose Pastel", description: "Rose pastel doux barbe-à-papa" },
|
|
207
|
+
"hair-peach": { label: "Pêche", description: "Pêche blond-rosé chaud" },
|
|
208
|
+
"hair-mermaid": { label: "Sirène", description: "Mélange océanique bleu-vert-violet" },
|
|
209
|
+
"hair-rainbow": { label: "Arc-en-ciel", description: "Mèches multicolores arc-en-ciel" },
|
|
210
|
+
// Hair base
|
|
211
|
+
"base-bald": { label: "Chauve / Rasé", description: "Chauve ou tête entièrement rasée" },
|
|
212
|
+
"base-buzz": { label: "Coupe rase", description: "Cheveux très courts coupés ras" },
|
|
213
|
+
"base-short-straight": { label: "Court raide", description: "Court, texture lisse" },
|
|
214
|
+
"base-short-wavy": { label: "Court ondulé", description: "Court, texture ondulée" },
|
|
215
|
+
"base-short-curly": { label: "Court bouclé", description: "Court, texture bouclée" },
|
|
216
|
+
"base-short-coily": { label: "Court crépu", description: "Court, texture crépue serrée" },
|
|
217
|
+
"base-medium-straight": { label: "Mi-long raide", description: "Aux épaules, lisse" },
|
|
218
|
+
"base-medium-wavy": { label: "Mi-long ondulé", description: "Aux épaules, ondulé" },
|
|
219
|
+
"base-medium-curly": { label: "Mi-long bouclé", description: "Aux épaules, bouclé" },
|
|
220
|
+
"base-medium-coily": { label: "Mi-long crépu", description: "Aux épaules, crépu serré" },
|
|
221
|
+
"base-long-straight": { label: "Long raide", description: "Mi-dos, lisse" },
|
|
222
|
+
"base-long-wavy": { label: "Long ondulé", description: "Mi-dos, ondulé" },
|
|
223
|
+
"base-long-curly": { label: "Long bouclé", description: "Mi-dos, bouclé" },
|
|
224
|
+
"base-long-coily": { label: "Long crépu", description: "Mi-dos, crépu serré" },
|
|
225
|
+
"base-very-long-straight": { label: "Très long raide", description: "À la taille, lisse" },
|
|
226
|
+
"base-very-long-wavy": { label: "Très long ondulé", description: "À la taille, ondulé" },
|
|
227
|
+
"base-very-long-curly": { label: "Très long bouclé", description: "À la taille, bouclé" },
|
|
228
|
+
"base-afro": { label: "Afro", description: "Afro arrondi volumineux" },
|
|
229
|
+
"base-thinning": { label: "Clairsemé / Dégarni", description: "Cheveux visiblement clairsemés ou dégarnis" },
|
|
230
|
+
"base-wet": { label: "Mouillé", description: "Cheveux mouillés et lisses" },
|
|
231
|
+
// Eyebrows
|
|
232
|
+
"brows-natural": { label: "Naturels", description: "Sourcils naturels, non retouchés" },
|
|
233
|
+
"brows-thick": { label: "Épais / Touffus", description: "Sourcils épais et touffus" },
|
|
234
|
+
"brows-thin": { label: "Fins / Crayonnés", description: "Sourcils fins en forme de crayon" },
|
|
235
|
+
"brows-arched": { label: "Arqués", description: "Fortement arqués, courbe dramatique" },
|
|
236
|
+
"brows-straight": { label: "Droits", description: "Sourcils plats, horizontaux" },
|
|
237
|
+
"brows-bold": { label: "Marqués", description: "Sourcils définis, sombres et fournis" },
|
|
238
|
+
"brows-soft": { label: "Doux / Estompés", description: "Sourcils doux, clairs, estompés" },
|
|
239
|
+
"brows-microbladed": { label: "Microblading", description: "Forme nette dessinée / microbladée" },
|
|
240
|
+
"brows-tinted": { label: "Teintés", description: "Teintés d'une couleur différente des cheveux" },
|
|
241
|
+
"brows-unibrow": { label: "Monosourcil", description: "Monosourcil joint" },
|
|
242
|
+
// Skin tone
|
|
243
|
+
"skin-very-fair": { label: "Très claire", description: "Peau très claire / pâle" },
|
|
244
|
+
"skin-fair": { label: "Claire", description: "Peau claire" },
|
|
245
|
+
"skin-medium": { label: "Médium", description: "Tonalité de peau médium" },
|
|
246
|
+
"skin-olive": { label: "Olive", description: "Peau olive" },
|
|
247
|
+
"skin-tan": { label: "Hâlée", description: "Peau hâlée" },
|
|
248
|
+
"skin-brown": { label: "Brune", description: "Peau brune" },
|
|
249
|
+
"skin-dark": { label: "Foncée", description: "Peau foncée" },
|
|
250
|
+
// Eye color
|
|
251
|
+
"eyes-brown": { label: "Marron", description: "Yeux marron" },
|
|
252
|
+
"eyes-blue": { label: "Bleus", description: "Yeux bleus" },
|
|
253
|
+
"eyes-green": { label: "Verts", description: "Yeux verts" },
|
|
254
|
+
"eyes-hazel": { label: "Noisette", description: "Yeux noisette" },
|
|
255
|
+
"eyes-gray": { label: "Gris", description: "Yeux gris" },
|
|
256
|
+
"eyes-amber": { label: "Ambrés", description: "Yeux ambrés" },
|
|
257
|
+
"eyes-violet": { label: "Violet", description: "Yeux violets rares (Liz Taylor)" },
|
|
258
|
+
"eyes-gold": { label: "Doré", description: "Iris doré lumineux" },
|
|
259
|
+
"eyes-silver": { label: "Argenté", description: "Iris argent-gris pâle" },
|
|
260
|
+
"eyes-red": { label: "Rouge", description: "Iris rouge (albinisme / fantaisie)" },
|
|
261
|
+
"eyes-pink": { label: "Rose", description: "Iris rose doux (albinos / fantaisie)" },
|
|
262
|
+
"eyes-turquoise": { label: "Turquoise", description: "Iris turquoise bleu-vert vif" },
|
|
263
|
+
// Eye state
|
|
264
|
+
"eye-state-closed": { label: "Fermés", description: "Yeux complètement fermés, paisible" },
|
|
265
|
+
"eye-state-half-lidded": { label: "Mi-clos", description: "Regard somnolent paupières lourdes" },
|
|
266
|
+
"eye-state-wide-eyed": { label: "Yeux écarquillés", description: "Yeux grands ouverts, alertes / surpris" },
|
|
267
|
+
"eye-state-staring-camera": { label: "Fixant la caméra", description: "Contact visuel direct ininterrompu avec l'objectif" },
|
|
268
|
+
"eye-state-gazing-away": { label: "Regard détourné", description: "Regardant hors-champ, contemplatif" },
|
|
269
|
+
"eye-state-gazing-up": { label: "Regard levé", description: "Yeux levés vers quelque chose au-dessus" },
|
|
270
|
+
"eye-state-gazing-down": { label: "Regard baissé", description: "Yeux baissés" },
|
|
271
|
+
"eye-state-glassy": { label: "Embués", description: "Yeux humides / voilés de larmes" },
|
|
272
|
+
// Facial hair
|
|
273
|
+
"face-clean-shaven": { label: "Rasé de près", description: "Visage rasé de près" },
|
|
274
|
+
"face-stubble": { label: "Barbe naissante", description: "Barbe légère naissante" },
|
|
275
|
+
"face-mustache": { label: "Moustache", description: "Moustache" },
|
|
276
|
+
"face-goatee": { label: "Bouc", description: "Bouc" },
|
|
277
|
+
"face-short-beard": { label: "Barbe courte", description: "Barbe courte taillée" },
|
|
278
|
+
"face-full-beard": { label: "Barbe pleine", description: "Barbe épaisse fournie" },
|
|
279
|
+
// Skin texture
|
|
280
|
+
"texture-smooth": { label: "Lisse", description: "Peau impeccable et soyeuse" },
|
|
281
|
+
"texture-wrinkled": { label: "Ridée", description: "Peau âgée, profondément ridée" },
|
|
282
|
+
"texture-goosebumps": { label: "Chair de poule", description: "Chair de poule sur la peau" },
|
|
283
|
+
"texture-dewy": { label: "Rosée", description: "Peau rayonnante, fraîche, en effet rosée" },
|
|
284
|
+
"texture-glistening": { label: "Luisante", description: "Brillance de sueur ou d'huile" },
|
|
285
|
+
"texture-weathered": { label: "Burinée", description: "Peau rugueuse marquée par le soleil" },
|
|
286
|
+
"texture-porcelain": { label: "Porcelaine", description: "Peau porcelaine impeccable presque translucide" },
|
|
287
|
+
"texture-sun-kissed": { label: "Hâlée par le soleil", description: "Hâle chaud avec lueur saine" },
|
|
288
|
+
"texture-tanned": { label: "Bronzée", description: "Peau profondément, uniformément bronzée" },
|
|
289
|
+
"texture-tan-lines": { label: "Marques de bronzage", description: "Marques visibles de maillot de bain" },
|
|
290
|
+
"texture-freckled": { label: "Tachetée de rousseur", description: "Taches de rousseur sur les joues et le nez" },
|
|
291
|
+
"texture-ruddy": { label: "Rougeaude", description: "Joues et nez rosées et chaudes" },
|
|
292
|
+
"texture-ashen": { label: "Cendreuse / Pâle", description: "Pâle froide, presque exsangue" },
|
|
293
|
+
"texture-oily": { label: "Grasse / Brillante", description: "Légère brillance grasse sur la zone T" },
|
|
294
|
+
"texture-matte": { label: "Mate", description: "Finition mate sans pores" },
|
|
295
|
+
"texture-blemished": { label: "Marquée", description: "Imperfections visibles, peau réelle authentique" },
|
|
296
|
+
"texture-baby-soft": { label: "Douce comme un bébé", description: "Peau lisse, à pores fins, jeune" },
|
|
297
|
+
"texture-shower-fresh-wet": { label: "Mouillée fraîche de douche", description: "Peau mouillée juste sortie de douche avec gouttes d'eau" },
|
|
298
|
+
// Distinctive features
|
|
299
|
+
"feature-glasses": { label: "Lunettes", description: "Porte des lunettes" },
|
|
300
|
+
"feature-freckles": { label: "Taches de rousseur", description: "Taches de rousseur visibles" },
|
|
301
|
+
"feature-tattoos": { label: "Tatouages", description: "Tatouages visibles" },
|
|
302
|
+
"feature-scar": { label: "Cicatrice", description: "Cicatrice faciale" },
|
|
303
|
+
"feature-dimples": { label: "Fossettes", description: "Joues à fossettes" },
|
|
304
|
+
"feature-piercing": { label: "Piercing", description: "Piercing visible" },
|
|
305
|
+
"feature-birthmark": { label: "Tache de naissance", description: "Tache de naissance visible sur le visage ou l'épaule" },
|
|
306
|
+
"feature-mole": { label: "Grain de beauté", description: "Un grain de beauté proéminent, souvent près de la lèvre supérieure" },
|
|
307
|
+
"feature-gap-teeth": { label: "Dents écartées", description: "Espace entre les dents de devant" },
|
|
308
|
+
"feature-aegyo-sal": { description: "Pli sous l'œil, prisé en K-beauté" },
|
|
309
|
+
"feature-eye-bags": { label: "Cernes", description: "Légers cernes sombres sous les yeux" },
|
|
310
|
+
"feature-dimpled-chin": { label: "Menton à fossette", description: "Légère fossette dans le menton" },
|
|
311
|
+
"feature-cleft-chin": { label: "Menton fendu", description: "Fente verticale définie au menton" },
|
|
312
|
+
"feature-heterochromia": { label: "Hétérochromie", description: "Chaque iris d'une couleur différente" },
|
|
313
|
+
"feature-vitiligo": { label: "Vitiligo", description: "Plaques de peau dépigmentée" },
|
|
314
|
+
"feature-sleeve-tattoo": { label: "Tatouage manche", description: "Tatouage en manche complet sur un bras" },
|
|
315
|
+
"feature-face-tattoo": { label: "Tatouage facial", description: "Petit tatouage facial près de l'œil ou de la pommette" },
|
|
316
|
+
"feature-hand-tattoos": { label: "Tatouages aux mains", description: "Tatouages sur les phalanges / doigts" },
|
|
317
|
+
"feature-visible-piercings": { label: "Piercings visibles", description: "Plusieurs piercings visibles (septum, nez, lèvre, multi-oreille)" },
|
|
318
|
+
"feature-bare-shoulders": { label: "Épaules nues", description: "Épaules nues exposées" },
|
|
319
|
+
"feature-collarbone-visible": { label: "Clavicule visible", description: "Clavicule proéminente captant la lumière" },
|
|
320
|
+
"feature-midriff-visible": { label: "Ventre visible", description: "Ventre exposé entre haut et bas" },
|
|
321
|
+
"feature-navel-visible": { label: "Nombril visible", description: "Nombril visible sur ventre nu" },
|
|
322
|
+
"feature-elongated-neck": { label: "Cou allongé", description: "Long cou de cygne" },
|
|
323
|
+
"feature-back-tattoo": { label: "Tatouage dans le dos", description: "Grande pièce sur tout le dos" },
|
|
324
|
+
"feature-chest-tattoo": { label: "Tatouage sur la poitrine", description: "Tatouage en travers de la poitrine / décolleté" },
|
|
325
|
+
"feature-leg-tattoo": { label: "Tatouage sur la jambe", description: "Tatouage visible sur la jambe / le mollet / la cuisse" },
|
|
326
|
+
"feature-forearm-tattoo": { label: "Tatouage sur l'avant-bras", description: "Tatouage sur l'avant-bras intérieur ou extérieur" },
|
|
327
|
+
"feature-ear-piercings": { label: "Piercings d'oreille", description: "Plusieurs piercings d'oreille empilés (cartilage, hélix, conque)" },
|
|
328
|
+
"feature-lip-piercing": { label: "Piercing à la lèvre", description: "Anneau de lèvre / labret" },
|
|
329
|
+
"feature-nostril-piercing": { label: "Piercing à la narine", description: "Une seule pierre ou anneau à la narine" },
|
|
330
|
+
"eye-double-eyelid": { label: "Double paupière", description: "Pli supérieur de paupière défini" },
|
|
331
|
+
|
|
332
|
+
// ----- New age entries -----
|
|
333
|
+
"age-toddler": { label: "Tout-petit", description: "Environ 2 à 3 ans" },
|
|
334
|
+
"age-young-child": { label: "Jeune enfant", description: "Environ 4 à 6 ans" },
|
|
335
|
+
"age-pre-teen": { label: "Pré-adolescent", description: "Environ 10 à 12 ans" },
|
|
336
|
+
"age-early-teen": { label: "Jeune adolescent", description: "Environ 13 à 15 ans" },
|
|
337
|
+
"age-late-teen": { label: "Adolescent plus âgé", description: "Environ 16 à 19 ans" },
|
|
338
|
+
"age-early-20s": { label: "Début vingtaine", description: "Environ 20 à 23 ans" },
|
|
339
|
+
"age-late-20s": { label: "Fin vingtaine", description: "Environ 24 à 29 ans" },
|
|
340
|
+
"age-custom": { label: "Âge personnalisé...", description: "Spécifier un âge précis en années" },
|
|
341
|
+
|
|
342
|
+
// ----- New Type — Primitive / Wild -----
|
|
343
|
+
"caveman": { label: "Homme des cavernes", description: "Homme primitif de l'âge de pierre" },
|
|
344
|
+
"cavewoman": { label: "Femme des cavernes", description: "Femme primitive de l'âge de pierre" },
|
|
345
|
+
"apeman": { label: "Homme-singe", description: "Hybride mi-humain mi-singe" },
|
|
346
|
+
"feral-wildman": { label: "Sauvage féral", description: "Humain sauvage primal aux cheveux hirsutes" },
|
|
347
|
+
"neanderthal": { label: "Néandertal", description: "Espèce humaine pré-moderne" },
|
|
348
|
+
|
|
349
|
+
// ----- New Type — Fantasy -----
|
|
350
|
+
"elf-man": { label: "Elfe (homme)", description: "Humanoïde masculin aux oreilles pointues" },
|
|
351
|
+
"elf-woman": { label: "Elfe (femme)", description: "Humanoïde féminin aux oreilles pointues" },
|
|
352
|
+
"elf": { label: "Elfe", description: "Humanoïde élancé aux oreilles pointues" },
|
|
353
|
+
"half-elf": { label: "Demi-elfe", description: "Métis humain-elfe" },
|
|
354
|
+
"dwarf": { label: "Nain", description: "Humanoïde trapu et barbu" },
|
|
355
|
+
"orc": { label: "Orque", description: "Humanoïde massif aux défenses" },
|
|
356
|
+
"goblin": { label: "Gobelin", description: "Petit humanoïde malicieux" },
|
|
357
|
+
"tiefling": { label: "Tiefling", description: "Humanoïde aux cornes et héritage infernal" },
|
|
358
|
+
"faun": { label: "Faune / Satyre", description: "Humanoïde aux pattes de chèvre et cornes" },
|
|
359
|
+
"centaur": { label: "Centaure", description: "Torse humain sur corps de cheval" },
|
|
360
|
+
"vampire-man": { label: "Vampire (homme)", description: "Immortel pâle masculin aux crocs" },
|
|
361
|
+
"vampire-woman": { label: "Vampire (femme)", description: "Immortelle pâle féminine aux crocs" },
|
|
362
|
+
"vampire": { label: "Vampire", description: "Immortel pâle aux crocs" },
|
|
363
|
+
"werewolf": { label: "Loup-garou", description: "Lycanthrope partiellement transformé" },
|
|
364
|
+
"mermaid": { label: "Sirène", description: "Humanoïde féminine à queue de poisson" },
|
|
365
|
+
"merman": { label: "Triton", description: "Humanoïde masculin à queue de poisson" },
|
|
366
|
+
"dragonkin": { label: "Dragonkin", description: "Humanoïde draconique écailleux" },
|
|
367
|
+
"wizard": { label: "Mage", description: "Lanceur de sorts masculin en robe" },
|
|
368
|
+
"witch": { label: "Sorcière", description: "Lanceuse de sorts féminine en robe" },
|
|
369
|
+
"sorcerer": { label: "Ensorceleur", description: "Homme magique aux robes flottantes" },
|
|
370
|
+
"sorceress": { label: "Ensorceleuse", description: "Femme magique aux robes flottantes" },
|
|
371
|
+
"knight-man": { label: "Chevalier (homme)", description: "Guerrier masculin en armure de plates" },
|
|
372
|
+
"knight-woman": { label: "Chevalière", description: "Guerrière en armure de plates" },
|
|
373
|
+
"knight": { label: "Chevalier", description: "Guerrier en armure de plates" },
|
|
374
|
+
"barbarian-man": { label: "Barbare (homme)", description: "Guerrier robuste masculin vêtu de fourrures" },
|
|
375
|
+
"barbarian-woman": { label: "Barbare (femme)", description: "Guerrière robuste vêtue de fourrures" },
|
|
376
|
+
"barbarian": { label: "Barbare", description: "Guerrier robuste vêtu de fourrures" },
|
|
377
|
+
"druid": { label: "Druide", description: "Mystique en robe lié à la nature" },
|
|
378
|
+
"ranger": { label: "Rôdeur", description: "Archer encapuchonné des terres sauvages" },
|
|
379
|
+
"necromancer": { label: "Nécromancien", description: "Pâle lanceur de sorts noirs" },
|
|
380
|
+
"prince": { label: "Prince", description: "Jeune homme royal" },
|
|
381
|
+
"princess": { label: "Princesse", description: "Jeune femme royale" },
|
|
382
|
+
|
|
383
|
+
// ----- New Type — Mythic / Divine -----
|
|
384
|
+
"angel": { label: "Ange", description: "Humanoïde divin ailé" },
|
|
385
|
+
"demon": { label: "Démon", description: "Humanoïde infernal aux cornes" },
|
|
386
|
+
"ghost": { label: "Fantôme", description: "Figure spectrale translucide" },
|
|
387
|
+
"valkyrie": { label: "Valkyrie", description: "Guerrière nordique des esprits" },
|
|
388
|
+
"god": { label: "Dieu", description: "Divinité masculine" },
|
|
389
|
+
"goddess": { label: "Déesse", description: "Divinité féminine" },
|
|
390
|
+
|
|
391
|
+
// ----- New Type — Sci-Fi -----
|
|
392
|
+
"android-man": { label: "Androïde (homme)", description: "Robot humanoïde masculin" },
|
|
393
|
+
"android-woman": { label: "Androïde (femme)", description: "Robot humanoïde féminin" },
|
|
394
|
+
"android-neutral": { label: "Androïde", description: "Robot humanoïde androgyne" },
|
|
395
|
+
"cyborg-man": { label: "Cyborg (homme)", description: "Hybride humain-machine masculin" },
|
|
396
|
+
"cyborg-woman": { label: "Cyborg (femme)", description: "Hybride humain-machine féminin" },
|
|
397
|
+
"cyborg": { label: "Cyborg", description: "Hybride humain-machine androgyne" },
|
|
398
|
+
"robot": { label: "Robot", description: "Humanoïde entièrement mécanique" },
|
|
399
|
+
"alien": { label: "Extraterrestre", description: "Humanoïde non humain" },
|
|
400
|
+
"astronaut": { label: "Astronaute", description: "Explorateur spatial en combinaison" },
|
|
401
|
+
"space-marine": { label: "Marine spatial", description: "Soldat en armure motorisée" },
|
|
402
|
+
"ai-hologram": { label: "Hologramme IA", description: "Figure de lumière volumétrique" },
|
|
403
|
+
|
|
404
|
+
// ----- New Type — Heroes & Villains -----
|
|
405
|
+
"superhero": { label: "Super-héros", description: "Héros masqué et capé" },
|
|
406
|
+
"superheroine": { label: "Super-héroïne", description: "Héroïne masquée et capée" },
|
|
407
|
+
"masked-vigilante": { label: "Justicier masqué", description: "Héros en costume sombre" },
|
|
408
|
+
"supervillain": { label: "Super-vilain", description: "Archétype théâtral du mal" },
|
|
409
|
+
"caped-crusader-man": { label: "Croisé encapé (homme)", description: "Héros sombre masculin en armure et cape" },
|
|
410
|
+
"caped-crusader-woman": { label: "Croisée encapée (femme)", description: "Héroïne sombre en armure et cape" },
|
|
411
|
+
"caped-crusader": { label: "Croisé encapé", description: "Héros sombre en armure et cape" },
|
|
412
|
+
"super-soldier": { label: "Super-soldat", description: "Guerrier patriotique en exo-armure" },
|
|
413
|
+
"mutant": { label: "Mutant", description: "Humain avec une ou deux mutations visibles" },
|
|
414
|
+
"magical-girl": { label: "Magical Girl", description: "Archétype d'héroïne transformiste" },
|
|
415
|
+
// ----- New Type — Hybrid / Anthro -----
|
|
416
|
+
"catgirl": { label: "Catgirl", description: "Femme aux oreilles et queue de chat" },
|
|
417
|
+
"catboy": { label: "Catboy", description: "Homme aux oreilles et queue de chat" },
|
|
418
|
+
"anthro": { label: "Anthropomorphe", description: "Humanoïde bipède à tête d'animal" },
|
|
419
|
+
|
|
420
|
+
// ----- New Type — Iconic / Public Domain -----
|
|
421
|
+
"sherlock-holmes": { label: "Sherlock Holmes", description: "Détective consultant victorien" },
|
|
422
|
+
"dracula": { label: "Comte Dracula", description: "Comte vampire gothique de Stoker" },
|
|
423
|
+
"frankenstein-monster": { label: "Monstre de Frankenstein", description: "Créature réanimée de Shelley" },
|
|
424
|
+
"phantom-opera": { label: "Fantôme de l'Opéra", description: "Reclus opératique masqué de Leroux" },
|
|
425
|
+
"mr-hyde": { label: "M. Hyde", description: "L'alter ego monstrueux de Stevenson" },
|
|
426
|
+
"king-arthur": { label: "Roi Arthur", description: "Roi médiéval légendaire" },
|
|
427
|
+
"merlin": { label: "Merlin", description: "Sorcier conseiller arthurien" },
|
|
428
|
+
"robin-hood": { label: "Robin des Bois", description: "Archer hors-la-loi de la forêt" },
|
|
429
|
+
"joan-of-arc": { label: "Jeanne d'Arc", description: "Guerrière médiévale en armure" },
|
|
430
|
+
"cleopatra": { label: "Cléopâtre", description: "Dernière pharaonne d'Égypte" },
|
|
431
|
+
"captain-nemo": { label: "Capitaine Nemo", description: "Capitaine de sous-marin de Verne" },
|
|
432
|
+
"alice-wonderland": { label: "Alice (au pays des merveilles)", description: "La fillette du pays des merveilles de Carroll" },
|
|
433
|
+
"peter-pan": { label: "Peter Pan", description: "Le garçon qui ne grandit jamais" },
|
|
434
|
+
"dorothy-oz": { label: "Dorothée (Oz)", description: "Fille d'Oz en gingham bleu" },
|
|
435
|
+
"tin-man": { label: "Homme de Fer-Blanc", description: "Bûcheron en fer-blanc d'Oz" },
|
|
436
|
+
"scarecrow-oz": { label: "Épouvantail (Oz)", description: "Épouvantail de paille d'Oz" },
|
|
437
|
+
"cowardly-lion": { label: "Lion poltron", description: "Lion anthropomorphe d'Oz" },
|
|
438
|
+
"santa-claus": { label: "Père Noël", description: "Donneur de cadeaux de Noël" },
|
|
439
|
+
"grim-reaper": { label: "Faucheuse", description: "Personnification de la Mort" },
|
|
440
|
+
// ----- New Type — Warriors / Martial -----
|
|
441
|
+
"ninja": { description: "Assassin shinobi furtif" },
|
|
442
|
+
"kunoichi": { description: "Femme ninja" },
|
|
443
|
+
"samurai-man": { label: "Samouraï (homme)", description: "Guerrier japonais blindé masculin" },
|
|
444
|
+
"samurai-woman": { label: "Samouraï (femme)", description: "Femme samouraï (onna-musha)" },
|
|
445
|
+
"samurai": { label: "Samouraï", description: "Guerrier japonais blindé" },
|
|
446
|
+
"karate-fighter": { label: "Karatéka", description: "Pratiquant de karaté en kimono" },
|
|
447
|
+
"kung-fu-master": { label: "Maître de kung-fu", description: "Adepte d'arts martiaux chinois" },
|
|
448
|
+
"shaolin-monk": { label: "Moine Shaolin", description: "Moine guerrier bouddhiste" },
|
|
449
|
+
"sumo-wrestler": { label: "Lutteur de sumo", description: "Combattant japonais de sumo" },
|
|
450
|
+
"gladiator": { label: "Gladiateur", description: "Combattant d'arène romain" },
|
|
451
|
+
"spartan-warrior": { label: "Guerrier spartiate", description: "Hoplite grec ancien" },
|
|
452
|
+
"viking-warrior": { label: "Guerrier viking", description: "Pillard nordique" },
|
|
453
|
+
"mongol-warrior": { label: "Guerrier mongol", description: "Archer à cheval des steppes" },
|
|
454
|
+
"centurion": { description: "Officier légionnaire romain" },
|
|
455
|
+
"crusader": { label: "Croisé", description: "Chevalier croisé médiéval" },
|
|
456
|
+
"pirate": { description: "Pirate / boucanier de l'âge d'or" },
|
|
457
|
+
"musketeer": { label: "Mousquetaire", description: "Bretteur français du XVIIe siècle" },
|
|
458
|
+
|
|
459
|
+
// ----- New Type — Professions / Roles -----
|
|
460
|
+
"police-officer": { label: "Policier(ère)", description: "Officier de police en uniforme" },
|
|
461
|
+
"policeman": { label: "Policier", description: "Policier homme" },
|
|
462
|
+
"policewoman": { label: "Policière", description: "Policière femme" },
|
|
463
|
+
"firefighter": { label: "Pompier", description: "Sapeur-pompier en tenue" },
|
|
464
|
+
"doctor": { label: "Médecin", description: "Médecin en blouse blanche" },
|
|
465
|
+
"surgeon": { label: "Chirurgien(ne)", description: "Chirurgien de bloc opératoire" },
|
|
466
|
+
"nurse": { label: "Infirmier(ère)", description: "Personnel infirmier d'hôpital" },
|
|
467
|
+
"chef": { label: "Chef cuisinier", description: "Cuisinier en uniforme" },
|
|
468
|
+
"teacher": { label: "Enseignant(e)", description: "Éducateur en classe" },
|
|
469
|
+
"priest": { label: "Prêtre", description: "Prêtre catholique" },
|
|
470
|
+
"nun": { label: "Religieuse", description: "Religieuse catholique" },
|
|
471
|
+
"soldier": { label: "Soldat", description: "Militaire moderne" },
|
|
472
|
+
"lawyer": { label: "Avocat(e)", description: "Avocat en costume" },
|
|
473
|
+
"judge": { label: "Juge", description: "Magistrat en robe" },
|
|
474
|
+
"scientist": { label: "Scientifique", description: "Chercheur en blouse" },
|
|
475
|
+
"pilot": { label: "Pilote", description: "Pilote de ligne" },
|
|
476
|
+
"flight-attendant": { label: "Hôte(sse) de l'air", description: "Membre d'équipage de cabine" },
|
|
477
|
+
"construction-worker": { label: "Ouvrier du bâtiment", description: "Bâtisseur avec casque" },
|
|
478
|
+
"businessman": { label: "Homme d'affaires", description: "Homme en costume" },
|
|
479
|
+
"businesswoman": { label: "Femme d'affaires", description: "Femme en tailleur" },
|
|
480
|
+
"farmer": { label: "Agriculteur(trice)", description: "Travailleur agricole" },
|
|
481
|
+
"mechanic": { label: "Mécanicien(ne)", description: "Mécanicien auto/industriel" },
|
|
482
|
+
"artist": { label: "Artiste", description: "Peintre / artiste visuel" },
|
|
483
|
+
"musician": { label: "Musicien(ne)", description: "Interprète avec instrument" },
|
|
484
|
+
"athlete": { label: "Athlète", description: "Sportif professionnel" },
|
|
485
|
+
"detective": { label: "Détective", description: "Enquêteur en civil" },
|
|
486
|
+
"journalist": { label: "Journaliste", description: "Reporter avec carnet" },
|
|
487
|
+
"barista": { description: "Serveur de café" },
|
|
488
|
+
|
|
489
|
+
// Regional Aesthetic
|
|
490
|
+
"cali-beach": { label: "Plage californienne", description: "Esthétique décontractée de plage californienne" },
|
|
491
|
+
"valley-girl": { label: "Valley Girl", description: "Esthétique des vallées de Californie du Sud (féminin)" },
|
|
492
|
+
"norcal-hippie": { label: "Hippie NorCal", description: "Esthétique hippie de Berkeley / Bay-Area en Californie du Nord" },
|
|
493
|
+
"boho-la": { label: "Bohème LA", description: "Esthétique bohème des canyons de Los Angeles (féminin)" },
|
|
494
|
+
"texas-cowgirl": { label: "Cow-girl du Texas", description: "Esthétique western ranch-country du Texas (féminin)" },
|
|
495
|
+
"texas-cowboy": { label: "Cow-boy du Texas", description: "Esthétique western ranch-country du Texas (masculin)" },
|
|
496
|
+
"southern-belle": { label: "Southern Belle", description: "Esthétique antebellum-gentility de Charleston / Savannah (féminin)" },
|
|
497
|
+
"southern-gentleman": { label: "Gentleman du Sud", description: "Esthétique de gentility du vieux Sud (masculin)" },
|
|
498
|
+
"miami-latina": { label: "Latina de Miami", description: "Esthétique caribéenne-latine de South Beach (féminin)" },
|
|
499
|
+
"miami-latino": { label: "Latino de Miami", description: "Esthétique caribéenne-latine de South Beach (masculin)" },
|
|
500
|
+
"hawaii-island": { label: "Île d'Hawaï", description: "Esthétique hawaïenne polynésienne-pacifique" },
|
|
501
|
+
"nyc-fashion": { label: "Mode NYC", description: "Esthétique mode-éditoriale de Manhattan (féminin)" },
|
|
502
|
+
"nyc-sharp": { label: "NYC Sharp", description: "Esthétique tailleur-puissant de Manhattan (masculin)" },
|
|
503
|
+
"brooklyn-hipster": { label: "Hipster de Brooklyn", description: "Esthétique classe-créative de Williamsburg" },
|
|
504
|
+
"new-england-prep": { label: "Preppy Nouvelle-Angleterre", description: "Esthétique preppy old-money de Cape Cod / Nantucket" },
|
|
505
|
+
"pnw-granola": { label: "Granola PNW", description: "Esthétique outdoor de Portland / Seattle" },
|
|
506
|
+
"nashville-country": { label: "Country Nashville", description: "Esthétique country-pop moderne de Music-City (féminin)" },
|
|
507
|
+
"nashville-cowboy": { label: "Cow-boy Nashville", description: "Esthétique cow-boy moderne de Music-City (masculin)" },
|
|
508
|
+
"vegas-glam": { label: "Glam Vegas", description: "Esthétique glamour du Strip de Las Vegas (féminin)" },
|
|
509
|
+
"vegas-suit": { label: "Costume Vegas", description: "Esthétique en costume du Strip de Las Vegas (masculin)" },
|
|
510
|
+
"harlem-classic": { label: "Harlem classique", description: "Esthétique Black-New-York patrimoniale, élégance jazz-age" },
|
|
511
|
+
"atl-southern": { label: "ATL Sudiste", description: "Esthétique hip-hop / R&B Black-Sud d'Atlanta" },
|
|
512
|
+
"nola-creole": { label: "NOLA Créole", description: "Esthétique louisianaise franco-caribéenne-africaine de La Nouvelle-Orléans" },
|
|
513
|
+
"dmv-go-go": { label: "DMV Go-Go", description: "Esthétique go-go Black-DMV de DC / Maryland / Virginie" },
|
|
514
|
+
"west-coast-hip-hop": { label: "Côte Ouest", description: "Esthétique hip-hop côte Ouest de South Central / Compton" },
|
|
515
|
+
"chicago-south-side": { label: "Chicago South Side", description: "Esthétique Black-urbaine du Midwest, Chicago" },
|
|
516
|
+
"parisienne": { label: "Parisienne", description: "Esthétique chic-française rive-gauche de Paris (féminin)" },
|
|
517
|
+
"parisian-flaneur": { label: "Flâneur parisien", description: "Esthétique chic-française rive-gauche de Paris (masculin)" },
|
|
518
|
+
"milanese-fashion": { label: "Mode milanaise", description: "Esthétique italienne haute-couture milanaise" },
|
|
519
|
+
"sicilian-beach": { label: "Plage sicilienne", description: "Esthétique méditerranéenne de plage du sud de l'Italie" },
|
|
520
|
+
"madrileña": { label: "Madrileña", description: "Esthétique espagnole de Madrid (féminin)" },
|
|
521
|
+
"madrileño": { label: "Madrileño", description: "Esthétique espagnole de Madrid (masculin)" },
|
|
522
|
+
"catalan-modern": { label: "Catalan moderne", description: "Esthétique design-méditerranéen de Barcelone" },
|
|
523
|
+
"greek-mediterranean": { label: "Grec méditerranéen", description: "Esthétique grecque des îles de la mer Égée" },
|
|
524
|
+
"scandi-minimal": { label: "Scandi minimaliste", description: "Esthétique minimaliste aux lignes épurées nordiques" },
|
|
525
|
+
"english-rose": { label: "English Rose", description: "Esthétique anglaise de la campagne (féminin)" },
|
|
526
|
+
"london-prep": { label: "Preppy londonien", description: "Esthétique britannique raffinée de Mayfair / Chelsea (masculin)" },
|
|
527
|
+
"manchester-indie": { label: "Indie Manchester", description: "Esthétique cool-ouvrière concerts-et-pluie du nord de l'Angleterre" },
|
|
528
|
+
"berlin-alt": { label: "Berlin Alt", description: "Esthétique contre-culture techno-et-art de Kreuzberg" },
|
|
529
|
+
"munich-traditional": { label: "Munich traditionnel", description: "Esthétique bavaroise traditionnelle Oktoberfest" },
|
|
530
|
+
"eastern-european-glam": { label: "Glam d'Europe de l'Est", description: "Esthétique glamour-hivernal de Moscou / Kyiv (féminin)" },
|
|
531
|
+
"eastern-european-stoic": { label: "Stoïque d'Europe de l'Est", description: "Esthétique d'assurance burinée de Moscou / Kyiv (masculin)" },
|
|
532
|
+
"tokyo-harajuku": { label: "Tokyo Harajuku", description: "Esthétique street japonaise expressive et ludique de Tokyo" },
|
|
533
|
+
"ginza-office": { label: "Ginza Office", description: "Esthétique japonaise corporate-élégante de Ginza, Tokyo" },
|
|
534
|
+
"shibuya-streetwear": { label: "Streetwear Shibuya", description: "Esthétique street-fashion de Shibuya, Tokyo" },
|
|
535
|
+
"osaka-everyday": { label: "Osaka quotidien", description: "Esthétique chaleureuse et décontractée du Kansai à Osaka" },
|
|
536
|
+
"seoul-k-pop": { label: "Séoul K-Pop", description: "Esthétique pop-coréenne soignée de Séoul" },
|
|
537
|
+
"gangnam-glam": { label: "Glam Gangnam", description: "Esthétique du quartier-luxe coréen de Gangnam à Séoul" },
|
|
538
|
+
"shanghai-modern": { label: "Shanghai moderne", description: "Esthétique métropolitaine chinoise de Shanghai" },
|
|
539
|
+
"beijing-hutong": { label: "Beijing Hutong", description: "Esthétique tradition-rencontre-modernité des hutongs de Pékin" },
|
|
540
|
+
"hong-kong-cinematic": { label: "Hong Kong cinématique", description: "Esthétique néon-noir Wong-Kar-Wai de Hong Kong" },
|
|
541
|
+
"mumbai-bollywood": { label: "Mumbai Bollywood", description: "Esthétique de l'industrie cinématographique indienne de Mumbai" },
|
|
542
|
+
"south-india-traditional": { label: "Sud de l'Inde traditionnel", description: "Esthétique classique des villes-temples du Tamil Nadu / Kerala" },
|
|
543
|
+
"bangkok-street": { label: "Bangkok Street", description: "Esthétique néon-urbaine des marchés nocturnes thaïlandais de Bangkok" },
|
|
544
|
+
"carioca-rio": { label: "Carioca (Rio)", description: "Esthétique brésilienne plage-et-musique-favela de Rio de Janeiro" },
|
|
545
|
+
"paulista": { label: "Paulista (São Paulo)", description: "Esthétique brésilienne classe-créative métropolitaine de São Paulo" },
|
|
546
|
+
"buenos-aires-tango": { label: "Tango Buenos Aires", description: "Esthétique tango de Recoleta / San Telmo à Buenos Aires (féminin)" },
|
|
547
|
+
"porteño": { label: "Porteño", description: "Esthétique milonguero raffinée de Buenos Aires (masculin)" },
|
|
548
|
+
"mexico-city-chic": { label: "Mexico chic", description: "Esthétique mexicaine moderne de Roma / Polanco à CDMX" },
|
|
549
|
+
"chilango-traditional": { label: "Chilango traditionnel", description: "Esthétique chaleureuse folk-et-fête de Mexico" },
|
|
550
|
+
"bogota-cosmopolitan": { label: "Bogotá cosmopolite", description: "Esthétique andine raffinée de la capitale colombienne, Bogotá" },
|
|
551
|
+
"beirut-riviera": { label: "Riviera de Beyrouth", description: "Esthétique cosmopolite méditerranéenne libanaise" },
|
|
552
|
+
"tel-aviv-beach": { label: "Plage de Tel-Aviv", description: "Esthétique côtière méditerranéenne énergie-startup de Tel-Aviv" },
|
|
553
|
+
"jerusalem-stone": { label: "Pierre de Jérusalem", description: "Esthétique patrimoniale de la pierre calcaire de la vieille ville de Jérusalem" },
|
|
554
|
+
"sabra": { label: "Sabra", description: "Esthétique sabra israélienne native, directe et chaleureuse" },
|
|
555
|
+
"dubai-modern": { label: "Dubaï moderne", description: "Esthétique cosmopolite-émirat luxueuse du Golfe à Dubaï" },
|
|
556
|
+
"persian-glam": { label: "Glam persan", description: "Esthétique persane patrimoine-et-glamour iranienne" },
|
|
557
|
+
"istanbul-bosphorus": { label: "Bosphore d'Istanbul", description: "Esthétique ottomane-et-moderne est-rencontre-ouest du Bosphore d'Istanbul" },
|
|
558
|
+
"cairene-cosmopolitan": { label: "Cairote cosmopolite", description: "Esthétique métropolitaine arabe-égyptienne du Caire" },
|
|
559
|
+
"maghreb-coastal": { label: "Maghreb côtier", description: "Esthétique colonial-portuaire franco-méditerranéo-nord-africaine de Tunis / Alger" },
|
|
560
|
+
"marrakech-bohemian": { label: "Marrakech bohème", description: "Esthétique marocaine chaleureuse-épicée de la médina de Marrakech" },
|
|
561
|
+
"lagos-afro-glam": { label: "Lagos Afro-Glam", description: "🇬🇧 Esthétique métropolitaine ouest-africaine anglophone nigériane de Lagos" },
|
|
562
|
+
"accra-afro-fashion": { label: "Accra Afro-Mode", description: "🇬🇧 Esthétique kente-rencontre-modernité ouest-africaine anglophone ghanéenne d'Accra" },
|
|
563
|
+
"dakar-francophone": { label: "Dakar francophone", description: "🇫🇷 Esthétique cosmopolite-côtière ouest-africaine francophone sénégalaise de Dakar" },
|
|
564
|
+
"abidjan-cosmopolitan": { label: "Abidjan cosmopolite", description: "🇫🇷 Esthétique urbaine ouest-africaine francophone ivoirienne d'Abidjan" },
|
|
565
|
+
"kinshasa-sape": { label: "Kinshasa SAPE", description: "🇫🇷 Esthétique dandy SAPE centre-africaine francophone congolaise de Kinshasa" },
|
|
566
|
+
"nairobi-cosmopolitan": { label: "Nairobi cosmopolite", description: "🇬🇧 Esthétique moderne-urbaine est-africaine anglophone kényane de Nairobi" },
|
|
567
|
+
"addis-habesha": { label: "Addis Habesha", description: "Esthétique habesha patrimoine-des-hauts-plateaux éthiopienne d'Addis-Abeba (l'Éthiopie n'a jamais été colonisée)" },
|
|
568
|
+
"swahili-coast": { label: "Côte swahilie", description: "🇬🇧 Esthétique côtière-swahilie est-africaine anglophone de Zanzibar / Mombasa" },
|
|
569
|
+
"johannesburg-urban": { label: "Johannesburg urbain", description: "🇬🇧 Esthétique Black-métropolitaine sud-africaine anglophone australe de Johannesburg" },
|
|
570
|
+
"cape-town-cosmopolitan": { label: "Le Cap cosmopolite", description: "🇬🇧 Esthétique de ville-côtière sud-africaine anglophone australe du Cap" },
|
|
571
|
+
"luanda-lusophone": { label: "Luanda lusophone", description: "🇵🇹 Esthétique kizomba-et-côte-atlantique australe lusophone angolaise de Luanda" },
|
|
572
|
+
"bondi-beach": { label: "Bondi Beach", description: "Esthétique côtière australienne sel-et-soleil de Bondi" },
|
|
573
|
+
"australian-outback": { label: "Outback", description: "Esthétique de l'Outback australien rural (féminin)" },
|
|
574
|
+
"outback-stockman": { label: "Stockman de l'Outback", description: "Esthétique de l'Outback australien rural (masculin)" },
|
|
575
|
+
"auckland-coastal": { label: "Auckland côtière", description: "Esthétique pacifique de la ville-port d'Auckland en Nouvelle-Zélande" },
|
|
576
|
+
|
|
577
|
+
// Audit follow-up gaps (2026-05-06)
|
|
578
|
+
"androgynous": { label: "Androgyne", description: "Mélange délibéré de codes masculins et féminins" },
|
|
579
|
+
"goth": { description: "Esthétique de la sous-culture goth — sombre, romantique, dramatique" },
|
|
580
|
+
"eye-droopy": { label: "Affaissés", description: "Paupières basses — regard doux, somnolent / triste (position de la paupière, pas l'angle des coins)" },
|
|
581
|
+
"lip-state-bold-black": { label: "Noir audacieux", description: "Statement de rouge à lèvres noir saturé (goth / avant-garde)" },
|
|
582
|
+
"lip-state-burgundy": { label: "Bordeaux", description: "Rouge à lèvres rouge vin profond" },
|
|
583
|
+
"lip-state-plum": { label: "Prune", description: "Rouge à lèvres aux tons violets foncés" },
|
|
584
|
+
"lip-state-mauve": { description: "Rouge à lèvres mauve adouci / rose poudré" },
|
|
585
|
+
"eyes-black": { label: "Noirs", description: "Iris véritablement noir (plus profond que marron)" },
|
|
586
|
+
"skin-very-dark": { label: "Très foncée / Ébène", description: "Peau très foncée, ébène (extrémité la plus profonde de la palette)" },
|
|
587
|
+
"texture-acne-scarred": { label: "Cicatrices d'acné", description: "Cicatrices d'acné visibles (distinct de marquée — motif de cicatrices guéries)" },
|
|
588
|
+
"face-five-oclock-shadow": { label: "Barbe de fin de journée", description: "Repousse quotidienne plus dense — plus fournie qu'une barbe naissante légère" },
|
|
589
|
+
"feature-under-eye-circles": { label: "Cernes sous les yeux", description: "Légers cernes sombres sous les yeux (distinct des poches gonflées)" },
|
|
590
|
+
"feature-fangs": { label: "Crocs", description: "Crocs visibles (archétype vampire / personnage)" },
|
|
591
|
+
|
|
592
|
+
// ----- Facial geometry: cheekbones / fullness / eyes / nose tip / lips -----
|
|
593
|
+
"cheekbones-average": { label: "Moyennes", description: "Projection des pommettes moyenne (sans accent)" },
|
|
594
|
+
"cheekbones-low": { label: "Basses", description: "Pommettes basses et plates" },
|
|
595
|
+
"cheekbones-high-defined": { label: "Hautes & Définies", description: "Pommettes hautes, nettement définies" },
|
|
596
|
+
"cheekbones-sculpted": { label: "Hautes & Sculptées", description: "Pommettes hautes nettement sculptées" },
|
|
597
|
+
"cheekbones-wide": { label: "Larges", description: "Pommettes larges et proéminentes" },
|
|
598
|
+
"facial-fullness-average": { label: "Moyenne", description: "Rondeur du visage moyenne" },
|
|
599
|
+
"facial-fullness-gaunt": { label: "Émaciée", description: "Joues creuses, très peu de graisse faciale" },
|
|
600
|
+
"facial-fullness-lean": { label: "Maigre", description: "Peu de graisse faciale, léger creux sous les pommettes" },
|
|
601
|
+
"facial-fullness-full": { label: "Pleine", description: "Joues douces et bien rembourrées" },
|
|
602
|
+
"facial-fullness-round": { label: "Ronde", description: "Visage rond, joues douces et arrondies" },
|
|
603
|
+
"eye-wide": { label: "Grands", description: "Yeux grands et larges" },
|
|
604
|
+
"eye-narrow": { label: "Étroits", description: "Yeux étroits et allongés" },
|
|
605
|
+
"eyelid-standard": { label: "Standard", description: "Paupière supérieure standard" },
|
|
606
|
+
"canthal-neutral": { label: "Neutre", description: "Inclinaison canthale neutre" },
|
|
607
|
+
"eye-spacing-average": { label: "Moyen", description: "Espacement des yeux moyen" },
|
|
608
|
+
"eyeset-average": { label: "Moyen", description: "Distance sourcil-œil moyenne" },
|
|
609
|
+
"eyeset-low": { label: "Rapproché", description: "Faible distance sourcil-œil (hunter eyes)" },
|
|
610
|
+
"eyeset-high": { label: "Espacé", description: "Distance sourcil-œil généreuse (doe eyes)" },
|
|
611
|
+
"nose-tip-natural": { label: "Naturelle", description: "Pointe du nez naturelle (sans accent)" },
|
|
612
|
+
"nose-tip-refined": { label: "Affinée", description: "Pointe affinée et étroite" },
|
|
613
|
+
"nose-tip-upturned": { label: "Relevée", description: "Pointe légèrement relevée" },
|
|
614
|
+
"nose-tip-rounded": { label: "Arrondie", description: "Pointe douce et arrondie" },
|
|
615
|
+
"nose-tip-drooping": { label: "Tombante", description: "Pointe légèrement tombante, vers le bas" },
|
|
616
|
+
"lips-full-lower": { label: "Lèvre inférieure pleine", description: "Lèvres pleines avec une lèvre inférieure plus pleine" },
|
|
617
|
+
"lips-natural": { label: "Naturelle", description: "Forme de lèvres naturelle" },
|
|
618
|
+
"lips-heart": { label: "Cœur", description: "Lèvres en forme de cœur avec un arc de Cupidon défini" },
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
export default map
|