package persona // FaceDNA contains all facial feature specifications for a character. // These features are selected BEFORE generation and must be used verbatim. // The combination of these features creates the character's unique facial identity. type FaceDNA struct { // ========== Structure ========== // FaceShape is the overall face shape category. FaceShape FaceShapeCategory `json:"face_shape" yaml:"face_shape"` // BoneStructure describes the underlying facial bone structure. BoneStructure BoneStructureCategory `json:"bone_structure" yaml:"bone_structure"` // Jawline describes the jawline shape and definition. Jawline JawlineCategory `json:"jawline" yaml:"jawline"` // Cheekbones describes cheekbone prominence and position. Cheekbones CheekbonesCategory `json:"cheekbones" yaml:"cheekbones"` // ========== Eyes ========== // EyeShape is the structural category of eye shape. EyeShape EyeShapeCategory `json:"eye_shape" yaml:"eye_shape"` // EyeColor is the iris color category. EyeColor EyeColorCategory `json:"eye_color" yaml:"eye_color"` // EyeSpacing describes the distance between the eyes. EyeSpacing EyeSpacingCategory `json:"eye_spacing" yaml:"eye_spacing"` // EyeSize describes the relative size of the eyes. EyeSize EyeSizeCategory `json:"eye_size" yaml:"eye_size"` // ========== Nose ========== // NoseShape is the structural category of nose shape. NoseShape NoseShapeCategory `json:"nose_shape" yaml:"nose_shape"` // NoseBridge describes the nose bridge characteristics. NoseBridge NoseBridgeCategory `json:"nose_bridge" yaml:"nose_bridge"` // NoseTip describes the nose tip characteristics. NoseTip NoseTipCategory `json:"nose_tip" yaml:"nose_tip"` // ========== Lips ========== // LipShape is the structural category of lip shape. LipShape LipShapeCategory `json:"lip_shape" yaml:"lip_shape"` // LipFullness describes the volume/fullness of the lips. LipFullness LipFullnessCategory `json:"lip_fullness" yaml:"lip_fullness"` // SmileType describes the characteristic smile pattern. SmileType SmileTypeCategory `json:"smile_type" yaml:"smile_type"` // ========== Brows ========== // BrowShape is the structural category of eyebrow shape. BrowShape BrowShapeCategory `json:"brow_shape" yaml:"brow_shape"` // BrowThickness describes the thickness/density of the eyebrows. BrowThickness BrowThicknessCategory `json:"brow_thickness" yaml:"brow_thickness"` // ========== Skin ========== // SkinTone is the overall skin tone category. SkinTone SkinToneCategory `json:"skin_tone" yaml:"skin_tone"` // SkinUndertone is the undertone category (warm, cool, neutral). SkinUndertone SkinUndertoneCategory `json:"skin_undertone" yaml:"skin_undertone"` // SkinTexture describes the skin texture characteristics. SkinTexture SkinTextureCategory `json:"skin_texture" yaml:"skin_texture"` // ========== Hair ========== // HairColor is the natural hair color category. HairColor HairColorCategory `json:"hair_color" yaml:"hair_color"` // HairTexture is the natural hair texture category. HairTexture HairTextureCategory `json:"hair_texture" yaml:"hair_texture"` // HairLength describes the current hair length. HairLength HairLengthCategory `json:"hair_length" yaml:"hair_length"` // HairThickness describes the hair strand thickness/density. HairThickness HairThicknessCategory `json:"hair_thickness" yaml:"hair_thickness"` // ========== Unique Features ========== // UniqueFeatures contains distinctive facial features. // ALLOWED: dimples, cleft chin, widow's peak UniqueFeatures []UniqueFeatureCategory `json:"unique_features,omitempty" yaml:"unique_features,omitempty"` } // Face shape categories type FaceShapeCategory string const ( FaceShapeOval FaceShapeCategory = "oval" FaceShapeHeart FaceShapeCategory = "heart" FaceShapeSquare FaceShapeCategory = "square" FaceShapeRound FaceShapeCategory = "round" FaceShapeDiamond FaceShapeCategory = "diamond" FaceShapeOblong FaceShapeCategory = "oblong" ) // Bone structure categories type BoneStructureCategory string const ( BoneStructureDelicate BoneStructureCategory = "delicate" BoneStructureModerate BoneStructureCategory = "moderate" BoneStructureStrong BoneStructureCategory = "strong" ) // Jawline categories type JawlineCategory string const ( JawlineSoft JawlineCategory = "soft" JawlineRounded JawlineCategory = "rounded" JawlineDefined JawlineCategory = "defined" JawlineAngular JawlineCategory = "angular" JawlineSquare JawlineCategory = "square" ) // Cheekbones categories type CheekbonesCategory string const ( CheekbonesSubtle CheekbonesCategory = "subtle" CheekbonesModerate CheekbonesCategory = "moderate" CheekbonesProminent CheekbonesCategory = "prominent" CheekbonesHigh CheekbonesCategory = "high" ) // Eye shape categories type EyeShapeCategory string const ( EyeShapeAlmond EyeShapeCategory = "almond" EyeShapeRound EyeShapeCategory = "round" EyeShapeHooded EyeShapeCategory = "hooded" EyeShapeMonolid EyeShapeCategory = "monolid" EyeShapeUpturned EyeShapeCategory = "upturned" EyeShapeDownturned EyeShapeCategory = "downturned" EyeShapeDeepSet EyeShapeCategory = "deep_set" ) // Eye color categories type EyeColorCategory string const ( EyeColorDarkBrown EyeColorCategory = "dark_brown" EyeColorBrown EyeColorCategory = "brown" EyeColorHazel EyeColorCategory = "hazel" EyeColorAmber EyeColorCategory = "amber" EyeColorGreen EyeColorCategory = "green" EyeColorBlue EyeColorCategory = "blue" EyeColorGray EyeColorCategory = "gray" ) // Eye spacing categories type EyeSpacingCategory string const ( EyeSpacingClose EyeSpacingCategory = "close_set" EyeSpacingAverage EyeSpacingCategory = "average" EyeSpacingWide EyeSpacingCategory = "wide_set" ) // Eye size categories type EyeSizeCategory string const ( EyeSizeSmall EyeSizeCategory = "small" EyeSizeAverage EyeSizeCategory = "average" EyeSizeLarge EyeSizeCategory = "large" ) // Nose shape categories type NoseShapeCategory string const ( NoseShapeButton NoseShapeCategory = "button" NoseShapeStraight NoseShapeCategory = "straight" NoseShapeWide NoseShapeCategory = "wide" NoseShapeRoman NoseShapeCategory = "roman" NoseShapeAquiline NoseShapeCategory = "aquiline" ) // Nose bridge categories type NoseBridgeCategory string const ( NoseBridgeLow NoseBridgeCategory = "low" NoseBridgeModerate NoseBridgeCategory = "moderate" NoseBridgeHigh NoseBridgeCategory = "high" NoseBridgeBumped NoseBridgeCategory = "bumped" ) // Nose tip categories type NoseTipCategory string const ( NoseTipRounded NoseTipCategory = "rounded" NoseTipPointed NoseTipCategory = "pointed" NoseTipUpturned NoseTipCategory = "upturned" NoseTipBulbous NoseTipCategory = "bulbous" ) // Lip shape categories type LipShapeCategory string const ( LipShapeFull LipShapeCategory = "full" LipShapeThin LipShapeCategory = "thin" LipShapeBow LipShapeCategory = "bow" LipShapeRounded LipShapeCategory = "rounded" LipShapeWide LipShapeCategory = "wide" ) // Lip fullness categories type LipFullnessCategory string const ( LipFullnessSubtle LipFullnessCategory = "subtle" LipFullnessModerate LipFullnessCategory = "moderate" LipFullnessPlump LipFullnessCategory = "plump" LipFullnessVoluptuous LipFullnessCategory = "voluptuous" ) // Smile type categories type SmileTypeCategory string const ( SmileTypeSubtle SmileTypeCategory = "subtle" SmileTypeBroad SmileTypeCategory = "broad" SmileTypeAsymmetric SmileTypeCategory = "asymmetric" SmileTypeGummy SmileTypeCategory = "gummy" SmileTypeClosed SmileTypeCategory = "closed" ) // Brow shape categories type BrowShapeCategory string const ( BrowShapeNatural BrowShapeCategory = "natural" BrowShapeArched BrowShapeCategory = "arched" BrowShapeStraight BrowShapeCategory = "straight" BrowShapeRounded BrowShapeCategory = "rounded" BrowShapeAngled BrowShapeCategory = "angled" ) // Brow thickness categories type BrowThicknessCategory string const ( BrowThicknessThin BrowThicknessCategory = "thin" BrowThicknessNatural BrowThicknessCategory = "natural" BrowThicknessThick BrowThicknessCategory = "thick" BrowThicknessFluffy BrowThicknessCategory = "fluffy" BrowThicknessBleached BrowThicknessCategory = "bleached" ) // Skin tone categories type SkinToneCategory string const ( SkinToneFair SkinToneCategory = "fair" SkinToneLight SkinToneCategory = "light" SkinToneMedium SkinToneCategory = "medium" SkinToneOlive SkinToneCategory = "olive" SkinToneTan SkinToneCategory = "tan" SkinToneBrown SkinToneCategory = "brown" SkinToneDarkBrown SkinToneCategory = "dark_brown" SkinToneDeep SkinToneCategory = "deep" ) // Skin undertone categories type SkinUndertoneCategory string const ( SkinUndertoneWarm SkinUndertoneCategory = "warm" SkinUndertoneCool SkinUndertoneCategory = "cool" SkinUndertoneNeutral SkinUndertoneCategory = "neutral" ) // Skin texture categories type SkinTextureCategory string const ( SkinTextureSmooth SkinTextureCategory = "smooth" SkinTextureNormal SkinTextureCategory = "normal" SkinTextureTextured SkinTextureCategory = "textured" SkinTextureMature SkinTextureCategory = "mature" ) // Hair color categories type HairColorCategory string const ( HairColorBlack HairColorCategory = "black" HairColorDarkBrown HairColorCategory = "dark_brown" HairColorBrown HairColorCategory = "brown" HairColorLightBrown HairColorCategory = "light_brown" HairColorBlonde HairColorCategory = "blonde" HairColorRed HairColorCategory = "red" HairColorAuburn HairColorCategory = "auburn" HairColorGray HairColorCategory = "gray" ) // Hair texture categories type HairTextureCategory string const ( HairTextureStraight HairTextureCategory = "straight" HairTextureWavy HairTextureCategory = "wavy" HairTextureCurly HairTextureCategory = "curly" HairTextureCoily HairTextureCategory = "coily" HairTextureKinky HairTextureCategory = "kinky" ) // Hair length categories type HairLengthCategory string const ( HairLengthPixie HairLengthCategory = "pixie" HairLengthShort HairLengthCategory = "short" HairLengthChin HairLengthCategory = "chin" HairLengthShoulder HairLengthCategory = "shoulder" HairLengthMidBack HairLengthCategory = "mid_back" HairLengthLong HairLengthCategory = "long" HairLengthVeryLong HairLengthCategory = "very_long" ) // Hair thickness categories type HairThicknessCategory string const ( HairThicknessFine HairThicknessCategory = "fine" HairThicknessMedium HairThicknessCategory = "medium" HairThicknessThick HairThicknessCategory = "thick" ) // Unique feature categories (allowed features only) type UniqueFeatureCategory string const ( UniqueFeatureDimples UniqueFeatureCategory = "dimples" UniqueFeatureCleftChin UniqueFeatureCategory = "cleft_chin" UniqueFeatureWidowsPeak UniqueFeatureCategory = "widows_peak" )