Added ALL content from NPC_GENERATION_PLAN.md + /references/: COMPANIONS (7 total): ✅ Susi - Dachshund (in main characters) ✅ Zombi Skavt - 5 Evolution Stages (Lv1-20): - Base (Lv1-4) - bandana + backpack - Lantern (Lv5-9) - gains glowing lantern - Armored (Lv10-14) - light armor plates - Winged (Lv15-19) - can fly/scout - LEGENDARY (Lv20) - purple aura, all upgrades ENEMIES - NOMAD RAIDERS (12 total): ✅ Desert Nomad (warrior, archer, brute) ✅ Frost Bandit (warrior, archer, brute) ✅ Jungle Marauder (warrior, archer, brute) ✅ Tech Scavenger (warrior, archer, brute) ENEMIES - ZOMBIES (4 types): ✅ Basic, Runner, Bloater, Worker (controllable) SPECIES (8 total): ✅ Trolls (3): Male friendly, Female friendly, Wild enemy ✅ Elves (Vilinci): Crafting specialist ✅ Fairies (Vile): Plant care specialist GENERIC CITIZENS (6 BASE): ✅ Male worker, Male merchant ✅ Female farmer, Female shopkeeper ✅ Child, Elder (Each gets 18 biome recolors = 108 total!) Source: NPC_GENERATION_PLAN.md + /references/ Total new sprites: ~150+ entries!
1243 lines
59 KiB
Python
1243 lines
59 KiB
Python
#!/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()
|