feat: Initialize mass production - mix strategy (base sprites + animations)
This commit is contained in:
133
scripts/mass_production_overnight.py
Normal file
133
scripts/mass_production_overnight.py
Normal file
@@ -0,0 +1,133 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
OVERNIGHT MASS PRODUCTION SCRIPT
|
||||
Generates balanced mix of base sprites + animations
|
||||
Total target: 100 assets tonight, 11,000+ overall
|
||||
"""
|
||||
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
# PRODUCTION QUEUE - First 100 assets
|
||||
PRODUCTION_QUEUE = {
|
||||
# BUILDINGS (10)
|
||||
"buildings": [
|
||||
("farmhouse_basic", "basic farmhouse building, small simple two-story house with chimney"),
|
||||
("greenhouse", "greenhouse building, glass structure for growing plants, botanical building"),
|
||||
("workshop", "workshop building, craftsman work shed with tools visible, maker space"),
|
||||
("laboratory", "laboratory building, science research facility with equipment"),
|
||||
("vape_lab", "vape lab building, chemistry workshop for liquid mixing, specialized facility"),
|
||||
("bakery", "bakery building, cozy bakery shop with oven and storefront"),
|
||||
("clinic", "clinic building, medical facility with red cross, healthcare center"),
|
||||
("town_hall", "town hall building, administrative building with clock tower"),
|
||||
("warehouse", "warehouse building, large storage facility, industrial building"),
|
||||
("inn", "inn building, travelers rest stop with beds, accommodation"),
|
||||
],
|
||||
|
||||
# CROPS (15)
|
||||
"crops": [
|
||||
("wheat_seed", "wheat seeds planted in soil, small brown seeds in dirt, planting stage"),
|
||||
("wheat_growing", "wheat plant growing, young green wheat sprouts, growing stage"),
|
||||
("wheat_harvest", "wheat ready to harvest, golden wheat stalks with grain heads"),
|
||||
("corn_seed", "corn seeds planted in soil, planting stage"),
|
||||
("corn_growing", "corn plant growing, tall green corn stalk with leaves"),
|
||||
("corn_harvest", "corn ready to harvest, corn stalk with ripe yellow corn cobs"),
|
||||
("tomato_seed", "tomato seeds planted in soil, planting stage"),
|
||||
("tomato_growing", "tomato plant growing, green bush with small tomatoes"),
|
||||
("tomato_harvest", "tomato plant with red tomatoes, green bush with ripe red tomatoes"),
|
||||
("potato_seed", "potato seeds in soil, planting stage"),
|
||||
("potato_growing", "potato plant growing, green leafy potato plant"),
|
||||
("potato_harvest", "potato plant ready to harvest with visible tubers"),
|
||||
("carrot_growing", "carrot plant growing, green leafy tops"),
|
||||
("pumpkin_growing", "pumpkin plant with orange pumpkin"),
|
||||
("hemp_growing", "hemp plant growing, tall cannabis plant with leaves"),
|
||||
],
|
||||
|
||||
# WORKSTATIONS (5)
|
||||
"workstations": [
|
||||
("tailoring_table", "tailoring table workstation, sewing table with fabric"),
|
||||
("mint_station", "mint station, coin pressing machine"),
|
||||
("sprinkler_basic", "basic sprinkler, simple water sprinkler device"),
|
||||
("sprinkler_quality", "quality sprinkler, improved irrigation device"),
|
||||
("vape_lab_station", "vape lab workstation, liquid mixing station with vials"),
|
||||
],
|
||||
|
||||
# KAI ANIMATIONS (16 frames - walk cycle 4 directions)
|
||||
"animations/kai": [
|
||||
("kai_walk_north_1", "Kai walking north frame 1, teenage survivor with dark forest green dreadlocks, ear gauges, piercings, blue jacket, ripped jeans"),
|
||||
("kai_walk_north_2", "Kai walking north frame 2, teenage survivor with dark forest green dreadlocks, leg mid-stride"),
|
||||
("kai_walk_north_3", "Kai walking north frame 3, teenage survivor with dark forest green dreadlocks, opposite leg forward"),
|
||||
("kai_walk_north_4", "Kai walking north frame 4, teenage survivor with dark forest green dreadlocks, return to stance"),
|
||||
("kai_walk_south_1", "Kai walking south frame 1, teenage survivor facing camera, dark forest green dreadlocks visible"),
|
||||
("kai_walk_south_2", "Kai walking south frame 2, teenage survivor facing camera, leg mid-stride"),
|
||||
("kai_walk_south_3", "Kai walking south frame 3, teenage survivor facing camera, opposite leg forward"),
|
||||
("kai_walk_south_4", "Kai walking south frame 4, teenage survivor facing camera, return to stance"),
|
||||
("kai_walk_east_1", "Kai walking east frame 1, teenage survivor profile view facing right, dark forest green dreadlocks"),
|
||||
("kai_walk_east_2", "Kai walking east frame 2, teenage survivor profile facing right, leg mid-stride"),
|
||||
("kai_walk_east_3", "Kai walking east frame 3, teenage survivor profile facing right, opposite leg forward"),
|
||||
("kai_walk_east_4", "Kai walking east frame 4, teenage survivor profile facing right, return to stance"),
|
||||
("kai_walk_west_1", "Kai walking west frame 1, teenage survivor profile view facing left, dark forest green dreadlocks"),
|
||||
("kai_walk_west_2", "Kai walking west frame 2, teenage survivor profile facing left, leg mid-stride"),
|
||||
("kai_walk_west_3", "Kai walking west frame 3, teenage survivor profile facing left, opposite leg forward"),
|
||||
("kai_walk_west_4", "Kai walking west frame 4, teenage survivor profile facing left, return to stance"),
|
||||
],
|
||||
}
|
||||
|
||||
def generate_prompt(category, description):
|
||||
"""Generate full Gritty Noir prompt from description"""
|
||||
base_suffix = ", game asset, (bold black outlines:1.4), dark hand-drawn stylized indie game asset, (gritty noir aesthetic:1.2), flat colors, muted color palette, isolated object centered on solid white background, clean edges, simple composition"
|
||||
|
||||
if "animation" in category:
|
||||
return description + ", walking animation frame, game character sprite" + base_suffix
|
||||
elif category == "buildings":
|
||||
return description + ", game building asset, isometric view" + base_suffix
|
||||
elif category == "crops":
|
||||
return description + ", farm crop, game crop sprite" + base_suffix
|
||||
elif category == "workstations":
|
||||
return description + ", game workstation object" + base_suffix
|
||||
else:
|
||||
return description + base_suffix
|
||||
|
||||
def main():
|
||||
print("="*70)
|
||||
print("🌙 OVERNIGHT MASS PRODUCTION - MIX STRATEGY")
|
||||
print("="*70)
|
||||
print(f"Started: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
|
||||
print()
|
||||
|
||||
total_assets = sum(len(items) for items in PRODUCTION_QUEUE.values())
|
||||
print(f"Total assets in queue: {total_assets}")
|
||||
print()
|
||||
print("⚠️ NOTE: This is a reference script.")
|
||||
print(" Actual generation uses Antigravity's generate_image tool")
|
||||
print(" with 60-second delays between requests.")
|
||||
print()
|
||||
print("="*70)
|
||||
print()
|
||||
|
||||
current = 0
|
||||
for category, assets in PRODUCTION_QUEUE.items():
|
||||
print(f"\n📁 Category: {category}")
|
||||
print("-" * 70)
|
||||
|
||||
for asset_name, description in assets:
|
||||
current += 1
|
||||
prompt = generate_prompt(category, description)
|
||||
|
||||
print(f"[{current}/{total_assets}] {asset_name}")
|
||||
print(f" Prompt: {prompt[:100]}...")
|
||||
print(f" → Ask Antigravity to generate: generate_image('{asset_name}', '{prompt}')")
|
||||
print()
|
||||
|
||||
# Simulated delay (actual generation has API rate limits)
|
||||
if current < total_assets:
|
||||
print(f" ⏱️ Waiting 60 seconds before next generation...")
|
||||
print()
|
||||
|
||||
print("="*70)
|
||||
print("✅ QUEUE COMPLETE!")
|
||||
print(f"Total generated: {total_assets} assets")
|
||||
print("="*70)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user