diff --git a/src/art/genAI/prompts/arousalPromptPart.js b/src/art/genAI/prompts/arousalPromptPart.js
index a29a101338a5672d8a6a63d8c1e43713be1ab4b2..b7945789378f9e617486995f5b85d0b1648384b6 100644
--- a/src/art/genAI/prompts/arousalPromptPart.js
+++ b/src/art/genAI/prompts/arousalPromptPart.js
@@ -5,6 +5,9 @@ App.Art.GenAI.ArousalPromptPart = class ArousalPromptPart extends App.Art.GenAI.
 	positive() {
 		let prompt = {terms: [], weight: 1};
 		if (this.slave.visualAge < 18 && V.aiAgeFilter) {
+			if (asSlave(this.slave)?.fuckdoll > 0) {
+				return undefined;
+			}
 			if (this.slave.energy > 60) {
 				prompt.terms.push("blush");
 			}
diff --git a/src/art/genAI/prompts/clothesPromptPart.js b/src/art/genAI/prompts/clothesPromptPart.js
index 77269412db54cd9c497477422bc845cd9e4ba031..024103dff907f6f2dd26429ba5012a8ab0cfe6bf 100644
--- a/src/art/genAI/prompts/clothesPromptPart.js
+++ b/src/art/genAI/prompts/clothesPromptPart.js
@@ -65,6 +65,10 @@ const clothesPrompts = {
 		"positive": "lingerie, cupless bra, nipples, thong",
 		"negative": "clothes, jeans, pants",
 	},
+	"attractive lingerie for a pregnant woman": {  // Cupless part doesn't work well
+		"positive": "lingerie, cupless bra, nipples, thong",
+		"negative": "clothes, jeans, pants",
+	},
 	"kitty lingerie": {  // Broken for photorealistic models, probably works for anime models
 		"positive": "kitty lingerie, cat lingerie, kawaii lingerie",
 		"negative": "cat ears, jeans, nude, pussy, nipples",
@@ -477,6 +481,10 @@ const clothesPromptsAgeControl = {
 		"positive": "strapless hello kitty swimsuit, visible shoulders",
 		"negative": "cat ears, jeans",
 	},
+	"a maternity dress": {
+		"positive": "wide dress, loose dress",
+		"negative": "jeans, nude, pussy, nipples",
+	},
 	"a succubus outfit": {
 		"positive": "demon costume, red leather top, red leather miniskirt, black demon horns",
 		"negative": "jeans, nude, pussy, nipples",
@@ -760,7 +768,7 @@ App.Art.GenAI.ClothesPromptPart = class ClothesPromptPart extends App.Art.GenAI.
 	 * @returns {string}
 	 */
 	addNegativeControl(negPrompt) {
-		const toAdd = ["penis", "pussy", "nipples", "nude", "scrotum", "clitoris"];
+		const toAdd = ["penis", "pussy", "nude", "scrotum", "clitoris"];
 		if (this.slave.visualAge < 18 && V.aiAgeFilter) {
 			toAdd.forEach(w => {
 				if (!negPrompt.includes(w)) {
diff --git a/src/art/genAI/prompts/stylePromptPart.js b/src/art/genAI/prompts/stylePromptPart.js
index 9b5870a6a90d4a5ad32024518c656cf65d72fd7d..2949f729e73534a306c38c2e61751944cbc44b38 100644
--- a/src/art/genAI/prompts/stylePromptPart.js
+++ b/src/art/genAI/prompts/stylePromptPart.js
@@ -12,13 +12,13 @@ App.Art.GenAI.StylePromptPart = class StylePromptPart extends App.Art.GenAI.Prom
 			}
 			case 1: // photorealistic
 				if (this.slave.visualAge < 18 && V.aiAgeFilter) {
-					return "<lora:LowRA:0.5> front-up portrait, (tight medium shot:1.2), photorealistic, dark theme, black background";
+					return "<lora:LowRA:0.5> front-up portrait, (tight medium shot:1.2), focus on face, photorealistic, dark theme, black background";
 				} else {
 					return "<lora:LowRA:0.5> full body portrait, photorealistic, dark theme, black background";
 				}
 			case 2: // anime/hentai
 			if (this.slave.visualAge < 18 && V.aiAgeFilter) {
-				return "front-up portrait, (tight medium shot:1.1), 2d, anime, hentai, dark theme, black background";
+				return "front-up portrait, (tight medium shot:1.1), focus on face, 2d, anime, hentai, dark theme, black background";
 			} else {
 				return "full body portrait, 2d, anime, hentai, dark theme, black background";
 			}
@@ -32,19 +32,19 @@ App.Art.GenAI.StylePromptPart = class StylePromptPart extends App.Art.GenAI.Prom
 		switch (V.aiStyle) {
 			case 0: // custom
 			if (this.slave.visualAge < 18 && V.aiAgeFilter) {
-				return "(head out of frame), full shot, medium full shot, full body portrait, waist, hips, bottom, " + V.aiCustomStyleNeg;
+				return "(head out of frame), full shot, medium full shot, full body portrait, waist, hips, bottom, navel, legs, " + V.aiCustomStyleNeg;
 			} else {
 				return V.aiCustomStyleNeg;
 			}
 			case 1: // photorealistic
 			if (this.slave.visualAge < 18 && V.aiAgeFilter) {
-				return "greyscale, monochrome, cg, render, unreal engine, (head out of frame), full shot, medium full shot, full body portrait, waist, hips, bottom";
+				return "greyscale, monochrome, cg, render, unreal engine, (head out of frame), full shot, medium full shot, full body portrait, waist, hips, navel, bottom, legs";
 			} else {
 				return "greyscale, monochrome, cg, render, unreal engine, closeup, medium shot";
 			}
 			case 2: // anime/hentai
 			if (this.slave.visualAge < 18 && V.aiAgeFilter) {
-				return "greyscale, monochrome, photography, 3d render, text, speech bubble, (head out of frame), full shot, medium full shot, full body portrait, waist, hips, bottom";
+				return "greyscale, monochrome, photography, 3d render, text, speech bubble, (head out of frame), full shot, medium full shot, full body portrait, waist, hips, navel, bottom, legs";
 			} else {
 				return "greyscale, monochrome, photography, 3d render, text, speech bubble, closeup, medium shot";
 			}