#!/usr/bin/env python3 """ Green Screen Generator - Creates images with #00FF00 background Then can convert green to alpha for clean transparency """ import os from pathlib import Path from rembg import remove from PIL import Image import numpy as np # Test images TEST_IMAGES = [ "assets/PHASE_PACKS/1_FAZA_1/tools/wood/watering_can.png", "assets/PHASE_PACKS/1_FAZA_1/animals/horse.png", "assets/PHASE_PACKS/1_FAZA_1/infrastructure/farm_elements/manure_pile.png", "assets/PHASE_PACKS/1_FAZA_1/tools/iron/pickaxe.png", "assets/PHASE_PACKS/1_FAZA_1/animals/sheep/walk.png", ] OUTPUT_DIR = "test_transparency" CHROMA_GREEN = (0, 255, 0, 255) # #00FF00 def add_green_background(input_path, output_green_path, output_alpha_path): """ 1. Use AI to remove background 2. Add solid green (#00FF00) background 3. Also save version with alpha transparency """ img = Image.open(input_path) # Step 1: AI remove background -> get alpha mask img_no_bg = remove(img) # Save alpha version img_no_bg.save(output_alpha_path, 'PNG') # Step 2: Create green background version # Create solid green canvas green_bg = Image.new('RGBA', img_no_bg.size, CHROMA_GREEN) # Composite the subject onto green background green_bg.paste(img_no_bg, (0, 0), img_no_bg) # Convert to RGB (no alpha) for clean green screen look green_rgb = green_bg.convert('RGB') green_rgb.save(output_green_path, 'PNG') print(f" ✅ {os.path.basename(input_path)}") print(f" → Green: {os.path.basename(output_green_path)}") print(f" → Alpha: {os.path.basename(output_alpha_path)}") def main(): print("🟢 GREEN SCREEN GENERATOR") print("=" * 50) print("\nCreating images with #00FF00 chroma key background") print("Like the zombie bunny reference!\n") os.makedirs(OUTPUT_DIR, exist_ok=True) processed = [] for img_path in TEST_IMAGES: if not os.path.exists(img_path): print(f" ❌ Not found: {img_path}") continue name = os.path.basename(img_path) name_no_ext = os.path.splitext(name)[0] green_dest = os.path.join(OUTPUT_DIR, f"{name_no_ext}_GREEN.png") alpha_dest = os.path.join(OUTPUT_DIR, f"{name_no_ext}_ALPHA.png") add_green_background(img_path, green_dest, alpha_dest) processed.append({ 'name': name_no_ext, 'original': f"{name_no_ext}_ORIGINAL.png", 'green': f"{name_no_ext}_GREEN.png", 'alpha': f"{name_no_ext}_ALPHA.png" }) # Generate comparison HTML html = ''' 🟢 Green Screen Test

🟢 GREEN SCREEN WORKFLOW

Workflow: Original → AI Remove BG → Green Screen (#00FF00) → Alpha Transparency
''' for item in processed: html += f'''

📷 ORIGINAL

Original
Source file

🟢 GREEN SCREEN

Green
#00FF00 background

✅ ALPHA (Checker)

Alpha
Transparent

🌿 IN GAME

Game
On grass
''' html += ''' ''' html_path = os.path.join(OUTPUT_DIR, "green_screen_test.html") with open(html_path, 'w') as f: f.write(html) print("\n" + "=" * 50) print(f"✅ DONE! Open: {html_path}") if __name__ == '__main__': main()