From 432a1b5cd3c7559aaaa53701e35c8b71a7bcdfb8 Mon Sep 17 00:00:00 2001
From: Svornost <11434-svornost@users.noreply.gitgud.io>
Date: Wed, 4 Oct 2023 22:34:26 -0400
Subject: [PATCH] AI prompting tweaks

---
 src/art/genAI/agePromptPart.js        | 30 ++++++++++++++++++---------
 src/art/genAI/arousalPromptPart.js    | 10 ++++-----
 src/art/genAI/clothesPromptPart.js    |  2 +-
 src/art/genAI/expressionPromptPart.js | 11 ++++++----
 src/art/genAI/stylePromptPart.js      |  4 ++--
 5 files changed, 35 insertions(+), 22 deletions(-)

diff --git a/src/art/genAI/agePromptPart.js b/src/art/genAI/agePromptPart.js
index a955d11d495..85c36f22dae 100644
--- a/src/art/genAI/agePromptPart.js
+++ b/src/art/genAI/agePromptPart.js
@@ -4,15 +4,23 @@ App.Art.GenAI.AgePromptPart = class AgePromptPart extends App.Art.GenAI.PromptPa
 	 */
 	positive() {
 		let ageTags = ``;
-		if (this.slave.visualAge < 13) {
-			ageTags = `child, `;
+		if (this.slave.visualAge < 10) {
+			ageTags = `child`;
+		} else if (this.slave.visualAge < 13) {
+			ageTags = `pre-teen`;
 		} else if (this.slave.visualAge < 18) {
-			ageTags = `teen, young, `;
-		} else if (this.slave.visualAge < 20) {
-			ageTags = `teen, `;
+			ageTags = `teen, teenager`;
+		} else if (this.slave.visualAge < 25) {
+			ageTags = `youthful adult, college age`;
+		} else if (this.slave.visualAge < 40) {
+			ageTags = `adult`;
+		} else if (this.slave.visualAge < 60) {
+			ageTags = `middle age`;
+		} else {
+			ageTags = `elderly`;
 		}
 
-		return `${ageTags}${this.slave.visualAge} year old`;
+		return `${ageTags}, ${this.slave.visualAge} year old`;
 	}
 
 	/**
@@ -20,11 +28,13 @@ App.Art.GenAI.AgePromptPart = class AgePromptPart extends App.Art.GenAI.PromptPa
 	 */
 	negative() {
 		if (this.slave.visualAge < 20) {
-			return `old, 30 year old, 40 year old`;
-		} else if (this.slave.visualAge < 30) { /* empty */ } else if (this.slave.visualAge < 40) {
-			return `young, teen`;
+			return `elderly, adult, 30 year old, 40 year old`;
+		} else if (this.slave.visualAge < 30) {
+			/* empty */
+		} else if (this.slave.visualAge < 40) {
+			return `child, teen`;
 		} else {
-			return `young, teen, 20 year old`;
+			return `child, young, teen, college age`;
 		}
 	}
 };
