# AI : Faceswap : Source : Overview
## Entrypoints
#### `faceswap.py`
```python
from lib.cli import args as cli_args
from lib.cli.args_train import TrainArgs
from lib.cli.args_extract_convert import ConvertArgs, ExtractArgs
from lib.config import generate_configs
_PARSER = argparse.ArgumentParser()
_main
generate_configs()
subparser = _PARSER.add_subparsers()
ExtractArgs( subparser, "extract" )
TrainArgs( subparser, "train" )
ConvertArgs( subparser, "convert" )
cli_args.GuiArgs( subparser, "gui" )
arguments = _PARSER.parse_args()
arguments.func( arguments )
```
#### `tools.py`
```python
_get_cli_opts():
# iterate through tools/* - keep ones that are folders with "cli.py" inside
# yield tool, _, tools.TOOL.cli.ToolArgs < FaceSwapArgs
# ex: "sort", tools.sort.cli.SortArgs
PARSER = argparse.ArgumentParser()
SUBPARSER = PARSER.add_subparsers()
for tool, helptext, cli_args in _get_cli_opts():
cli_args( SUBPARSER, tool, helptext )
ARGUMENTS = PARSER.parse_args()
ARGUMENTS.func(ARGUMENTS )
```
## Usage of Media Packages
TODO