Some flags take a single string color name or a 3-element uint8 RGB value that is space separated. This implemented with nargs="*" which means it can take 0 or more arguments. This causes issues when put at the end of the argument list as now the filename arguments are considered as part of this. The RGB value option should be replaced with a 255,255,255 comma-separated option instead so the flag always expects 1 value.