diff --git a/src/art/genAI/arousalPromptPart.js b/src/art/genAI/arousalPromptPart.js
index 12dd75dc6d7..866358a62bc 100644
--- a/src/art/genAI/arousalPromptPart.js
+++ b/src/art/genAI/arousalPromptPart.js
@@ -4,15 +4,18 @@ App.Art.GenAI.ArousalPromptPart = class ArousalPromptPart extends App.Art.GenAI.
 	 */
 	positive() {
 		let prompt = {terms: [], weight: 1};
-		if (this.slave.vaginaLube === 2) {
+		if (this.slave.vagina >= 0 && this.slave.vaginaLube === 2) {
 			prompt.terms.push("pussy juice");
 		}
 		if (this.slave.energy > 60) {
 			prompt.terms.push("blush");
+			if (this.slave.dick > 0) {
+				prompt.terms.push("erection");
+			}
 		}
 		if (this.slave.energy > 80) {
 			prompt.terms.push("sweat", "heavy breathing");
-			if (this.slave.vaginaLube === 1) {
+			if (this.slave.vagina >= 0 && this.slave.vaginaLube === 1) {
 				prompt.terms.push("pussy juice");
 			}
 		}
@@ -32,9 +35,6 @@ App.Art.GenAI.ArousalPromptPart = class ArousalPromptPart extends App.Art.GenAI.
 	 * @returns {string}
 	 */
 	negative() {
-		if (this.slave.vaginaLube == 0) {
-			return "pussy juice";
-		}
 		return undefined;
 	}
 };
diff --git a/src/art/genAI/clothesPromptPart.js b/src/art/genAI/clothesPromptPart.js
index cc8c33ccc7a..9308304dbd1 100644
--- a/src/art/genAI/clothesPromptPart.js
+++ b/src/art/genAI/clothesPromptPart.js
@@ -68,7 +68,7 @@ const clothesPrompts = {
 		"negative": "clothes, jeans, pants",
 	},
 	"kitty lingerie": {  // Broken for photorealistic models, probably works for anime models
-		"positive": "cat lingerie, cat cutout, cat ear panties, bra, panties",
+		"positive": "kitty lingerie, cat lingerie, kawaii lingerie",
 		"negative": "cat ears, jeans, nude, pussy, nipples",
 	},
 	"a maternity dress": {
diff --git a/src/art/genAI/expressionPromptPart.js b/src/art/genAI/expressionPromptPart.js
index 56abc5cc624..5643eaaeee2 100644
--- a/src/art/genAI/expressionPromptPart.js
+++ b/src/art/genAI/expressionPromptPart.js
@@ -13,7 +13,7 @@ App.Art.GenAI.ExpressionPromptPart = class ExpressionPromptPart extends App.Art.
 		} else if (this.slave.devotion < 95) {
 			devotionPart = `smile`;
 		} else {
-			devotionPart = `smile, grin, teeth, loving expression`;
+			devotionPart = `smile, grin, loving expression`;
 		}
 
 		let trustPart;
@@ -26,6 +26,9 @@ App.Art.GenAI.ExpressionPromptPart = class ExpressionPromptPart extends App.Art.
 			trustPart = `scared expression, looking down`;
 		} else if (this.slave.trust < 51) {
 			trustPart = `looking at viewer`;
+			if (!devotionPart) {
+				trustPart += `, neutral expression`;
+			}
 		} else if (this.slave.trust < 95) {
 			trustPart = `looking at viewer, confident`;
 		} else {
@@ -33,11 +36,11 @@ App.Art.GenAI.ExpressionPromptPart = class ExpressionPromptPart extends App.Art.
 		}
 
 		if (devotionPart && trustPart) {
-			return `(${devotionPart}, ${trustPart}:1.1)`;
+			return `(${devotionPart}, ${trustPart})`;
 		} else if (devotionPart) {
-			return `(${devotionPart}:1.1)`;
+			return `(${devotionPart})`;
 		} else if (trustPart) {
-			return `(${trustPart}:1.1)`;
+			return `(${trustPart})`;
 		}
 	}
 
diff --git a/src/art/genAI/stylePromptPart.js b/src/art/genAI/stylePromptPart.js
index 61756c659f2..dcf1fbc3dfa 100644
--- a/src/art/genAI/stylePromptPart.js
+++ b/src/art/genAI/stylePromptPart.js
@@ -21,9 +21,9 @@ App.Art.GenAI.StylePromptPart = class StylePromptPart extends App.Art.GenAI.Prom
 			case 0: // custom
 				return V.aiCustomStyleNeg;
 			case 1: // photorealistic
-				return "greyscale, monochrome, cg, render, unreal engine";
+				return "greyscale, monochrome, cg, render, unreal engine, closeup, medium shot";
 			case 2: // anime/hentai
-				return "greyscale, monochrome, photography, 3d render, text, speech bubble";
+				return "greyscale, monochrome, photography, 3d render, text, speech bubble, closeup, medium shot";
 		}
 	}
 };
-- 
GitLab