From 7f1f0b1dafbebb65e4e785b365583a3036b22ee3 Mon Sep 17 00:00:00 2001 From: DreamFly Date: Wed, 23 Jul 2025 22:58:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=80=E9=83=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/build_prompt.py | 18 +++++++++++++----- modules/dataset.py | 8 ++++++-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/modules/build_prompt.py b/modules/build_prompt.py index 2d839bd..b8e9fbd 100644 --- a/modules/build_prompt.py +++ b/modules/build_prompt.py @@ -38,6 +38,14 @@ def buildPromptWeight(text, weight): return f"({text}:{round(weight, 2)})" +# 构建组合提示词与权重 +def buildCombinePromptWeight(text1, text2, weight): + if weight == 1: + return f"[{text1}:{text2}]" + else: + return f"[{text1}:{text2}:{round(weight, 2)}]" + + # 构建分类数据 def buildClassifyDatas(text): return text.replace(" ", "_") + "_datas" @@ -217,8 +225,7 @@ class BuildPromptManager: lens_angle = "" else: lens_angle = "" - - nationality = "" + if nationality_1 != EMPTY_OPTION or nationality_2 != EMPTY_OPTION: if nationality_1 == RANDOM_OPTION: nationality_1 = self.nationality_prompt.choice_prompt(seed) @@ -226,11 +233,12 @@ class BuildPromptManager: nationality_2 = self.nationality_prompt.choice_prompt(seed) if nationality_1 != EMPTY_OPTION and nationality_2 != EMPTY_OPTION: - nationality = f"[{nationality_1}:{nationality_2}:{round(nationality_mix_weight, 2)}]" - # nationality = buildPromptWeight(nationality, nationality_mix_weight) + nationality = buildCombinePromptWeight(nationality_1, nationality_2, nationality_mix_weight) else: nationality = nationality_1 if nationality_1 != EMPTY_OPTION else nationality_2 nationality = buildPromptWeight(nationality, 1.05) + else: + nationality = "" if gender == RANDOM_OPTION: gender = self.gender_prompt.choice_prompt(seed) @@ -286,7 +294,7 @@ class BuildPromptManager: ordinary_face = self.portrait_prompt.get_prompt("ordinary_face") ordinary_face = buildPromptWeight(ordinary_face, ordinary_face_weight) else: - ordinary_face = '' + ordinary_face = "" if ugly_face_weight > 0: ugly_face = self.portrait_prompt.get_prompt("ugly_face") diff --git a/modules/dataset.py b/modules/dataset.py index e877736..a3e6943 100644 --- a/modules/dataset.py +++ b/modules/dataset.py @@ -28,7 +28,7 @@ class JsonlDataset(Dataset): data = json.loads(line.strip()) sample_datas.append(data) except: - print("jsonl file parse error:", path) + print("jsonl file parse error:{}, line:{}".format(path, line_num)) continue return sample_datas @@ -42,7 +42,7 @@ class JsonlDataset(Dataset): def __getitem__(self, index): sample_data = self.sample_datas[index] - text = str(sample_data["text"]) + text = str(sample_data["text"]) if "text" in sample_data else "" style = str(sample_data["style"]) if "style" in sample_data else None artist = str(sample_data["artist"]) if "artist" in sample_data else None @@ -61,6 +61,10 @@ class JsonDataset(Dataset): sample_datas = {} with open(path, 'r', encoding='utf-8') as fp: + bom = fp.read(1) + if bom != "\ufeff": + fp.seek(0) + try: sample_datas = json.load(fp) except: