I'd turn this into a set to remove duplicates. Malicious users could make the same layer apply multiple times.

Also, if you dive deeper into the function calls, you'll see that layers are only added if they are in a white list, which is great (again, malicious users). However, it'd be nice to not look so far in the code to verify that we are filtering results. You could do the filtering here or at least add a comment that it is happening.

```python
   layer_list = set(l.lower() for l in layer_names.split(',') if l.lower() in LayerCreator.LAYERS)
```