| class PromptGenerator { |
| constructor() { |
| this.currentPrompts = []; |
| this.promptsDiv = document.querySelector("#prompts"); |
| this.textArea = document.createElement("textarea"); |
| this.portraitDiv = document.querySelector("#portraitDiv"); |
| this.landscapesDiv = document.querySelector("#landscapesDiv"); |
| this.randomDiv = document.querySelector("#randomDiv"); |
| this.generatorOptionsButton = document.querySelector("#generatorOptionsButton"); |
| this.generatorOptionsDiv = document.querySelector("#generatorOptionsDiv"); |
| this.inputsDisclaimer = document.querySelector("#inputsDisclaimer"); |
| this.charactersInputDiv = document.querySelector("#charactersInputDiv"); |
| this.objectsInputDiv = document.querySelector("#objectsInputDiv"); |
| this.shownOptions = 0; |
| this.currentGenerator = "random"; |
| this.currentCharacters = []; |
| this.currentObjects = []; |
| this.currentPlaces = []; |
| this.currentArtists = []; |
| this.currentStyles = []; |
| this.currentColors = []; |
| this.currentAdjectives = []; |
| this.currentElements = []; |
| this.currentImprovers = []; |
| this.currentPrefixes = []; |
| this.currentSuffixes = []; |
| } |
|
|
| generatePrompt() { |
| |
| const isPrefixePrompt = Math.random() < 0.25; |
|
|
| |
| const isSuffixPrompt = Math.random() < 0.1; |
|
|
| |
| const isPortraitPrompt = this.currentGenerator === "portrait"; |
|
|
| |
| const selectedPortraitShot = document.querySelector("#portraitShotSelect").value; |
|
|
| |
| const portraitShotOptions = ["Full-Length Shot", "American Shot", "Medium Shot", "Close-Up Shot", "Extreme Close-Up Shot"]; |
|
|
| |
| const randomizedPortraitShot = portraitShotOptions[Math.floor(Math.random() * portraitShotOptions.length)]; |
|
|
| |
| const isLandscapesPrompt = this.currentGenerator === "landscapes"; |
|
|
| |
| const selectedLandscapesShot = document.querySelector("#landscapesShotSelect").value; |
|
|
| |
| const landscapesShotOptions = ["Long Shot", "Medium Shot", "Close-Up Shot", "Extreme Close-Up Shot"]; |
|
|
| |
| const randomizedLandscapesShot = landscapesShotOptions[Math.floor(Math.random() * landscapesShotOptions.length)]; |
|
|
| |
| const isObjectsActive = document.querySelector("#objectsActive").checked; |
| const isPlacesActive = document.querySelector("#placesActive").checked; |
| const isArtistsActive = document.querySelector("#artistsActive").checked; |
| const isStylesActive = document.querySelector("#stylesActive").checked; |
| const isColorsActive = document.querySelector("#colorsActive").checked; |
| const isAdjectivesActive = document.querySelector("#adjectivesActive").checked; |
| const isElementsActive = document.querySelector("#elementsActive").checked; |
| const isImproversActive = document.querySelector("#improversActive").checked; |
| const isPrefixesActive = document.querySelector("#prefixesActive").checked; |
| const isSuffixesActive = document.querySelector("#suffixesActive").checked; |
|
|
| |
| let prompt = ""; |
| let mainSubject = ""; |
|
|
| |
| if (isLandscapesPrompt) { |
| document.querySelector("#placesActive").classList.add("hidden"); |
| } else { |
| document.querySelector("#placesActive").classList.remove("hidden"); |
| } |
|
|
| |
| let numArtists = Number(document.querySelector("#numArtists").value); |
| let numStyles = Number(document.querySelector("#numStyles").value); |
|
|
| |
| let artistsPrompt = ""; |
| let stylesPrompt = ""; |
|
|
| |
| for (let i = 0; i < numArtists; i++) { |
| if (i < this.currentArtists.length) { |
| artistsPrompt += `${this.randomElement(this.currentArtists.filter((artist) => !artistsPrompt.includes(artist)))}, `; |
| } |
| } |
| artistsPrompt = artistsPrompt.slice(0, -2); |
|
|
| for (let i = 0; i < numStyles; i++) { |
| if (i < this.currentStyles.length) { |
| stylesPrompt += `${this.randomElement(this.currentStyles.filter((style) => !stylesPrompt.includes(style)))}, `; |
| } |
| } |
| stylesPrompt = stylesPrompt.slice(0, -2); |
|
|
| if (isPortraitPrompt) { |
| if (selectedPortraitShot !== "Random Shot") { |
| |
| prompt += selectedPortraitShot + " "; |
| } else { |
| |
| prompt += Math.random() < 0.33 ? " " : `${randomizedPortraitShot} `; |
| } |
| } else if (isLandscapesPrompt) { |
| if (selectedLandscapesShot !== "Random Shot") { |
| |
| prompt += selectedLandscapesShot + " "; |
| } else { |
| |
| prompt += Math.random() < 0.33 ? " " : `${randomizedLandscapesShot} `; |
| } |
| } |
|
|
| if (prompt.length > 1) { |
| |
| prompt += "of "; |
| } |
|
|
| if (!isLandscapesPrompt) { |
| if ((isPrefixePrompt && isPrefixesActive) || this.currentPrefixes[0] !== prefixes[0]) { |
| |
| prompt += `${this.randomElement(this.currentPrefixes)} `; |
| } |
|
|
| if (isObjectsActive && Math.random() < 0.1 && this.currentCharacters[0] === characters[0]) { |
| |
| mainSubject = this.randomElement(this.currentObjects); |
| prompt += `${mainSubject}`; |
| } else { |
| |
| mainSubject = this.randomElement(this.currentCharacters); |
| if (Math.random() < 0.25 || this.currentObjects[0] !== objects[0]) { |
| if (isObjectsActive) { |
| prompt += `${mainSubject} with ${this.randomElement(this.currentObjects)}`; |
| } else { |
| prompt += `${mainSubject}`; |
| } |
| } else { |
| prompt += `${mainSubject}`; |
| } |
| } |
|
|
| |
| if (isElementsActive) { |
| prompt += ` of ${this.randomElement(this.currentElements)}`; |
| } |
|
|
| if ((isSuffixPrompt && isSuffixesActive) || this.currentSuffixes[0] !== suffixes[0]) { |
| |
| prompt += ` ${this.randomElement(this.currentSuffixes)}`; |
| } |
| } |
|
|
| |
| if (isLandscapesPrompt) { |
| prompt += `${this.randomElement(this.currentPlaces)}`; |
| } else if (isPlacesActive) { |
| prompt += `, ${this.randomElement(this.currentPlaces)}`; |
| } |
|
|
| |
| if (isArtistsActive && isStylesActive) { |
| prompt += `, ${stylesPrompt} in ${artistsPrompt} style`; |
| } else if (isArtistsActive) { |
| prompt += `, ${artistsPrompt} style`; |
| } else if (isStylesActive) { |
| prompt += `, ${stylesPrompt}`; |
| } |
|
|
| |
| if (isAdjectivesActive) { |
| const adjective1 = this.randomElement(this.currentAdjectives); |
| prompt += `, ${adjective1}`; |
| if (this.currentAdjectives.length > 1) { |
| prompt += `, ${this.randomElement(this.currentAdjectives.filter((adjective) => adjective !== adjective1))}`; |
| } |
| } |
|
|
| |
| if (isImproversActive) { |
| prompt += `, ${this.randomElement(this.currentImprovers)}`; |
| } |
|
|
| |
| if (isColorsActive) { |
| prompt += `, ${this.randomElement(this.currentColors)}`; |
| } |
|
|
| |
| this.currentPrompts.push(prompt); |
| } |
|
|
| generatePrompts(num) { |
| |
| this.currentPrompts = []; |
| this.promptsDiv.innerHTML = ""; |
|
|
| |
| this.replaceArraysWithUserInputs.bind(this); |
| this.replaceArraysWithUserInputs(); |
|
|
| |
| for (let i = 0; i < num; i++) { |
| this.generatePrompt(); |
| } |
|
|
| |
| const tempDocumentFragment = document.createDocumentFragment(); |
| for (let i = 0; i < this.currentPrompts.length; i++) { |
| const newPromptLine = document.createElement("p"); |
| newPromptLine.classList.add("py-3"); |
| newPromptLine.textContent = `${this.currentPrompts[i]}`; |
| tempDocumentFragment.appendChild(newPromptLine); |
| } |
|
|
| |
| this.promptsDiv.appendChild(tempDocumentFragment); |
| } |
|
|
| showChosenGenerator() { |
| |
| this.portraitDiv.classList.add("hidden"); |
| this.landscapesDiv.classList.add("hidden"); |
| this.randomDiv.classList.add("hidden"); |
| this.charactersInputDiv.classList.remove("hidden"); |
| this.objectsInputDiv.classList.remove("hidden"); |
| document.querySelector("#elementsInputDiv").classList.remove("hidden"); |
| document.querySelector("#prefixesInputDiv").classList.remove("hidden"); |
| document.querySelector("#suffixesInputDiv").classList.remove("hidden"); |
|
|
| |
| document.querySelector("#placesActive").classList.remove("hidden"); |
|
|
| |
| if (this.currentGenerator === "portrait") { |
| this.portraitDiv.classList.remove("hidden"); |
| } else if (this.currentGenerator === "landscapes") { |
| this.landscapesDiv.classList.remove("hidden"); |
| this.charactersInputDiv.classList.add("hidden"); |
| this.objectsInputDiv.classList.add("hidden"); |
| document.querySelector("#elementsInputDiv").classList.add("hidden"); |
| document.querySelector("#prefixesInputDiv").classList.add("hidden"); |
| document.querySelector("#suffixesInputDiv").classList.add("hidden"); |
| document.querySelector("#placesActive").classList.add("hidden"); |
| } else if (this.currentGenerator === "random") { |
| this.randomDiv.classList.remove("hidden"); |
| } |
| } |
|
|
| |
| randomElement(array) { |
| return array[Math.floor(Math.random() * array.length)]; |
| } |
|
|
| |
| copyPromptsToClipboard(promptsArray) { |
| this.textArea.textContent = promptsArray.join("\n"); |
| navigator.clipboard.writeText(this.textArea.textContent); |
| } |
|
|
| |
| checkUserArraysInputs(textArea) { |
| return textArea.value !== ""; |
| } |
|
|
| |
| replaceArraysWithUserInputs() { |
| const charactersInput = document.querySelector("#charactersTextArea"); |
| const objectsInput = document.querySelector("#objectsTextArea"); |
| const placesInput = document.querySelector("#placesTextArea"); |
| const artistsInput = document.querySelector("#artistsTextArea"); |
| const stylesInput = document.querySelector("#stylesTextArea"); |
| const colorsInput = document.querySelector("#colorsTextArea"); |
| const adjectivesInput = document.querySelector("#adjectivesTextArea"); |
| const elementsInput = document.querySelector("#elementsTextArea"); |
| const improversInput = document.querySelector("#improversTextArea"); |
| const prefixesInput = document.querySelector("#prefixesTextArea"); |
| const suffixesInput = document.querySelector("#suffixesTextArea"); |
|
|
| if (this.checkUserArraysInputs(charactersInput)) { |
| this.currentCharacters = charactersInput.value.split(/\r?\n/); |
| localStorage.setItem("characters", charactersInput.value); |
| } else { |
| this.currentCharacters = [...characters]; |
| localStorage.setItem("characters", ""); |
| } |
|
|
| if (this.checkUserArraysInputs(objectsInput)) { |
| this.currentObjects = objectsInput.value.split(/\r?\n/); |
| localStorage.setItem("objects", objectsInput.value); |
| } else { |
| this.currentObjects = [...objects]; |
| localStorage.setItem("objects", ""); |
| } |
|
|
| if (this.checkUserArraysInputs(placesInput)) { |
| this.currentPlaces = placesInput.value.split(/\r?\n/); |
| localStorage.setItem("places", placesInput.value); |
| } else { |
| this.currentPlaces = [...places]; |
| localStorage.setItem("places", ""); |
| } |
|
|
| if (this.checkUserArraysInputs(artistsInput)) { |
| this.currentArtists = artistsInput.value.split(/\r?\n/); |
| localStorage.setItem("artists", artistsInput.value); |
| } else { |
| this.currentArtists = [...artists]; |
| localStorage.setItem("artists", ""); |
| } |
|
|
| if (this.checkUserArraysInputs(stylesInput)) { |
| this.currentStyles = stylesInput.value.split(/\r?\n/); |
| localStorage.setItem("styles", stylesInput.value); |
| } else { |
| this.currentStyles = [...styles]; |
| localStorage.setItem("styles", ""); |
| } |
|
|
| if (this.checkUserArraysInputs(colorsInput)) { |
| this.currentColors = colorsInput.value.split(/\r?\n/); |
| localStorage.setItem("colors", colorsInput.value); |
| } else { |
| this.currentColors = [...colors]; |
| localStorage.setItem("colors", ""); |
| } |
|
|
| if (this.checkUserArraysInputs(adjectivesInput)) { |
| this.currentAdjectives = adjectivesInput.value.split(/\r?\n/); |
| localStorage.setItem("adjectives", adjectivesInput.value); |
| } else { |
| this.currentAdjectives = [...adjectives]; |
| localStorage.setItem("adjectives", ""); |
| } |
|
|
| if (this.checkUserArraysInputs(elementsInput)) { |
| this.currentElements = elementsInput.value.split(/\r?\n/); |
| localStorage.setItem("elements", elementsInput.value); |
| } else { |
| this.currentElements = [...elements]; |
| localStorage.setItem("elements", ""); |
| } |
|
|
| if (this.checkUserArraysInputs(improversInput)) { |
| this.currentImprovers = improversInput.value.split(/\r?\n/); |
| localStorage.setItem("improvers", improversInput.value); |
| } else { |
| this.currentImprovers = [...improvers]; |
| localStorage.setItem("improvers", ""); |
| } |
|
|
| if (this.checkUserArraysInputs(prefixesInput)) { |
| this.currentPrefixes = prefixesInput.value.split(/\r?\n/); |
| localStorage.setItem("prefixes", prefixesInput.value); |
| } else { |
| this.currentPrefixes = [...prefixes]; |
| localStorage.setItem("prefixes", ""); |
| } |
|
|
| if (this.checkUserArraysInputs(suffixesInput)) { |
| this.currentSuffixes = suffixesInput.value.split(/\r?\n/); |
| localStorage.setItem("suffixes", suffixesInput.value); |
| } else { |
| this.currentSuffixes = [...suffixes]; |
| localStorage.setItem("suffixes", ""); |
| } |
| } |
|
|
| |
| addPreviousUserInputs() { |
| const charactersInput = document.querySelector("#charactersTextArea"); |
| const objectsInput = document.querySelector("#objectsTextArea"); |
| const placesInput = document.querySelector("#placesTextArea"); |
| const artistsInput = document.querySelector("#artistsTextArea"); |
| const stylesInput = document.querySelector("#stylesTextArea"); |
| const colorsInput = document.querySelector("#colorsTextArea"); |
| const adjectivesInput = document.querySelector("#adjectivesTextArea"); |
| const elementsInput = document.querySelector("#elementsTextArea"); |
| const improversInput = document.querySelector("#improversTextArea"); |
| const prefixesInput = document.querySelector("#prefixesTextArea"); |
| const suffixesInput = document.querySelector("#suffixesTextArea"); |
|
|
| charactersInput.value = localStorage.getItem("characters"); |
| objectsInput.value = localStorage.getItem("objects"); |
| placesInput.value = localStorage.getItem("places"); |
| artistsInput.value = localStorage.getItem("artists"); |
| stylesInput.value = localStorage.getItem("styles"); |
| colorsInput.value = localStorage.getItem("colors"); |
| adjectivesInput.value = localStorage.getItem("adjectives"); |
| elementsInput.value = localStorage.getItem("elements"); |
| improversInput.value = localStorage.getItem("improvers"); |
| prefixesInput.value = localStorage.getItem("prefixes"); |
| suffixesInput.value = localStorage.getItem("suffixes"); |
| } |
|
|
| |
| resetUserInputs() { |
| const charactersInput = document.querySelector("#charactersTextArea"); |
| const objectsInput = document.querySelector("#objectsTextArea"); |
| const placesInput = document.querySelector("#placesTextArea"); |
| const artistsInput = document.querySelector("#artistsTextArea"); |
| const stylesInput = document.querySelector("#stylesTextArea"); |
| const colorsInput = document.querySelector("#colorsTextArea"); |
| const adjectivesInput = document.querySelector("#adjectivesTextArea"); |
| const elementsInput = document.querySelector("#elementsTextArea"); |
| const improversInput = document.querySelector("#improversTextArea"); |
| const prefixesInput = document.querySelector("#prefixesTextArea"); |
| const suffixesInput = document.querySelector("#suffixesTextArea"); |
|
|
| localStorage.setItem("characters", ""); |
| localStorage.setItem("objects", ""); |
| localStorage.setItem("places", ""); |
| localStorage.setItem("artists", ""); |
| localStorage.setItem("styles", ""); |
| localStorage.setItem("colors", ""); |
| localStorage.setItem("adjectives", ""); |
| localStorage.setItem("elements", ""); |
| localStorage.setItem("improvers", ""); |
| localStorage.setItem("prefixes", ""); |
| localStorage.setItem("suffixes", ""); |
|
|
| charactersInput.value = localStorage.getItem("characters"); |
| objectsInput.value = localStorage.getItem("objects"); |
| placesInput.value = localStorage.getItem("places"); |
| artistsInput.value = localStorage.getItem("artists"); |
| stylesInput.value = localStorage.getItem("styles"); |
| colorsInput.value = localStorage.getItem("colors"); |
| adjectivesInput.value = localStorage.getItem("adjectives"); |
| elementsInput.value = localStorage.getItem("elements"); |
| improversInput.value = localStorage.getItem("improvers"); |
| prefixesInput.value = localStorage.getItem("prefixes"); |
| suffixesInput.value = localStorage.getItem("suffixes"); |
| } |
| } |
|
|
| const promptGenerator = new PromptGenerator(); |
|
|
| |
| document.querySelector("#promptsCopyButton").addEventListener("click", (event) => { |
| promptGenerator.copyPromptsToClipboard(promptGenerator.currentPrompts); |
| }); |
|
|
| |
| document.querySelector("#generatePromptsButton").addEventListener("click", (event) => { |
| const promptsNumber = document.querySelector("#promptsNumberInput").value; |
| if (!isNaN(promptsNumber) && promptsNumber > 0 && promptsNumber <= 10000) { |
| promptGenerator.generatePrompts(promptsNumber); |
| } else { |
| alert("Please enter a number of prompts to generate between 1 and 10000."); |
| } |
| }); |
|
|
| |
| let isMenuOpen = false; |
|
|
| function mobileMenuClickHandling(event) { |
| |
| const hamburgerButton = document.getElementById("hamburgerButton"); |
| const bgMobileMenu = document.getElementById("bgMobileMenu"); |
| const menuList = document.getElementById("menuList"); |
|
|
| const isClickOnButton = hamburgerButton.contains(event.target); |
|
|
| if (isClickOnButton) { |
| if (isMenuOpen) { |
| menuList.classList.add("hidden"); |
| bgMobileMenu.classList.add("hidden"); |
| hamburgerButton.blur(); |
| document.body.style.overflowY = "visible"; |
| } else { |
| menuList.classList.remove("hidden"); |
| bgMobileMenu.classList.remove("hidden"); |
| document.body.style.overflowY = "hidden"; |
| } |
| isMenuOpen = !isMenuOpen; |
| } else if (menuList.contains(event.target)) { |
| switchGenerator(); |
| menuList.classList.add("hidden"); |
| bgMobileMenu.classList.add("hidden"); |
| isMenuOpen = false; |
| document.body.style.overflowY = "visible"; |
| } else { |
| menuList.classList.add("hidden"); |
| bgMobileMenu.classList.add("hidden"); |
| isMenuOpen = false; |
| document.body.style.overflowY = "visible"; |
| } |
| } |
|
|
| function mobileMenuFocusBack(event) { |
| if (isMenuOpen && !menuList.contains(event.target)) { |
| event.stopImmediatePropagation(); |
| hamburgerButton.focus(); |
| } |
| } |
|
|
| |
| document.addEventListener("click", mobileMenuClickHandling); |
|
|
| |
| document.addEventListener("focusin", mobileMenuFocusBack); |
|
|
| |
| function switchGenerator() { |
| const isClickOnPortrait = event.target.classList.contains("portraitLink"); |
| const isClickOnLandscapes = event.target.classList.contains("landscapesLink"); |
| const isClickOnRandom = event.target.classList.contains("randomLink"); |
|
|
| if (isClickOnPortrait) { |
| promptGenerator.currentGenerator = "portrait"; |
| } else if (isClickOnLandscapes) { |
| promptGenerator.currentGenerator = "landscapes"; |
| } else if (isClickOnRandom) { |
| promptGenerator.currentGenerator = "random"; |
| } |
|
|
| promptGenerator.showChosenGenerator(); |
| } |
|
|
| |
| document.querySelector("nav").addEventListener("click", switchGenerator); |
|
|
| |
| function showGeneratorOptions() { |
| if (promptGenerator.shownOptions == 0) { |
| promptGenerator.generatorOptionsButton.textContent = promptGenerator.generatorOptionsButton.textContent.replace("Show", "Hide"); |
| promptGenerator.shownOptions++; |
| } else { |
| promptGenerator.generatorOptionsButton.textContent = promptGenerator.generatorOptionsButton.innerHTML.replace("Hide", "Show"); |
| promptGenerator.shownOptions--; |
| } |
| promptGenerator.inputsDisclaimer.classList.toggle("hidden"); |
| promptGenerator.generatorOptionsDiv.classList.toggle("hidden"); |
| } |
|
|
| |
| document.querySelector("#generatorOptionsButton").addEventListener("click", showGeneratorOptions); |
|
|
| |
| document.querySelector("#resetInputsButton").addEventListener("click", promptGenerator.resetUserInputs); |
|
|
| |
| document.querySelector("#numArtists").addEventListener("change", () => { |
| let numArtists = document.querySelector("#numArtists"); |
| let v = Number(numArtists.value); |
| if (v < 1) { |
| numArtists.value = 1; |
| } |
| if (v > 5) { |
| numArtists.value = 5; |
| } |
| }); |
|
|
| |
| document.querySelector("#numStyles").addEventListener("change", () => { |
| let numStyles = document.querySelector("#numStyles"); |
| let v = Number(numStyles.value); |
| if (v < 1) { |
| numStyles.value = 1; |
| } |
| if (v > 3) { |
| numStyles.value = 3; |
| } |
| }); |
|
|
| |
| const characters = [ |
| "Mermaid", |
| "Fairy", |
| "Wizard", |
| "Warrior", |
| "Vampire", |
| "Dragon", |
| "Goddess", |
| "Cyborg", |
| "Robot", |
| "Angel", |
| "Demon", |
| "Alien", |
| "Ghost", |
| "Ninja", |
| "Samurai", |
| "Pirate", |
| "Knight", |
| "Bard", |
| "Werewolf", |
| "Zombie", |
| "Giant", |
| "Golem", |
| "Sphinx", |
| "Chimera", |
| "Medusa", |
| "Minotaur", |
| "Harpy", |
| "Kraken", |
| "Cthulhu", |
| "Gorgon", |
| "Hydra", |
| "Banshee", |
| "Satyr", |
| "Cyclops", |
| "Dwarf", |
| "Elf", |
| "Centaur", |
| "Manticore", |
| "Frost Giant", |
| "Sandworm", |
| "Kelpie", |
| "Thunderbird", |
| "Leviathan", |
| "Thundercats", |
| "Gargantua", |
| "Ogre", |
| "Goblin", |
| "Halfling", |
| "Harlequin", |
| "Jinn", |
| "Kitsune", |
| "Lich", |
| "Mummy", |
| "Naga", |
| "Oni", |
| "Pixie", |
| "Siren", |
| "Sylph", |
| "Treant", |
| "Unicorn", |
| "Wendigo", |
| "Wraith", |
| "Xenomorph", |
| "Yokai", |
| "Zephyr", |
| "Zombie Dragon", |
| "Abomination", |
| "Aasimar", |
| "Arachne", |
| "Cambion", |
| "Cerberus", |
| "Changeling", |
| "Djinn", |
| "Dryad", |
| "Gargoyle", |
| "Gnoll", |
| "Grim Reaper", |
| "Half-Demon", |
| "Hobgoblin", |
| "Ifrit", |
| "Incubus", |
| "Kappa", |
| "Lizardfolk", |
| "Mind Flayer", |
| "Mongrelfolk", |
| "Myconid", |
| "Orc", |
| "Sahuagin", |
| "Shapeshifter", |
| "Spectre", |
| "Tengu", |
| "Titan", |
| "Witch", |
| "Yeti", |
| "Yuan-Ti", |
| "Archer", |
| "Barbarian", |
| "Beastmaster", |
| "Cleric", |
| "Druid", |
| "Enchanter", |
| "Executioner", |
| "Gladiator", |
| "Gunslinger", |
| "Healer", |
| "Hunter", |
| "Illusionist", |
| "Infernal", |
| "Inventor", |
| "Jester", |
| "Knight Errant", |
| "Mage Hunter", |
| "Marauder", |
| "Necromancer", |
| "Ninja Assassin", |
| "Paladin", |
| "Psionicist", |
| "Ranger", |
| "Rogue", |
| "Runemaster", |
| "Savage", |
| "Scout", |
| "Shaman", |
| "Sniper", |
| "Soldier", |
| "Sorcerer", |
| "Spellblade", |
| "Spymaster", |
| "Swashbuckler", |
| "Templar", |
| "Thief", |
| "Time Traveler", |
| "Tracker", |
| "Trickster", |
| "Vampire Hunter", |
| "Warlock", |
| "Warrior Monk", |
| "Witch Doctor", |
| "Wizard Hunter", |
| "Zealot", |
| "Arcanist", |
| "Demon Hunter", |
| "Dragon Slayer", |
| "Elementalist", |
| "Basilisk", |
| "Cockatrice", |
| "Cryptid", |
| "Darkling", |
| "Dracolich", |
| "Elemental", |
| "Enchantress", |
| "Fenrir", |
| "Gryphon", |
| "Harpie", |
| "Imp", |
| "Jotun", |
| "Lindworm", |
| "Merfolk", |
| "Nephilim", |
| "Phoenix", |
| "Roc", |
| "Sasquatch", |
| "Spriggan", |
| "Troll", |
| "Ursine", |
| "Valkyrie", |
| "Vargr", |
| "Will-o'-the-wisp", |
| "Wyvern", |
| "Xorn", |
| "Yeth Hound", |
| "Zilant", |
| "Ankheg", |
| "Barghest", |
| "Catoblepas", |
| "Direwolf", |
| "Empusa", |
| "Frost Worm", |
| "Giant Scorpion", |
| "Homunculus", |
| "Illithid", |
| "Juggernaut", |
| "Kobold", |
| "Lamia", |
| "Megafauna", |
| "Nightmare", |
| "Ophidian", |
| "Peryton", |
| "Quetzalcoatlus", |
| "Rat King", |
| "Salamander", |
| "Alchemist", |
| "Fire Elemental", |
| "Water Elemental", |
| "Earth Elemental", |
| "Air Elemental", |
| "Meteor Elemental", |
| "Ice Elemental", |
| "Light Elemental", |
| "Shadow Elemental", |
| "Astral Elemental", |
| "Faun", |
| "Moai", |
| "Wight", |
| "Bogeyman", |
| "Revenant", |
| "Selkie", |
| "Pegasus", |
| "Weretiger", |
| "Werebear", |
| "Seraphim", |
| "Cherubim", |
| "Hobbit", |
| "Skinwalker", |
| "Poltergeist", |
| "Ghoul", |
| "Fomorian", |
| "Vodyanoi", |
| "Kobaloi", |
| "Graeae", |
| "Erinyes", |
| "Hippogriff", |
| "Shade", |
| "Kodama", |
| "Strigoi", |
| "Qilin", |
| "Dullahan", |
| "Headless Horseman", |
| "Aswang", |
| "Stymphalian Birds", |
| "Tengu Warrior", |
| "Koschei", |
| "Nuckelavee", |
| "Hellhound", |
| "Simurgh", |
| "Boogeyman", |
| "Amphisbaena", |
| "Amarok", |
| "Tatzelwurm", |
| "Kaiju", |
| "Sea Serpent", |
| "Raiju", |
| "Wyrm", |
| "Ooze", |
| "Rakshasa", |
| "Balrog", |
| "Grotesque", |
| "Warg", |
| "Quasit", |
| "Skull Knight", |
| "Nephalem", |
| "Archmage", |
| "Astrophysicist", |
| "Geomancer", |
| "Lunar Deity", |
| "Solar Deity", |
| "Diviner", |
| "Cartomancer", |
| "Voodoo Priest", |
| "Spiritualist", |
| "Elemental Lord", |
| "Shadowmancer", |
| "Lunar Sorceress", |
| "Wyrm Rider", |
| "Geomancer", |
| "Electromancer", |
| "Quantum Mage", |
| "Psychonaut", |
| "Cosmonaut", |
| "Seer", |
| "Cosmic Serpent", |
| "Galactic Entity", |
| "Void Entity", |
| "Astral Traveler", |
| "Oracle", |
| "Battle Mage", |
| "Scholar", |
| "High Priest", |
| "Moon Priestess", |
| "Sun Priest", |
| "Seidr", |
| "Feng Shui Master", |
| "Metalbender", |
| "Earthbender", |
| "Firebender", |
| "Waterbender", |
| "Airbender", |
| "Cosmic Bender", |
| "Hexblade", |
| "Shieldbearer", |
| "Lorekeeper", |
| "Peacekeeper", |
| "Oathkeeper", |
| "Master of Whispers", |
| "Master of Arms", |
| "Master of Beasts", |
| "Master of Elements", |
| "Death Knight", |
| "Life Knight", |
| "Chaos Knight", |
| "Order Knight", |
| "Cosmic Knight", |
| "Temporal Knight", |
| "Eldritch Knight", |
| "Keyblade Master", |
| "Astral Knight", |
| "Lunar Knight", |
| "Solar Knight", |
| "Elemental Knight", |
| "Undying", |
| "Celestial", |
| "Sea King", |
| "Sky Queen", |
| "Earth Mother", |
| "Void Master", |
| "Time Warden", |
| "Cosmic Warden", |
| "Lunar Warden", |
| "Sun Warden", |
| "Star Warden", |
| "Shadow Warden", |
| "Spirit Warden", |
| "Ghost Pirate", |
| "Sea Witch", |
| "Lunar Witch", |
| "Solar Witch", |
| "Star Witch", |
| "Wight King", |
| "Oblivion Queen", |
| "Astral Dragon", |
| "Meteor Dragon", |
| "Rainbow Dragon", |
| "Stardust Dragon", |
| "Lunar Phoenix", |
| "Solar Phoenix", |
| "Cosmic Phoenix", |
| "Shadow Phoenix", |
| "Flame Phoenix", |
| "Ocean Phoenix", |
| "Mystic Archer", |
| "Time Archer", |
| "Astral Archer", |
| "Rocket Archer", |
| "Void Archer", |
| "Shadow Archer", |
| "Spectral Archer", |
| "Battle Seer", |
| "Wind Dancer", |
| "Shadow Dancer", |
| "Star Dancer", |
| "Spirit Dancer", |
| "Oath Dancer", |
| "Cosmic Dancer", |
| "Chaos Dancer", |
| "Order Dancer", |
| "Sky Dancer", |
| "Earth Dancer", |
| "Flame Dancer", |
| "Mystic Dancer", |
| "Jungle Shaman", |
| "Desert Shaman", |
| "Mountain Shaman", |
| "Island Shaman", |
| "Sky Shaman", |
| "Battle Shaman", |
| "Shadow Shaman", |
| "Star Shaman", |
| "Chaos Shaman", |
| "Order Shaman", |
| "Master Chief", |
| "Solid Snake", |
| "Kratos", |
| "Geralt of Rivia", |
| "Cloud Strife", |
| "Aloy", |
| "Lara Croft", |
| "Link", |
| "Sonic", |
| "Mario", |
| "Zelda", |
| "Samus Aran", |
| "Sephiroth", |
| "Arthur Morgan", |
| "Niko Bellic", |
| "Marcus Fenix", |
| "Jill Valentine", |
| "Sub-Zero", |
| "Scorpion", |
| "Goku", |
| "Naruto", |
| "Saitama", |
| "Spike Spiegel", |
| "Inuyasha", |
| "Edward Elric", |
| "Astolfo", |
| "Alucard", |
| "Light Yagami", |
| "Asuka Langley", |
| "Totoro", |
| "Kenshin Himura", |
| "Frodo Baggins", |
| "Harry Potter", |
| "Aragorn", |
| "Gandalf", |
| "Jon Snow", |
| "Daenerys Targaryen", |
| "Voldemort", |
| "Lara Croft", |
| "Samus Aran", |
| "Aloy", |
| "Jill Valentine", |
| "Sailor Moon", |
| "Homura Akemi", |
| "Saber", |
| "Mikasa Ackerman", |
| "Asuka Langley Soryu", |
| "Rem", |
| "Nami", |
| "Bulma", |
| "Hermione Granger", |
| "Galadriel", |
| "Éowyn", |
| "Daenerys Targaryen", |
| "Arya Stark", |
| "Leia Organa", |
| "Ripley", |
| "Wonder Woman", |
| ]; |
|
|
| const objects = [ |
| "Sword", |
| "Amulet", |
| "Crystal", |
| "Potion", |
| "Book", |
| "Staff", |
| "Wand", |
| "Ring", |
| "Armor", |
| "Helm", |
| "Goblet", |
| "Chalice", |
| "Crown", |
| "Scepter", |
| "Medallion", |
| "Orb", |
| "Talisman", |
| "Relic", |
| "Binoculars", |
| "Spear", |
| "Dagger", |
| "Bow and Arrow", |
| "Shield", |
| "Mace", |
| "Hammer", |
| "Axe", |
| "Crossbow", |
| "Whip", |
| "Bolas", |
| "Poison", |
| "Chainsaw", |
| "Katana", |
| "Glaive", |
| "Shuriken", |
| "Sniper", |
| "Gun", |
| "T-shirt", |
| "Shirt", |
| "Skirt", |
| "Sneakers", |
| "Jeans", |
| "Sunglasses", |
| "Baseball Cap", |
| "Boots", |
| "High Heels", |
| "Excalibur", |
| "Mjölnir", |
| "Lightsaber", |
| "Cape", |
| "Leather Jacket", |
| "Dragonscale Armor", |
| "Refined Armor", |
| "Heavy Armor", |
| "Light Armor", |
| "Laptop", |
| "Smartphone", |
| "Tablet", |
| "Camera", |
| "Chains", |
| "Rope", |
| "Breastplate", |
| "Gauntlets", |
| "Shin Guards", |
| "Cuirass", |
| "Gorget", |
| "Pauldrons", |
| "Vambraces", |
| "Greaves", |
| "Beanie", |
| "Bucket Hat", |
| "Beret", |
| "Cloak", |
| "Sarong", |
| "Kilt", |
| "Chaps", |
| "Quiver", |
| "Holster", |
| "Backpack", |
| "Bracelet", |
| "Choker", |
| "Pendant", |
| "Kimono", |
| "Toga", |
| "Fedora", |
| "Tutu", |
| "Turban", |
| "Fanny Pack", |
| "Combat Boots", |
| "Aviator Glasses", |
| ]; |
|
|
| const places = [ |
| "Underwater City", |
| "Sky Castle", |
| "Forest Temple", |
| "Haunted Mansion", |
| "Crystal Cavern", |
| "Ice Fortress", |
| "Volcano Lair", |
| "Cyber City", |
| "Steam Punk Metropolis", |
| "Enchanted Garden", |
| "Dark Dimension", |
| "Celestial Palace", |
| "Underground Tunnels", |
| "Frozen Wasteland", |
| "Desert Oasis", |
| "Jungle Ruins", |
| "Floating Island", |
| "Time Warp", |
| "Alien Planet", |
| "Deep Space Station", |
| "Magical Academy", |
| "Futuristic Laboratory", |
| "Ancient Library", |
| "Artificial Intelligence Network", |
| "Giant's Lair", |
| "Chaos Realm", |
| "Fairy Tale Castle", |
| "Post-Apocalyptic City", |
| "Interdimensional Nexus", |
| "Dreamscape", |
| "Abandoned Asylum", |
| "Sunken Ship", |
| "Forbidden Temple", |
| "Lost City", |
| "Parallel Universe", |
| "Mystic Marsh", |
| "Parallel World", |
| "Underground Kingdom", |
| "Dark Forest", |
| "Crystal Palace", |
| "Cursed Island", |
| "Rainbow Valley", |
| "Fire Mountain", |
| "Hidden Cave", |
| "Sky Kingdom", |
| "Savage Wilds", |
| "Mystical Mountain", |
| "Ancient Pyramid", |
| "Tropical Beach", |
| "Elemental Plane", |
| "Outer Space Colony", |
| "Underground Bunker", |
| "Lunar Base", |
| "Forgotten Citadel", |
| "Ancient Catacombs", |
| "Holographic Theme Park", |
| "Crystal Lake", |
| "Floating Market", |
| "Underground Volcano", |
| "Abandoned Space Station", |
| "Surreal Landscape", |
| "Crystal Tower", |
| "Mystical Island", |
| "Mysterious Labyrinth", |
| "Jungle Canopy", |
| "Enchanted Marketplace", |
| "Sunken Cityscape", |
| "Haunted Forest", |
| "Space Elevator", |
| "Crystal Lagoon", |
| "Magma Chamber", |
| "Thundering Waterfall", |
| "Ethereal Valley", |
| "Abandoned Subway System", |
| "Mirrored City", |
| "Ancient Citadel", |
| "Frozen Tundra", |
| "Haunted Amusement Park", |
| "Sunken Ruins", |
| "Enchanted Castle", |
| "Sandswept Canyon", |
| "Orbital Station", |
| "Lost Wilderness", |
| "Aurora Borealis", |
| "Giant Redwood Forest", |
| "Futuristic Casino", |
| "Mythical Underworld", |
| "Infinite Desert", |
| "Mystical Labyrinth", |
| "Galactic Gateway", |
| "Submerged Cavern", |
| "Eternal Ice Fields", |
| "Dark Matter Realm", |
| "Holographic City", |
| "Celestial Observatory", |
| "Nebula Cluster", |
| "Glacier National Park", |
| "Undiscovered Island", |
| "Underground Laboratory", |
| "Retro Arcade", |
| "Crystal Gardens", |
| "Chromatic Coastline", |
| "Iridescent Reef", |
| "Lunar Colony", |
| "Rainforest Canopy", |
| "Hyperborean Forest", |
| "Tesseract Station", |
| "Magnetic Caves", |
| "Abyssal Trench", |
| "Interstellar Hub", |
| "Exoplanet Outpost", |
| "Emerald Canyon", |
| "Spectral Sands", |
| "Lost Oasis", |
| "Nebula Nebula", |
| "Astral Nexus", |
| "Radiant Cityscape", |
| "Euphoric Eden", |
| "Pixelated Wonderland", |
| "Clockwork Metropolis", |
| "Ethereal Plane", |
| "Neo-Tokyo Megapolis", |
| "Doomsday New York", |
| "Osaka", |
| "Futuristic New York", |
| "Gothic Paris", |
| "Cybernetic London", |
| "Spectral Rome", |
| "Mythical Cairo", |
| "Enchanted Sydney", |
| "Steampunk San Francisco", |
| "Eerie New Orleans", |
| "Epic Berlin", |
| "Venice of Dreams", |
| "Steampunk London", |
| "Retrofuturistic Moscow", |
| "Ruins of Rome", |
| "Shanghai Skybridge", |
| "Cybernetic Arena", |
| "Witch's Cottage", |
| "Infinite Jungle", |
| "Robot Zoo", |
| "Elven Treehouse", |
| "Desert Mirage", |
| "Virtual Reality Playground", |
| "Crystalized Cave", |
| "Dragon's Den", |
| "Sacred Waterfall", |
| "Dimensional Library", |
| "Moonlit Orchard", |
| "Alchemist's Tower", |
| "Haunted Graveyard", |
| "Oceanic Abyss", |
| "Temporal Café", |
| "Lost Atlantis", |
| "Vampire Castle", |
| "Invisible Maze", |
| "Cherry Blossom Temple", |
| "Digital Utopia", |
| "Celestial Zoo", |
| "Pirate Cove", |
| "Forest of Echoes", |
| "Mars Colony", |
| "Alien Zoo", |
| "Petrified Forest", |
| "Goblin Market", |
| "Cursed Zoo", |
| "Eldritch Library", |
| "Heavenly Observatory", |
| "Magic School", |
| "Undying Desert", |
| "Temporal Rift", |
| "Robot Factory", |
| "Spacecraft Graveyard", |
| "Arctic Wilderness", |
| "Lush Savannah", |
| "Carnival of Nightmares", |
| "Starlit Beach", |
| ]; |
|
|
| const elements = [ |
| "Fire", |
| "Water", |
| "Air", |
| "Earth", |
| "Lightning", |
| "Ice", |
| "Nature", |
| "Darkness", |
| "Light", |
| "Metal", |
| "Shadow", |
| "Blood", |
| "Lava", |
| "Crystal", |
| "Poison", |
| "Time", |
| "Space", |
| "Gravity", |
| "Sound", |
| "Electricity", |
| "Plasma", |
| "Radiation", |
| "Magma", |
| "Smoke", |
| "Steam", |
| "Void", |
| "Wind", |
| "Plantlife", |
| "Moon", |
| "Sun", |
| "Stars", |
| "Sand", |
| "Ash", |
| "Quicksand", |
| "Frost", |
| "Acid", |
| "Thunder", |
| "Psychic Energy", |
| "Dimensional Rift", |
| "Cosmic Dust", |
| "Spirit", |
| "Gravity Waves", |
| "Invisibility", |
| "Psychokinesis", |
| "Luminosity", |
| "Chaos", |
| "Magnetism", |
| "Antimatter", |
| "Pulse", |
| "Gravity Flux", |
| "Echolocation", |
| "Photosynthesis", |
| "Radiance", |
| "Oblivion", |
| "Memory", |
| "Gravity Well", |
| "Nanobots", |
| "Nuclear Energy", |
| "Psionics", |
| "Phase Shift", |
| ]; |
|
|
| const adjectives = [ |
| "Ethereal", |
| "Whimsical", |
| "Mysterious", |
| "Eerie", |
| "Futuristic", |
| "Gothic", |
| "Serene", |
| "Enigmatic", |
| "Otherworldly", |
| "Surreal", |
| "Mythical", |
| "Transcendent", |
| "Celestial", |
| "Nostalgic", |
| "Hypnotic", |
| "Cinematic", |
| "Awe-Inspiring", |
| "Epic", |
| "Radiant", |
| "Ornate", |
| "Holographic", |
| "Prismatic", |
| "Intricate", |
| "Majestic", |
| "Harmonious", |
| "Opulent", |
| "Spectral", |
| "Dramatic", |
| "Glimmering", |
| "Dreamlike", |
| "Hyperrealistic", |
| "Melancholic", |
| "Psychedelic", |
| "Retro-Futuristic", |
| "Post-Apocalyptic", |
| "Neon", |
| "Saturated", |
| "Sculptural", |
| "Minimalist", |
| "Abstract", |
| "Vibrant", |
| "Cosmic", |
| "Organic", |
| "Luminous", |
| "Tranquil", |
| "Whirlwind", |
| "Hazy", |
| "Fragile", |
| "Crisp", |
| "Dynamic", |
| "Galactic", |
| "Flamboyant", |
| "Shimmering", |
| "Misty", |
| "Idyllic", |
| "Nebulous", |
| "Rustic", |
| "Fleeting", |
| "Nimble", |
| "Spirited", |
| "Geometric", |
| "Polygonal", |
| "Golden Hour", |
| "Underwater", |
| "Pokémon", |
| ]; |
|
|
| const styles = [ |
| "Digital Art", |
| "Surrealism", |
| "Concept Art", |
| "Illustration", |
| "Character Design", |
| "Anime", |
| "Realism", |
| "Impressionism", |
| "Pop Art", |
| "Steampunk", |
| "Pixel Art", |
| "Graffiti Art", |
| "Fantasy Art", |
| "Futurism", |
| "Art Deco", |
| "Minimalism", |
| "Street Art", |
| "Hyperrealism", |
| "Glitch Art", |
| "Photorealism", |
| "Calligraphy", |
| "Ink", |
| "Woodcut Print", |
| "Manga", |
| "Sketch", |
| "Drawing", |
| "Doodle", |
| "Dot Art", |
| "Stipple", |
| "Anatomical Drawing", |
| "Visual Novel", |
| "Graphic Novel", |
| "Hand-Drawn", |
| "Graphite", |
| "Colored Pencil", |
| "Pastel Art", |
| "Blackboard", |
| "Splatter Paint", |
| "Paper-Marbling", |
| "Logo", |
| "Comic Book", |
| "Poster", |
| "Kirigami", |
| "Origami", |
| "Frame", |
| "Wall Decal", |
| "Banner", |
| "Papercutting", |
| "Ice Carving", |
| "Linocut", |
| "Wood-Carving", |
| "Light Art", |
| "Bokeh", |
| "Wildlife Photography", |
| "Portrait", |
| "Microscopic", |
| "Ultra-Wide Angle", |
| "Depth of Field", |
| "Closeup", |
| "Blur Effect", |
| "Lens Flare", |
| "Punk", |
| ]; |
|
|
| const colors = [ |
| "Warm Color Palette", |
| "Colorful", |
| "Rainbow", |
| "Spectral Color", |
| "Inverted Colors", |
| "Neon", |
| "Electric Colors", |
| "Complimentary-Colors", |
| "Dark Mode", |
| "Triadic-Colors", |
| "Polychromatic Colors", |
| "Tones of Black", |
| "Black and White", |
| "Monochrome", |
| "Sepia", |
| "High Contrast", |
| "Low Contrast", |
| "Technicolor", |
| "Atari Graphics", |
| "Adobe RGB", |
| "Hexadecimal", |
| "Vintage", |
| "Pastel Palette", |
| "Metallic Colors", |
| "Fire Tones", |
| "Shades of Gray", |
| "Pop Art Colors", |
| "Night Colors", |
| "Cool Tones", |
| "Warm Tones", |
| "Red Monochrome", |
| "Green Monochrome", |
| "Blue Monochrome", |
| "Yellow Monochrome", |
| "Purple Monochrome", |
| ]; |
|
|
| const artists = [ |
| "Alan Lee", |
| "Cyril Rolando", |
| "David Mack", |
| "Donato Giancola", |
| "Greg Rutkowski", |
| "Ismail Inceoglu", |
| "John Berkey", |
| "Michael Garmash", |
| "Peter Mohrbacher", |
| "Sparth", |
| "Vincent Di Fate", |
| "Akihiko Yoshida", |
| "Artgerm", |
| "Charlie Bowater", |
| "Frank Frazetta", |
| "Hsiao-Ron Cheng", |
| "Ilya Kuvshinov", |
| "Joshua Middleton", |
| "Krenz Cushart", |
| "Lois Van Baarle", |
| "Makoto Shinkai", |
| "Rossdraws", |
| "Wenjun Lin", |
| "Anna Dittmann", |
| "Agnes Cecile", |
| "Alphonse Mucha", |
| "Audrey Kawasaki", |
| "Boris Vallejo", |
| "Carne Griffiths", |
| "Conrad Roset", |
| "JC Leyendecker", |
| "Joseph Lorusso", |
| "Jovana Rikalo", |
| "Karol Bak", |
| "Marco Mazzoni", |
| "Miho Hirano", |
| "Rebeca Saray", |
| "Robert McGinnis", |
| "Russ Mills", |
| "Tom Bagshaw", |
| "Tristan Eaton", |
| "Ed Mell", |
| "Jessica Rossier", |
| "Hubert Robert", |
| "Ian McQue", |
| "Marc Simonetti", |
| "Raphael Lacoste", |
| "Bernie Wrightson", |
| "H.R. Giger", |
| "Richard Corben", |
| "Wayne Barlowe", |
| "Zdzislaw Beksinski", |
| "Hokusai Katsushika", |
| "Akira Toriyama", |
| "Eiichiro Oda", |
| "Masashi Kishimoto", |
| "Osamu Tezuka", |
| "Vincent van Gogh", |
| "Leonardo da Vinci", |
| "Frida Kahlo", |
| "Pablo Picasso", |
| "Georgia O'Keeffe", |
| "Ansel Adams", |
| "Dorothea Lange", |
| "Robert Capa", |
| "Cindy Sherman", |
| "Henri Cartier-Bresson", |
| "Michelangelo", |
| "Auguste Rodin", |
| "Louise Bourgeois", |
| "Donatello", |
| "Constantin Brâncuși", |
| "Milton Glaser", |
| "Paul Rand", |
| "Jessica Walsh", |
| "Shepard Fairey", |
| "Mary Blair", |
| "Charles Schulz", |
| "Bill Watterson", |
| "Jack Kirby", |
| "Stan Lee", |
| "R. Crumb", |
| "Banksy", |
| "JR", |
| "Shepard Fairey", |
| "Kobra", |
| "Obey", |
| "Rembrandt van Rijn", |
| "Claude Monet", |
| "Edvard Munch", |
| "Caravaggio", |
| "Johannes Vermeer", |
| "Salvador Dalí", |
| "John Singer Sargent", |
| "Egon Schiele", |
| "Marc Chagall", |
| "Henri Matisse", |
| "Edgar Degas", |
| "Jackson Pollock", |
| "Wassily Kandinsky", |
| "Édouard Manet", |
| "Diego Rivera", |
| "Giotto di Bondone", |
| "Amedeo Modigliani", |
| "Toulouse-Lautrec", |
| "Piet Mondrian", |
| "Francisco Goya", |
| "Hayao Miyazaki", |
| "Genndy Tartakovsky", |
| "Naoko Takeuchi", |
| "Hiromu Arakawa", |
| "Bruce Timm", |
| "Makoto Shinkai", |
| "Rebecca Sugar", |
| "Alex Hirsch", |
| "Pendleton Ward", |
| "Bryan Konietzko and Michael Dante DiMartino", |
| "Junji Ito", |
| "Yoshitaka Amano", |
| "Rumiko Takahashi", |
| "Mamoru Hosoda", |
| "Craig McCracken", |
| "Glen Keane", |
| "Tite Kubo", |
| "Hirohiko Araki", |
| "Nick Park", |
| "Tetsuya Nomura", |
| "Annie Leibovitz", |
| "Steve McCurry", |
| "Yousuf Karsh", |
| "Diane Arbus", |
| "Vivian Maier", |
| "Richard Avedon", |
| "Sebastião Salgado", |
| "Irving Penn", |
| "Robert Frank", |
| "Gordon Parks", |
| "Studio Ghibli", |
| "Madhouse", |
| "Pixar Animation Studios", |
| "Toei Animation", |
| "Rooster Teeth", |
| "Ankama Studio", |
| "Ankama Games", |
| ]; |
|
|
| const prefixes = [ |
| "Zombie", |
| "Superhero", |
| "Robot", |
| "Pirate", |
| "Alien", |
| "Wizard", |
| "Vampire", |
| "Werewolf", |
| "Ninja", |
| "Dragon", |
| "Cyborg", |
| "Time-traveler", |
| "Space", |
| "Giant", |
| "Tiny", |
| "Invisible", |
| "Goblin", |
| "Goddess", |
| "Sorceress", |
| "Witch", |
| "Ghost", |
| "Saiyan", |
| "Astral", |
| "Bionic", |
| "Steampunk", |
| "Chrono", |
| "Quantum", |
| "Cybernetic", |
| "Galactic", |
| "Arcane", |
| "Mystic", |
| "Eldritch", |
| "Apocalyptic", |
| "Elemental", |
| "Divine", |
| "Fallen", |
| "Monstrous", |
| "Mutated", |
| "Psionic", |
| "Supernatural", |
| "Feral", |
| "Aquatic", |
| "Subterranean", |
| "Celestial", |
| "Phantasmal", |
| "Revenant", |
| "Living", |
| "Sentient", |
| "Spectral", |
| "Mechanical", |
| "Biological", |
| "Mythic", |
| "Fabled", |
| "Demonic", |
| "Shadow", |
| "Lunar", |
| "Solar", |
| "Stellar", |
| "Arctic", |
| "Tropical", |
| "Imperial", |
| "Royal", |
| "Majestic", |
| "Temporal", |
| "Dimensional", |
| "Vigilante", |
| "Cosmic", |
| "Primordial", |
| "Cursed", |
| "Blessed", |
| "Synthetic", |
| "Aether", |
| "Serpentine", |
| "Nomadic", |
| "Tribal", |
| "High", |
| "Low", |
| "Cunning", |
| "Ruthless", |
| "Infernal", |
| "Heavenly", |
| "Abyssal", |
| "Unholy", |
| "Radiant", |
| "Miraculous", |
| "Noble", |
| "Twisted", |
| "Tormented", |
| "Warped", |
| "Grotesque", |
| "Ascendant", |
| "Dystopian", |
| "Utopian", |
| "Relentless", |
| "Carnal", |
| "Martial", |
| "Aerial", |
| "Aquamarine", |
| "Ivory", |
| "Amber", |
| "Obsidian", |
| "Coral", |
| "Verdant", |
| "Frigid", |
| "Fiery", |
| "Volcanic", |
| "Magnetic", |
| "Elastic", |
| "Immortal", |
| "Mortal", |
| "Digital", |
| "Equestrian", |
| "Feathered", |
| "Scaled", |
| "Translucent", |
| "Ornamental", |
| "Alchemical", |
| "Incorporeal", |
| "Reclusive", |
| "Avian", |
| "Venomous", |
| "Electric", |
| ]; |
|
|
| const suffixes = [ |
| "dancing", |
| "flying", |
| "running", |
| "singing", |
| "fighting", |
| "swimming", |
| "climbing", |
| "jumping", |
| "laughing", |
| "crying", |
| "shouting", |
| "exploring", |
| "sleeping", |
| "eating", |
| "walking", |
| "sneaking", |
| "teleporting", |
| "summoning", |
| "twirling", |
| "mystifying", |
| "illuminating", |
| "contemplating", |
| "enchanting", |
| "whispering", |
| "wandering", |
| "daydreaming", |
| "captivating", |
| "vanishing", |
| ]; |
|
|
| const improvers = [ |
| "masterpiece, trending on artstation", |
| "trending on deviantart", |
| "award-winning", |
| "masterpiece", |
| "intricate and detailed", |
| "hyper-realistic", |
| "ethereal beauty", |
| "surreal masterpiece", |
| "jaw-dropping", |
| "psychedelic", |
| "colorful and vibrant", |
| ]; |
|
|
| promptGenerator.addPreviousUserInputs(); |
|
|
| |
| promptGenerator.generatePrompts(10); |
|
|