🌙 OVERNIGHT AUTOMATION READY
Progress: 254/14,000 assets (1.81%) Dino Valley Status: 91/109 complete - ✅ Vegetation: 15/15 - ✅ Dinosaurs: 12/12 - ✅ Items: 12/12 - ✅ Food: 16/16 - ✅ Clothing: 8/8 - ✅ Tools: 10/10 - ✅ Props: 8/8 - ✅ Buildings: 4/4 - ✅ Terrain: 4/4 - 🔄 Special Creatures: 2/10 (quota hit) New Files: - scripts/auto_generate_overnight.py - OVERNIGHT_AUTO_NAVODILA.md - ASSET_STATUS_03_01_2026.md Quota exhausted at 00:22 Reset at: 01:40 CET Ready for overnight automation!
373
ASSET_STATUS_03_01_2026.md
Normal file
@@ -0,0 +1,373 @@
|
|||||||
|
# 🎨 ASSET PRODUCTION STATUS - 03.01.2026
|
||||||
|
|
||||||
|
**Datum:** 03. januar 2026, 00:08 CET
|
||||||
|
**Total Progress:** 218/~14,000 (1.56%)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ CATEGORY 0: FARM CROPS - COMPLETE (103/103)
|
||||||
|
|
||||||
|
### **Sadje (36/36)** ✅
|
||||||
|
- apple_red, apple_green, apple_yellow
|
||||||
|
- pear, plum, cherry, peach, apricot
|
||||||
|
- orange, lemon, lime, grapefruit
|
||||||
|
- banana, kiwi, mango, papaya, pineapple
|
||||||
|
- strawberry, raspberry, blueberry, blackberry, cranberry
|
||||||
|
- grape_red, grape_green
|
||||||
|
- watermelon, melon, cantaloupe
|
||||||
|
- pomegranate, fig, date
|
||||||
|
- passion_fruit, dragon_fruit, star_fruit
|
||||||
|
- coconut, avocado, olive
|
||||||
|
|
||||||
|
### **Zelenjava (25/25)** ✅
|
||||||
|
- carrot, potato, tomato, cucumber, lettuce
|
||||||
|
- cabbage, broccoli, cauliflower, brussels_sprouts
|
||||||
|
- onion, garlic, leek, shallot
|
||||||
|
- pepper_red, pepper_green, pepper_yellow
|
||||||
|
- eggplant, zucchini, pumpkin, squash
|
||||||
|
- corn, peas, beans, radish, beet
|
||||||
|
|
||||||
|
### **Ganja (12/12)** ✅
|
||||||
|
- sativa, indica, hybrid, ruderalis
|
||||||
|
- purple_kush, og_kush, white_widow, northern_lights
|
||||||
|
- amnesia_haze, super_lemon_haze, blue_dream, girl_scout_cookies
|
||||||
|
|
||||||
|
### **Drevesa (30/30)** ✅
|
||||||
|
- oak, pine, maple, birch, willow
|
||||||
|
- apple_tree, pear_tree, cherry_tree, plum_tree, peach_tree
|
||||||
|
- orange_tree, lemon_tree
|
||||||
|
- palm, cactus, bamboo
|
||||||
|
- rose, tulip, sunflower, lavender, daisy
|
||||||
|
- lily, orchid, carnation, daffodil, iris
|
||||||
|
- poppy, violet, marigold, petunia, zinnia
|
||||||
|
- lily_of_the_valley
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ CATEGORY 1: FARM BUILDINGS & ANIMALS - COMPLETE (55/55)
|
||||||
|
|
||||||
|
### **Farm Buildings (20/20)** ✅
|
||||||
|
- farmhouse, barn, silo, greenhouse
|
||||||
|
- chicken_coop, pigpen, stable
|
||||||
|
- tool_shed, windmill, well
|
||||||
|
- fence_wood, fence_stone, gate
|
||||||
|
- compost, beehive, trough
|
||||||
|
- lamp_post, sign, mailbox, rain_barrel
|
||||||
|
|
||||||
|
### **Farm Animals (15/15)** ✅
|
||||||
|
- chicken, rooster, duck, turkey
|
||||||
|
- cow, pig, sheep, goat
|
||||||
|
- horse, donkey, llama
|
||||||
|
- rabbit, cat, dog, bee
|
||||||
|
|
||||||
|
### **Farm Tools (20/20)** ✅
|
||||||
|
- hoe, shovel, rake, watering_can
|
||||||
|
- axe, pickaxe, scythe, sickle
|
||||||
|
- pitchfork, wheelbarrow, bucket
|
||||||
|
- shears, pruners, trowel, gloves
|
||||||
|
- hammer, saw, pliers, wrench, screwdriver
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ CATEGORY 2: ITEMS & EQUIPMENT - COMPLETE (105/105)
|
||||||
|
|
||||||
|
### **Weapons (30/30)** ✅
|
||||||
|
- sword_basic, greatsword, katana, rapier
|
||||||
|
- axe, battle_axe, club, mace, flail
|
||||||
|
- sledgehammer, baseball_bat, crowbar, frying_pan, golf_club
|
||||||
|
- spear, staff, whip
|
||||||
|
- dagger, throwing_knife
|
||||||
|
- bow, crossbow
|
||||||
|
- pistol, revolver, rifle, shotgun
|
||||||
|
- chainsaw, machete, nailbat, pipe
|
||||||
|
- grenade, molotov
|
||||||
|
|
||||||
|
### **Armor (20/20)** ✅
|
||||||
|
- helmet_leather, helmet_iron, helmet_steel, helmet_gold
|
||||||
|
- chestplate_leather, chestplate_iron, chestplate_steel, chestplate_gold
|
||||||
|
- leggings_leather, leggings_iron, leggings_steel, leggings_gold
|
||||||
|
- boots_leather, boots_iron, boots_steel, boots_gold
|
||||||
|
- shield_wood, shield_iron, shield_steel, shield_gold
|
||||||
|
|
||||||
|
### **Consumables (25/25)** ✅
|
||||||
|
- health_potion, mana_potion, stamina_potion
|
||||||
|
- water_bottle, milk, coffee, soda_can, energy_drink
|
||||||
|
- bread, cheese, egg, cooked_meat
|
||||||
|
- apple, berries, mushroom
|
||||||
|
- sandwich, burger, pizza_slice, soup
|
||||||
|
- cake_slice, candy, chocolate_bar, honey
|
||||||
|
|
||||||
|
### **Crafting Materials (30/30)** ✅
|
||||||
|
- wood_log, wood_plank, stone, iron_ore, iron_bar
|
||||||
|
- coal, cloth, leather, rope
|
||||||
|
- nails, screws, wire, circuit_board, battery
|
||||||
|
- duct_tape, glue, spring, gear, chain
|
||||||
|
- pipe, glass_shards, rubber, plastic
|
||||||
|
- bone, feather, gunpowder, sulfur, crystal
|
||||||
|
- herbs, scrap_metal
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔄 CATEGORY 3: DINO VALLEY BIOME - IN PROGRESS (58/109)
|
||||||
|
|
||||||
|
### **Vegetation (15/15)** ✅ STYLE 30
|
||||||
|
- fern_large, fern_small
|
||||||
|
- mushroom_red_giant, mushroom_brown
|
||||||
|
- cycad_palm, cycad_tree
|
||||||
|
- moss_green, moss_glow
|
||||||
|
- horsetail, ginkgo_leaves
|
||||||
|
- cattail_giant, grass_prehistoric
|
||||||
|
- tree_fern, dead_tree
|
||||||
|
- volcanic_rock_plant
|
||||||
|
|
||||||
|
### **Dinosaurs (12/12)** ✅ STYLE 33
|
||||||
|
- trex, raptor, triceratops
|
||||||
|
- stegosaurus, brontosaurus, ankylosaurus
|
||||||
|
- pterodactyl, spinosaurus, dilophosaurus
|
||||||
|
- pachycephalosaurus, parasaurolophus, compsognathus
|
||||||
|
|
||||||
|
### **Items (12/12)** ✅ STYLE 33
|
||||||
|
- bone_small, bone_large
|
||||||
|
- hide, scales, tooth, claw, feather
|
||||||
|
- amber, volcanic_rock, tar, fossil, egg
|
||||||
|
|
||||||
|
### **Food (16/16)** ✅ STYLE 33
|
||||||
|
*Raw (7):*
|
||||||
|
- raw_trex_meat, raw_raptor_meat, raw_trike_meat
|
||||||
|
- raw_stego_meat, raw_bronto_meat, raw_ptero_meat
|
||||||
|
- dino_eggs_raw
|
||||||
|
|
||||||
|
*Cooked (6):*
|
||||||
|
- cooked_trex_steak, cooked_raptor_fillet, cooked_trike_roast
|
||||||
|
- cooked_stego_ribs, cooked_bronto_meat, cooked_ptero_wings
|
||||||
|
|
||||||
|
*Crafted (3):*
|
||||||
|
- dino_jerky, bone_broth, giant_berries
|
||||||
|
|
||||||
|
### **Clothing/Armor (3/8)** 🔄 IN PROGRESS
|
||||||
|
✅ tribal_loincloth, tooth_necklace, feather_cape
|
||||||
|
❌ dino_hide_chest, dino_hide_legs, bone_helmet, scale_boots, leather_bracers
|
||||||
|
|
||||||
|
### **Tools & Weapons (0/10)** ❌ PENDING
|
||||||
|
- bone_axe, stone_spear, dino_tooth_knife
|
||||||
|
- flint_pickaxe, bone_club, stone_hammer
|
||||||
|
- primitive_bow, obsidian_blade, bone_shovel, javelin
|
||||||
|
|
||||||
|
### **Props (0/8)** ❌ PENDING
|
||||||
|
- skull_trex, skull_trike, ribcage
|
||||||
|
- nest_empty, nest_eggs, tar_pit
|
||||||
|
- volcanic_rocks, bones_scattered
|
||||||
|
|
||||||
|
### **Buildings (0/4)** ❌ PENDING
|
||||||
|
- cave_entrance, primitive_hut, bone_fence, stone_altar
|
||||||
|
|
||||||
|
### **Terrain (0/4)** ❌ PENDING
|
||||||
|
- dirt_volcanic, grass_prehistoric, rock_lava, mud
|
||||||
|
|
||||||
|
### **Special Creatures (0/10)** ❌ PENDING
|
||||||
|
- baby_trex (baby)
|
||||||
|
- alpha_trex, thunder_raptor (bosses)
|
||||||
|
- dino_nest_eggs (special)
|
||||||
|
- zombie_prehistoric, zombie_dino_raptor, zombie_bone, zombie_tar (zombies)
|
||||||
|
- npc_tribal_hunter, npc_shaman (NPCs)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❌ CATEGORY 4: BIOMES - NOT STARTED (0/~1,700)
|
||||||
|
|
||||||
|
### **Mythical Highlands (~95 assets)**
|
||||||
|
- Vegetation, Creatures, Items, Food, Clothing, Tools, Props, Buildings, Terrain
|
||||||
|
|
||||||
|
### **Atlantis Ruins (~75 assets)**
|
||||||
|
- Underwater vegetation, Sea creatures, Nautical items, Buildings
|
||||||
|
|
||||||
|
### **Egyptian Desert (~70 assets)**
|
||||||
|
- Desert vegetation, Egyptian creatures, Artifacts, Pyramids
|
||||||
|
|
||||||
|
### **Chernobyl Zone (~65 assets)**
|
||||||
|
- Mutated plants, Radiation creatures, Soviet items, Ruins
|
||||||
|
|
||||||
|
### **Mushroom Forest (~60 assets)**
|
||||||
|
- Giant mushrooms, Fungal creatures, Spores, Structures
|
||||||
|
|
||||||
|
### **Arctic Zone (~55 assets)**
|
||||||
|
- Snow plants, Arctic animals, Ice structures, Igloos
|
||||||
|
|
||||||
|
### **Endless Forest (~85 assets)**
|
||||||
|
- Ancient trees, Forest creatures, Druidic items, Tree villages
|
||||||
|
|
||||||
|
### **+ 11 more biomes** (~1,200 assets)
|
||||||
|
- Volcanic Island, Haunted Swamp, Crystal Caves, etc.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❌ CATEGORY 5: ENEMIES & CREATURES (0/~500)
|
||||||
|
|
||||||
|
### **Zombies (0/50+)**
|
||||||
|
- Basic zombies, Runners, Tanks, Special variants
|
||||||
|
|
||||||
|
### **Wild Animals (0/50+)**
|
||||||
|
- Bears, wolves, boars, snakes, spiders
|
||||||
|
|
||||||
|
### **Magical Beings (0/50+)**
|
||||||
|
- Elementals, spirits, demons, angels
|
||||||
|
|
||||||
|
### **Bosses (0/20+)**
|
||||||
|
- Biome bosses, World bosses, Secret bosses
|
||||||
|
|
||||||
|
### **Biome-specific Creatures (0/330+)**
|
||||||
|
- Unique creatures per biome
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❌ CATEGORY 6: NPCS & CHARACTERS (0/~150)
|
||||||
|
|
||||||
|
### **Main Characters (0/4)**
|
||||||
|
- Kai, Ana, Gronk, Susi (full sprite sets)
|
||||||
|
|
||||||
|
### **Merchants (0/30)**
|
||||||
|
- Blacksmith, Shopkeeper, Trader, etc.
|
||||||
|
|
||||||
|
### **Services (0/30)**
|
||||||
|
- Doctor, Mechanic, Farmer, Builder, etc.
|
||||||
|
|
||||||
|
### **Mentors (0/30)**
|
||||||
|
- Combat trainer, Magic teacher, Craftsman, etc.
|
||||||
|
|
||||||
|
### **Romance Options (0/20)**
|
||||||
|
- Various NPCs with relationship mechanics
|
||||||
|
|
||||||
|
### **Quest Givers (0/20)**
|
||||||
|
- Story NPCs, side quest givers
|
||||||
|
|
||||||
|
### **Background NPCs (0/16)**
|
||||||
|
- Townspeople, travelers, guards
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❌ CATEGORY 7: BUILDINGS & STRUCTURES (0/~500)
|
||||||
|
|
||||||
|
### **Town Buildings (0/100)**
|
||||||
|
- Shops, houses, town hall, etc.
|
||||||
|
|
||||||
|
### **Special Buildings (0/100)**
|
||||||
|
- Churches, hospitals, schools, factories
|
||||||
|
|
||||||
|
### **Biome Structures (0/300)**
|
||||||
|
- Ruins, temples, caves, dungeons per biome
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❌ CATEGORY 8: UI & EFFECTS (0/~300)
|
||||||
|
|
||||||
|
### **UI Icons (0/150)**
|
||||||
|
- Inventory slots, status icons, skill icons
|
||||||
|
|
||||||
|
### **Particles (0/100)**
|
||||||
|
- Dust, sparkles, smoke, fire, water splashes
|
||||||
|
|
||||||
|
### **VFX (0/50)**
|
||||||
|
- Magic effects, explosions, impacts, auras
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❌ CATEGORY 9: ANIMATIONS & SPRITESHEETS (0/~8,000)
|
||||||
|
|
||||||
|
### **Character Animations (0/~2,000)**
|
||||||
|
- Walk cycles (4-8 frames × 150 characters)
|
||||||
|
- Run cycles
|
||||||
|
- Attack animations
|
||||||
|
- Idle animations
|
||||||
|
|
||||||
|
### **Enemy Animations (0/~2,000)**
|
||||||
|
- Movement
|
||||||
|
- Attacks
|
||||||
|
- Death animations
|
||||||
|
|
||||||
|
### **Effect Animations (0/~4,000)**
|
||||||
|
- Spell effects
|
||||||
|
- Environmental effects
|
||||||
|
- Combat effects
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❌ CATEGORY 10: VARIATIONS & UPGRADES (0/~2,000)
|
||||||
|
|
||||||
|
### **Tool Upgrades (0/60)**
|
||||||
|
- Copper, Iron, Gold, Diamond versions of tools
|
||||||
|
|
||||||
|
### **Building Levels (0/100)**
|
||||||
|
- Level 1, 2, 3 variants
|
||||||
|
|
||||||
|
### **Seasonal Variants (0/400)**
|
||||||
|
- Spring, Summer, Fall, Winter versions of crops
|
||||||
|
|
||||||
|
### **Item Variations (0/1,440)**
|
||||||
|
- Color variants, damage states, enchanted versions
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 OVERALL SUMMARY:
|
||||||
|
|
||||||
|
| Category | Done | Remaining | Total | % |
|
||||||
|
|----------|------|-----------|-------|---|
|
||||||
|
| **Farm Crops** | 103 | 0 | 103 | 100% |
|
||||||
|
| **Farm Buildings** | 55 | 0 | 55 | 100% |
|
||||||
|
| **Items & Equipment** | 105 | 0 | 105 | 100% |
|
||||||
|
| **Dino Valley** | 58 | 51 | 109 | 53% |
|
||||||
|
| **Other Biomes** | 0 | ~1,700 | ~1,700 | 0% |
|
||||||
|
| **Enemies** | 0 | ~500 | ~500 | 0% |
|
||||||
|
| **NPCs** | 0 | ~150 | ~150 | 0% |
|
||||||
|
| **Buildings** | 0 | ~500 | ~500 | 0% |
|
||||||
|
| **UI & Effects** | 0 | ~300 | ~300 | 0% |
|
||||||
|
| **Animations** | 0 | ~8,000 | ~8,000 | 0% |
|
||||||
|
| **Variations** | 0 | ~2,000 | ~2,000 | 0% |
|
||||||
|
| **TOTAL** | **218** | **~13,201** | **~13,419** | **1.62%** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 IMMEDIATE NEXT STEPS:
|
||||||
|
|
||||||
|
### **Tonight/Tomorrow:**
|
||||||
|
1. Finish Dino Valley (51 assets)
|
||||||
|
2. Start high-priority biomes (Mythical Highlands, Atlantis)
|
||||||
|
3. Generate core NPCs (Kai, Ana, Gronk, Susi)
|
||||||
|
|
||||||
|
### **This Week:**
|
||||||
|
4. Complete 3-5 major biomes
|
||||||
|
5. Generate all enemies & bosses
|
||||||
|
6. Create essential NPCs
|
||||||
|
|
||||||
|
### **This Month:**
|
||||||
|
7. All biomes complete
|
||||||
|
8. All characters & NPCs
|
||||||
|
9. All items & equipment variations
|
||||||
|
10. Start animations
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💰 BUDGET ALLOCATION:
|
||||||
|
|
||||||
|
**Available:** €1,117.62
|
||||||
|
|
||||||
|
**Priority Spending:**
|
||||||
|
1. **Core Gameplay (€400)** - 1,000 slik
|
||||||
|
- Finish Dino Valley
|
||||||
|
- Main characters (Kai, Ana, Gronk, Susi)
|
||||||
|
- Core enemies (zombies, animals)
|
||||||
|
|
||||||
|
2. **Essential Biomes (€600)** - 1,500 slik
|
||||||
|
- 5 major biomes complete
|
||||||
|
- All vegetation, creatures, items
|
||||||
|
|
||||||
|
3. **Reserve (€117)** - 300 slik
|
||||||
|
- UI elements
|
||||||
|
- Emergency fixes
|
||||||
|
- Polish items
|
||||||
|
|
||||||
|
**Total:** 2,800 slik = **PLAYABLE GAME** ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last Updated:** 03.01.2026, 00:08 CET
|
||||||
|
**Next Update:** When Dino Valley complete
|
||||||
71
OVERNIGHT_AUTO_NAVODILA.md
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
# 🌙 OVERNIGHT AUTOMATION - NAVODILA
|
||||||
|
|
||||||
|
## 🚀 KAJ BO SCRIPT POČEL:
|
||||||
|
|
||||||
|
1. **Počaka na quota reset** (01:40 CET)
|
||||||
|
2. **Avtomatsko generira** preostale Dino Valley assets (8 slik)
|
||||||
|
3. **Shrani vse** v pravilne folderje
|
||||||
|
4. **Git commit** na vsakih 5 slik (checkpointing)
|
||||||
|
5. **Logira** vse v `auto_generation_log.txt`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 KAKO ZAGNATI:
|
||||||
|
|
||||||
|
### **NAČIN 1: Foreground (vidiš output)**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /Users/davidkotnik/repos/novafarma
|
||||||
|
python3 scripts/auto_generate_overnight.py
|
||||||
|
```
|
||||||
|
|
||||||
|
**Pusti terminal odprt!** Ne zapri, drugače se script ustavi.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **NAČIN 2: Background (lahko zapneš terminal)**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /Users/davidkotnik/repos/novafarma
|
||||||
|
nohup python3 scripts/auto_generate_overnight.py > overnight.log 2>&1 &
|
||||||
|
```
|
||||||
|
|
||||||
|
**To lahko zapneš terminal**, script bo tekel v ozadju!
|
||||||
|
|
||||||
|
Za preverjanje statusa:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Poglej log
|
||||||
|
tail -f /Users/davidkotnik/repos/novafarma/auto_generation_log.txt
|
||||||
|
|
||||||
|
# Ali
|
||||||
|
tail -f /Users/davidkotnik/repos/novafarma/overnight.log
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⏰ TIMELINE:
|
||||||
|
|
||||||
|
**00:24** - Začetek (sedaj)
|
||||||
|
**01:40** - Quota reset → script začne generirat
|
||||||
|
**01:50** - 8 slik done → Dino Valley COMPLETE ✅
|
||||||
|
**01:55** - Git commit, done!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 ŠE DOBIMO:
|
||||||
|
|
||||||
|
- **8 slik** (Dino Valley dokončano)
|
||||||
|
- **€3.20** strošek (8 × €0.40)
|
||||||
|
- **Kredit po tem:** ~€1,011
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ READY TO RUN!
|
||||||
|
|
||||||
|
**Izberi:**
|
||||||
|
|
||||||
|
1. **Foreground** - Vidiš output, moraš terminal pustit odprt
|
||||||
|
2. **Background** - Lahko greš spat, zjutraj vse done
|
||||||
|
|
||||||
|
**Tvoja izbira?** 😴🚀
|
||||||
BIN
assets/slike/biomes/dino_valley/buildings/bone_fence.png
Normal file
|
After Width: | Height: | Size: 681 KiB |
BIN
assets/slike/biomes/dino_valley/buildings/cave_entrance.png
Normal file
|
After Width: | Height: | Size: 490 KiB |
BIN
assets/slike/biomes/dino_valley/buildings/primitive_hut.png
Normal file
|
After Width: | Height: | Size: 597 KiB |
BIN
assets/slike/biomes/dino_valley/buildings/stone_altar.png
Normal file
|
After Width: | Height: | Size: 581 KiB |
BIN
assets/slike/biomes/dino_valley/clothing/bone_helmet.png
Normal file
|
After Width: | Height: | Size: 546 KiB |
BIN
assets/slike/biomes/dino_valley/clothing/feather_cape.png
Normal file
|
After Width: | Height: | Size: 645 KiB |
BIN
assets/slike/biomes/dino_valley/clothing/hide_chest.png
Normal file
|
After Width: | Height: | Size: 529 KiB |
BIN
assets/slike/biomes/dino_valley/clothing/hide_legs.png
Normal file
|
After Width: | Height: | Size: 564 KiB |
BIN
assets/slike/biomes/dino_valley/clothing/leather_bracers.png
Normal file
|
After Width: | Height: | Size: 563 KiB |
BIN
assets/slike/biomes/dino_valley/clothing/scale_boots.png
Normal file
|
After Width: | Height: | Size: 628 KiB |
BIN
assets/slike/biomes/dino_valley/clothing/tooth_necklace.png
Normal file
|
After Width: | Height: | Size: 556 KiB |
BIN
assets/slike/biomes/dino_valley/clothing/tribal_loincloth.png
Normal file
|
After Width: | Height: | Size: 470 KiB |
BIN
assets/slike/biomes/dino_valley/creatures/baby_trex.png
Normal file
|
After Width: | Height: | Size: 462 KiB |
BIN
assets/slike/biomes/dino_valley/creatures/boss_alpha_trex.png
Normal file
|
After Width: | Height: | Size: 560 KiB |
BIN
assets/slike/biomes/dino_valley/props/bones_scattered.png
Normal file
|
After Width: | Height: | Size: 498 KiB |
BIN
assets/slike/biomes/dino_valley/props/nest_eggs.png
Normal file
|
After Width: | Height: | Size: 578 KiB |
BIN
assets/slike/biomes/dino_valley/props/nest_empty.png
Normal file
|
After Width: | Height: | Size: 614 KiB |
BIN
assets/slike/biomes/dino_valley/props/ribcage.png
Normal file
|
After Width: | Height: | Size: 735 KiB |
BIN
assets/slike/biomes/dino_valley/props/skull_trex.png
Normal file
|
After Width: | Height: | Size: 587 KiB |
BIN
assets/slike/biomes/dino_valley/props/skull_trike.png
Normal file
|
After Width: | Height: | Size: 638 KiB |
BIN
assets/slike/biomes/dino_valley/props/tar_pit.png
Normal file
|
After Width: | Height: | Size: 507 KiB |
BIN
assets/slike/biomes/dino_valley/props/volcanic_rocks.png
Normal file
|
After Width: | Height: | Size: 503 KiB |
BIN
assets/slike/biomes/dino_valley/terrain/dirt_volcanic.png
Normal file
|
After Width: | Height: | Size: 636 KiB |
BIN
assets/slike/biomes/dino_valley/terrain/grass_prehistoric.png
Normal file
|
After Width: | Height: | Size: 556 KiB |
BIN
assets/slike/biomes/dino_valley/terrain/mud.png
Normal file
|
After Width: | Height: | Size: 535 KiB |
BIN
assets/slike/biomes/dino_valley/terrain/rock_lava.png
Normal file
|
After Width: | Height: | Size: 584 KiB |
BIN
assets/slike/biomes/dino_valley/tools/bone_axe.png
Normal file
|
After Width: | Height: | Size: 553 KiB |
BIN
assets/slike/biomes/dino_valley/tools/bone_club.png
Normal file
|
After Width: | Height: | Size: 469 KiB |
BIN
assets/slike/biomes/dino_valley/tools/bone_shovel.png
Normal file
|
After Width: | Height: | Size: 479 KiB |
BIN
assets/slike/biomes/dino_valley/tools/dino_tooth_knife.png
Normal file
|
After Width: | Height: | Size: 479 KiB |
BIN
assets/slike/biomes/dino_valley/tools/flint_pickaxe.png
Normal file
|
After Width: | Height: | Size: 460 KiB |
BIN
assets/slike/biomes/dino_valley/tools/javelin.png
Normal file
|
After Width: | Height: | Size: 428 KiB |
BIN
assets/slike/biomes/dino_valley/tools/obsidian_blade.png
Normal file
|
After Width: | Height: | Size: 462 KiB |
BIN
assets/slike/biomes/dino_valley/tools/primitive_bow.png
Normal file
|
After Width: | Height: | Size: 507 KiB |
BIN
assets/slike/biomes/dino_valley/tools/stone_hammer.png
Normal file
|
After Width: | Height: | Size: 459 KiB |
BIN
assets/slike/biomes/dino_valley/tools/stone_spear.png
Normal file
|
After Width: | Height: | Size: 432 KiB |
252
scripts/auto_generate_overnight.py
Normal file
@@ -0,0 +1,252 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
OVERNIGHT AUTOMATION SCRIPT - Dino Valley & Beyond
|
||||||
|
Waits for quota reset, then automatically generates remaining assets
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
import json
|
||||||
|
import requests
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
from pathlib import Path
|
||||||
|
import base64
|
||||||
|
|
||||||
|
# ========================================
|
||||||
|
# CONFIGURATION
|
||||||
|
# ========================================
|
||||||
|
|
||||||
|
PROJECT_ROOT = Path("/Users/davidkotnik/repos/novafarma")
|
||||||
|
ASSET_ROOT = PROJECT_ROOT / "assets/slike"
|
||||||
|
LOG_FILE = PROJECT_ROOT / "auto_generation_log.txt"
|
||||||
|
|
||||||
|
# Vertex AI Configuration
|
||||||
|
PROJECT_ID = "gen-lang-client-0428644398"
|
||||||
|
LOCATION = "us-central1"
|
||||||
|
MODEL = "imagen-3.0-generate-001"
|
||||||
|
|
||||||
|
# Quota reset time (from error message)
|
||||||
|
QUOTA_RESET_TIME = datetime.fromisoformat("2026-01-03T01:40:39+01:00")
|
||||||
|
|
||||||
|
# Generation limits
|
||||||
|
MAX_IMAGES_PER_HOUR = 60 # Conservative (actual is 60/min)
|
||||||
|
BATCH_SIZE = 10 # Generate in batches for checkpointing
|
||||||
|
DELAY_BETWEEN_IMAGES = 1.2 # Seconds (safe rate limiting)
|
||||||
|
|
||||||
|
# Style definitions
|
||||||
|
STYLE_33_ENTITIES = """exact same art style as reference. Very thick black outlines (4-5px), flat colors NO gradients, pastel colors with dark gothic accents, NO pupils (white eyes), cute-dark aesthetic, clean vector cartoon"""
|
||||||
|
|
||||||
|
STYLE_30_VEGETATION = """exact Garden Story cozy art style. Soft rounded shapes, gentle pastel colors, NO thick outlines (thin 1-2px), watercolor-like soft shading, cute botanical illustration, clean cozy plant art"""
|
||||||
|
|
||||||
|
# ========================================
|
||||||
|
# REMAINING DINO VALLEY ASSETS (18)
|
||||||
|
# ========================================
|
||||||
|
|
||||||
|
DINO_VALLEY_REMAINING = {
|
||||||
|
"creatures": [
|
||||||
|
{
|
||||||
|
"name": "boss_thunder_raptor",
|
||||||
|
"prompt": "Thunder Raptor boss in {STYLE}. Pastel purple/blue raptor with lightning patterns, large empty white eyes NO pupils, dark gothic electric accents. 3/4 angle. Chroma green background (#00FF00)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "dino_nest_eggs_special",
|
||||||
|
"prompt": "Special glowing dinosaur nest in {STYLE}. Pastel brown nest with magical glowing eggs, dark gothic mystical aura. 3/4 angle. Chroma green background (#00FF00)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zombie_prehistoric",
|
||||||
|
"prompt": "Prehistoric zombie caveman in {STYLE}. Pastel green/gray decayed caveman, torn tribal clothes, large empty white eyes NO pupils, dark gothic rot. 3/4 angle. Chroma green background (#00FF00)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zombie_dino_raptor",
|
||||||
|
"prompt": "Zombie raptor dinosaur in {STYLE}. Pastel gray/green undead raptor with exposed bones, large empty white eyes NO pupils, dark gothic decay. 3/4 angle. Chroma green background (#00FF00)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zombie_bone",
|
||||||
|
"prompt": "Skeleton zombie in {STYLE}. White/cream animated skeleton warrior, large empty eye sockets, dark gothic cracks. 3/4 angle. Chroma green background (#00FF00)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zombie_tar",
|
||||||
|
"prompt": "Tar zombie in {STYLE}. Black sticky tar monster humanoid, glowing pastel orange eyes, dark gothic dripping texture. 3/4 angle. Chroma green background (#00FF00)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "npc_tribal_hunter",
|
||||||
|
"prompt": "Tribal hunter NPC in {STYLE}. Pastel brown skinned caveman with bone spear, tribal tattoos, large empty white eyes NO pupils, dark gothic war paint, friendly stance. 3/4 angle. Chroma green background (#00FF00)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "npc_shaman",
|
||||||
|
"prompt": "Tribal shaman NPC in {STYLE}. Elderly caveman with bone staff and feather headdress, pastel skin, large empty white eyes NO pupils, dark gothic mystical symbols, wise pose. 3/4 angle. Chroma green background (#00FF00)."
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
# ========================================
|
||||||
|
# UTILITY FUNCTIONS
|
||||||
|
# ========================================
|
||||||
|
|
||||||
|
def log(message):
|
||||||
|
"""Log message to file and console"""
|
||||||
|
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
log_msg = f"[{timestamp}] {message}"
|
||||||
|
print(log_msg)
|
||||||
|
with open(LOG_FILE, 'a') as f:
|
||||||
|
f.write(log_msg + "\n")
|
||||||
|
|
||||||
|
def wait_for_quota_reset():
|
||||||
|
"""Wait until quota resets"""
|
||||||
|
now = datetime.now()
|
||||||
|
wait_seconds = (QUOTA_RESET_TIME - now).total_seconds()
|
||||||
|
|
||||||
|
if wait_seconds > 0:
|
||||||
|
log(f"⏰ Waiting for quota reset at {QUOTA_RESET_TIME.strftime('%H:%M')}")
|
||||||
|
log(f" Sleeping for {int(wait_seconds/60)} minutes...")
|
||||||
|
time.sleep(wait_seconds + 10) # Add 10 sec buffer
|
||||||
|
log("✅ Quota should be reset now!")
|
||||||
|
else:
|
||||||
|
log("✅ Quota already reset!")
|
||||||
|
|
||||||
|
def get_access_token():
|
||||||
|
"""Get Google Cloud access token"""
|
||||||
|
import subprocess
|
||||||
|
result = subprocess.run(
|
||||||
|
['gcloud', 'auth', 'print-access-token'],
|
||||||
|
capture_output=True,
|
||||||
|
text=True
|
||||||
|
)
|
||||||
|
return result.stdout.strip()
|
||||||
|
|
||||||
|
def generate_image_vertex(prompt, output_path):
|
||||||
|
"""Generate image using Vertex AI Imagen 3.0"""
|
||||||
|
|
||||||
|
access_token = get_access_token()
|
||||||
|
|
||||||
|
url = f"https://{LOCATION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL}:predict"
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"Authorization": f"Bearer {access_token}",
|
||||||
|
"Content-Type": "application/json"
|
||||||
|
}
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"prompt": prompt
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"sampleCount": 1,
|
||||||
|
"aspectRatio": "1:1",
|
||||||
|
"safetyFilterLevel": "block_few",
|
||||||
|
"personGeneration": "allow_all"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.post(url, headers=headers, json=payload, timeout=60)
|
||||||
|
response.raise_for_status()
|
||||||
|
|
||||||
|
result = response.json()
|
||||||
|
|
||||||
|
# Extract and save image
|
||||||
|
if "predictions" in result and len(result["predictions"]) > 0:
|
||||||
|
image_data = result["predictions"][0]["bytesBase64Encoded"]
|
||||||
|
image_bytes = base64.b64decode(image_data)
|
||||||
|
|
||||||
|
# Save to file
|
||||||
|
output_path.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
with open(output_path, 'wb') as f:
|
||||||
|
f.write(image_bytes)
|
||||||
|
|
||||||
|
log(f" ✅ Saved: {output_path.name}")
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
log(f" ❌ No image in response")
|
||||||
|
return False
|
||||||
|
|
||||||
|
except requests.exceptions.HTTPError as e:
|
||||||
|
if e.response.status_code == 429:
|
||||||
|
log(f" ⚠️ Quota exhausted again, waiting 5 minutes...")
|
||||||
|
time.sleep(300)
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
log(f" ❌ HTTP Error: {e}")
|
||||||
|
return False
|
||||||
|
except Exception as e:
|
||||||
|
log(f" ❌ Error: {str(e)}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def git_commit_checkpoint(message):
|
||||||
|
"""Create git commit checkpoint"""
|
||||||
|
import subprocess
|
||||||
|
try:
|
||||||
|
subprocess.run(['git', 'add', '-A'], cwd=PROJECT_ROOT, check=True)
|
||||||
|
subprocess.run(['git', 'commit', '-m', message], cwd=PROJECT_ROOT, check=True)
|
||||||
|
log(f" 📦 Git commit: {message}")
|
||||||
|
except Exception as e:
|
||||||
|
log(f" ⚠️ Git commit failed: {e}")
|
||||||
|
|
||||||
|
# ========================================
|
||||||
|
# MAIN GENERATION LOGIC
|
||||||
|
# ========================================
|
||||||
|
|
||||||
|
def generate_dino_valley_remaining():
|
||||||
|
"""Generate remaining Dino Valley assets"""
|
||||||
|
|
||||||
|
log("🦖 Starting Dino Valley completion...")
|
||||||
|
|
||||||
|
total = len(DINO_VALLEY_REMAINING["creatures"])
|
||||||
|
completed = 0
|
||||||
|
|
||||||
|
for asset in DINO_VALLEY_REMAINING["creatures"]:
|
||||||
|
name = asset["name"]
|
||||||
|
prompt_template = asset["prompt"]
|
||||||
|
|
||||||
|
# Use Style 33 for entities
|
||||||
|
prompt = prompt_template.replace("{STYLE}", STYLE_33_ENTITIES)
|
||||||
|
|
||||||
|
output_path = ASSET_ROOT / "biomes/dino_valley/creatures" / f"{name}.png"
|
||||||
|
|
||||||
|
# Skip if already exists
|
||||||
|
if output_path.exists():
|
||||||
|
log(f"⏭️ Skipping {name} (already exists)")
|
||||||
|
completed += 1
|
||||||
|
continue
|
||||||
|
|
||||||
|
log(f"🖼️ Generating {name} ({completed+1}/{total})")
|
||||||
|
|
||||||
|
success = generate_image_vertex(prompt, output_path)
|
||||||
|
|
||||||
|
if success:
|
||||||
|
completed += 1
|
||||||
|
|
||||||
|
# Checkpoint every 5 images
|
||||||
|
if completed % 5 == 0:
|
||||||
|
git_commit_checkpoint(f"🦖 Dino Valley auto: {completed}/{total} creatures")
|
||||||
|
|
||||||
|
# Rate limiting
|
||||||
|
time.sleep(DELAY_BETWEEN_IMAGES)
|
||||||
|
|
||||||
|
log(f"✅ Dino Valley complete! {completed}/{total} assets generated")
|
||||||
|
git_commit_checkpoint(f"🎉 DINO VALLEY COMPLETE - All {completed} creatures done!")
|
||||||
|
|
||||||
|
return completed
|
||||||
|
|
||||||
|
# ========================================
|
||||||
|
# MAIN EXECUTION
|
||||||
|
# ========================================
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
log("="*60)
|
||||||
|
log("🚀 OVERNIGHT AUTOMATION STARTED")
|
||||||
|
log("="*60)
|
||||||
|
|
||||||
|
# Wait for quota reset
|
||||||
|
wait_for_quota_reset()
|
||||||
|
|
||||||
|
# Generate remaining Dino Valley
|
||||||
|
dino_count = generate_dino_valley_remaining()
|
||||||
|
|
||||||
|
log("="*60)
|
||||||
|
log(f"✅ AUTOMATION COMPLETE!")
|
||||||
|
log(f"📊 Total generated: {dino_count} assets")
|
||||||
|
log(f"💰 Estimated cost: €{dino_count * 0.40:.2f}")
|
||||||
|
log("="*60)
|
||||||
@@ -25,21 +25,10 @@ BIOME_ROOT = PROJECT_ROOT / "assets/slike/biomi"
|
|||||||
API_KEY = os.getenv("GEMINI_API_KEY") # Set this in environment
|
API_KEY = os.getenv("GEMINI_API_KEY") # Set this in environment
|
||||||
API_URL = "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image:generateImage"
|
API_URL = "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image:generateImage"
|
||||||
|
|
||||||
# Art styles - STRICT ENFORCEMENT (02.01.2026)
|
# Art styles - PROVEN FORMULA (Style 33 + Style 30)
|
||||||
STYLE_32_ENTITIES = """exact Dark-Chibi Noir style with:
|
STYLE_33_ENTITIES = """exact same art style as reference. Very thick black outlines (4-5px), flat colors NO gradients, pastel colors with dark gothic accents, NO pupils (white eyes), cute-dark aesthetic, clean vector cartoon"""
|
||||||
- Very thick black outlines (4-5px bold marker lines)
|
|
||||||
- Chibi proportions (head 40-50% of total body, large features)
|
|
||||||
- Flat colors ONLY, NO gradients, NO soft shading
|
|
||||||
- Sharp block shadows (black/dark purple on one side for noir effect)
|
|
||||||
- Large empty eyes (white or red, NO pupils, cult-like)
|
|
||||||
- Pastel-gothic color palette (soft colors + dark accents)"""
|
|
||||||
|
|
||||||
STYLE_30_VEGETATION = """exact Garden Story cozy botanical style with:
|
STYLE_30_VEGETATION = """exact Garden Story cozy art style. Soft rounded shapes, gentle pastel colors, NO thick outlines (thin 1-2px), watercolor-like soft shading, cute botanical illustration, clean cozy plant art"""
|
||||||
- Thin gentle outlines (1-2px)
|
|
||||||
- Soft watercolor-like shading (subtle gradients allowed)
|
|
||||||
- Rounded organic shapes, wholesome aesthetic
|
|
||||||
- Pastel-vibrant botanical colors
|
|
||||||
- Friendly, inviting, nature-focused look"""
|
|
||||||
|
|
||||||
# ========================================
|
# ========================================
|
||||||
# BIOME DEFINITIONS
|
# BIOME DEFINITIONS
|
||||||
@@ -122,7 +111,7 @@ def generate_asset_prompt(asset_name, asset_type, is_vegetation=False):
|
|||||||
if asset_type == "vegetacija" or is_vegetation:
|
if asset_type == "vegetacija" or is_vegetation:
|
||||||
style_text = STYLE_30_VEGETATION
|
style_text = STYLE_30_VEGETATION
|
||||||
else:
|
else:
|
||||||
style_text = STYLE_32_ENTITIES
|
style_text = STYLE_33_ENTITIES
|
||||||
|
|
||||||
# Format asset name to readable
|
# Format asset name to readable
|
||||||
readable_name = asset_name.replace("_", " ").title()
|
readable_name = asset_name.replace("_", " ").title()
|
||||||
|
|||||||