Commit 42d28cb
committed
feat: Add quick testing system with low-res configs and automation script
OVERVIEW:
Created comprehensive quick testing system for validating full pipeline
without long render times. Enables rapid iteration and troubleshooting.
NEW CONFIGS:
1. config_quick_test.yaml - 360p, 24fps, medium quality (~5-10 min)
- Resolution: 640x360 (good visibility, 1/9th pixels of 1080p)
- Mode: 2D Grease Pencil (faster rendering)
- Effects: Minimal (speed focus)
- Quality: Medium (good for testing)
- Best for: General testing and validation
2. config_ultra_fast.yaml - 180p, 12fps, low quality (~2-3 min)
- Resolution: 320x180 (fastest possible)
- FPS: 12 (half normal frame rate)
- Samples: 16 (minimum quality)
- Quality: Low (grainy but fast)
- Best for: Quick verification pipeline works
NEW SCRIPT:
quick_test.py - Automated full pipeline test runner
- Checks all prerequisites before running
- Optionally auto-generates lyrics with Whisper (--auto-lyrics)
- Runs all 3 phases sequentially
- Reports timing for each phase
- Shows final output location and file size
- Graceful error handling with helpful messages
- Generous timeouts (30 min for rendering phase)
FEATURES:
- Command-line options:
--config: Use custom config (default: config_quick_test.yaml)
--auto-lyrics: Auto-generate lyrics before rendering
--no-lyrics: Skip lyrics display
--debug: Enable debug visualization markers
- Progress tracking with timing
- Colored output for success/error/warnings
- Verifies files exist before starting
- Shows last 5 lines of each command output
- Total pipeline timing report
DOCUMENTATION:
TESTING_GUIDE.md - Comprehensive testing documentation:
- Quick reference table (configs, timings, file sizes)
- Method 1: Automated testing with quick_test.py
- Method 2: Manual step-by-step
- Configuration comparison and features
- Timing breakdown for 30-second songs
- Performance optimization tips
- Testing checklist (visual, animation, audio, timing)
- Troubleshooting guide
- Complete workflow examples
- Expected file sizes by resolution
TIMING ESTIMATES (30-second song):
Ultra-Fast (320x180):
Phase 1: 10s
Phase 2: 1-2 min
Phase 3: 20s
Total: 2-3 minutes
Quick Test (640x360):
Phase 1: 10s
Phase 2: 4-8 min
Phase 3: 30s
Total: 5-10 minutes
Production (1920x1080):
Phase 1: 10s
Phase 2: 25-50 min
Phase 3: 1-2 min
Total: 30-60 minutes
SPEED OPTIMIZATIONS:
- 2D mode instead of 3D (~2x faster)
- Lower resolution (1/9th pixels = ~9x faster)
- Reduced sample counts (32 vs 128)
- Disabled effects (fog, particles, HDRI)
- EEVEE engine (much faster than CYCLES)
- Lower FPS option (12 vs 24 for ultra-fast)
USAGE EXAMPLES:
# Quickest automated test
python quick_test.py --auto-lyrics
# Ultra-fast manual test
python main.py --config config_ultra_fast.yaml
# Good quality test
python main.py --config config_quick_test.yaml
DEVELOPMENT WORKFLOW:
1. Make code/config changes
2. Run quick_test.py --auto-lyrics
3. Verify output in 5-10 minutes
4. Iterate as needed
5. Final render with production config
This dramatically improves development speed and testing efficiency,
reducing iteration time from 30-60 minutes to 5-10 minutes.1 parent 97592cf commit 42d28cb
7 files changed
Lines changed: 877 additions & 0 deletions
0 commit comments