diff --git a/src/004-base/basePrompt.js b/src/004-base/basePrompt.js
index 55bb617dd122f7481a085ab6996579c804022b3d..87e6ba05cc631d01de478b8816151e84a60b778b 100644
--- a/src/004-base/basePrompt.js
+++ b/src/004-base/basePrompt.js
@@ -8,7 +8,8 @@ App.Art.GenAI.PromptPart = class PromptPart {
 	}
 
 	/**
-	 * @returns {string}
+	 * Define any relevant keywords for the positive prompt
+	 * @returns {string|undefined}
 	 * @abstract
 	 */
 	positive() {
@@ -16,7 +17,8 @@ App.Art.GenAI.PromptPart = class PromptPart {
 	}
 
 	/**
-	 * @returns {string}
+	 * Define any relevant keywords for the negative prompt
+	 * @returns {string|undefined}
 	 * @abstract
 	 */
 	negative() {
diff --git a/src/art/genAI/prompts/agePromptPart.js b/src/art/genAI/prompts/agePromptPart.js
index 85c36f22dae705b99d4e985adc5801019ce406d8..24636f7480aad824fd8c00480a162fe2342f6ef5 100644
--- a/src/art/genAI/prompts/agePromptPart.js
+++ b/src/art/genAI/prompts/agePromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.AgePromptPart = class AgePromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		let ageTags = ``;
@@ -24,7 +24,7 @@ App.Art.GenAI.AgePromptPart = class AgePromptPart extends App.Art.GenAI.PromptPa
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.visualAge < 20) {
diff --git a/src/art/genAI/prompts/amputationPromptPart.js b/src/art/genAI/prompts/amputationPromptPart.js
index 8fbd05be98d20c7dbeff05441698d77266ee69fa..f3e56fe3d92ae7cb8d70645f149f041de64588b0 100644
--- a/src/art/genAI/prompts/amputationPromptPart.js
+++ b/src/art/genAI/prompts/amputationPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.AmputationPromptPart = class AmputationPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (V.aiLoraPack) {
@@ -11,7 +11,7 @@ App.Art.GenAI.AmputationPromptPart = class AmputationPromptPart extends App.Art.
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (V.aiLoraPack) {
diff --git a/src/art/genAI/prompts/androidPromptPart.js b/src/art/genAI/prompts/androidPromptPart.js
index 0f4963d162fa0534d45d4f1fa9a6740e00823256..eed5641b2308b2c2f85dd4b8006a0c569264764c 100644
--- a/src/art/genAI/prompts/androidPromptPart.js
+++ b/src/art/genAI/prompts/androidPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.AndroidPromptPart = class AndroidPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.fuckdoll > 0) {
@@ -18,7 +18,7 @@ App.Art.GenAI.AndroidPromptPart = class AndroidPromptPart extends App.Art.GenAI.
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.fuckdoll > 0) {
diff --git a/src/art/genAI/prompts/arousalPromptPart.js b/src/art/genAI/prompts/arousalPromptPart.js
index 869adbedab561f4e806f1c172a50d5adef4ffa7d..1d2dd000c1140c191eea5513356e2938df29368a 100644
--- a/src/art/genAI/prompts/arousalPromptPart.js
+++ b/src/art/genAI/prompts/arousalPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.ArousalPromptPart = class ArousalPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		let prompt = {terms: [], weight: 1};
@@ -47,7 +47,7 @@ App.Art.GenAI.ArousalPromptPart = class ArousalPromptPart extends App.Art.GenAI.
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		return undefined;
diff --git a/src/art/genAI/prompts/beautyPromptPart.js b/src/art/genAI/prompts/beautyPromptPart.js
index ea6288ab402bfbe6cda1f9d2b7aa7ad3085a9dba..17198643ee4bbc7eba84e5f424298818c8db1f7f 100644
--- a/src/art/genAI/prompts/beautyPromptPart.js
+++ b/src/art/genAI/prompts/beautyPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.BeautyPromptPart = class BeautyPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.fuckdoll > 0) {
@@ -21,7 +21,7 @@ App.Art.GenAI.BeautyPromptPart = class BeautyPromptPart extends App.Art.GenAI.Pr
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.fuckdoll > 0) {
diff --git a/src/art/genAI/prompts/breastsPromptPart.js b/src/art/genAI/prompts/breastsPromptPart.js
index a6a39f5ed1f8ff5956a6040915890ee6d19d4e55..8a63a3747528c1d1f4761d3f9d4a9e2d6c161644 100644
--- a/src/art/genAI/prompts/breastsPromptPart.js
+++ b/src/art/genAI/prompts/breastsPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.BreastsPromptPart = class BreastsPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.boobs < 300) {
@@ -27,7 +27,7 @@ App.Art.GenAI.BreastsPromptPart = class BreastsPromptPart extends App.Art.GenAI.
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.boobs < 300) {
diff --git a/src/art/genAI/prompts/clothesPromptPart.js b/src/art/genAI/prompts/clothesPromptPart.js
index 461c3a691b86bd95eb99a34471ff55ad5c008483..c67b9195301d9c4b2cdf76af0406119f3c49d127 100644
--- a/src/art/genAI/prompts/clothesPromptPart.js
+++ b/src/art/genAI/prompts/clothesPromptPart.js
@@ -461,9 +461,11 @@ App.Art.GenAI.ClothesPromptPart = class ClothesPromptPart extends App.Art.GenAI.
 		}
 		return this.slave.genes === "XX" && (this.slave.hormoneBalance > -hormoneTransitionThreshold); // natural woman, and NOT transman
 	}
+
 	/**
 	 * Remove positive keywords for genitalia from slaves that don't have the genitalia described by the keyword.
 	 * Currently handles pussies, added penis (M/F appearance) and null slaves
+	 * @param {string} prompt
 	 * @returns {string}
 	 */
 	bodyPartReplacer(prompt) { // NG add penis, and penis size, and LoRA ties using this.slave.dick (size=/=inches, 3 is "Normal") and confirm hormone balance, add Null
@@ -500,6 +502,12 @@ App.Art.GenAI.ClothesPromptPart = class ClothesPromptPart extends App.Art.GenAI.
 		return prompt; // female default
 	}
 
+	/**
+	 * Replace the literal "$color" in a prompt with the name of a color
+	 * @param {string} prompt
+	 * @param {string[]} colors
+	 * @returns {string}
+	 */
 	colorReplacer(prompt, colors) {
 		if (colors && prompt.includes('$color')) {
 			const color = colors[Math.floor(Math.random() * colors.length)];
@@ -509,7 +517,7 @@ App.Art.GenAI.ClothesPromptPart = class ClothesPromptPart extends App.Art.GenAI.
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		let basePrompt;
@@ -524,7 +532,7 @@ App.Art.GenAI.ClothesPromptPart = class ClothesPromptPart extends App.Art.GenAI.
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (V.customClothesPrompts.hasOwnProperty(this.getClothes()) && V.customClothesPrompts[this.getClothes()].negative !== '') {
diff --git a/src/art/genAI/prompts/collarPromptPart.js b/src/art/genAI/prompts/collarPromptPart.js
index 7ab7266485dfdedce1a5e305a4263a029d8363f0..bbc21126f91f345c1db4ba1a4ce23fa630c831eb 100644
--- a/src/art/genAI/prompts/collarPromptPart.js
+++ b/src/art/genAI/prompts/collarPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.CollarPromptPart = class CollarPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.fuckdoll > 0) {
@@ -12,7 +12,7 @@ App.Art.GenAI.CollarPromptPart = class CollarPromptPart extends App.Art.GenAI.Pr
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		return undefined;
diff --git a/src/art/genAI/prompts/customPromptPart.js b/src/art/genAI/prompts/customPromptPart.js
index e3c0bbc480f60cdbb794f2bf69f1f32917e73029..f1d098ef92bf6c615f7bf4527c1e137d0de23f5d 100644
--- a/src/art/genAI/prompts/customPromptPart.js
+++ b/src/art/genAI/prompts/customPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.CustomPromptPart = class CustomPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.custom.aiPrompts?.positive) {
@@ -10,7 +10,7 @@ App.Art.GenAI.CustomPromptPart = class CustomPromptPart extends App.Art.GenAI.Pr
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.custom.aiPrompts?.negative) {
diff --git a/src/art/genAI/prompts/expressionPromptPart.js b/src/art/genAI/prompts/expressionPromptPart.js
index c4fa1ab17b98ddf0f2b2582be0fde87f588d70d5..a4718891e34bfd62273f52c9f00138fd640b26ed 100644
--- a/src/art/genAI/prompts/expressionPromptPart.js
+++ b/src/art/genAI/prompts/expressionPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.ExpressionPromptPart = class ExpressionPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (V.aiLoraPack && this.slave.fuckdoll !== 0) {
@@ -55,7 +55,7 @@ App.Art.GenAI.ExpressionPromptPart = class ExpressionPromptPart extends App.Art.
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (V.aiLoraPack && this.slave.fuckdoll !== 0) {
diff --git a/src/art/genAI/prompts/eyePromptPart.js b/src/art/genAI/prompts/eyePromptPart.js
index eec06311b00fdb823d2626bd8826251a7f409dc8..4bd49617ea1bf602b6c35f1afaee96d7bcc39cfc 100644
--- a/src/art/genAI/prompts/eyePromptPart.js
+++ b/src/art/genAI/prompts/eyePromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.EyePromptPart = class EyePromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.fuckdoll > 0) {
@@ -24,7 +24,7 @@ App.Art.GenAI.EyePromptPart = class EyePromptPart extends App.Art.GenAI.PromptPa
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		return undefined;
diff --git a/src/art/genAI/prompts/eyebrowPromptPart.js b/src/art/genAI/prompts/eyebrowPromptPart.js
index e4f21d7117cddbc5d1ed359e55d5ab805195591e..2ce796e2e364220639048f999d3047cf6bd5463f 100644
--- a/src/art/genAI/prompts/eyebrowPromptPart.js
+++ b/src/art/genAI/prompts/eyebrowPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.EyebrowPromptPart = class EyebrowPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.fuckdoll > 0) {
@@ -13,7 +13,7 @@ App.Art.GenAI.EyebrowPromptPart = class EyebrowPromptPart extends App.Art.GenAI.
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.eyebrowHStyle === "shaved" || this.slave.eyebrowHStyle === "bald" || this.slave.eyebrowHStyle === "hairless") {
diff --git a/src/art/genAI/prompts/genderPromptPart.js b/src/art/genAI/prompts/genderPromptPart.js
index 37b6bfcaa51c2007270fbe536a5d09fad9e73618..0bae4e4ae675b1d5b4d73e69d29b3d87a96c404c 100644
--- a/src/art/genAI/prompts/genderPromptPart.js
+++ b/src/art/genAI/prompts/genderPromptPart.js
@@ -8,7 +8,7 @@ App.Art.GenAI.GenderPromptPart = class GenderPromptPart extends App.Art.GenAI.Pr
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.isFeminine) {
@@ -31,7 +31,7 @@ App.Art.GenAI.GenderPromptPart = class GenderPromptPart extends App.Art.GenAI.Pr
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		let facialHair = this.slave.hormoneBalance > -20 ? "beard, mustache, " : ""; // NG make permanent part of negative prompt?
diff --git a/src/art/genAI/prompts/hairPromptPart.js b/src/art/genAI/prompts/hairPromptPart.js
index 002ab834b289c93560fef782bab5f7d938fe73af..40c86989d5b061ac299a01f1cd0770e8b5f4f669 100644
--- a/src/art/genAI/prompts/hairPromptPart.js
+++ b/src/art/genAI/prompts/hairPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.HairPromptPart = class HairPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.hStyle === "bald" || this.slave.hStyle === "shaved" || this.slave.hLength === 0) {
@@ -34,7 +34,7 @@ App.Art.GenAI.HairPromptPart = class HairPromptPart extends App.Art.GenAI.Prompt
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.hStyle === "bald" || this.slave.hStyle === "shaved" || this.slave.hLength === 0) {
diff --git a/src/art/genAI/prompts/healthPromptPart.js b/src/art/genAI/prompts/healthPromptPart.js
index 7329af181fce00bf585fc6e18d8ed00e020b2f8a..3d9a9d179582bbd8616348965f5a4a85a76a3137 100644
--- a/src/art/genAI/prompts/healthPromptPart.js
+++ b/src/art/genAI/prompts/healthPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.HealthPromptPart = class HealthPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.fuckdoll > 0) {
@@ -20,7 +20,7 @@ App.Art.GenAI.HealthPromptPart = class HealthPromptPart extends App.Art.GenAI.Pr
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.fuckdoll > 0) {
diff --git a/src/art/genAI/prompts/heightPromptPart.js b/src/art/genAI/prompts/heightPromptPart.js
index 180bd73314f1cc7c3a84862a21af246ff6fd383d..c8cdd0f475644b1d3511f337e450f2fe89fd84a3 100644
--- a/src/art/genAI/prompts/heightPromptPart.js
+++ b/src/art/genAI/prompts/heightPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.HeightPromptPart = class HeightPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.height < 150) {
@@ -11,7 +11,7 @@ App.Art.GenAI.HeightPromptPart = class HeightPromptPart extends App.Art.GenAI.Pr
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.height < 150) {
diff --git a/src/art/genAI/prompts/hipsPromptPart.js b/src/art/genAI/prompts/hipsPromptPart.js
index d32db109229855ffee52fe8d34ffff9f20607c1c..28dfd4abd62fc2d82d0824989a50739446a6d732 100644
--- a/src/art/genAI/prompts/hipsPromptPart.js
+++ b/src/art/genAI/prompts/hipsPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.HipsPromptPart = class HipsPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.hips <= -2) {
@@ -19,7 +19,7 @@ App.Art.GenAI.HipsPromptPart = class HipsPromptPart extends App.Art.GenAI.Prompt
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.hips <= -2) {
diff --git a/src/art/genAI/prompts/musclesPromptPart.js b/src/art/genAI/prompts/musclesPromptPart.js
index f78179683f47c97358831c6fb2dce91e9acd80fb..bf3c75682bffb652ddc1b7fb2cde1a8b43fd3f39 100644
--- a/src/art/genAI/prompts/musclesPromptPart.js
+++ b/src/art/genAI/prompts/musclesPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.MusclesPromptPart = class MusclesPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.muscles > 95) {
@@ -21,7 +21,7 @@ App.Art.GenAI.MusclesPromptPart = class MusclesPromptPart extends App.Art.GenAI.
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.muscles < -30) {
diff --git a/src/art/genAI/prompts/nationalityPromptPart.js b/src/art/genAI/prompts/nationalityPromptPart.js
index 5e20b3d44cec5e3353d16cf47a7628237a67dc00..fb14e9bafa2071c168e1e70e50a89a50fcc72862 100644
--- a/src/art/genAI/prompts/nationalityPromptPart.js
+++ b/src/art/genAI/prompts/nationalityPromptPart.js
@@ -26,7 +26,7 @@ const microstateFix = {
 
 App.Art.GenAI.NationalityPromptPart = class NationalityPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (["Stateless", "none", "slave", ""].includes(this.slave.nationality) || this.slave.fuckdoll > 0) {
@@ -45,7 +45,7 @@ App.Art.GenAI.NationalityPromptPart = class NationalityPromptPart extends App.Ar
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		return undefined;
diff --git a/src/art/genAI/prompts/piercingsPromptPart.js b/src/art/genAI/prompts/piercingsPromptPart.js
index 3e49b5924ef4c43510f4ee67733eb5b9789ebb55..a66c57f065d74557081cafbfc8f23c4b3df59345 100644
--- a/src/art/genAI/prompts/piercingsPromptPart.js
+++ b/src/art/genAI/prompts/piercingsPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.PiercingsPromptPart = class PiercingsPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		let piercingParts = [];
@@ -59,7 +59,7 @@ App.Art.GenAI.PiercingsPromptPart = class PiercingsPromptPart extends App.Art.Ge
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.piercing.areola.weight === 0 && this.slave.piercing.ear.weight === 0 && this.slave.piercing.eyebrow.weight === 0 && this.slave.piercing.genitals.weight === 0 && this.slave.piercing.lips.weight === 0 && this.slave.piercing.navel.weight === 0 && this.slave.piercing.nipple.weight === 0 && this.slave.piercing.nose.weight === 0 && this.slave.piercing.tongue.weight === 0 && this.slave.piercing.vagina.weight === 0) {
diff --git a/src/art/genAI/prompts/posturePromptPart.js b/src/art/genAI/prompts/posturePromptPart.js
index 35ab5cbdc7330528590c3cb56155e74338a3f7c9..d3f77551e924374d803d6f5025a297110b473f40 100644
--- a/src/art/genAI/prompts/posturePromptPart.js
+++ b/src/art/genAI/prompts/posturePromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.PosturePromptPart = class PosturePromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.custom.aiPrompts?.pose) {
@@ -47,7 +47,7 @@ App.Art.GenAI.PosturePromptPart = class PosturePromptPart extends App.Art.GenAI.
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		return undefined;
diff --git a/src/art/genAI/prompts/pregPromptPart.js b/src/art/genAI/prompts/pregPromptPart.js
index 2d700104ce5a94dad0d870a4a1ebe4fb954b7be4..f62cb9b90b61ab0853b2e684836b61d7cc5795cc 100644
--- a/src/art/genAI/prompts/pregPromptPart.js
+++ b/src/art/genAI/prompts/pregPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.PregPromptPart = class PregPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.belly >= 10000) {
@@ -13,7 +13,7 @@ App.Art.GenAI.PregPromptPart = class PregPromptPart extends App.Art.GenAI.Prompt
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		return undefined;
diff --git a/src/art/genAI/prompts/pubicHairPromptPart.js b/src/art/genAI/prompts/pubicHairPromptPart.js
index 09e38412e12ccd2002819dfd3f3d9c4205904416..14144446b5d1da4004b99a298f761ca1c75009cb 100644
--- a/src/art/genAI/prompts/pubicHairPromptPart.js
+++ b/src/art/genAI/prompts/pubicHairPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.PubicHairPromptPart = class PubicHairPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.pubicHStyle === "waxed" || this.slave.pubicHStyle === "bald" || this.slave.pubicHStyle === "hairless" || this.slave.physicalAge < Math.min(this.slave.pubertyAgeXX, this.slave.pubertyAgeXY)) {
@@ -14,7 +14,7 @@ App.Art.GenAI.PubicHairPromptPart = class PubicHairPromptPart extends App.Art.Ge
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.pubicHStyle === "waxed" || this.slave.pubicHStyle === "bald" || this.slave.pubicHStyle === "hairless" || this.slave.physicalAge < Math.min(this.slave.pubertyAgeXX, this.slave.pubertyAgeXY)) {
diff --git a/src/art/genAI/prompts/racePromptPart.js b/src/art/genAI/prompts/racePromptPart.js
index c6cab9950f7d54382ef9ae7b349c9af82ea946c2..09858a6a34220cf016acb5f7f7b5614694321430 100644
--- a/src/art/genAI/prompts/racePromptPart.js
+++ b/src/art/genAI/prompts/racePromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.RacePromptPart = class RacePromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.race === "white") {
@@ -14,7 +14,7 @@ App.Art.GenAI.RacePromptPart = class RacePromptPart extends App.Art.GenAI.Prompt
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.race !== "asian" && this.slave.race !== "catgirl") {
diff --git a/src/art/genAI/prompts/skinPromptPart.js b/src/art/genAI/prompts/skinPromptPart.js
index 93c122740d024005f04b3869c3d9e405f907e08a..040260ce7db67a1138ac4321ecd0fa96d095d4be 100644
--- a/src/art/genAI/prompts/skinPromptPart.js
+++ b/src/art/genAI/prompts/skinPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.SkinPromptPart = class SkinPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.geneticQuirks.albinism === 2) {
@@ -51,7 +51,7 @@ App.Art.GenAI.SkinPromptPart = class SkinPromptPart extends App.Art.GenAI.Prompt
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		switch (this.slave.skin) {
diff --git a/src/art/genAI/prompts/stylePromptPart.js b/src/art/genAI/prompts/stylePromptPart.js
index dcf1fbc3dfa985fc9bcab6ab09f4b37e1cd26f53..2d68b65a50c2f1782fdd6063646dd8f059baeb18 100644
--- a/src/art/genAI/prompts/stylePromptPart.js
+++ b/src/art/genAI/prompts/stylePromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.StylePromptPart = class StylePromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		switch (V.aiStyle) {
@@ -14,7 +14,7 @@ App.Art.GenAI.StylePromptPart = class StylePromptPart extends App.Art.GenAI.Prom
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		switch (V.aiStyle) {
diff --git a/src/art/genAI/prompts/tattoosPromptPart.js b/src/art/genAI/prompts/tattoosPromptPart.js
index 98b4fd8c52e415409b360a550ac23a16df7a145b..e7cbf0fd7bcd73f7c949dacabb4b5d3b563d9a92 100644
--- a/src/art/genAI/prompts/tattoosPromptPart.js
+++ b/src/art/genAI/prompts/tattoosPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.TattoosPromptPart = class TattoosPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.fuckdoll > 0 || this.slave.race === "catgirl") {
@@ -27,10 +27,10 @@ App.Art.GenAI.TattoosPromptPart = class TattoosPromptPart extends App.Art.GenAI.
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
-		if (this.slave.armsTat || this.slave.legsTat || this.slave.bellyTat || this.slave.boobsTat) {
+		if (!this.slave.armsTat && !this.slave.legsTat && !this.slave.bellyTat && !this.slave.boobsTat) {
 			return `tattoo`;
 		}
 	}
diff --git a/src/art/genAI/prompts/waistPromptPart.js b/src/art/genAI/prompts/waistPromptPart.js
index 016896bea1431f418f0a2165535fd125baa79482..a5dbfe711c62601faaca5d340d9fb01e2418128e 100644
--- a/src/art/genAI/prompts/waistPromptPart.js
+++ b/src/art/genAI/prompts/waistPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.WaistPromptPart = class WaistPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.waist > 95) {
@@ -17,7 +17,7 @@ App.Art.GenAI.WaistPromptPart = class WaistPromptPart extends App.Art.GenAI.Prom
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.waist > 30) {
diff --git a/src/art/genAI/prompts/weightPromptPart.js b/src/art/genAI/prompts/weightPromptPart.js
index 9a55f1fae98d0fd6c49010e08706a4bbb44513c8..a771a27b263f6e5065bb0cf32105e805d6aebe6e 100644
--- a/src/art/genAI/prompts/weightPromptPart.js
+++ b/src/art/genAI/prompts/weightPromptPart.js
@@ -1,6 +1,6 @@
 App.Art.GenAI.WeightPromptPart = class WeightPromptPart extends App.Art.GenAI.PromptPart {
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	positive() {
 		if (this.slave.weight < -95) {
@@ -21,7 +21,7 @@ App.Art.GenAI.WeightPromptPart = class WeightPromptPart extends App.Art.GenAI.Pr
 	}
 
 	/**
-	 * @returns {string}
+	 * @override
 	 */
 	negative() {
 		if (this.slave.weight < -30) {