Generate a basic image using the auto-image endpoint of weeb.sh.

        This function is a coroutine.

        Parameters:
            imgtype: str - type of the generation to create, possible types are awooo, eyes, or won.
            face: str - only used with awooo type, defines color of face
            hair: str - only used with awooo type, defines color of hair/fur

        Return Type: image data

async def generate_image(self, imgtype, face=None, hair=None):
        """Generate a basic image using the auto-image endpoint of weeb.sh.

        This function is a coroutine.

        Parameters:
            imgtype: str - type of the generation to create, possible types are awooo, eyes, or won.
            face: str - only used with awooo type, defines color of face
            hair: str - only used with awooo type, defines color of hair/fur

        Return Type: image data"""
        if not isinstance(imgtype, str):
            raise TypeError("type of 'imgtype' must be str.")
        if face and not isinstance(face, str):
            raise TypeError("type of 'face' must be str.")
        if hair and not isinstance(hair, str):
            raise TypeError("type of 'hair' must be str.")
        if (face or hair) and imgtype != 'awooo':
            raise InvalidArguments('\'face\' and \'hair\' are arguments only available on the \'awoo\' image type')
        url = f'https://api.weeb.sh/auto-image/generate?type={imgtype}' + ("&face="+face if face else "")+ ("&hair="+hair if hair else "")
        async with aiohttp.ClientSession() as session:
            async with session.get(url, headers=self.__headers) as resp:
                if resp.status == 200:
                    return await resp.read()
                else:
                    raise Exception((await resp.json())['message'])