#!/usr/bin/env python3 """ DolinaSmrti FULL Master Registry - 9000+ Assets Complete asset generation system with ComfyUI Automatically skips existing assets """ import os import json import time import uuid import requests from pathlib import Path from typing import List, Dict # Configuration COMFYUI_URL = "http://127.0.0.1:8000" OUTPUT_DIR = "/Users/davidkotnik/repos/novafarma/assets/images" # Style prefix for 2D Stardew Valley look STYLE_PREFIX = "Stardew Valley style, 2d game asset, flat color, clean vector art, smooth shading, cute cartoon, top-down view, game sprite, isolated on solid bright green background, " NEGATIVE_PROMPT = "pixel art, pixelated, voxel, 3d render, realistic, photo, blurry, low quality, distorted, ugly, bad anatomy, text, watermark" # ============================================================================ # MASTER REGISTRY - 9000+ ASSETS # Organized by category with unique prompts # ============================================================================ def generate_registry() -> List[Dict]: """Generate the complete 9000+ asset registry""" assets = [] # ======================================================================== # 1. CHARACTERS & NPCs (~200 assets) # ======================================================================== npcs = [ # ===== MAIN CHARACTERS (4) ===== ("kai_protagonist", "Kai Marković, young farmer with pink/green dreadlocks, ear gauges, piercings, katana on back, torn jacket, athletic build, red eyes with pupils"), ("ana_twin", "Ana Marković, Kai's twin sister, blonde hair, blue eyes with dark pupils, scientist explorer outfit, research backpack"), ("gronk_alpha_troll", "Gronk Alpha Troll, MASSIVE green troll, pink dreadlocks, ear gauges, nose ring, vape in hand, 'TROLL SABBATH' t-shirt, torn pants, pink sneakers"), ("susi_dachshund", "Susi the Dachshund companion, brown with darker spots, long body, floppy ears, cute"), # ===== ACTUAL NPCs FROM /references/npcs/ (11 VERIFIED) ===== # Source: /references/npcs/* directories with master_reference.png # 1. Ivan Kovač - Blacksmith ("ivan_kovac", "Ivan Kovač blacksmith, muscular build, protective goggles on forehead, blacksmith apron soot-covered, red eyes with pupils, friendly NPC"), # 2. Mayor/Župan - Town Administrator ("mayor_zupan", "Mayor Župan, serious authoritative lik, long green coat with official sash, old tablet computer, red eyes with pupils, friendly NPC"), # 3. Kustos - Museum Curator ("kustos_curator", "Kustos museum curator, wise old scholar, glasses, notebook, examining artifacts, red eyes with pupils, friendly NPC"), # 4. Pek - Baker ("pek_baker", "Pek baker, warm smile, chef's apron, flour-dusted, holding fresh bread, red eyes with pupils, friendly NPC"), # 5. Šivilja - Tailor ("sivilja_tailor", "Šivilja tailor, elegant dress, measuring tape around neck, scissors in hand, fabric samples, red eyes with pupils, friendly NPC"), # 6. Tehnik - Tech Workshop ("tehnik_engineer", "Tehnik engineer, work coveralls, tool belt, goggles, tech gadgets, mechanical hands, red eyes with pupils, friendly NPC"), # 7. Teacher - School ("teacher_educator", "Teacher educator, glasses, books in arms, kind expression, patient demeanor, red eyes with pupils, friendly NPC"), # 8. Priest - Church ("priest_jakob", "Priest Jakob, religious robes, holy book, peaceful expression, ceremonial cross, red eyes with pupils, friendly NPC"), # 9. Miro Pravnik - Lawyer ("miro_pravnik", "Miro Pravnik lawyer, older man 50s-60s, wrinkled brown office suit, rusty briefcase, tired weathered expression, red eyes with pupils, friendly NPC"), # 10. Arborist/Gozdar - Tree Planter ("arborist_gozdar", "Arborist gozdar, work clothes green/brown, gardening gloves, seed bags, dirt-stained, calm patient expression, red eyes with pupils, friendly NPC"), # 11. GLAVNI SMETAR - Main Garbage Collector (NEW!) ("glavni_smetar", "Glavni Smetar main garbage collector, work uniform, reflective vest, trash equipment, weathered hands, hardworking expression, red eyes with pupils, friendly NPC"), # ===== COMPANIONS (2 + 5 evolution stages) ===== # Source: NPC_GENERATION_PLAN.md + /references/companions/ # Susi - Dachshund companion is already in main characters above # Zombi Skavt - 5 Evolution Stages (Lv 1-20) ("zombi_skavt_base", "Zombi Skavt base form Lv1-4, friendly zombie with RED or BLUE bandana, small backpack, red eyes WITH dark pupils, chibi zombie, helpful pose"), ("zombi_skavt_lantern", "Zombi Skavt Lv5-9 lantern form, gains glowing lantern, bandana, backpack, red eyes with pupils, friendly zombie scout"), ("zombi_skavt_armored", "Zombi Skavt Lv10-14 armored form, light armor plates added, bandana, backpack, lantern, red eyes with pupils, stronger scout"), ("zombi_skavt_winged", "Zombi Skavt Lv15-19 winged form, small wings for flying/scouting, armor, lantern, bandana, red eyes with pupils, advanced scout"), ("zombi_skavt_legendary", "Zombi Skavt Lv20 LEGENDARY form, glowing purple aura, all upgrades, wings, armor, lantern, bandana, red eyes with pupils, ultimate scout"), # ===== ENEMIES - NOMAD RAIDERS (4 types × 3 variants = 12) ===== # Source: NPC_GENERATION_PLAN.md + /references/enemies/nomad_raiders/ # 1. Desert Nomad (Medium threat) ("nomad_desert_warrior", "Desert Nomad warrior, tan robes, scimitar, turban, desert gear, hostile expression, medium threat enemy"), ("nomad_desert_archer", "Desert Nomad archer, tan robes, bow and arrows, turban, desert gear, hostile expression, ranged enemy"), ("nomad_desert_brute", "Desert Nomad brute, tan robes, heavy club, turban, muscular, desert gear, aggressive expression, tank enemy"), # 2. Frost Bandit (High threat) ("nomad_frost_warrior", "Frost Bandit warrior, fur armor, ice axe, frost gear, white/blue palette, aggressive expression, high threat"), ("nomad_frost_archer", "Frost Bandit archer, fur armor, ice bow, frost gear, white/blue palette, ranged enemy, high threat"), ("nomad_frost_brute", "Frost Bandit brute, heavy fur armor, ice hammer, frost gear, massive build, very aggressive, tank enemy"), # 3. Jungle Marauder (Very high threat) ("nomad_jungle_warrior", "Jungle Marauder warrior, tribal mask, poison darts, jungle gear, green/brown palette, dangerous expression, very high threat"), ("nomad_jungle_archer", "Jungle Marauder archer, tribal mask, blowgun, poison darts, jungle gear, stealthy, ranged enemy"), ("nomad_jungle_brute", "Jungle Marauder brute, tribal mask, massive club, jungle gear, intimidating build, very dangerous"), # 4. Tech Scavenger (Extreme threat) ("nomad_tech_warrior", "Tech Scavenger warrior, cyberpunk gear, laser sword, neon-themed, menacing expression, extreme threat"), ("nomad_tech_archer", "Tech Scavenger archer, cyberpunk gear, laser rifle, neon-themed, high-tech, extreme threat ranged"), ("nomad_tech_brute", "Tech Scavenger brute, heavy cyberpunk armor, plasma cannon, neon-themed, massive tech enemy"), # ===== ENEMIES - ZOMBIES (variations) ===== # Source: /references/enemies/zombies/ ("zombie_basic", "Basic zombie, slow shambling, torn clothes, white eyes no pupils, weak enemy"), ("zombie_runner", "Runner zombie, fast aggressive, athletic build, red eyes no pupils, dangerous"), ("zombie_bloater", "Bloater zombie, large swollen, about to explode, toxic green, tank enemy"), ("zombie_worker", "Worker zombie, controllable by Kai, basic laborer, white eyes no pupils, friendly when controlled"), # ===== SPECIES - TROLLS (3 variations × 5 colors = 15) ===== # Source: NPC_GENERATION_PLAN.md + /references/species/trolls/ ("troll_male_friendly", "Troll male friendly, similar build to Gronk, gray or blue skin, work clothes, friendly expression, red eyes with pupils, town inhabitant"), ("troll_female_friendly", "Troll female friendly, slightly smaller than male, different color palette, town clothing, welcoming expression, red eyes with pupils"), ("troll_wild_enemy", "Troll wild enemy, hostile variant, ragged clothing, aggressive pose, NO pupils in eyes, enemy variant"), # ===== SPECIES - ELVES (Vilinci) ===== # Source: /references/species/elves/ ("elf_crafter", "Vilinci elf crafter, specialty crafting, pointed ears, elegant clothes, working on enchantment, magical aura, red eyes with pupils"), # ===== SPECIES - FAIRIES (Vile) ===== # Source: /references/species/fairies/ ("fairy_plant_care", "Vile fairy plant care specialist, tiny fairy with wings, caring for plants, magical sparkles, instant growth ability, red eyes with pupils"), # ===== GENERIC CITIZENS (6 variations × 18 biome recolors = 108) ===== # Source: NPC_GENERATION_PLAN.md lines 215-251 # These are BASE sprites that get recolored for each biome ("citizen_male_worker", "Generic citizen male worker type, laborer clothing, neutral expression, red eyes with pupils, BASE for biome recolors"), ("citizen_male_merchant", "Generic citizen male merchant type, vest trader outfit, friendly expression, red eyes with pupils, BASE for biome recolors"), ("citizen_female_farmer", "Generic citizen female farmer type, work dress apron, kind expression, red eyes with pupils, BASE for biome recolors"), ("citizen_female_shopkeeper", "Generic citizen female shopkeeper type, professional clothing, welcoming expression, red eyes with pupils, BASE for biome recolors"), ("citizen_child", "Generic citizen child, simple clothes energetic, playful expression, red eyes with pupils, BASE for biome recolors"), ("citizen_elder", "Generic citizen elder, simple robes walking stick, wise expression, red eyes with pupils, BASE for biome recolors"), ] for name, prompt in npcs: assets.append({"cat": "npcs", "file": f"{name}.png", "prompt": prompt}) # Add variations (4 directions) for main characters for char in ["kai", "ana", "grok"]: for direction in ["front", "back", "left", "right"]: for action in ["idle", "walk1", "walk2", "run1", "run2"]: assets.append({ "cat": "npcs", "file": f"{char}_{direction}_{action}.png", "prompt": f"{char.title()} character sprite, {direction} facing, {action} animation frame" }) # ======================================================================== # 2. ANIMALS - LIVESTOCK (~150 assets) # ======================================================================== livestock = [ # Basic Farm Animals ("cow_normal", "Normal dairy cow, black and white Holstein pattern, friendly"), ("cow_brown", "Brown dairy cow, solid brown color, peaceful"), ("cow_highland", "Highland cow, long shaggy hair, horns"), ("sheep_normal", "Normal farm sheep, fluffy white wool, black face"), ("sheep_black", "Black sheep, dark wool, rare variety"), ("sheep_merino", "Merino sheep, extra fluffy premium wool"), ("chicken_white", "White chicken, red comb, pecking"), ("chicken_brown", "Brown chicken, speckled feathers"), ("chicken_rooster", "Rooster, colorful tail feathers, proud stance"), ("pig_normal", "Normal farm pig, pink, curly tail"), ("pig_spotted", "Spotted pig, black and pink patches"), ("pig_wild", "Wild boar variant, tusks, bristly hair"), ("horse_brown", "Brown riding horse, black mane"), ("horse_white", "White horse, elegant, long mane"), ("horse_black", "Black horse, powerful, shiny coat"), ("goat_normal", "Farm goat, small horns, beard"), ("goat_angora", "Angora goat, long fluffy coat"), ("duck_white", "White duck, orange beak, wadding"), ("duck_mallard", "Mallard duck, green head, colorful"), ("goose_white", "White goose, long neck, guarding"), ("turkey_normal", "Turkey, gobbler, feather display"), ("rabbit_farm", "Farm rabbit, fluffy, long ears"), ("llama_normal", "Llama, fluffy, long neck, curious"), ("alpaca_white", "White alpaca, extra fluffy, cute face"), ("donkey_grey", "Grey donkey, large ears, sturdy"), # Mutant/Magic Variants ("cow_golden", "Golden Cow, shimmering gold hide, magical"), ("sheep_fire", "Fire Sheep, wool made of flames, glowing"), ("sheep_ice", "Ice Sheep, frozen wool, frost aura"), ("sheep_golden", "Golden Fleece Sheep, metallic gold wool"), ("chicken_phoenix", "Phoenix Chicken, fire feathers, glowing"), ("chicken_rainbow", "Rainbow Chicken, multicolor feathers"), ("chicken_three_headed", "Three-Headed Chicken, mutant, three heads"), ("pig_giant", "Giant Pig, rideable size, strong"), ("horse_undead", "Undead Horse, skeletal, ghostly mane"), ("unicorn", "Unicorn, white with rainbow mane, golden horn"), ("pegasus", "Pegasus, white horse with wings, flying"), ("golden_goose", "Golden Goose, shimmering gold, lays golden eggs"), ] for name, prompt in livestock: assets.append({"cat": "zivali", "file": f"{name}.png", "prompt": prompt}) # ======================================================================== # 3. ANIMALS - WILDLIFE (~200 assets) # ======================================================================== wildlife = [ # Forest Animals ("fox_red", "Red fox, bushy tail, forest predator"), ("fox_arctic", "Arctic fox, white fur, winter variant"), ("deer_normal", "Deer, brown coat, antlers"), ("deer_doe", "Doe deer, no antlers, gentle"), ("deer_fawn", "Fawn, baby deer, spotted coat"), ("rabbit_wild", "Wild rabbit, brown fur, hopping"), ("rabbit_arctic", "Arctic hare, white fur, winter"), ("hedgehog", "Hedgehog, spiky back, small cute"), ("squirrel_red", "Red squirrel, bushy tail, acorn"), ("squirrel_grey", "Grey squirrel, common forest"), ("raccoon", "Raccoon, masked face, ringed tail"), ("skunk", "Skunk, black and white stripe"), ("opossum", "Opossum, grey, playing dead"), ("beaver", "Beaver, flat tail, dam builder"), ("otter_river", "River otter, playful, swimming"), ("badger", "Badger, black and white face, digging"), ("porcupine", "Porcupine, quills, slow moving"), ("bear_brown", "Brown bear, large, forest predator"), ("bear_black", "Black bear, smaller, foraging"), ("bear_polar", "Polar bear, white, ice biome"), ("wolf_grey", "Grey wolf, pack hunter, howling"), ("wolf_white", "White wolf, arctic variant"), ("wolf_black", "Black wolf, rare alpha"), ("moose", "Moose, large antlers, imposing"), ("elk", "Elk, antlers, majestic"), ("boar_wild", "Wild boar, tusks, aggressive"), # Birds ("owl_barn", "Barn owl, white face, nocturnal"), ("owl_great_horned", "Great horned owl, ear tufts"), ("owl_snowy", "Snowy owl, white feathers"), ("eagle_bald", "Bald eagle, white head, powerful"), ("eagle_golden", "Golden eagle, majestic hunter"), ("hawk_red_tailed", "Red-tailed hawk, soaring"), ("falcon_peregrine", "Peregrine falcon, fastest bird"), ("crow_common", "Common crow, black, intelligent"), ("raven", "Raven, large black, ominous"), ("sparrow", "Sparrow, small brown, common"), ("robin", "Robin, red breast, friendly"), ("bluebird", "Bluebird, bright blue, cheerful"), ("cardinal", "Cardinal, red, crested"), ("woodpecker", "Woodpecker, pecking tree"), ("hummingbird", "Hummingbird, tiny, colorful"), ("peacock", "Peacock, colorful tail display"), ("swan_white", "White swan, elegant, water"), ("swan_black", "Black swan, rare, graceful"), ("pelican", "Pelican, large beak pouch"), ("flamingo", "Flamingo, pink, one leg standing"), ("parrot_green", "Green parrot, tropical"), ("parrot_macaw", "Macaw, colorful, large"), # Insects & Small ("butterfly_monarch", "Monarch butterfly, orange wings"), ("butterfly_blue", "Blue butterfly, iridescent"), ("butterfly_yellow", "Yellow butterfly, spring"), ("bee_normal", "Honey bee, fuzzy, collecting"), ("bee_bumblebee", "Bumblebee, large fuzzy"), ("dragonfly", "Dragonfly, long body, four wings"), ("firefly", "Firefly, glowing, night"), ("ladybug", "Ladybug, red with spots"), ("grasshopper", "Grasshopper, green, jumping"), ("cricket", "Cricket, chirping, night"), ("caterpillar", "Caterpillar, striped, crawling"), ("snail", "Snail, spiral shell, slow"), ("slug", "Slug, no shell, garden"), ("worm", "Earthworm, pink, soil"), ("frog_green", "Green frog, pond, hopping"), ("frog_red", "Red frog, poisonous look"), ("toad", "Toad, warty, brown"), ("turtle_box", "Box turtle, hard shell"), ("turtle_snapping", "Snapping turtle, dangerous"), ("snake_garden", "Garden snake, harmless, green"), ("snake_rattlesnake", "Rattlesnake, dangerous, rattle"), ("lizard_green", "Green lizard, quick"), ("gecko", "Gecko, colorful, climbing"), # Fish ("fish_bass", "Bass fish, freshwater, silver"), ("fish_trout", "Trout, spotted, freshwater"), ("fish_salmon", "Salmon, orange-pink, swimming"), ("fish_tuna", "Tuna, large ocean fish"), ("fish_cod", "Cod, white fish, common"), ("fish_mackerel", "Mackerel, striped"), ("fish_carp", "Carp, bottom feeder"), ("fish_catfish", "Catfish, whiskers, muddy"), ("fish_pike", "Pike, predator, long"), ("fish_perch", "Perch, striped, freshwater"), ("fish_goldfish", "Goldfish, orange, pet"), ("fish_koi", "Koi fish, colorful, ornamental"), ("fish_clownfish", "Clownfish, orange white stripes"), ("fish_angelfish", "Angelfish, tropical, elegant"), ("fish_pufferfish", "Pufferfish, spiky when scared"), ("fish_swordfish", "Swordfish, long nose"), ("fish_golden", "Golden Fish, legendary, sparkling"), ("shark_great_white", "Great white shark, predator"), ("shark_hammerhead", "Hammerhead shark, unique head"), ("shark_whale", "Whale shark, gentle giant"), ("ray_manta", "Manta ray, wide wings, graceful"), ("ray_stingray", "Stingray, flat, buried in sand"), ("jellyfish_normal", "Jellyfish, translucent, tentacles"), ("jellyfish_lion_mane", "Lion's mane jellyfish, large"), ("octopus", "Octopus, eight arms, intelligent"), ("squid", "Squid, tentacles, shooting ink"), ("crab_red", "Red crab, claws, sideways walk"), ("crab_blue", "Blue crab, ocean"), ("lobster", "Lobster, large claws, red"), ("shrimp", "Shrimp, small, pink"), ("starfish", "Starfish, five arms, orange"), ("seahorse", "Seahorse, curled tail, upright"), ("whale_blue", "Blue whale, largest, spouting"), ("whale_orca", "Orca, black and white"), ("dolphin", "Dolphin, playful, jumping"), ("seal", "Seal, flippered, barking"), ("walrus", "Walrus, tusks, whiskers"), ("penguin_emperor", "Emperor penguin, tuxedo"), ("penguin_little", "Little penguin, blue, small"), ] for name, prompt in wildlife: assets.append({"cat": "zivali", "file": f"{name}.png", "prompt": prompt}) # ======================================================================== # 4. MONSTERS & MUTANTS (~500 assets) # ======================================================================== monsters = [ # Slimes (variations) ("slime_green", "Green slime, bouncing blob, basic"), ("slime_blue", "Blue slime, water element"), ("slime_red", "Red slime, fire element"), ("slime_yellow", "Yellow slime, electric sparks"), ("slime_purple", "Purple slime, poison element"), ("slime_black", "Black slime, shadow element"), ("slime_white", "White slime, holy element"), ("slime_rainbow", "Rainbow slime, all elements"), ("slime_metal", "Metal slime, shiny armor"), ("slime_gold", "Gold slime, rare treasure"), ("slime_king", "King Slime, GIANT with crown, boss"), ("slime_queen", "Queen Slime, tiara, elegant"), # Zombies ("zombie_farmer", "Zombie farmer, overalls, hoe"), ("zombie_miner", "Zombie miner, hard hat, pickaxe"), ("zombie_villager", "Zombie villager, torn clothes"), ("zombie_soldier", "Zombie soldier, armor, weapon"), ("zombie_knight", "Zombie knight, full armor, sword"), ("zombie_giant", "Giant zombie, huge, powerful"), ("zombie_dog", "Zombie dog, undead hound"), ("zombie_crow", "Zombie crow, undead bird"), # Skeletons ("skeleton_basic", "Basic skeleton, bones, rattling"), ("skeleton_warrior", "Skeleton warrior, sword shield"), ("skeleton_archer", "Skeleton archer, bow arrows"), ("skeleton_mage", "Skeleton mage, staff, robes"), ("skeleton_king", "Skeleton King, crown, boss"), # Ghosts ("ghost_basic", "Ghost, transparent, floating"), ("ghost_lantern", "Ghost with lantern, guide"), ("ghost_wraith", "Wraith, dark ghost, dangerous"), ("ghost_banshee", "Banshee, screaming ghost"), ("ghost_poltergeist", "Poltergeist, throwing objects"), # Goblins ("goblin_basic", "Goblin, green skin, small"), ("goblin_warrior", "Goblin warrior, crude weapons"), ("goblin_shaman", "Goblin shaman, magic staff"), ("goblin_chief", "Goblin chief, feathers, leader"), # Orcs ("orc_basic", "Orc, green muscular, tusks"), ("orc_warrior", "Orc warrior, armor, axe"), ("orc_shaman", "Orc shaman, bones, magic"), ("orc_warlord", "Orc warlord, boss, massive"), # Trolls ("troll_forest", "Forest troll, mossy, large"), ("troll_cave", "Cave troll, grey, club"), ("troll_ice", "Ice troll, frozen, blue"), ("troll_fire", "Fire troll, burning, red"), # Spiders ("spider_basic", "Giant spider, eight legs, web"), ("spider_venomous", "Venomous spider, green drip"), ("spider_cave", "Cave spider, blind, pale"), ("spider_queen", "Spider Queen, huge, boss"), # Bats ("bat_normal", "Bat, flying, echolocation"), ("bat_vampire", "Vampire bat, red eyes"), ("bat_fire", "Fire bat, flaming wings"), ("bat_giant", "Giant bat, rideable size"), # Elementals ("elemental_fire", "Fire elemental, living flames"), ("elemental_water", "Water elemental, liquid form"), ("elemental_earth", "Earth elemental, rock body"), ("elemental_air", "Air elemental, wind form"), ("elemental_ice", "Ice elemental, frozen"), ("elemental_lightning", "Lightning elemental, sparking"), # Golems ("golem_stone", "Stone golem, rock body, slow"), ("golem_iron", "Iron golem, metal, strong"), ("golem_crystal", "Crystal golem, gemstone body"), ("golem_wood", "Wood golem, tree-like"), ("golem_mud", "Mud golem, clay body"), ("golem_gold", "Gold golem, treasure guardian"), # Demons ("demon_imp", "Imp, small demon, mischievous"), ("demon_fire", "Fire demon, horns, flames"), ("demon_shadow", "Shadow demon, dark, lurking"), ("demon_lord", "Demon Lord, boss, powerful"), # Dragons ("dragon_baby", "Baby dragon, cute, small"), ("dragon_fire", "Fire dragon, red, flames"), ("dragon_ice", "Ice dragon, blue, frost"), ("dragon_earth", "Earth dragon, brown, rocky"), ("dragon_shadow", "Shadow dragon, black, deadly"), ("dragon_ancient", "Ancient dragon, boss, massive"), # Unique Monsters ("mimic_chest", "Mimic, fake treasure chest"), ("basilisk", "Basilisk, serpent, petrifying"), ("cockatrice", "Cockatrice, chicken-dragon"), ("manticore", "Manticore, lion scorpion wings"), ("chimera", "Chimera, lion goat serpent"), ("hydra", "Hydra, multi-headed serpent"), ("phoenix", "Phoenix, fire bird, rebirth"), ("griffin", "Griffin, lion eagle"), ("hippogriff", "Hippogriff, horse eagle"), ("centaur", "Centaur, horse human"), ("minotaur", "Minotaur, bull human"), ("harpy", "Harpy, bird woman"), ("siren", "Siren, fish woman, singing"), ("medusa", "Medusa, snake hair"), ("cyclops", "Cyclops, one-eyed giant"), ("kraken", "Kraken, giant squid, boss"), ("leviathan", "Leviathan, sea serpent, boss"), ("werewolf", "Werewolf, wolf human, moonlight"), ("vampire", "Vampire, pale, fangs, cape"), ("mummy", "Mummy, bandages, ancient"), ("lich", "Lich, undead mage, powerful"), ("treant", "Treant, living tree, guardian"), ("will_o_wisp", "Will-o-wisp, floating light"), ("mushroom_monster", "Mushroom monster, walking fungus"), ("plant_monster", "Plant monster, vine creature"), ("shadow_creature", "Shadow creature, living darkness"), ] for name, prompt in monsters: assets.append({"cat": "mutanti", "file": f"{name}.png", "prompt": prompt}) # ======================================================================== # 5. BOSSES (~50 assets) # ======================================================================== bosses = [ ("boss_zombie_king", "Zombie King, crown rotting, massive undead ruler"), ("boss_slime_emperor", "Slime Emperor, gigantic rainbow slime"), ("boss_ancient_tree", "Ancient Tree boss, dark corrupted treant"), ("boss_dragon_elder", "Elder Dragon, ancient fire drake"), ("boss_ice_titan", "Ice Titan, frozen giant, blizzard"), ("boss_lava_lord", "Lava Lord, molten rock giant"), ("boss_shadow_master", "Shadow Master, darkness incarnate"), ("boss_crystal_guardian", "Crystal Guardian, gem golem"), ("boss_spider_empress", "Spider Empress, queen of spiders"), ("boss_kraken", "Kraken, massive sea monster"), ("boss_demon_prince", "Demon Prince, ruler of demons"), ("boss_lich_king", "Lich King, undead sorcerer"), ("boss_werewolf_alpha", "Werewolf Alpha, pack leader"), ("boss_vampire_lord", "Vampire Lord, ancient vampire"), ("boss_mummy_pharaoh", "Mummy Pharaoh, ancient ruler"), ("boss_minotaur_king", "Minotaur King, labyrinth master"), ("boss_hydra", "Hydra boss, nine-headed"), ("boss_chimera", "Chimera boss, three-headed beast"), ("boss_giant_troll", "Giant Troll, bridge guardian"), ("boss_orc_warlord", "Orc Warlord, army leader"), ("boss_goblin_king", "Goblin King, treasure hoarder"), ("boss_elemental_titan", "Elemental Titan, combined elements"), ("boss_golem_prime", "Golem Prime, ultimate golem"), ("boss_phoenix_ancient", "Ancient Phoenix, immortal fire"), ("boss_leviathan", "Leviathan, world serpent"), ] for name, prompt in bosses: assets.append({"cat": "bosses", "file": f"{name}.png", "prompt": prompt}) # ======================================================================== # 6. CROPS & PLANTS (~500 assets with growth stages) # ======================================================================== # Basic crops with 4-5 growth stages each crops_base = [ "wheat", "corn", "rice", "barley", "oats", "rye", "potato", "carrot", "onion", "garlic", "turnip", "radish", "beet", "tomato", "pepper", "eggplant", "cucumber", "zucchini", "pumpkin", "squash", "lettuce", "cabbage", "spinach", "kale", "broccoli", "cauliflower", "strawberry", "blueberry", "raspberry", "blackberry", "grape", "melon", "watermelon", "sunflower", "tulip", "rose", "lily", "daisy", "lavender", "poppy", "cotton", "flax", "hemp", "tobacco", "coffee", "tea", "cocoa", "apple", "orange", "lemon", "peach", "pear", "cherry", "plum", "banana", "pineapple", "coconut", "mango", "papaya", "kiwi", "avocado", "hop", "ginger", "turmeric", "vanilla", "cinnamon", "pepper_black", "chili", "jalapeno", "habanero", "ghost_pepper", "basil", "mint", "oregano", "thyme", "rosemary", "sage", "parsley", "cilantro", "mushroom_button", "mushroom_shiitake", "mushroom_oyster", "truffle", ] for crop in crops_base: # Seed packet assets.append({ "cat": "items", "file": f"seed_{crop}.png", "prompt": f"{crop.replace('_', ' ').title()} seed packet, small bag with seeds" }) # Growth stages for stage in range(1, 5): stage_desc = ["sprout", "growing", "maturing", "ready"][stage-1] assets.append({ "cat": "crops", "file": f"{crop}_stage{stage}.png", "prompt": f"{crop.replace('_', ' ').title()} crop, {stage_desc} stage, farm plant" }) # Harvested product assets.append({ "cat": "items", "file": f"harvest_{crop}.png", "prompt": f"Harvested {crop.replace('_', ' ')}, farm produce, fresh" }) # Trees with seasonal variants trees = ["oak", "maple", "pine", "birch", "willow", "cherry_blossom", "apple", "orange", "lemon", "palm", "bamboo"] seasons = ["spring", "summer", "autumn", "winter"] for tree in trees: for season in seasons: assets.append({ "cat": "environment", "file": f"tree_{tree}_{season}.png", "prompt": f"{tree.replace('_', ' ').title()} tree in {season}, seasonal foliage" }) # ======================================================================== # 7. ITEMS & TOOLS (~2000 assets) # ======================================================================== # Tools with material tiers tool_types = ["axe", "pickaxe", "hoe", "shovel", "scythe", "hammer", "sickle", "saw", "chisel"] materials = ["wood", "stone", "copper", "iron", "steel", "gold", "diamond", "mythril", "adamantine"] for tool in tool_types: for material in materials: assets.append({ "cat": "items", "file": f"{tool}_{material}.png", "prompt": f"{material.title()} {tool}, farming tool, {material} quality" }) # Weapons weapon_types = ["sword", "dagger", "spear", "axe_battle", "mace", "hammer_war", "bow", "crossbow", "staff", "wand"] for weapon in weapon_types: for material in materials: assets.append({ "cat": "items", "file": f"{weapon}_{material}.png", "prompt": f"{material.title()} {weapon.replace('_', ' ')}, combat weapon" }) # Armor pieces armor_types = ["helmet", "chestplate", "leggings", "boots", "gloves", "shield"] armor_materials = ["leather", "chainmail", "iron", "steel", "gold", "diamond", "dragon"] for armor in armor_types: for material in armor_materials: assets.append({ "cat": "items", "file": f"{armor}_{material}.png", "prompt": f"{material.title()} {armor}, armor piece, protection" }) # Arrows and ammo arrow_types = ["normal", "fire", "ice", "lightning", "poison", "explosive", "healing", "silver", "gold", "diamond"] for arrow in arrow_types: assets.append({ "cat": "items", "file": f"arrow_{arrow}.png", "prompt": f"{arrow.title()} arrow, projectile, bow ammunition" }) # Potions potion_types = [ "health_small", "health_medium", "health_large", "mana_small", "mana_medium", "mana_large", "stamina", "speed", "strength", "defense", "invisibility", "fire_resistance", "cold_resistance", "poison_cure", "regeneration", "luck", "night_vision", "water_breathing", "slow_fall", ] for potion in potion_types: assets.append({ "cat": "items", "file": f"potion_{potion}.png", "prompt": f"{potion.replace('_', ' ').title()} potion, glass bottle, magical liquid" }) # Gems and minerals gems = ["ruby", "emerald", "sapphire", "diamond", "amethyst", "topaz", "opal", "pearl", "jade", "onyx", "quartz", "obsidian"] for gem in gems: assets.append({ "cat": "items", "file": f"gem_{gem}.png", "prompt": f"{gem.title()} gemstone, sparkling jewel, valuable treasure" }) assets.append({ "cat": "items", "file": f"ore_{gem}.png", "prompt": f"{gem.title()} ore, raw mineral, mining resource" }) # Ores and metals metals = ["copper", "iron", "gold", "silver", "platinum", "mythril", "adamantine", "titanium"] for metal in metals: assets.append({ "cat": "items", "file": f"ore_{metal}.png", "prompt": f"{metal.title()} ore, raw mineral rock" }) assets.append({ "cat": "items", "file": f"bar_{metal}.png", "prompt": f"{metal.title()} bar, refined metal ingot" }) # Food items foods = [ "bread", "cheese", "butter", "milk", "egg", "bacon", "sausage", "apple_pie", "cherry_pie", "pumpkin_pie", "fish_cooked", "meat_cooked", "salad", "soup", "stew", "sandwich", "pizza", "cake", "cookie", "jam_strawberry", "jam_blueberry", "wine_red", "wine_white", "beer", "juice", "honey", "sugar", "flour", "salt", "pepper_spice", "oil", ] for food in foods: assets.append({ "cat": "items", "file": f"food_{food}.png", "prompt": f"{food.replace('_', ' ').title()}, prepared food item" }) # Crafting materials materials_craft = [ "wood_plank", "wood_stick", "stone_brick", "clay", "glass", "leather", "cloth", "rope", "string", "nail", "screw", "gear", "spring", "chain", "feather", "bone", "horn", "fur", "scale", "slime_gel", "ectoplasm", "magic_dust", "fairy_dust", "dragon_scale", "unicorn_hair", "phoenix_feather", ] for material in materials_craft: assets.append({ "cat": "items", "file": f"material_{material}.png", "prompt": f"{material.replace('_', ' ').title()}, crafting material" }) # ======================================================================== # 8. BUILDINGS & STRUCTURES (~300 assets) # ======================================================================== buildings = [ # Farm Buildings ("barn_small", "Small barn, wooden, red roof"), ("barn_medium", "Medium barn, larger, upgraded"), ("barn_large", "Large barn, huge, maximum upgrade"), ("coop_small", "Small chicken coop, wooden"), ("coop_medium", "Medium coop, upgraded"), ("coop_large", "Large coop, deluxe"), ("silo", "Grain silo, tall cylindrical"), ("mill", "Windmill, stone base, wooden blades"), ("greenhouse", "Greenhouse, glass walls, plants inside"), ("stable_small", "Small stable, one horse"), ("stable_large", "Large stable, multiple horses"), # Production Buildings ("blacksmith", "Blacksmith forge, anvil, fire"), ("carpenter_shop", "Carpenter workshop, sawdust"), ("tailor_shop", "Tailor shop, fabric, mannequins"), ("bakery", "Bakery building, bread sign"), ("butcher", "Butcher shop, meat hanging"), ("brewery", "Brewery, barrels, hops"), ("winery", "Winery, grapes, barrels"), ("apothecary", "Apothecary, potions, herbs"), ("jewelry_shop", "Jewelry shop, gems display"), # Town Buildings ("house_small", "Small house, cottage style"), ("house_medium", "Medium house, two story"), ("house_large", "Large mansion, wealthy"), ("inn", "Inn, rooms sign, welcoming"), ("tavern", "Tavern, mug sign, merry"), ("general_store", "General store, various goods"), ("town_hall", "Town hall, clock tower"), ("church", "Church, steeple, peaceful"), ("school", "Schoolhouse, bell"), ("library", "Library, books, quiet"), ("museum", "Museum, artifacts"), ("hospital", "Hospital, cross sign"), ("bank", "Bank, vault, secure"), ("barracks", "Barracks, soldier"), ("watchtower", "Watchtower, tall, guard"), # Decorative ("well_stone", "Stone well, bucket"), ("well_wood", "Wooden well, rustic"), ("fountain", "Water fountain, decorative"), ("statue_hero", "Hero statue, bronze"), ("statue_goddess", "Goddess statue, marble"), ("gazebo", "Garden gazebo, resting"), ("bridge_wood", "Wooden bridge, small"), ("bridge_stone", "Stone bridge, sturdy"), ("dock", "Wooden dock, fishing"), ("lighthouse", "Lighthouse, tall, beacon"), # Fences and Gates ("fence_wood", "Wooden fence section"), ("fence_stone", "Stone wall section"), ("fence_iron", "Iron fence section"), ("fence_hedge", "Hedge fence section"), ("gate_wood", "Wooden gate"), ("gate_iron", "Iron gate, ornate"), # Storage ("chest_wood", "Wooden chest, storage"), ("chest_iron", "Iron chest, secure"), ("chest_gold", "Gold chest, treasure"), ("barrel", "Wooden barrel, storage"), ("crate", "Wooden crate, shipping"), ("cabinet", "Storage cabinet, shelves"), ] for name, prompt in buildings: assets.append({"cat": "buildings", "file": f"{name}.png", "prompt": prompt}) # ======================================================================== # 9. BIOMES - ALL 18 FROM BiomeSystem.js (~360 assets) # Source: /src/systems/BiomeSystem.js lines 14-295 # ======================================================================== # NORMAL BIOMES (9) biomes_normal = [ # 1. Grassland (Travnik) - Home base ("grassland_ground_tile", "Grassland ground tile, lush green grass, Style 32, smooth vector"), ("grassland_grass_variant", "Grassland grass variant, lighter green, smooth"), ("grassland_flower_patch", "Grassland flower patch, colorful blooms"), ("grassland_rock_small", "Grassland small rock, smooth grey stone"), # 2. Forest (Gozd) - Dense trees ("forest_ground_tile", "Forest ground tile, dark green grass with moss, Style 32"), ("forest_moss_patch", "Forest moss patch, vibrant green"), ("forest_mushroom_red", "Forest red mushroom with white spots"), ("forest_mushroom_brown", "Forest brown mushroom cluster"), ("forest_bush_dense", "Forest dense bush, dark green foliage"), ("forest_fallen_log", "Forest fallen log, mossy bark"), # 3. Desert - Sandy wasteland ("desert_sand_tile", "Desert sand tile, golden yellow sand, Style 32"), ("desert_sand_dune", "Desert sand dune, wavy sand formation"), ("desert_cactus_small", "Desert small cactus, green with spikes"), ("desert_cactus_large", "Desert large saguaro cactus"), ("desert_rock_brown", "Desert brown rock, weathered"), ("desert_skull_bleached", "Desert bleached animal skull"), # 4. Mountain - Rocky peaks ("mountain_rock_tile", "Mountain rock tile, grey stone, Style 32"), ("mountain_boulder_large", "Mountain large boulder, massive stone"), ("mountain_rock_sharp", "Mountain sharp rock formation"), ("mountain_snow_patch", "Mountain snow patch on rocks"), # 5. Swamp - Foggy wetlands ("swamp_mud_tile", "Swamp mud tile, dark brown murky mud, Style 32"), ("swamp_water_murky", "Swamp murky water puddle"), ("swamp_dead_tree", "Swamp dead tree, bare twisted branches"), ("swamp_vine_hanging", "Swamp hanging vine, drooping"), ("swamp_fog_effect", "Swamp fog effect, misty atmosphere"), # 6. Snow (Frozen Tundra) - Ice and blizzards ("snow_ground_tile", "Snow ground tile, pristine white snow, Style 32"), ("snow_ice_tile", "Snow ice tile, frozen blue ice"), ("snow_frozen_tree", "Snow frozen tree, ice-covered pine"), ("snow_snowdrift", "Snow snowdrift, wind-blown snow pile"), ("snow_icicle", "Snow icicle hanging, sharp ice"), # 7. Wasteland - Ruins and rubble ("wasteland_ground_tile", "Wasteland ground tile, cracked grey earth, Style 32"), ("wasteland_rubble", "Wasteland rubble pile, broken concrete"), ("wasteland_scrap_metal", "Wasteland scrap metal pieces"), ("wasteland_broken_machinery", "Wasteland broken machinery parts"), # 8. Tropical (Beach) - Palm trees, coconuts ("tropical_sand_tile", "Tropical sand tile, light golden beach sand, Style 32"), ("tropical_palm_tree", "Tropical palm tree with coconuts"), ("tropical_coconut", "Tropical coconut on ground"), ("tropical_shell", "Tropical seashell, colorful"), ("tropical_water_clear", "Tropical clear blue water"), # 9. Radioactive Zone - Glowing toxic ("radioactive_ground_tile", "Radioactive ground tile, sickly green glow, Style 32"), ("radioactive_rock_glowing", "Radioactive glowing rock, green energy"), ("radioactive_mutant_plant", "Radioactive mutant plant, twisted"), ("radioactive_barrel", "Radioactive barrel, toxic waste symbol"), ("radioactive_puddle", "Radioactive toxic puddle, glowing green"), ] # ANOMALOUS BIOMES (9) - Portal-locked biomes_anomalous = [ # 10. Dino Valley - Prehistoric ("dino_valley_ground_tile", "Dino Valley ground tile, ancient green grass, Style 32"), ("dino_valley_prehistoric_tree", "Dino Valley prehistoric cycad tree"), ("dino_valley_large_fern", "Dino Valley large prehistoric fern"), ("dino_valley_footprint", "Dino Valley dinosaur footprint in mud"), ("dino_valley_fossil", "Dino Valley exposed fossil in rock"), ("dino_valley_egg", "Dino Valley dinosaur egg, cracked"), # 11. Mythical Highlands - Magical ("mythical_ground_tile", "Mythical ground tile, purple mystic grass, Style 32"), ("mythical_magical_tree", "Mythical magical tree with glowing leaves"), ("mythical_crystal_blue", "Mythical blue crystal formation"), ("mythical_floating_rock", "Mythical floating rock with runes"), ("mythical_rainbow", "Mythical rainbow arc, vibrant"), # 12. Endless Forest (WITCH FOREST!) - Cryptids ("endless_forest_ground_tile", "Endless Forest ground tile, dark mysterious grass, Style 32"), ("endless_forest_ancient_tree", "Endless Forest ancient massive tree"), ("endless_forest_mystery_fog", "Endless Forest thick mystery fog"), ("endless_forest_strange_footprint", "Endless Forest cryptid footprints, unknown creature"), ("endless_forest_hidden_path", "Endless Forest hidden trail marker"), # 13. Loch Ness - Scottish highlands ("loch_ness_ground_tile", "Loch Ness ground tile, heather moorland, Style 32"), ("loch_ness_scottish_pine", "Loch Ness Scottish pine tree"), ("loch_ness_heather", "Loch Ness purple heather flowers"), ("loch_ness_loch_water", "Loch Ness dark loch water"), ("loch_ness_castle_ruins", "Loch Ness castle ruins stone"), # 14. Catacombs - Underground undead ("catacombs_ground_tile", "Catacombs ground tile, ancient stone floor, Style 32"), ("catacombs_bones", "Catacombs scattered bones pile"), ("catacombs_tomb", "Catacombs stone tomb, ancient"), ("catacombs_skull", "Catacombs human skull, weathered"), ("catacombs_ancient_urn", "Catacombs dusty urn, cracked"), # 15. Egyptian Desert - Pyramids ("egyptian_ground_tile", "Egyptian Desert ground tile, golden sand, Style 32"), ("egyptian_sand_dune_large", "Egyptian massive sand dune"), ("egyptian_hieroglyph_stone", "Egyptian hieroglyph carved stone"), ("egyptian_scarab", "Egyptian scarab beetle, golden"), ("egyptian_pyramid_stone", "Egyptian pyramid stone block"), # 16. Amazon Rainforest - Piranhas & AXOLOTLS! ("amazon_ground_tile", "Amazon ground tile, dense jungle undergrowth, Style 32"), ("amazon_jungle_tree", "Amazon massive jungle tree"), ("amazon_vine_thick", "Amazon thick hanging vines"), ("amazon_exotic_flower", "Amazon exotic pink flower, large"), ("amazon_tribal_totem", "Amazon tribal totem pole"), ("amazon_piranha_river", "Amazon piranha-filled river water"), ("amazon_axolotl", "Amazon axolotl, pink salamander"), # 17. Atlantis - Underwater & AXOLOTLS! ("atlantis_ground_tile", "Atlantis ground tile, ocean floor sand, Style 32"), ("atlantis_coral_reef", "Atlantis colorful coral reef"), ("atlantis_underwater_ruins", "Atlantis ancient ruins, columns"), ("atlantis_pearl", "Atlantis giant pearl in oyster"), ("atlantis_seaweed", "Atlantis flowing seaweed"), ("atlantis_bubble_stream", "Atlantis rising bubble stream"), ("atlantis_axolotl_blue", "Atlantis blue axolotl, glowing"), # 18. Chernobyl (FINAL ZONE!) - Nuclear ("chernobyl_ground_tile", "Chernobyl ground tile, contaminated grey earth, Style 32"), ("chernobyl_reactor_ruins", "Chernobyl reactor ruins, damaged concrete"), ("chernobyl_abandoned_building", "Chernobyl abandoned building, broken windows"), ("chernobyl_radioactive_barrel", "Chernobyl radioactive waste barrel"), ("chernobyl_soviet_relic", "Chernobyl Soviet propaganda poster, faded"), ("chernobyl_hazmat_sign", "Chernobyl hazmat warning sign"), ] for name, prompt in biomes_normal: assets.append({"cat": "biomes", "file": f"{name}.png", "prompt": prompt}) for name, prompt in biomes_anomalous: assets.append({"cat": "biomes_anomalous", "file": f"{name}.png", "prompt": prompt}) # ======================================================================== # 10. ENVIRONMENT & TERRAIN (~800 assets) # ======================================================================== terrain = [ # Ground tiles ("grass_light", "Light grass tile, lush"), ("grass_dark", "Dark grass tile, shaded"), ("grass_dry", "Dry grass tile, brown"), ("grass_snow", "Snowy grass tile"), ("dirt_path", "Dirt path tile"), ("dirt_tilled", "Tilled soil tile, farm ready"), ("stone_path", "Stone path tile"), ("cobblestone", "Cobblestone path tile"), ("sand", "Sand tile, beach"), ("gravel", "Gravel tile"), ("mud", "Mud tile, wet"), ("snow", "Snow tile, winter"), ("ice", "Ice tile, slippery"), ("water_shallow", "Shallow water tile"), ("water_deep", "Deep water tile"), ("lava", "Lava tile, glowing"), # Nature objects ("rock_small", "Small rock, pebbles"), ("rock_medium", "Medium rock"), ("rock_large", "Large boulder"), ("rock_moss", "Mossy rock"), ("log_fallen", "Fallen log"), ("stump_old", "Old tree stump"), ("bush_green", "Green bush"), ("bush_berry", "Berry bush, fruit"), ("bush_flower", "Flowering bush"), ("grass_tall", "Tall grass, swaying"), ("reeds", "Water reeds"), ("cattails", "Cattails, pond"), ("lily_pad", "Lily pad, water"), ("coral", "Ocean coral"), ("seaweed", "Seaweed, underwater"), # Flowers (many varieties) ("flower_red", "Red flower, bloom"), ("flower_blue", "Blue flower, bloom"), ("flower_yellow", "Yellow flower, bloom"), ("flower_purple", "Purple flower, bloom"), ("flower_white", "White flower, bloom"), ("flower_pink", "Pink flower, bloom"), ("flower_orange", "Orange flower, bloom"), ("flower_mixed", "Mixed flower patch"), # Mushrooms ("mushroom_red", "Red mushroom, spotted"), ("mushroom_brown", "Brown mushroom, edible"), ("mushroom_blue", "Blue mushroom, magic"), ("mushroom_purple", "Purple mushroom, poisonous"), ("mushroom_glowing", "Glowing mushroom, bioluminescent"), ("mushroom_giant", "Giant mushroom"), # Cave elements ("stalactite", "Stalactite, hanging"), ("stalagmite", "Stalagmite, ground"), ("crystal_blue", "Blue crystal formation"), ("crystal_red", "Red crystal formation"), ("crystal_green", "Green crystal formation"), ("cave_moss", "Cave moss, glowing"), # Weather effects (decorative) ("cloud_white", "White fluffy cloud"), ("cloud_rain", "Rain cloud, dark"), ("cloud_storm", "Storm cloud, lightning"), ("rainbow", "Rainbow arc, colorful"), ("sun", "Sun, bright, cheerful"), ("moon_full", "Full moon, night"), ("moon_crescent", "Crescent moon"), ("stars", "Stars, twinkling"), ] for name, prompt in terrain: assets.append({"cat": "environment", "file": f"{name}.png", "prompt": prompt}) # ======================================================================== # 11. UI ELEMENTS (~200 assets) # ======================================================================== ui_elements = [ # Buttons ("button_play", "Play button, green, arrow"), ("button_pause", "Pause button, two bars"), ("button_stop", "Stop button, square"), ("button_menu", "Menu button, hamburger"), ("button_settings", "Settings button, gear"), ("button_close", "Close button, X"), ("button_confirm", "Confirm button, checkmark"), ("button_cancel", "Cancel button, X red"), ("button_arrow_left", "Left arrow button"), ("button_arrow_right", "Right arrow button"), ("button_arrow_up", "Up arrow button"), ("button_arrow_down", "Down arrow button"), # Icons ("icon_health", "Health icon, red heart"), ("icon_mana", "Mana icon, blue orb"), ("icon_stamina", "Stamina icon, lightning"), ("icon_gold", "Gold icon, coin stack"), ("icon_inventory", "Inventory icon, bag"), ("icon_map", "Map icon, scroll"), ("icon_quest", "Quest icon, exclamation"), ("icon_achievement", "Achievement icon, star"), ("icon_mail", "Mail icon, envelope"), ("icon_settings", "Settings icon, gear"), ("icon_save", "Save icon, floppy"), ("icon_load", "Load icon, folder"), # Status effects ("status_poison", "Poison status, green skull"), ("status_burn", "Burn status, flames"), ("status_freeze", "Freeze status, snowflake"), ("status_stun", "Stun status, stars"), ("status_buff", "Buff status, arrow up"), ("status_debuff", "Debuff status, arrow down"), # Frames and panels ("frame_wood", "Wooden frame border"), ("frame_stone", "Stone frame border"), ("frame_gold", "Gold frame border"), ("panel_wood", "Wooden panel background"), ("panel_parchment", "Parchment panel"), # Cursors ("cursor_normal", "Normal cursor, pointer"), ("cursor_interact", "Interact cursor, hand"), ("cursor_attack", "Attack cursor, sword"), ("cursor_dig", "Dig cursor, shovel"), ("cursor_plant", "Plant cursor, seed"), ("cursor_water", "Water cursor, droplet"), ] for name, prompt in ui_elements: assets.append({"cat": "ui", "file": f"{name}.png", "prompt": prompt}) # ======================================================================== # 11. WORKSTATIONS (~100 assets) # ======================================================================== workstations = [ ("anvil", "Blacksmith anvil, metal working"), ("forge", "Forge, fire, metalworking"), ("furnace", "Stone furnace, smelting"), ("kiln", "Pottery kiln, ceramic"), ("loom", "Weaving loom, textile"), ("spinning_wheel", "Spinning wheel, wool"), ("workbench", "Carpenter workbench, tools"), ("crafting_table", "Crafting table, general"), ("alchemy_table", "Alchemy table, potions"), ("enchanting_table", "Enchanting table, magical"), ("cooking_pot", "Cooking pot, large"), ("oven", "Baking oven, bread"), ("press_wine", "Wine press, grapes"), ("press_oil", "Oil press, olives"), ("mill_flour", "Flour mill, grinding"), ("sawmill", "Sawmill, lumber"), ("tanning_rack", "Tanning rack, leather"), ("drying_rack", "Drying rack, preservation"), ("fermenter", "Fermenter, brewing"), ("distiller", "Distiller, spirits"), ("beehive", "Beehive, honey production"), ("butter_churn", "Butter churn, dairy"), ("cheese_press", "Cheese press, dairy"), ("seed_maker", "Seed maker, breeding"), ("recycler", "Recycler, materials"), ] for name, prompt in workstations: assets.append({"cat": "workstations", "file": f"{name}.png", "prompt": prompt}) return assets # ============================================================================ # COMFYUI WORKFLOW FUNCTIONS # ============================================================================ def create_workflow(prompt_text: str, output_name: str, seed: int = None) -> dict: """Creates a complete ComfyUI workflow""" if seed is None: seed = int(time.time() * 1000) % 2147483647 return { "1": { "class_type": "CheckpointLoaderSimple", "inputs": {"ckpt_name": "dreamshaper_8.safetensors"} }, "2": { "class_type": "EmptyLatentImage", "inputs": {"width": 512, "height": 512, "batch_size": 1} }, "3": { "class_type": "CLIPTextEncode", "inputs": {"text": STYLE_PREFIX + prompt_text, "clip": ["1", 1]} }, "4": { "class_type": "CLIPTextEncode", "inputs": {"text": NEGATIVE_PROMPT, "clip": ["1", 1]} }, "5": { "class_type": "KSampler", "inputs": { "seed": seed, "steps": 30, "cfg": 7.5, "sampler_name": "euler_ancestral", "scheduler": "karras", "denoise": 1.0, "model": ["1", 0], "positive": ["3", 0], "negative": ["4", 0], "latent_image": ["2", 0] } }, "6": { "class_type": "VAEDecode", "inputs": {"samples": ["5", 0], "vae": ["1", 2]} }, "7": { "class_type": "SaveImage", "inputs": {"filename_prefix": output_name, "images": ["6", 0]} } } def queue_prompt(workflow: dict) -> str: """Send workflow to ComfyUI""" try: response = requests.post(f"{COMFYUI_URL}/prompt", json={"prompt": workflow, "client_id": f"antigravity_{uuid.uuid4().hex[:8]}"}) return response.json().get("prompt_id") except Exception as e: return None def wait_for_completion(prompt_id: str, timeout: int = 300) -> bool: """Wait for generation to complete""" start = time.time() while time.time() - start < timeout: try: response = requests.get(f"{COMFYUI_URL}/history/{prompt_id}") if prompt_id in response.json() and response.json()[prompt_id].get("outputs"): return True except: pass time.sleep(2) return False def download_image(prompt_id: str, output_path: Path) -> bool: """Download generated image""" try: history = requests.get(f"{COMFYUI_URL}/history/{prompt_id}").json() for node_output in history.get(prompt_id, {}).get("outputs", {}).values(): for img in node_output.get("images", []): params = {"filename": img["filename"], "subfolder": img.get("subfolder", ""), "type": "output"} response = requests.get(f"{COMFYUI_URL}/view", params=params) if response.status_code == 200: output_path.parent.mkdir(parents=True, exist_ok=True) output_path.write_bytes(response.content) return True return False except: return False def main(): """Main generation loop""" print("=" * 70) print("🎨 DolinaSmrti FULL Asset Generator - 9000+ Assets") print("=" * 70) # Check ComfyUI try: data = requests.get(f"{COMFYUI_URL}/system_stats", timeout=5).json() print(f"✅ ComfyUI v{data['system']['comfyui_version']} running") except: print(f"❌ ComfyUI not responding at {COMFYUI_URL}") return # Generate registry print("\n📋 Building Master Registry...") ASSETS = generate_registry() print(f"📊 Total Assets in Registry: {len(ASSETS)}") # Count existing existing = sum(1 for a in ASSETS if (Path(OUTPUT_DIR) / a["cat"] / a["file"]).exists()) print(f"✅ Already Exist: {existing}") print(f"🎯 To Generate: {len(ASSETS) - existing}") print("\n🚀 Starting generation...\n") success, skip, fail = 0, 0, 0 for i, asset in enumerate(ASSETS, 1): output_path = Path(OUTPUT_DIR) / asset["cat"] / asset["file"] if output_path.exists(): skip += 1 if i % 100 == 0: print(f"[{i}/{len(ASSETS)}] Progress: {success} ✅ | {skip} ⏭️ | {fail} ❌") continue print(f"[{i}/{len(ASSETS)}] 🎨 {asset['file']}") workflow = create_workflow(asset["prompt"], asset["file"].replace(".png", "")) prompt_id = queue_prompt(workflow) if prompt_id and wait_for_completion(prompt_id) and download_image(prompt_id, output_path): print(f" ✅ SAVED") success += 1 else: print(f" ❌ FAILED") fail += 1 if i % 50 == 0: print(f"\n📊 Progress: {success} ✅ | {skip} ⏭️ | {fail} ❌\n") time.sleep(0.5) print("\n" + "=" * 70) print("✅ GENERATION COMPLETE!") print(f"✅ Successful: {success}") print(f"⏭️ Skipped: {skip}") print(f"❌ Failed: {fail}") print(f"📁 Output: {OUTPUT_DIR}") if __name__ == "__main__": main()