# -*- coding: utf8 -*-
# Copyright (c) 2017-2021 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import warnings
from tencentcloud.common.abstract_model import AbstractModel
class DescribeMaterialListRequest(AbstractModel):
"""DescribeMaterialList请求参数结构体
"""
def __init__(self):
r"""
:param _ActivityId: 活动Id
:type ActivityId: int
:param _MaterialId: 素材Id
:type MaterialId: str
:param _Limit: 每次拉取条数
:type Limit: int
:param _Offset: 偏移量
:type Offset: int
"""
self._ActivityId = None
self._MaterialId = None
self._Limit = None
self._Offset = None
@property
def ActivityId(self):
"""活动Id
:rtype: int
"""
return self._ActivityId
@ActivityId.setter
def ActivityId(self, ActivityId):
self._ActivityId = ActivityId
@property
def MaterialId(self):
"""素材Id
:rtype: str
"""
return self._MaterialId
@MaterialId.setter
def MaterialId(self, MaterialId):
self._MaterialId = MaterialId
@property
def Limit(self):
"""每次拉取条数
:rtype: int
"""
return self._Limit
@Limit.setter
def Limit(self, Limit):
self._Limit = Limit
@property
def Offset(self):
"""偏移量
:rtype: int
"""
return self._Offset
@Offset.setter
def Offset(self, Offset):
self._Offset = Offset
def _deserialize(self, params):
self._ActivityId = params.get("ActivityId")
self._MaterialId = params.get("MaterialId")
self._Limit = params.get("Limit")
self._Offset = params.get("Offset")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DescribeMaterialListResponse(AbstractModel):
"""DescribeMaterialList返回参数结构体
"""
def __init__(self):
r"""
:param _MaterialInfos: 素材列表数据
:type MaterialInfos: list of PublicMaterialInfos
:param _Count: 素材条数
:type Count: int
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._MaterialInfos = None
self._Count = None
self._RequestId = None
@property
def MaterialInfos(self):
"""素材列表数据
:rtype: list of PublicMaterialInfos
"""
return self._MaterialInfos
@MaterialInfos.setter
def MaterialInfos(self, MaterialInfos):
self._MaterialInfos = MaterialInfos
@property
def Count(self):
"""素材条数
:rtype: int
"""
return self._Count
@Count.setter
def Count(self, Count):
self._Count = Count
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
if params.get("MaterialInfos") is not None:
self._MaterialInfos = []
for item in params.get("MaterialInfos"):
obj = PublicMaterialInfos()
obj._deserialize(item)
self._MaterialInfos.append(obj)
self._Count = params.get("Count")
self._RequestId = params.get("RequestId")
class FaceFusionRequest(AbstractModel):
"""FaceFusion请求参数结构体
"""
def __init__(self):
r"""
:param _ProjectId: 活动 ID,请在人脸融合控制台查看。
:type ProjectId: str
:param _ModelId: 素材 ID,请在人脸融合控制台查看。
:type ModelId: str
:param _RspImgType: 返回图像方式(url 或 base64) ,二选一。url有效期为7天。
:type RspImgType: str
:param _Image: 图片 base64 数据。请确保人脸为正脸,无旋转。若某些手机拍摄后人脸被旋转,请使用图片的 EXIF 信息对图片进行旋转处理;请勿在 base64 数据中包含头部,如“data:image/jpeg;base64,”。
:type Image: str
:param _PornDetect: 历史遗留字段,无需填写。因为融合只需提取人脸特征,不需要鉴黄。
:type PornDetect: int
:param _CelebrityIdentify: 0表示不需要不适宜内容识别,1表示需要不适宜内容识别。默认值为0。
请注意,不适宜内容识别服务开启后,您需要根据返回结果自行判断是否调整您的业务逻辑。例如提示您的用户图片非法,请更换图片。
:type CelebrityIdentify: int
:param _Url: 图片Url地址
:type Url: str
:param _FuseParam: 融合参数
:type FuseParam: :class:`tencentcloud.facefusion.v20181201.models.FuseParam`
"""
self._ProjectId = None
self._ModelId = None
self._RspImgType = None
self._Image = None
self._PornDetect = None
self._CelebrityIdentify = None
self._Url = None
self._FuseParam = None
@property
def ProjectId(self):
"""活动 ID,请在人脸融合控制台查看。
:rtype: str
"""
return self._ProjectId
@ProjectId.setter
def ProjectId(self, ProjectId):
self._ProjectId = ProjectId
@property
def ModelId(self):
"""素材 ID,请在人脸融合控制台查看。
:rtype: str
"""
return self._ModelId
@ModelId.setter
def ModelId(self, ModelId):
self._ModelId = ModelId
@property
def RspImgType(self):
"""返回图像方式(url 或 base64) ,二选一。url有效期为7天。
:rtype: str
"""
return self._RspImgType
@RspImgType.setter
def RspImgType(self, RspImgType):
self._RspImgType = RspImgType
@property
def Image(self):
"""图片 base64 数据。请确保人脸为正脸,无旋转。若某些手机拍摄后人脸被旋转,请使用图片的 EXIF 信息对图片进行旋转处理;请勿在 base64 数据中包含头部,如“data:image/jpeg;base64,”。
:rtype: str
"""
return self._Image
@Image.setter
def Image(self, Image):
self._Image = Image
@property
def PornDetect(self):
"""历史遗留字段,无需填写。因为融合只需提取人脸特征,不需要鉴黄。
:rtype: int
"""
return self._PornDetect
@PornDetect.setter
def PornDetect(self, PornDetect):
self._PornDetect = PornDetect
@property
def CelebrityIdentify(self):
"""0表示不需要不适宜内容识别,1表示需要不适宜内容识别。默认值为0。
请注意,不适宜内容识别服务开启后,您需要根据返回结果自行判断是否调整您的业务逻辑。例如提示您的用户图片非法,请更换图片。
:rtype: int
"""
return self._CelebrityIdentify
@CelebrityIdentify.setter
def CelebrityIdentify(self, CelebrityIdentify):
self._CelebrityIdentify = CelebrityIdentify
@property
def Url(self):
"""图片Url地址
:rtype: str
"""
return self._Url
@Url.setter
def Url(self, Url):
self._Url = Url
@property
def FuseParam(self):
"""融合参数
:rtype: :class:`tencentcloud.facefusion.v20181201.models.FuseParam`
"""
return self._FuseParam
@FuseParam.setter
def FuseParam(self, FuseParam):
self._FuseParam = FuseParam
def _deserialize(self, params):
self._ProjectId = params.get("ProjectId")
self._ModelId = params.get("ModelId")
self._RspImgType = params.get("RspImgType")
self._Image = params.get("Image")
self._PornDetect = params.get("PornDetect")
self._CelebrityIdentify = params.get("CelebrityIdentify")
self._Url = params.get("Url")
if params.get("FuseParam") is not None:
self._FuseParam = FuseParam()
self._FuseParam._deserialize(params.get("FuseParam"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class FaceFusionResponse(AbstractModel):
"""FaceFusion返回参数结构体
"""
def __init__(self):
r"""
:param _Image: RspImgType 为 url 时,返回结果的 url, RspImgType 为 base64 时返回 base64 数据。
:type Image: str
:param _ReviewResultSet: 不适宜内容识别结果
:type ReviewResultSet: list of FuseFaceReviewResult
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._Image = None
self._ReviewResultSet = None
self._RequestId = None
@property
def Image(self):
"""RspImgType 为 url 时,返回结果的 url, RspImgType 为 base64 时返回 base64 数据。
:rtype: str
"""
return self._Image
@Image.setter
def Image(self, Image):
self._Image = Image
@property
def ReviewResultSet(self):
"""不适宜内容识别结果
:rtype: list of FuseFaceReviewResult
"""
return self._ReviewResultSet
@ReviewResultSet.setter
def ReviewResultSet(self, ReviewResultSet):
self._ReviewResultSet = ReviewResultSet
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._Image = params.get("Image")
if params.get("ReviewResultSet") is not None:
self._ReviewResultSet = []
for item in params.get("ReviewResultSet"):
obj = FuseFaceReviewResult()
obj._deserialize(item)
self._ReviewResultSet.append(obj)
self._RequestId = params.get("RequestId")
class FaceInfo(AbstractModel):
"""人脸信息
"""
def __init__(self):
r"""
:param _X: 人脸框的横坐标
:type X: int
:param _Y: 人脸框的纵坐标
:type Y: int
:param _Width: 人脸框的宽度
:type Width: int
:param _Height: 人脸框的高度
:type Height: int
"""
self._X = None
self._Y = None
self._Width = None
self._Height = None
@property
def X(self):
"""人脸框的横坐标
:rtype: int
"""
return self._X
@X.setter
def X(self, X):
self._X = X
@property
def Y(self):
"""人脸框的纵坐标
:rtype: int
"""
return self._Y
@Y.setter
def Y(self, Y):
self._Y = Y
@property
def Width(self):
"""人脸框的宽度
:rtype: int
"""
return self._Width
@Width.setter
def Width(self, Width):
self._Width = Width
@property
def Height(self):
"""人脸框的高度
:rtype: int
"""
return self._Height
@Height.setter
def Height(self, Height):
self._Height = Height
def _deserialize(self, params):
self._X = params.get("X")
self._Y = params.get("Y")
self._Width = params.get("Width")
self._Height = params.get("Height")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class FaceRect(AbstractModel):
"""人脸框信息
"""
def __init__(self):
r"""
:param _X: 人脸框左上角横坐标。
:type X: int
:param _Y: 人脸框左上角纵坐标。
:type Y: int
:param _Width: 人脸框宽度。
:type Width: int
:param _Height: 人脸框高度。
:type Height: int
"""
self._X = None
self._Y = None
self._Width = None
self._Height = None
@property
def X(self):
"""人脸框左上角横坐标。
:rtype: int
"""
return self._X
@X.setter
def X(self, X):
self._X = X
@property
def Y(self):
"""人脸框左上角纵坐标。
:rtype: int
"""
return self._Y
@Y.setter
def Y(self, Y):
self._Y = Y
@property
def Width(self):
"""人脸框宽度。
:rtype: int
"""
return self._Width
@Width.setter
def Width(self, Width):
self._Width = Width
@property
def Height(self):
"""人脸框高度。
:rtype: int
"""
return self._Height
@Height.setter
def Height(self, Height):
self._Height = Height
def _deserialize(self, params):
self._X = params.get("X")
self._Y = params.get("Y")
self._Width = params.get("Width")
self._Height = params.get("Height")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class FuseFaceRequest(AbstractModel):
"""FuseFace请求参数结构体
"""
def __init__(self):
r"""
:param _ProjectId: 活动 ID,请在人脸融合控制台查看。
:type ProjectId: str
:param _ModelId: 素材 ID,请在人脸融合控制台查看。
:type ModelId: str
:param _RspImgType: 返回图像方式(url 或 base64) ,二选一。url有效期为7天。
:type RspImgType: str
:param _MergeInfos: 用户人脸图片、素材模板图的人脸位置信息。
:type MergeInfos: list of MergeInfo
:param _FuseProfileDegree: 脸型融合比例,数值越高,融合后的脸型越像素材人物。取值范围[0,100]
若此参数不填写,则使用人脸融合控制台中脸型参数数值。(换脸版算法暂不支持此参数调整)
:type FuseProfileDegree: int
:param _FuseFaceDegree: 五官融合比例,数值越高,融合后的五官越像素材人物。取值范围[0,100]
若此参数不填写,则使用人脸融合控制台中五官参数数值。(换脸版算法暂不支持此参数调整)
:type FuseFaceDegree: int
:param _CelebrityIdentify: 0表示不需要不适宜内容识别,1表示需要不适宜内容识别。默认值为0。
请注意,不适宜内容识别服务开启后,您需要根据返回结果自行判断是否调整您的业务逻辑。例如提示您的用户图片非法,请更换图片。
:type CelebrityIdentify: int
:param _FuseParam: 融合参数
:type FuseParam: :class:`tencentcloud.facefusion.v20181201.models.FuseParam`
"""
self._ProjectId = None
self._ModelId = None
self._RspImgType = None
self._MergeInfos = None
self._FuseProfileDegree = None
self._FuseFaceDegree = None
self._CelebrityIdentify = None
self._FuseParam = None
@property
def ProjectId(self):
"""活动 ID,请在人脸融合控制台查看。
:rtype: str
"""
return self._ProjectId
@ProjectId.setter
def ProjectId(self, ProjectId):
self._ProjectId = ProjectId
@property
def ModelId(self):
"""素材 ID,请在人脸融合控制台查看。
:rtype: str
"""
return self._ModelId
@ModelId.setter
def ModelId(self, ModelId):
self._ModelId = ModelId
@property
def RspImgType(self):
"""返回图像方式(url 或 base64) ,二选一。url有效期为7天。
:rtype: str
"""
return self._RspImgType
@RspImgType.setter
def RspImgType(self, RspImgType):
self._RspImgType = RspImgType
@property
def MergeInfos(self):
"""用户人脸图片、素材模板图的人脸位置信息。
:rtype: list of MergeInfo
"""
return self._MergeInfos
@MergeInfos.setter
def MergeInfos(self, MergeInfos):
self._MergeInfos = MergeInfos
@property
def FuseProfileDegree(self):
"""脸型融合比例,数值越高,融合后的脸型越像素材人物。取值范围[0,100]
若此参数不填写,则使用人脸融合控制台中脸型参数数值。(换脸版算法暂不支持此参数调整)
:rtype: int
"""
return self._FuseProfileDegree
@FuseProfileDegree.setter
def FuseProfileDegree(self, FuseProfileDegree):
self._FuseProfileDegree = FuseProfileDegree
@property
def FuseFaceDegree(self):
"""五官融合比例,数值越高,融合后的五官越像素材人物。取值范围[0,100]
若此参数不填写,则使用人脸融合控制台中五官参数数值。(换脸版算法暂不支持此参数调整)
:rtype: int
"""
return self._FuseFaceDegree
@FuseFaceDegree.setter
def FuseFaceDegree(self, FuseFaceDegree):
self._FuseFaceDegree = FuseFaceDegree
@property
def CelebrityIdentify(self):
"""0表示不需要不适宜内容识别,1表示需要不适宜内容识别。默认值为0。
请注意,不适宜内容识别服务开启后,您需要根据返回结果自行判断是否调整您的业务逻辑。例如提示您的用户图片非法,请更换图片。
:rtype: int
"""
return self._CelebrityIdentify
@CelebrityIdentify.setter
def CelebrityIdentify(self, CelebrityIdentify):
self._CelebrityIdentify = CelebrityIdentify
@property
def FuseParam(self):
"""融合参数
:rtype: :class:`tencentcloud.facefusion.v20181201.models.FuseParam`
"""
return self._FuseParam
@FuseParam.setter
def FuseParam(self, FuseParam):
self._FuseParam = FuseParam
def _deserialize(self, params):
self._ProjectId = params.get("ProjectId")
self._ModelId = params.get("ModelId")
self._RspImgType = params.get("RspImgType")
if params.get("MergeInfos") is not None:
self._MergeInfos = []
for item in params.get("MergeInfos"):
obj = MergeInfo()
obj._deserialize(item)
self._MergeInfos.append(obj)
self._FuseProfileDegree = params.get("FuseProfileDegree")
self._FuseFaceDegree = params.get("FuseFaceDegree")
self._CelebrityIdentify = params.get("CelebrityIdentify")
if params.get("FuseParam") is not None:
self._FuseParam = FuseParam()
self._FuseParam._deserialize(params.get("FuseParam"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class FuseFaceResponse(AbstractModel):
"""FuseFace返回参数结构体
"""
def __init__(self):
r"""
:param _FusedImage: RspImgType 为 url 时,返回结果的 url, RspImgType 为 base64 时返回 base64 数据。
:type FusedImage: str
:param _ReviewResultSet: 不适宜内容识别结果。该数组的顺序和请求中mergeinfo的顺序一致,一一对应
注意:此字段可能返回 null,表示取不到有效值。
:type ReviewResultSet: list of FuseFaceReviewResult
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._FusedImage = None
self._ReviewResultSet = None
self._RequestId = None
@property
def FusedImage(self):
"""RspImgType 为 url 时,返回结果的 url, RspImgType 为 base64 时返回 base64 数据。
:rtype: str
"""
return self._FusedImage
@FusedImage.setter
def FusedImage(self, FusedImage):
self._FusedImage = FusedImage
@property
def ReviewResultSet(self):
"""不适宜内容识别结果。该数组的顺序和请求中mergeinfo的顺序一致,一一对应
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of FuseFaceReviewResult
"""
return self._ReviewResultSet
@ReviewResultSet.setter
def ReviewResultSet(self, ReviewResultSet):
self._ReviewResultSet = ReviewResultSet
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._FusedImage = params.get("FusedImage")
if params.get("ReviewResultSet") is not None:
self._ReviewResultSet = []
for item in params.get("ReviewResultSet"):
obj = FuseFaceReviewResult()
obj._deserialize(item)
self._ReviewResultSet.append(obj)
self._RequestId = params.get("RequestId")
class FuseFaceReviewDetail(AbstractModel):
"""人脸融合不适宜内容识别人脸信息
"""
def __init__(self):
r"""
:param _Field: 保留字段
:type Field: str
:param _Label: 人员名称
:type Label: str
:param _Confidence: 对应识别label的置信度,分数越高意味违法违规可能性越大。
0到70,Suggestion建议为PASS;
70到80,Suggestion建议为REVIEW;
80到100,Suggestion建议为BLOCK。
:type Confidence: float
:param _Suggestion: 识别场景的审核结论:
PASS:正常
REVIEW:疑似
BLOCK:违规
:type Suggestion: str
"""
self._Field = None
self._Label = None
self._Confidence = None
self._Suggestion = None
@property
def Field(self):
"""保留字段
:rtype: str
"""
return self._Field
@Field.setter
def Field(self, Field):
self._Field = Field
@property
def Label(self):
"""人员名称
:rtype: str
"""
return self._Label
@Label.setter
def Label(self, Label):
self._Label = Label
@property
def Confidence(self):
"""对应识别label的置信度,分数越高意味违法违规可能性越大。
0到70,Suggestion建议为PASS;
70到80,Suggestion建议为REVIEW;
80到100,Suggestion建议为BLOCK。
:rtype: float
"""
return self._Confidence
@Confidence.setter
def Confidence(self, Confidence):
self._Confidence = Confidence
@property
def Suggestion(self):
"""识别场景的审核结论:
PASS:正常
REVIEW:疑似
BLOCK:违规
:rtype: str
"""
return self._Suggestion
@Suggestion.setter
def Suggestion(self, Suggestion):
self._Suggestion = Suggestion
def _deserialize(self, params):
self._Field = params.get("Field")
self._Label = params.get("Label")
self._Confidence = params.get("Confidence")
self._Suggestion = params.get("Suggestion")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class FuseFaceReviewResult(AbstractModel):
"""人脸融合不适宜内容识别返回参数item
"""
def __init__(self):
r"""
:param _Category: 保留字段
:type Category: str
:param _Code: 状态码, 0为处理成功,其他值为处理失败
:type Code: str
:param _CodeDescription: 对应状态码信息描述
:type CodeDescription: str
:param _Confidence: 保留字段
:type Confidence: float
:param _Suggestion: 保留字段
:type Suggestion: str
:param _DetailSet: 审核详细内容
:type DetailSet: list of FuseFaceReviewDetail
"""
self._Category = None
self._Code = None
self._CodeDescription = None
self._Confidence = None
self._Suggestion = None
self._DetailSet = None
@property
def Category(self):
"""保留字段
:rtype: str
"""
return self._Category
@Category.setter
def Category(self, Category):
self._Category = Category
@property
def Code(self):
"""状态码, 0为处理成功,其他值为处理失败
:rtype: str
"""
return self._Code
@Code.setter
def Code(self, Code):
self._Code = Code
@property
def CodeDescription(self):
"""对应状态码信息描述
:rtype: str
"""
return self._CodeDescription
@CodeDescription.setter
def CodeDescription(self, CodeDescription):
self._CodeDescription = CodeDescription
@property
def Confidence(self):
"""保留字段
:rtype: float
"""
return self._Confidence
@Confidence.setter
def Confidence(self, Confidence):
self._Confidence = Confidence
@property
def Suggestion(self):
"""保留字段
:rtype: str
"""
return self._Suggestion
@Suggestion.setter
def Suggestion(self, Suggestion):
self._Suggestion = Suggestion
@property
def DetailSet(self):
"""审核详细内容
:rtype: list of FuseFaceReviewDetail
"""
return self._DetailSet
@DetailSet.setter
def DetailSet(self, DetailSet):
self._DetailSet = DetailSet
def _deserialize(self, params):
self._Category = params.get("Category")
self._Code = params.get("Code")
self._CodeDescription = params.get("CodeDescription")
self._Confidence = params.get("Confidence")
self._Suggestion = params.get("Suggestion")
if params.get("DetailSet") is not None:
self._DetailSet = []
for item in params.get("DetailSet"):
obj = FuseFaceReviewDetail()
obj._deserialize(item)
self._DetailSet.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class FuseParam(AbstractModel):
"""融合参数
"""
def __init__(self):
r"""
:param _ImageCodecParam: 图片编码参数
:type ImageCodecParam: :class:`tencentcloud.facefusion.v20181201.models.ImageCodecParam`
"""
self._ImageCodecParam = None
@property
def ImageCodecParam(self):
"""图片编码参数
:rtype: :class:`tencentcloud.facefusion.v20181201.models.ImageCodecParam`
"""
return self._ImageCodecParam
@ImageCodecParam.setter
def ImageCodecParam(self, ImageCodecParam):
self._ImageCodecParam = ImageCodecParam
def _deserialize(self, params):
if params.get("ImageCodecParam") is not None:
self._ImageCodecParam = ImageCodecParam()
self._ImageCodecParam._deserialize(params.get("ImageCodecParam"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ImageCodecParam(AbstractModel):
"""图片编码参数
"""
def __init__(self):
r"""
:param _MetaData: 元数据
:type MetaData: list of MetaData
"""
self._MetaData = None
@property
def MetaData(self):
"""元数据
:rtype: list of MetaData
"""
return self._MetaData
@MetaData.setter
def MetaData(self, MetaData):
self._MetaData = MetaData
def _deserialize(self, params):
if params.get("MetaData") is not None:
self._MetaData = []
for item in params.get("MetaData"):
obj = MetaData()
obj._deserialize(item)
self._MetaData.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class MaterialFaceList(AbstractModel):
"""人脸信息
"""
def __init__(self):
r"""
:param _FaceId: 人脸序号
:type FaceId: str
:param _FaceInfo: 人脸框信息
:type FaceInfo: :class:`tencentcloud.facefusion.v20181201.models.FaceInfo`
"""
self._FaceId = None
self._FaceInfo = None
@property
def FaceId(self):
"""人脸序号
:rtype: str
"""
return self._FaceId
@FaceId.setter
def FaceId(self, FaceId):
self._FaceId = FaceId
@property
def FaceInfo(self):
"""人脸框信息
:rtype: :class:`tencentcloud.facefusion.v20181201.models.FaceInfo`
"""
return self._FaceInfo
@FaceInfo.setter
def FaceInfo(self, FaceInfo):
self._FaceInfo = FaceInfo
def _deserialize(self, params):
self._FaceId = params.get("FaceId")
if params.get("FaceInfo") is not None:
self._FaceInfo = FaceInfo()
self._FaceInfo._deserialize(params.get("FaceInfo"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class MergeInfo(AbstractModel):
"""人脸图片和待被融合的素材模板图的人脸位置信息。
"""
def __init__(self):
r"""
:param _Image: 输入图片base64。
●base64 和 url 必须提供一个,如果都提供以 url 为准。
●素材图片限制:图片中面部尺寸大于34 * 34;图片尺寸大于64 * 64。(图片编码之后可能会大30%左右,建议合理控制图片大小)。
●支持图片格式:支持jpg或png。
:type Image: str
:param _Url: 输入图片url。
●base64 和 url 必须提供一个,如果都提供以 url 为准。
●素材图片限制:图片中面部尺寸大于34 * 34;图片尺寸大于64 * 64。(图片编码之后可能会大30%左右,建议合理控制图片大小)。
●支持图片格式:支持jpg或png。
:type Url: str
:param _InputImageFaceRect: 输入图片人脸位置信息(人脸框)。不填默认取输入图中最大人脸。
Width、Height >= 30。
:type InputImageFaceRect: :class:`tencentcloud.facefusion.v20181201.models.FaceRect`
:param _TemplateFaceID: 素材人脸ID,不填默认取素材中最大人脸。
:type TemplateFaceID: str
"""
self._Image = None
self._Url = None
self._InputImageFaceRect = None
self._TemplateFaceID = None
@property
def Image(self):
"""输入图片base64。
●base64 和 url 必须提供一个,如果都提供以 url 为准。
●素材图片限制:图片中面部尺寸大于34 * 34;图片尺寸大于64 * 64。(图片编码之后可能会大30%左右,建议合理控制图片大小)。
●支持图片格式:支持jpg或png。
:rtype: str
"""
return self._Image
@Image.setter
def Image(self, Image):
self._Image = Image
@property
def Url(self):
"""输入图片url。
●base64 和 url 必须提供一个,如果都提供以 url 为准。
●素材图片限制:图片中面部尺寸大于34 * 34;图片尺寸大于64 * 64。(图片编码之后可能会大30%左右,建议合理控制图片大小)。
●支持图片格式:支持jpg或png。
:rtype: str
"""
return self._Url
@Url.setter
def Url(self, Url):
self._Url = Url
@property
def InputImageFaceRect(self):
"""输入图片人脸位置信息(人脸框)。不填默认取输入图中最大人脸。
Width、Height >= 30。
:rtype: :class:`tencentcloud.facefusion.v20181201.models.FaceRect`
"""
return self._InputImageFaceRect
@InputImageFaceRect.setter
def InputImageFaceRect(self, InputImageFaceRect):
self._InputImageFaceRect = InputImageFaceRect
@property
def TemplateFaceID(self):
"""素材人脸ID,不填默认取素材中最大人脸。
:rtype: str
"""
return self._TemplateFaceID
@TemplateFaceID.setter
def TemplateFaceID(self, TemplateFaceID):
self._TemplateFaceID = TemplateFaceID
def _deserialize(self, params):
self._Image = params.get("Image")
self._Url = params.get("Url")
if params.get("InputImageFaceRect") is not None:
self._InputImageFaceRect = FaceRect()
self._InputImageFaceRect._deserialize(params.get("InputImageFaceRect"))
self._TemplateFaceID = params.get("TemplateFaceID")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class MetaData(AbstractModel):
"""MetaData数据结构,Key/Value格式
"""
def __init__(self):
r"""
:param _MetaKey: MetaData的Key,长度不能超过32。
:type MetaKey: str
:param _MetaValue: MetaData的Value,长度不能超过256。
:type MetaValue: str
"""
self._MetaKey = None
self._MetaValue = None
@property
def MetaKey(self):
"""MetaData的Key,长度不能超过32。
:rtype: str
"""
return self._MetaKey
@MetaKey.setter
def MetaKey(self, MetaKey):
self._MetaKey = MetaKey
@property
def MetaValue(self):
"""MetaData的Value,长度不能超过256。
:rtype: str
"""
return self._MetaValue
@MetaValue.setter
def MetaValue(self, MetaValue):
self._MetaValue = MetaValue
def _deserialize(self, params):
self._MetaKey = params.get("MetaKey")
self._MetaValue = params.get("MetaValue")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class PublicMaterialInfos(AbstractModel):
"""素材信息
"""
def __init__(self):
r"""
:param _MaterialId: 素材Id
:type MaterialId: str
:param _MaterialStatus: 素材状态
:type MaterialStatus: int
:param _BlendParamPtu: 脸型参数P图
:type BlendParamPtu: int
:param _PositionParamPtu: 五官参数P图
:type PositionParamPtu: int
:param _BlendParamYoutu: 脸型参数优图
:type BlendParamYoutu: int
:param _PositionParamYoutu: 五官参数优图
:type PositionParamYoutu: int
:param _Url: 素材COS地址
:type Url: str
:param _CreateTime: 创建时间
:type CreateTime: str
:param _UpdateTime: 修改时间
:type UpdateTime: str
:param _MaterialFaceList: 人脸信息
:type MaterialFaceList: list of MaterialFaceList
"""
self._MaterialId = None
self._MaterialStatus = None
self._BlendParamPtu = None
self._PositionParamPtu = None
self._BlendParamYoutu = None
self._PositionParamYoutu = None
self._Url = None
self._CreateTime = None
self._UpdateTime = None
self._MaterialFaceList = None
@property
def MaterialId(self):
"""素材Id
:rtype: str
"""
return self._MaterialId
@MaterialId.setter
def MaterialId(self, MaterialId):
self._MaterialId = MaterialId
@property
def MaterialStatus(self):
"""素材状态
:rtype: int
"""
return self._MaterialStatus
@MaterialStatus.setter
def MaterialStatus(self, MaterialStatus):
self._MaterialStatus = MaterialStatus
@property
def BlendParamPtu(self):
"""脸型参数P图
:rtype: int
"""
return self._BlendParamPtu
@BlendParamPtu.setter
def BlendParamPtu(self, BlendParamPtu):
self._BlendParamPtu = BlendParamPtu
@property
def PositionParamPtu(self):
"""五官参数P图
:rtype: int
"""
return self._PositionParamPtu
@PositionParamPtu.setter
def PositionParamPtu(self, PositionParamPtu):
self._PositionParamPtu = PositionParamPtu
@property
def BlendParamYoutu(self):
"""脸型参数优图
:rtype: int
"""
return self._BlendParamYoutu
@BlendParamYoutu.setter
def BlendParamYoutu(self, BlendParamYoutu):
self._BlendParamYoutu = BlendParamYoutu
@property
def PositionParamYoutu(self):
"""五官参数优图
:rtype: int
"""
return self._PositionParamYoutu
@PositionParamYoutu.setter
def PositionParamYoutu(self, PositionParamYoutu):
self._PositionParamYoutu = PositionParamYoutu
@property
def Url(self):
"""素材COS地址
:rtype: str
"""
return self._Url
@Url.setter
def Url(self, Url):
self._Url = Url
@property
def CreateTime(self):
"""创建时间
:rtype: str
"""
return self._CreateTime
@CreateTime.setter
def CreateTime(self, CreateTime):
self._CreateTime = CreateTime
@property
def UpdateTime(self):
"""修改时间
:rtype: str
"""
return self._UpdateTime
@UpdateTime.setter
def UpdateTime(self, UpdateTime):
self._UpdateTime = UpdateTime
@property
def MaterialFaceList(self):
"""人脸信息
:rtype: list of MaterialFaceList
"""
return self._MaterialFaceList
@MaterialFaceList.setter
def MaterialFaceList(self, MaterialFaceList):
self._MaterialFaceList = MaterialFaceList
def _deserialize(self, params):
self._MaterialId = params.get("MaterialId")
self._MaterialStatus = params.get("MaterialStatus")
self._BlendParamPtu = params.get("BlendParamPtu")
self._PositionParamPtu = params.get("PositionParamPtu")
self._BlendParamYoutu = params.get("BlendParamYoutu")
self._PositionParamYoutu = params.get("PositionParamYoutu")
self._Url = params.get("Url")
self._CreateTime = params.get("CreateTime")
self._UpdateTime = params.get("UpdateTime")
if params.get("MaterialFaceList") is not None:
self._MaterialFaceList = []
for item in params.get("MaterialFaceList"):
obj = MaterialFaceList()
obj._deserialize(item)
self._MaterialFaceList.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))