From 94bd490bfbb4e76716552502ea576ce34a95ea4b Mon Sep 17 00:00:00 2001 From: Svornost <11434-svornost@users.noreply.gitgud.io> Date: Sat, 12 Aug 2023 20:59:08 -0400 Subject: [PATCH] AI art generation tweaks --- src/art/genAI/agePromptPart.js | 4 +++- src/art/genAI/buildPrompt.js | 4 +++- src/art/genAI/genderPromptPart.js | 31 +++++++++++++++++++++++++++++++ src/art/genAI/pregPromptPart.js | 21 +++++++++++++++++++++ src/art/genAI/racePromptPart.js | 5 +++++ src/art/genAI/skinPromptPart.js | 3 +++ src/art/genAI/stableDiffusion.js | 8 ++++---- 7 files changed, 70 insertions(+), 6 deletions(-) create mode 100644 src/art/genAI/genderPromptPart.js create mode 100644 src/art/genAI/pregPromptPart.js diff --git a/src/art/genAI/agePromptPart.js b/src/art/genAI/agePromptPart.js index 376ef513ac9..a955d11d495 100644 --- a/src/art/genAI/agePromptPart.js +++ b/src/art/genAI/agePromptPart.js @@ -4,7 +4,9 @@ App.Art.GenAI.AgePromptPart = class AgePromptPart extends App.Art.GenAI.PromptPa */ positive() { let ageTags = ``; - if (this.slave.visualAge < 18) { + if (this.slave.visualAge < 13) { + ageTags = `child, `; + } else if (this.slave.visualAge < 18) { ageTags = `teen, young, `; } else if (this.slave.visualAge < 20) { ageTags = `teen, `; diff --git a/src/art/genAI/buildPrompt.js b/src/art/genAI/buildPrompt.js index 77e5d7d3187..a1015ba089f 100644 --- a/src/art/genAI/buildPrompt.js +++ b/src/art/genAI/buildPrompt.js @@ -6,10 +6,12 @@ function buildPrompt(slave) { let prompts = [ new App.Art.GenAI.StylePromptPart(slave), - new App.Art.GenAI.BeautyPromptPart(slave), new App.Art.GenAI.SkinPromptPart(slave), new App.Art.GenAI.RacePromptPart(slave), + new App.Art.GenAI.GenderPromptPart(slave), new App.Art.GenAI.AgePromptPart(slave), + new App.Art.GenAI.PregPromptPart(slave), + new App.Art.GenAI.BeautyPromptPart(slave), new App.Art.GenAI.PosturePromptPart(slave), new App.Art.GenAI.ArousalPromptPart(slave), new App.Art.GenAI.WeightPromptPart(slave), diff --git a/src/art/genAI/genderPromptPart.js b/src/art/genAI/genderPromptPart.js new file mode 100644 index 00000000000..747fd028ea6 --- /dev/null +++ b/src/art/genAI/genderPromptPart.js @@ -0,0 +1,31 @@ +App.Art.GenAI.GenderPromptPart = class GenderPromptPart extends App.Art.GenAI.PromptPart { + /** + * @returns {string} + */ + positive() { + if (this.slave.genes === "XX") { + if (this.slave.visualAge > 20) { + return "woman"; + } else { + return "girl"; + } + } else { + if (this.slave.visualAge > 20) { + return "man"; + } else { + return "boy"; + } + } + } + + /** + * @returns {string} + */ + negative() { + if (this.slave.genes === "XX") { + return "boy, man"; + } else { + return "woman, girl"; + } + } +}; diff --git a/src/art/genAI/pregPromptPart.js b/src/art/genAI/pregPromptPart.js new file mode 100644 index 00000000000..add8979ef1a --- /dev/null +++ b/src/art/genAI/pregPromptPart.js @@ -0,0 +1,21 @@ +App.Art.GenAI.PregPromptPart = class PregPromptPart extends App.Art.GenAI.PromptPart { + /** + * @returns {string} + */ + positive() { + if (this.slave.preg > 30) { + return "pregnant, full term"; + } else if (this.slave.preg > 20) { + return "pregnant"; + } else if (this.slave.preg > 10) { + return "baby bump"; + } + } + + /** + * @returns {string} + */ + negative() { + return undefined; + } +}; diff --git a/src/art/genAI/racePromptPart.js b/src/art/genAI/racePromptPart.js index dda8562160f..5ff07196b4e 100644 --- a/src/art/genAI/racePromptPart.js +++ b/src/art/genAI/racePromptPart.js @@ -3,6 +3,11 @@ App.Art.GenAI.RacePromptPart = class RacePromptPart extends App.Art.GenAI.Prompt * @returns {string} */ positive() { + if (this.slave.race === "white") { + return "caucasian"; + } else if (this.slave.race === "black") { + return "african"; + } return this.slave.race; } diff --git a/src/art/genAI/skinPromptPart.js b/src/art/genAI/skinPromptPart.js index 8bedb7ed739..15ef9bd58c7 100644 --- a/src/art/genAI/skinPromptPart.js +++ b/src/art/genAI/skinPromptPart.js @@ -3,6 +3,9 @@ App.Art.GenAI.SkinPromptPart = class SkinPromptPart extends App.Art.GenAI.Prompt * @returns {string} */ positive() { + if (this.slave.geneticQuirks.albinism === 2) { + return "albino"; + } switch (this.slave.skin) { case "pure white": case "ivory": diff --git a/src/art/genAI/stableDiffusion.js b/src/art/genAI/stableDiffusion.js index 4d4bfcde4a1..20b23f23633 100644 --- a/src/art/genAI/stableDiffusion.js +++ b/src/art/genAI/stableDiffusion.js @@ -39,12 +39,12 @@ App.Art.GenAI.StableDiffusionSettings = class { */ constructor({ enable_hr = true, - denoising_strength = 0.6, + denoising_strength = 0.3, firstphase_width = 400, firstphase_height = 768, hr_scale = 1.7, - hr_upscaler = "Latent", - hr_second_pass_steps = 12, + hr_upscaler = "SwinIR_4x", + hr_second_pass_steps = 10, hr_resize_x = 0, hr_resize_y = 0, hr_sampler_name = "DPM++ 2M SDE Karras", @@ -141,7 +141,7 @@ App.Art.GenAI.StableDiffusionClient = class { body: JSON.stringify(settings), }; - const response = await fetchWithTimeout(`${this.apiUrl}/sdapi/v1/txt2img`, 30000, options); + const response = await fetchWithTimeout(`${this.apiUrl}/sdapi/v1/txt2img`, 60000, options); if (!response.ok) { console.error("Error fetching Stable Diffusion image", response); throw new Error(`Error fetching Stable Diffusion image - status: ${response.status}`); -- GitLab