🎨 Production Batch 1-8: 32 hybrid style assets
- Main characters: Gronk, Kai, Ana - NPCs: 12 types (trader, blacksmith, healer, etc) - Animals: 8 types (Susi, husky, cow, chicken, pig, horse, deer, wolf) - Zombies: 4 types (basic, runner, bloated, dreadlocks) - Environment: 5 objects (trees, bush, rock, campfire) Style: Dark Hand-Drawn 2D Stylized Indie All with green chroma key background Progress: 32/422 base assets (8%)
This commit is contained in:
120
scripts/create_asset_queue.py
Normal file
120
scripts/create_asset_queue.py
Normal file
@@ -0,0 +1,120 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
🎮 DOLINA SMRTI - HYBRID STYLE PRODUCTION
|
||||
Direct integration with agent's generation capabilities
|
||||
Saves all assets to proper folders automatically
|
||||
"""
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
# Output directory structure
|
||||
OUTPUT_BASE = Path("/Users/davidkotnik/repos/novafarma/assets/images")
|
||||
|
||||
# Approved Hybrid Style Formula
|
||||
STYLE_PREFIX = """dark hand-drawn 2D stylized indie game art,
|
||||
bold thick black hand-drawn outlines,
|
||||
smooth vector rendering,
|
||||
cartoon-style exaggerated proportions but dark mature atmosphere NOT Disney,
|
||||
mature 90s cartoon aesthetic, """
|
||||
|
||||
STYLE_SUFFIX = """, stylized character NOT realistic,
|
||||
mature indie game art,
|
||||
solid bright green background RGB(0,255,0) chroma key green screen,
|
||||
game asset, PNG"""
|
||||
|
||||
# Generate asset list for agent to process
|
||||
def generate_asset_queue():
|
||||
"""Generate list of all assets to create"""
|
||||
assets = []
|
||||
|
||||
# Main characters
|
||||
gronk = f"{STYLE_PREFIX}Gronk the troll, massive green-grey skinned troll, PINK dreadlocks very prominent, stretched earlobes with large gauges, facial piercings, holding colorful vape device with pink smoke, wearing LOOSE BAGGY black t-shirt with band logo, LOOSE WIDE black pants, pink sneakers, peaceful zen expression, full body visible from head to feet standing on ground{STYLE_SUFFIX}"
|
||||
|
||||
kai = f"{STYLE_PREFIX}Kai teenage boy survivor, post-apocalyptic nomad style, GREEN natural dreadlocks hair, stretched earlobes with plugs visible, facial piercings on nose and lip, wearing dirty worn blue jacket, torn jeans, combat boots, survival backpack, determined serious expression, athletic build, full body visible from head to feet standing on ground{STYLE_SUFFIX}"
|
||||
|
||||
ana = f"{STYLE_PREFIX}Ana teenage girl explorer, Kai's twin sister, PINK dreadlocks hair, stretched earlobes with small plugs, wearing brown adventure vest over green shirt, blue jeans, brown boots, leather backpack with map, kind curious expression, full body visible from head to feet standing on ground{STYLE_SUFFIX}"
|
||||
|
||||
assets.append({"cat": "npcs", "file": "gronk_troll.png", "prompt": gronk})
|
||||
assets.append({"cat": "npcs", "file": "kai_survivor.png", "prompt": kai})
|
||||
assets.append({"cat": "npcs", "file": "ana_explorer.png", "prompt": ana})
|
||||
|
||||
# NPCs
|
||||
npcs = [
|
||||
("npc_trader.png", "wasteland trader, nomadic merchant with cart, weathered face, hooded cloak"),
|
||||
("npc_blacksmith.png", "nomadic blacksmith, leather apron, strong arms, hammer, burns"),
|
||||
("npc_healer.png", "herbalist healer woman, herb pouch, kind elderly, flower crown"),
|
||||
("npc_hunter.png", "wasteland hunter, crossbow, animal pelts, face paint"),
|
||||
("npc_farmer.png", "apocalypse farmer, patched overalls, straw hat, hoe"),
|
||||
("npc_mechanic.png", "mechanic survivor, oil stained, wrench, welding goggles"),
|
||||
("npc_soldier.png", "ex-military survivor, tactical vest, rifle, scarred"),
|
||||
("npc_medic.png", "field medic, white coat blood stains, medical bag"),
|
||||
("npc_elder.png", "wise tribal elder, walking stick, long white beard"),
|
||||
("npc_child.png", "survivor orphan child, oversized clothes, teddy bear"),
|
||||
("npc_cook.png", "camp cook, pot and ladle, big belly, friendly"),
|
||||
("npc_scout.png", "nomad scout, binoculars, light armor, agile"),
|
||||
]
|
||||
|
||||
for file, desc in npcs:
|
||||
prompt = f"{STYLE_PREFIX}2D indie game character, {desc}, full body standing{STYLE_SUFFIX}"
|
||||
assets.append({"cat": "npcs", "file": file, "prompt": prompt})
|
||||
|
||||
# Animals
|
||||
animals = [
|
||||
("susi_dachshund.png", "Susi dachshund dog, brown and black, long body, floppy ears, pink collar, happy"),
|
||||
("dog_husky.png", "husky dog, fluffy grey white, blue eyes, friendly"),
|
||||
("cow_spotted.png", "dairy cow, black white spots, friendly"),
|
||||
("chicken_white.png", "white chicken, red comb, pecking"),
|
||||
("pig_pink.png", "pink pig, curly tail, muddy happy"),
|
||||
("horse_brown.png", "brown horse, black mane, majestic"),
|
||||
("deer_forest.png", "forest deer, brown, antlers, graceful"),
|
||||
("wolf_grey.png", "grey wolf, fierce, pack hunter"),
|
||||
]
|
||||
|
||||
for file, desc in animals:
|
||||
prompt = f"{STYLE_PREFIX}2D indie game animal sprite, {desc}, full body side view{STYLE_SUFFIX}"
|
||||
assets.append({"cat": "zivali", "file": file, "prompt": prompt})
|
||||
|
||||
# Zombies
|
||||
zombies = [
|
||||
("zombie_basic.png", "basic zombie, shambling, torn clothes, grey skin, undead"),
|
||||
("zombie_runner.png", "fast zombie, sprinting, aggressive, rage face"),
|
||||
("zombie_bloated.png", "bloated zombie, huge swollen, toxic green drool"),
|
||||
("zombie_dreadlocks.png", "zombie with dreadlocks, brown shirt, farmer style"),
|
||||
]
|
||||
|
||||
for file, desc in zombies:
|
||||
prompt = f"{STYLE_PREFIX}2D indie game monster sprite, {desc}, full body{STYLE_SUFFIX}"
|
||||
assets.append({"cat": "mutanti", "file": file, "prompt": prompt})
|
||||
|
||||
# Environment
|
||||
envs = [
|
||||
("tree_oak.png", "oak tree, green leaves, brown trunk"),
|
||||
("tree_dead.png", "dead tree, no leaves, gnarled branches, wonky crooked"),
|
||||
("bush_green.png", "green bush, leafy, slightly warped shape"),
|
||||
("rock_large.png", "large boulder, moss, weathered"),
|
||||
("campfire.png", "campfire, flames, logs burning"),
|
||||
]
|
||||
|
||||
for file, desc in envs:
|
||||
prompt = f"{STYLE_PREFIX}2D indie game object sprite, {desc}, environment asset{STYLE_SUFFIX}"
|
||||
assets.append({"cat": "environment", "file": file, "prompt": prompt})
|
||||
|
||||
return assets
|
||||
|
||||
# Generate queue
|
||||
if __name__ == "__main__":
|
||||
assets = generate_asset_queue()
|
||||
|
||||
# Save to JSON for agent to process
|
||||
queue_file = Path("/Users/davidkotnik/repos/novafarma/asset_queue.json")
|
||||
with open(queue_file, 'w') as f:
|
||||
json.dump(assets, f, indent=2)
|
||||
|
||||
print(f"✅ Generated queue: {len(assets)} assets")
|
||||
print(f"📁 Saved to: {queue_file}")
|
||||
print("\nCategories:")
|
||||
cats = {}
|
||||
for a in assets:
|
||||
cats[a['cat']] = cats.get(a['cat'], 0) + 1
|
||||
for cat, count in sorted(cats.items()):
|
||||
print(f" {cat}: {count}")
|
||||
@@ -17,11 +17,17 @@ import io
|
||||
OUTPUT_DIR = Path("/Users/davidkotnik/repos/novafarma/assets/images")
|
||||
GREEN_BG = "solid bright green background RGB(0,255,0) chroma key green screen"
|
||||
|
||||
# Style that worked for Gronk/Kai test images
|
||||
STYLE_PREFIX = """2D indie game character sprite, cartoon vector style, clean lines,
|
||||
full body visible from head to feet standing on ground, """
|
||||
# APPROVED HYBRID STYLE - Dark Hand-Drawn 2D Stylized Indie
|
||||
# Bold outlines, exaggerated features, warped proportions, gritty mature aesthetic
|
||||
STYLE_PREFIX = """dark hand-drawn 2D stylized indie game art,
|
||||
bold thick black hand-drawn outlines,
|
||||
smooth vector rendering,
|
||||
cartoon-style exaggerated proportions but dark mature atmosphere NOT Disney,
|
||||
mature 90s cartoon aesthetic, """
|
||||
|
||||
STYLE_SUFFIX = f""", {GREEN_BG}, game asset, PNG"""
|
||||
STYLE_SUFFIX = f""", stylized character NOT realistic,
|
||||
mature indie game art,
|
||||
{GREEN_BG}, game asset, PNG"""
|
||||
|
||||
# ============================================================================
|
||||
# MASTER REGISTRY - 9000+ ASSETS
|
||||
|
||||
Reference in New Issue
Block a user