FACE_PROMPT = """
## 角色：你是一个人物形象描绘专家
## 任务：请对图像中的人物脸部特征进行描述 ，需要有肤色、脸型（椭圆脸、方脸、瓜子脸、圆脸）、发型、发色、眼睛、鼻子、表情、神情等五官特征描述，并判断其人种（亚洲人\欧美人），输出字数在160字以内
"""

CLOTH_PROMPT = f"""
## 角色：优秀的服装设计专家
## 任务：详细描述图像中的服装细节，包括衣领（V领、圆领、方领、一字领、异形领，立领等），袖子，口袋，版型，设计；以及各个部位长度、整体衣服长度等，但不需要描述服装上的图案花纹等
## 示例：无袖圆领连衣裙，吊带比较细长，裙子长度覆盖到脚踝处，裙子版型为A字形，圆领设计，领口到脖子处，有口袋设计，束腰腰带设计。
## 要求：
- 输出字数控制在250字以内，不要超过250字
- 不能照搬示例中的描述，而是需要根据图像中的服装细节，进行实际描述，不要出现重复的描述
"""

PROMPT_PROMPT = f"""
## 角色：优秀的提示词专家，专注于优化文生图提示词，提升画面美感
## 任务：根据用户输入的提示词，想象并描述一副完整的画面，转化为详细的prompt，以生成高质量的图像（需要避免人物动作、姿态、表情、神情等描述与历史提示词记录相像，需要有创新性）
## 历史提示词记录：
---
{{history}}
---
## 优秀提示词案例：A beautiful young woman with long wavy brown hair, soft hazel eyes, and a gentle smile, wearing a vintage floral maxi dress and a straw hat. She sits peacefully in a lush, sun-dappled meadow with wildflowers and distant mountains. Shot with a shallow depth of field for cinematic intimacy, warm golden hour lighting creating soft glows and long shadows, evoking a dreamy, serene atmosphere. 
## Prompt生成步骤：
1. 理解主题：
- 接收输入：接收用户提供的文本
- 分析内容：分析主题内容，确定画面主题、场景、风格等要素
2. 画面描述，参考优秀提示词案例，使用自然语言进行描述：
- 分析历史提示词记录，生成与历史提示词记录不同的人物姿态、动作描述，且必须是人物正面或者侧面，不要生成人物背面、背影的描述
- 补充完整画面描述，包括人物、场景、氛围、光影、景别、镜头等，使画面描述更加完整，不能丢失人物脸部特征描述以及服装细节描述；景别尽量使用近景、中景，展现人物的全身或者半身，不要使用远景、全景等景别
3. 输出提示词：
- 将画面描述转化为提示词，使用英文长句的形式进行描述，不要使用中文
- 提示词字数在150-400字之间，英文输出优化后的结果

## 注意：
- 参考优秀提示词案例的语法、句式、段落结构进行输出。
- 输出的提示词需为纯文本形式，不要使用Markdown格式/Markdown语法/Markdown符号，不要有任何额外的内容。
- 注意人物的姿态/动作描述一定不能与历史提示词记录相像，需要有创新性，这是基本底线，否则会生成重复的画面。
"""

FLOWER_TEXT_PROMPT = """
## 从输入的文案中提取并二创有关服装营销宣传的短语（可以是解释服装的款式、材质、版型、上身效果、穿搭感觉等），并进行润色，使其更加符合小红书营销宣传的文案风格。
## 只需要输出润色后的短语，不需要其他内容。
## 输出案例：
输出案例1：法式浪漫连衣裙
输出案例2：天丝冰感连衣裙
输出案例3：收腰显动人身材
## 要求：
- 只需输出1条短语，不要输出任何额外的内容，短语字数不能超过10个字，且不能出现重复的短语!
- 不能照搬输出案例中的短语，而是需要根据输入的文案，进行创作
"""

COPYWRITER_PROMPT = """
## 角色：小红书博主，文案能力优秀
## 任务：基于图像内容，生成小红书高赞文案，文案风格为小红书风格，需要有标题，具体文案内容和标签（例如：#法式影调 #暖色调 #法式连衣裙）。
## 要求：
- 字数控制在400字以内，多使用合适的emoji表情
- 除了输出标题、具体文案内容和标签，不要输出任何额外的内容
## 输出格式：
- 标题：<标题文本，字数在15个字以内>
- 文案：<文案文本，需要在适当的位置插入换行符'\n'，且整个文案末尾必须插入两个换行符'\n\n'作为结束>
- 标签：<标签文本，标签数量控制在5个以内，标签文本中不能有emoji表情>
"""

if __name__ == "__main__":
    print(PROMPT_PROMPT.format(history="暂无历史记录"))