134 lines
7.2 KiB
Python
134 lines
7.2 KiB
Python
#!/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()
|