comfy_fm24_newgens/readme.md

289 lines
11 KiB
Markdown
Raw Permalink Normal View History

2024-12-16 17:13:22 +00:00
2025-09-23 13:59:06 +01:00
# Standalone FM NewGens
2024-12-16 17:13:22 +00:00
2025-09-23 13:59:06 +01:00
Generate NewGen images for Football Manager using local Stable Diffusion
**🖥️ GUI Available!** - Now includes a user-friendly graphical interface
2024-12-16 17:13:22 +00:00
2024-12-15 17:15:04 +00:00
# Intro
2024-12-16 17:13:22 +00:00
![enter image description here](https://raw.githubusercontent.com/karl0ss/comfy_fm24_newgens/refs/heads/main/photo-collage.png)
- "There are 10000s of faces out there already"
- "There are tools that work the same already?"
- "Have you got nothing better to do with your time?"
2024-12-15 17:14:11 +00:00
[Example video here](https://www.youtube.com/watch?v=mcGj3_nbV0A)
2024-10-11 15:35:48 +01:00
2024-12-16 17:13:22 +00:00
2025-09-23 13:59:06 +01:00
These are some of the questions I think you are going to ask me, but I present to you something I have been working on, **Standalone FM NewGens**
2024-12-16 17:13:22 +00:00
2024-12-15 17:14:11 +00:00
# The Idea
2025-09-23 13:59:06 +01:00
Taking inspiration from [fm-ai-face-generator](https://github.com/emilmirzayev/fm-ai-face-generator) and [NewGAN-Manager](https://github.com/franl08/NewGAN-Manager), this tool generates unique face images for Football Manager NewGens using local Stable Diffusion instead of requiring a separate ComfyUI server.
2024-12-16 17:13:22 +00:00
2025-09-23 13:59:06 +01:00
Thanks to both original projects for the inspiration!
So what does this do? Why would you want to use it? (you probably won't but personally, I like a bit more personalization from my NewGens, some I get quite attached to :) )
2024-12-16 17:13:22 +00:00
2025-09-23 13:59:06 +01:00
- This will create images for your NewGens, based off of information provided from the FM database, making a player's image more unique to that player
- Generate images locally using Stable Diffusion (no external server required)
- Download the images to the specified output directory, all processed players images will be saved as their **uid** from the game
- Remove all the background from the generated faces
- Create the needed config file for FM to load the faces
- You can then rename the generated folder and place it in your **graphics** folder as you would normally and voila!
2024-12-16 17:13:22 +00:00
2024-12-15 17:14:11 +00:00
2025-09-23 13:59:06 +01:00
# Install Guide
2024-12-15 17:14:11 +00:00
2024-12-16 17:13:22 +00:00
2025-09-23 13:59:06 +01:00
Things you will need that I will not be going over on how to setup.
- Python 3.8+ installed
- Git installed
- At least 4GB of RAM (8GB+ recommended for better performance)
- CUDA-compatible GPU (optional, but highly recommended for faster generation)
## Setup Instructions
- Use Git to checkout this repo
- You need to get a `rtf` file of the players you want to add images for, to do this you need the view and filter supplied with the project
- Copy the `filters` and `views` folder over to your `Football Manager 2024` data folder in `Documents`, this may create these folders, or may just add the contained files into your existing folders
- You can use `python INSTALL_VIEW_AND_FILTER.py` to do this automatically
- Included is the original `is newgen` filter created by the NewGAN-Manager team and a new view created by myself to get the needed data
- If you follow [this video](https://youtu.be/pmdIkhfmY6w?t=564) it will show you how to export the `rtf` file, you want to use our view, not the view in the video
- Once you have your `rtf` file add it to the root of the current repo
- Create a python virtual environment `python -m venv venv`
- Activate the venv `.\venv\Scripts\activate` (Windows) or `source venv/bin/activate` (Linux/Mac)
- Install the requirements `pip install -r requirements.txt`
- Copy the `user_config.cfg.sample` to `user_config.cfg` and make the needed changes
- football_manager_version - Version of FM to generate for. Defaults to `2024`
- output_dir - Where to save the generated set. Defaults to `./generated_images/`
- rtf_file - Path to your exported RTF file with player data
- model_name - Hugging Face model to use (see Model Selection section below)
- model_dir - Custom directory to store models (optional)
## Usage Options
### **🖥️ GUI Mode (Recommended)**
For the best user experience, use the graphical interface:
```bash
2025-09-23 14:10:16 +01:00
# Test if GUI works on your system
python test_gui.py
# Launch the full GUI
2025-09-23 13:59:06 +01:00
python run_gui.py
```
2025-09-23 14:25:59 +01:00
### **🔧 Background Removal Only**
If you only need to remove backgrounds from existing images:
```bash
# Remove backgrounds from generated images
python remove_backgrounds.py ./NewGens/
# Use specific method
python remove_backgrounds.py ./NewGens/ --method rembg
# Save to different directory
python remove_backgrounds.py ./NewGens/ --output-dir ./Processed/
```
2025-09-23 13:59:06 +01:00
**GUI Features:**
- Easy configuration with file browsers
- Real-time progress monitoring
- Live image preview
- Start/stop controls
- Comprehensive logging
### **📝 Command Line Mode**
For advanced users or automation:
```bash
python comfy_fm_newgen.py
```
**Command Line Features:**
- Fast batch processing
- Resume capability
- Detailed logging
- Script automation
2024-12-15 17:14:11 +00:00
2024-12-16 17:13:22 +00:00
2025-09-23 13:59:06 +01:00
## Model Selection
2024-12-16 17:13:22 +00:00
2025-09-23 13:59:06 +01:00
The tool uses Hugging Face models for image generation. You can specify which model to use in your `user_config.cfg`:
2024-12-15 17:23:43 +00:00
2025-09-23 13:59:06 +01:00
### **Recommended Models for Face Generation:**
2024-12-15 17:23:43 +00:00
2025-09-23 13:59:06 +01:00
- `SG161222/Realistic_Vision_V6.0_B1` - **Best choice** for realistic faces (default)
- `digiplay/AbsoluteReality` - Photorealistic faces and people
- `stabilityai/stable-diffusion-2-1` - General purpose, good for faces
- `runwayml/stable-diffusion-v1-5` - Classic SD 1.5, widely supported
### **Model Storage:**
- **Default**: Models are stored in Hugging Face cache (`~/.cache/huggingface/`)
- **Custom Directory**: Set `model_dir` in config to store models in a specific folder
- **Model Size**: Most face models are 2-5GB, ensure you have sufficient disk space
- **First Run**: Model downloads automatically when you first run the tool
### **Changing Models:**
1. Edit `model_name` in your `user_config.cfg`
2. Delete the old model from your cache/directory if desired
3. Restart the tool - it will download the new model automatically
## System Requirements
- **CPU Mode**: Requires at least 8GB RAM, expect 2-5 minutes per image
- **GPU Mode**: Requires CUDA-compatible GPU with at least 4GB VRAM, expect 10-30 seconds per image
- First run will download the Stable Diffusion model (~5GB), so ensure you have sufficient disk space
## Features
### **Core Features**
- **Local Generation**: No external servers or API keys required
- **Model Selection**: Choose from various face generation models via configuration
- **Automatic Processing**: Batch process multiple players from your RTF file
- **Background Removal**: Automatically removes backgrounds from generated faces
- **XML Configuration**: Generates proper Football Manager configuration files
- **Resume Support**: Can resume from previous runs without regenerating existing images
- **Model Caching**: Downloads and caches models locally for faster subsequent runs
### **🖥️ GUI Features**
- **User-Friendly Interface**: Modern tabbed interface with intuitive controls
- **File Browsers**: Easy selection of RTF files and output directories
- **Real-Time Progress**: Live progress bars and status updates
- **Image Preview**: View generated images as they're created
- **Configuration Management**: Save and load different configurations
- **Error Handling**: Clear error messages and troubleshooting tips
- **Multi-threaded**: Non-blocking interface during generation
2025-09-23 14:25:59 +01:00
### **🔧 Background Removal Features**
- **Automatic Processing**: Backgrounds removed automatically after generation
- **Multiple Methods**: AI-powered (rembg) and simple fallback methods
- **Standalone Tool**: `remove_backgrounds.py` for manual processing
- **Flexible Options**: Works with or without GPU acceleration
- **Batch Processing**: Process entire directories of images
## Background Removal
### **Automatic Background Removal (Built-in)**
The application automatically removes backgrounds from generated images during post-processing:
**When it works:**
- ✅ Images are processed automatically after generation
- ✅ Transparent backgrounds for better FM integration
- ✅ GPU acceleration when available
**When it doesn't work:**
- ⚠️ Images keep original backgrounds
- ⚠️ May need manual processing
### **Manual Background Removal**
If automatic removal fails, use the standalone tool:
```bash
# Remove backgrounds from all images in a directory
python remove_backgrounds.py ./NewGens/
# Use specific method
python remove_backgrounds.py ./NewGens/ --method rembg
# Save to different directory
python remove_backgrounds.py ./NewGens/ --output-dir ./NewGens_Processed/
```
### **Background Removal Methods**
| Method | Quality | Speed | Requirements | Notes |
|--------|---------|-------|--------------|-------|
| **rembg** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | `rembg[gpu]` | Best quality, AI-powered |
| **Simple** | ⭐⭐ | ⭐⭐⭐⭐⭐ | Built-in | Fallback method, basic results |
### **Installing Background Removal**
**For best quality (recommended):**
```bash
pip install rembg[gpu]==2.0.59
```
**For CPU-only:**
```bash
pip install rembg==2.0.59
```
**If rembg fails:**
```bash
# The simple method works without additional dependencies
python remove_backgrounds.py ./NewGens/ --method simple
```
2025-09-23 13:59:06 +01:00
## GUI Troubleshooting
### **Common Issues:**
**GUI won't start:**
- Ensure Python 3.8+ is installed
- Install requirements: `pip install -r requirements.txt`
- Check for missing dependencies: `python -c "import tkinter"`
**Dependency installation fails:**
- Try installing packages individually: `pip install torch torchvision diffusers transformers`
- For Python 3.11+, use: `pip install rembg==2.0.59` (instead of 2.0.60)
- If `striprtf` fails, try: `pip install striprtf==0.0.28`
2025-09-23 14:10:16 +01:00
**Numba/rembg compatibility issues:**
- The application now handles missing `rembg` gracefully
- Background removal is optional - images will work without it
- Test GUI functionality: `python test_gui.py`
- If you encounter Numba compilation errors, the GUI will still work
2025-09-23 13:59:06 +01:00
**Alternative installation methods:**
- **Conda**: `conda install pytorch torchvision torchaudio cpuonly -c pytorch`
- **GPU Support**: Replace `cpuonly` with `cudatoolkit=11.8` for CUDA support
- **Individual packages**: Install problematic packages one by one to identify issues
**Model download fails:**
- Check internet connection
- Verify disk space (models are 2-5GB)
- Try a different model from the recommended list
**Images not appearing in preview:**
- Check output directory permissions
- Ensure images are being generated successfully
- Try refreshing the preview tab
**Configuration not saving:**
- Check file permissions in the project directory
- Ensure no other instances are running
- Try running as administrator
### **Performance Tips:**
- **First run** takes longer due to model download
- **Close other applications** during generation for better performance
- **Use SSD storage** for faster model loading
- **Monitor system resources** - generation is CPU/GPU intensive
## Command Line Usage
For advanced users or automation, you can still use the original command-line interface:
```bash
python comfy_fm_newgen.py
```
2024-12-16 17:13:22 +00:00
2025-09-23 13:59:06 +01:00
The GUI and command-line versions share the same configuration files and generated data.
2024-12-16 17:13:22 +00:00
2025-09-23 13:59:06 +01:00
---
2024-12-16 17:13:22 +00:00
You should get some console output of the progress, good luck!
2025-09-23 13:59:06 +01:00
Open an issue here if you're having problems
2024-12-16 17:13:22 +00:00
Thanks