package com.backendsys.modules.sdk.klingai.entity;

import lombok.Data;

/**
 * 2-1【图像生成】创建任务
 * https://docs.qingque.cn/d/home/eZQAyImcbaS0fz-8ANjXvU5ed?identityId=1oEG9JKKMFv#section=h.n707myxgao04
 */
@Data
public class KLGenerationImageParams {
    private String model_name;              // 模型名称 (默认值：kling-v1) (kling-v1, kling-v1-5, kling-v2)
    private String prompt;                  // (必填) 正向文本提示词 (不能超过2500个字符)
    private String negative_prompt;         // 负向文本提示词 (不能超过2500个字符) (图生图（即image字段不为空时）场景下，不支持负向提示词)
    private String image;                   // 参考图片 (支持传入图片Base64编码或图片URL（确保可访问）)

    /*
        图片参考类型:
        - 枚举值：subject（角色特征参考）, face（人物长相参考）
        - 使用face（人物长相参考）时，上传图片需仅含1张人脸。
        - 使用kling-v1-5且image参数不为空时，当前参数必填
     */
    private String image_reference;

    private Float image_fidelity;           // 生成过程中对用户上传图片的参考强度 (取值范围：[0,1]，数值越大参考强度越大) (仅 kling-v1, kling-v1-5 支持当前参数)
    private Float human_fidelity;           // 面部参考强度，即参考图中人物五官相似度 (取值范围：[0,1]，数值越大参考强度越大) (仅 image_reference 参数为subject时生效)
    private String resolution;              // 生成图片的清晰度 (枚举值：1k, 2k)
    private Integer n;                      // 生成图片数量，取值范围：[1,9]
    private String aspect_ratio;            // 生成图片的画面纵横比 (宽:高) (枚举值：16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3, 21:9)
    private String callback_url;            // 本次任务结果回调通知地址，如果配置，服务端会在任务状态发生变更时主动通知 (具体通知的消息 schema 见 “Callback协议”)
}
