├── README.md ├── .gitignore ├── get_untranslated.py ├── merge_tags.py ├── collect_tags.py ├── install.py ├── merge_collect_tags.py ├── tag_util.py └── localizations ├── localization-zh.json └── localization-template.json /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liggest/stable-diffusion-webui-localization/HEAD/README.md -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | tags/danbooru.csv 2 | tags/e621.csv 3 | tags/danbooru-untranslated.csv 4 | tags/*-old.csv 5 | localizations/other 6 | 7 | __pycache__/ 8 | -------------------------------------------------------------------------------- /get_untranslated.py: -------------------------------------------------------------------------------- 1 | """ 2 | 对比 danbooru.csv 和 danbooru-zh.csv 3 | 找出目前尚未翻译的 tag 4 | 生成 danbooru-untranslated.csv 5 | """ 6 | 7 | from tag_util import dan, dan_zh, dan_untrans, key_file, write_csv 8 | 9 | tags=set(key_file(dan_zh)) # 读取已翻译的 tag 10 | 11 | total=0 12 | count=0 13 | 14 | def diff_gen(): 15 | global total,count 16 | for i,*key in enumerate(key_file(dan)): 17 | if key[0] not in tags: 18 | yield key # 未翻译的 tag 写入 dan_untrans 19 | count+=1 20 | total=i+1 # 只是计数 21 | 22 | write_csv(diff_gen(),dan_untrans) 23 | 24 | print(f"{total} 条中,{len(tags)} 条已有翻译,{count} 条尚无翻译") 25 | -------------------------------------------------------------------------------- /merge_tags.py: -------------------------------------------------------------------------------- 1 | """ 2 | 提供一个 tag-翻译 对照文件 3 | 对于 danbooru-zh.csv 中存在但和提供文件翻译不同的 tag 4 | 逐个选择更好的翻译,以此合并两个文件,重新写入 danbooru-zh.csv 5 | (在提供文件中存在但不在 danbooru-zh.csv 中存在的 tag 请用 collect_tags.py 添加) 6 | """ 7 | 8 | from pathlib import Path 9 | from tag_util import dan_zh, get_sep, key_val_filtered, not_same, choose_val, write_csv 10 | 11 | merge_file=Path(input("tag-翻译 对照文件路径:\n")) 12 | print(repr(merge_file)) 13 | sep=get_sep(merge_file) 14 | 15 | tags=dict(key_val_filtered(dan_zh)) 16 | 17 | count=0 18 | 19 | try: 20 | for key,val in key_val_filtered(merge_file,sep): # tag、翻译 已经过滤过 21 | if not (current:=tags.get(key)): # 跳过 dan_zh 中不存在的项 22 | continue 23 | if not_same(current,val): 24 | print(f"发现 {key} 的不同翻译") 25 | new_val=choose_val(current,val) 26 | if new_val is not current: 27 | tags[key]=new_val 28 | print(f"{key} 的翻译现在是 {new_val}") 29 | count+=1 30 | finally: # 保证中途 Ctrl+C 也能写入当时的 tags 31 | write_csv(tags.items(),dan_zh) 32 | 33 | print(f"重新写入了 {len(tags)} 个 tag,更新了其中的 {count} 个") 34 | -------------------------------------------------------------------------------- /collect_tags.py: -------------------------------------------------------------------------------- 1 | """ 2 | 提供若干 tag-翻译 对照文件 3 | 参考生成的 danbooru-untranslated.csv ,将读到的翻译填充至 danbooru-zh.csv 4 | """ 5 | 6 | from pathlib import Path 7 | from tag_util import dan_untrans, dan_zh, get_sep, key_file, key_val_filtered, not_same, choose_val, write_csv 8 | 9 | tags={} 10 | 11 | while path:=input("tag-翻译 对照文件路径(留空进入下一步):\n"): 12 | path=Path(path) 13 | print(repr(path)) 14 | sep=get_sep(path) 15 | for i,(key,val) in enumerate(key_val_filtered(path,sep)): 16 | if (current:=tags.get(key)) and not_same(current,val): 17 | print(f"发现 {key} 的不同翻译") 18 | val=choose_val(current,val) 19 | if val is not current: 20 | print(f"{key} 的翻译现在是 {val}") 21 | tags[key]=val 22 | print(f"读取了 {i+1} 个 tag") 23 | 24 | 25 | print("读取",dan_untrans) 26 | 27 | count=0 28 | 29 | def diff_gen(): 30 | global count 31 | for key in key_file(dan_untrans): 32 | if val:=tags.get(key): # 若 tag 有翻译,也在 dan_untrans 中 33 | yield key,val 34 | count+=1 35 | 36 | write_csv(diff_gen(),dan_zh,"a") 37 | 38 | print(f"写入 {count} 个 tag 至 {dan_zh}") 39 | -------------------------------------------------------------------------------- /install.py: -------------------------------------------------------------------------------- 1 | """ 2 | WebUI extension launch script 3 | """ 4 | 5 | import json 6 | from pathlib import Path 7 | import shutil 8 | 9 | here=Path(__file__).parent 10 | ext_base=here.parent 11 | here_tags=here / "tags" 12 | 13 | tag_file="danbooru.csv" 14 | if any((autocomplete_tags:=f.parent) for f in ext_base.glob(f"*/tags/{tag_file}")): # 安装了 tag-autocomplete 15 | shutil.copytree(here_tags,autocomplete_tags,dirs_exist_ok=True) 16 | 17 | mix_localization=False 18 | if mix_localization: 19 | here_locs=here / "localizations" 20 | zh_file="zh_CN.json" 21 | if any((zh_localization:=f.parent) for f in ext_base.glob(f"*/localizations/{zh_file}")): 22 | zh_json=zh_localization / zh_file 23 | with zh_json.open(encoding="utf-8") as f: 24 | zh_dict:dict[str,str]=json.load(f) 25 | here_json=here_locs / "localization-zh.json" 26 | with here_json.open(encoding="utf-8") as f: 27 | here_dict:dict=json.load(f) 28 | zh_dict.update(here_dict) 29 | rename_item={ 30 | "图像":"图片", 31 | "提示词":"咒文", 32 | "通配符":"通配咒文", 33 | "重绘幅度":"去噪强度", 34 | "(":"(", 35 | ")":")" 36 | } 37 | rename_dict={ 38 | k:renamed 39 | for k,v in zh_dict.items() 40 | if (renamed:=v) and any( 41 | (renamed:=renamed.replace(i,rename_item[i])) 42 | for i in rename_item 43 | if i in renamed 44 | ) 45 | } 46 | zh_dict.update(rename_dict) 47 | mix_json=here_locs / zh_file 48 | mix_json=mix_json.with_stem(f"{mix_json.stem}_mixed") 49 | with mix_json.open("w",encoding="utf-8") as f: 50 | json.dump(zh_dict,f,ensure_ascii=False,indent=4) 51 | 52 | -------------------------------------------------------------------------------- /merge_collect_tags.py: -------------------------------------------------------------------------------- 1 | """ 2 | 提供若干 tag-翻译 对照文件 3 | 合并 danbooru-zh.csv 和这些文件,按 danbooru.csv 的顺序重新写入 danbooru-zh.csv 4 | 遇到相同 tag 不同翻译的情况,逐个选择更好的翻译 5 | (类似于同时做 merge_tags.py 和 collect_tags.py) 6 | """ 7 | 8 | from pathlib import Path 9 | from tag_util import dan, dan_zh, get_sep, key_file, key_val_filtered, not_same, choose_val, write_csv 10 | 11 | print("读取",dan_zh) 12 | zh_tags=dict(key_val_filtered(dan_zh)) 13 | print(f"读取了已翻译的 {len(zh_tags)} 个 tag") 14 | 15 | tags=zh_tags.copy() # 保留 zh_tags 16 | 17 | count=0 18 | new_count=0 19 | update_count=0 20 | def tag_gen(): # 保证dan_zh 的 tag 顺序和 dan 相同 21 | global count,new_count 22 | for key in key_file(dan): 23 | if val:=tags.get(key): # 若 key 有翻译 24 | yield key,val 25 | if key not in zh_tags: 26 | new_count+=1 27 | count+=1 28 | 29 | try: 30 | while path:=input("tag-翻译 对照文件路径(留空进入下一步):\n"): 31 | path=Path(path) 32 | print(repr(path)) 33 | sep=get_sep(path) 34 | for i,(key,val) in enumerate(key_val_filtered(path,sep)): # tag、翻译 已经过滤过 35 | if (current:=tags.get(key)) and not_same(current,val): 36 | print(f"发现 {key} 的不同翻译") 37 | val=choose_val(current,val) 38 | if val is not current: 39 | print(f"{key} 的翻译现在是 {val}") 40 | if key in zh_tags: 41 | update_count+=1 42 | tags[key]=val 43 | print(f"读取了 {i+1} 个 tag") 44 | finally: # 保证中途 Ctrl+C 也能写入当时的 tags 45 | write_csv(tag_gen(),dan_zh) 46 | # with dan_zh.open("w",encoding="utf-8") as f: 47 | # for key,(ttype,val) in tags.items(): 48 | # f.write(f'{key},{ttype},"{val}"\n') 49 | print(f"重新写入了 {count} 个 tag,相比原来更新了的 {update_count} 个,新增了 {new_count} 个") 50 | -------------------------------------------------------------------------------- /tag_util.py: -------------------------------------------------------------------------------- 1 | """ 工具脚本 """ 2 | 3 | from pathlib import Path 4 | from typing import Iterable 5 | import re 6 | import csv 7 | 8 | dan=Path("./tags/danbooru.csv") 9 | dan_zh=Path("./tags/danbooru-zh.csv") 10 | dan_untrans=Path("./tags/danbooru-untranslated.csv") 11 | 12 | SEP=csv.excel.delimiter # 默认分隔符 ',' 13 | ChooseSep=False 14 | ChooseVal=True 15 | 16 | chinese_ptn=re.compile(r"[\u4e00-\u9fa5]+") 17 | def has_chinese(s:str): 18 | """ 是否包含汉字 """ 19 | return chinese_ptn.search(s) 20 | 21 | def key_file(path:Path,sep:str=SEP): 22 | """ 读取 path 中 tag 的生成器 """ 23 | yield from (key for key,*_ in read_csv(path,sep)) 24 | # with path.open(encoding="utf-8") as f: 25 | # yield from (key for key,*_ in split_gen(f,sep)) 26 | 27 | def key_val_file(path:Path,sep:str=SEP): 28 | """ 读取 path 中 tag、翻译 的生成器 """ 29 | yield from ( (key,vals[-1]) for key,*vals in read_csv(path,sep) if vals) # 忽略没有分隔符的 30 | # with path.open(encoding="utf-8") as f: 31 | # yield from ( (key,vals[-1]) for key,*vals in split_gen(f,sep) if vals) # 忽略没有分隔符的行 32 | 33 | def read_csv(path:Path,sep:str=SEP): 34 | with path.open(encoding="utf-8",newline="") as f: 35 | yield from filter(None,csv.reader(f,delimiter=sep)) # 忽略空行 36 | 37 | # def split_gen(f:TextIO,sep:str=SEP): 38 | # """ f 每行按 sep 切分的生成器 """ 39 | # return (y.split(sep) for line in f if (y:=line.strip())) # 忽略空行 40 | 41 | def write_csv(rows:Iterable,path:Path,mode="w"): 42 | with path.open(mode,encoding="utf-8") as f: 43 | wf=csv.writer(f,lineterminator="\n") 44 | wf.writerows(rows) 45 | 46 | def to_key(key:str): 47 | """ 过滤 tag """ 48 | return key.strip().lower().replace(" ","_") # A key => a_key 49 | 50 | val_ts=str.maketrans("()/","()|") # ()/ => ()| 51 | def to_val(val:str): 52 | """ 过滤 翻译 """ 53 | return val.translate(val_ts) # 高/矮(翻译) => 高|矮(翻译) 54 | 55 | def key_val_filtered(path:Path,sep:str=SEP): 56 | """ 读取 path 中 tag、翻译 并过滤的生成器 """ 57 | return ((to_key(key),to_val(val)) for key,val in key_val_file(path,sep)) 58 | 59 | if ChooseSep: 60 | def get_sep(path:Path=None): 61 | """ 输入分隔符 """ 62 | return input(f"分隔符(默认为 {repr(SEP)}):") or SEP 63 | else: 64 | def get_sep(path:Path=None): 65 | if not path: 66 | return SEP 67 | with path.open(encoding="utf-8") as f: 68 | dialect = csv.Sniffer().sniff(f.read(1024)) 69 | return dialect.delimiter or SEP 70 | 71 | def not_same(old:str,new:str): 72 | return not new in old 73 | 74 | if ChooseVal: 75 | def choose_val(old:str,new:str): 76 | """ 从 old 和 new 中挑一个,或者两个都要,或者自己指定一个 """ 77 | mix=f"{old}|{new}" 78 | which=input(f"使用 1 {old} 2 {new} 3 {mix} 4 自己指定:\n") 79 | if not which or which=="1": # 默认执行 1 80 | return old 81 | elif which=="3": 82 | return mix 83 | elif which!="2": 84 | if which.startswith("4"): 85 | which=which.removeprefix("4").strip() 86 | new=which 87 | while newer:=input(f"当前:{new} 空白以确认,其他输入以重新指定:\n"): 88 | new=newer 89 | return new 90 | else: 91 | def choose_val(old:str,new:str): 92 | """ new 覆盖 old """ 93 | print(f"{old} => {new}") 94 | return new 95 | -------------------------------------------------------------------------------- /localizations/localization-zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "⤡": "⤡", 3 | "⊞": "⊞", 4 | "×": "×", 5 | "❮": "❮", 6 | "❯": "❯", 7 | "Loading...": "少女祈祷中...", 8 | "view": "查看", 9 | "api": "api", 10 | "•": "•", 11 | "built with gradio": "使用 gradio 构建", 12 | "Stable Diffusion checkpoint": "Stable Diffusion 模型(checkpoint)", 13 | "txt2img": "文生图(txt2img)", 14 | "img2img": "图生图(img2img)", 15 | "Extras": "附加(Extras)", 16 | "PNG Info": "PNG 信息", 17 | "Checkpoint Merger": "模型合并", 18 | "Train": "训练", 19 | "Create aesthetic embedding": "美术风格", 20 | "Wildcards Manager": "管理通配咒文", 21 | "Image Browser": "浏览图片", 22 | "Settings": "设置", 23 | "Extensions": "扩展", 24 | "Prompt": "咒文", 25 | "Negative prompt": "反向咒文", 26 | "Run": "运行", 27 | "Skip": "跳过", 28 | "Interrupt": "中止", 29 | "Generate": "生成", 30 | "Style 1": "样式 1", 31 | "Style 2": "样式 2", 32 | "Label": "标签", 33 | "File": "文件", 34 | "Drop File Here": "拖拽文件至此", 35 | "-": "-", 36 | "or": "或", 37 | "Click to Upload": "点击上传", 38 | "Image": "图片", 39 | "Check progress": "查看进度", 40 | "Check progress (first)": "(首次)查看进度", 41 | "Sampling Steps": "采样步数", 42 | "Sampling method": "采样方法", 43 | "Euler a": "Euler a", 44 | "Euler": "Euler", 45 | "LMS": "LMS", 46 | "Heun": "Heun", 47 | "DPM2": "DPM2", 48 | "DPM2 a": "DPM2 a", 49 | "DPM++ 2S a": "DPM++ 2S a", 50 | "DPM++ 2M": "DPM++ 2M", 51 | "DPM++ SDE": "DPM++ SDE", 52 | "DPM fast": "DPM fast", 53 | "DPM adaptive": "DPM adaptive", 54 | "LMS Karras": "LMS Karras", 55 | "DPM2 Karras": "DPM2 Karras", 56 | "DPM2 a Karras": "DPM2 a Karras", 57 | "DPM++ 2S a Karras": "DPM++ 2S a Karras", 58 | "DPM++ 2M Karras": "DPM++ 2M Karras", 59 | "DPM++ SDE Karras": "DPM++ SDE Karras", 60 | "DDIM": "DDIM", 61 | "PLMS": "PLMS", 62 | "Width": "宽度", 63 | "Height": "高度", 64 | "Restore faces": "面部修复", 65 | "Tiling": "密铺(Tiling)", 66 | "Highres. fix": "高分辨率修复", 67 | "Firstpass width": "首次宽度", 68 | "Firstpass height": "首次高度", 69 | "Denoising strength": "去噪强度(Denoising strength)", 70 | "Batch count": "批次(Batch count)", 71 | "Batch size": "批量(Batch size)", 72 | "CFG Scale": "咒文相关性(CFG Scale)", 73 | "Seed": "随机种子", 74 | "Extra": "更多", 75 | "Variation seed": "差异化随机种子(Variation seed)", 76 | "Variation strength": "差异化强度", 77 | "Resize seed from width": "优先宽度(Resize seed)", 78 | "Resize seed from height": "优先高度", 79 | "Open for Clip Aesthetic!": "打开以调整美术风格(Clip Aesthetic)!", 80 | "▼": "▼", 81 | "Aesthetic weight": "美术风格权重", 82 | "Aesthetic steps": "美术风格步数", 83 | "Aesthetic learning rate": "美术风格学习率", 84 | "Slerp interpolation": "球面线性(Slerp)插值", 85 | "Aesthetic imgs embedding": "美术风格图集嵌入(Images Embedding)", 86 | "None": "无", 87 | "Aesthetic text for imgs": "图集的美术风格描述", 88 | "Slerp angle": "插值角度(Slerp angle)", 89 | "Is negative text": "为反向咒文", 90 | "Dynamic Prompts": "动态咒文", 91 | "Dynamic Prompts enabled": "启用动态咒文", 92 | "Combinatorial generation": "组合生成", 93 | "Combinatorial batches": "组合批次", 94 | "Magic prompt": "魔法咒文", 95 | "Max magic prompt length": "魔法咒文最大长度", 96 | "Magic prompt creativity": "魔法咒文创意", 97 | "I'm feeling lucky": "手气不错", 98 | "Attention grabber": "随机关键词吸引注意力", 99 | "Write prompts to file": "将咒文写入文件", 100 | "Don't generate images": "不生成图片", 101 | "Enable comments": "启用注释", 102 | "Help": "帮助", 103 | "Combinations": "组合", 104 | "Choose a number of terms from a list, in this case we choose two artists:": "从列表中选几项,这里选了两个画师", 105 | "{2$$artist1|artist2|artist3}": "{2$$画师1|画师2|画师3}", 106 | "If $$ is not provided, then 1$$ is assumed.": "若没提供 $$,默认为 1$$", 107 | "If the chosen number of terms is greater than the available terms, then some terms will be duplicated, otherwise chosen terms will be unique. This is useful in the case of wildcards, e.g.": "选的项数多于提供的项数时,有些项会重复,其余情况各选项会保持唯一;\n重复对于通配咒文很有用,例如:", 108 | "{2$$__artist__}": "{2$$__画师__}", 109 | "is equivalent to": "等同于", 110 | "{2$$__artist__|__artist__}": "{2$$__画师__|__画师__}", 111 | "A range can be provided:": "项数可以有范围", 112 | "{1-3$$artist1|artist2|artist3}": "{1-3$$画师1|画师2|画师3}", 113 | "In this case, a random number of artists between 1 and 3 is chosen.": "此例中,会从中随机选 1 至 3 个画师", 114 | "Options can be given weights:": "选项可以被赋予权重:", 115 | "{2::artist1|artist2}": "{2::画师1|画师2}", 116 | "In this case, artist1 will be chosen twice as often as artist2.": "此例中,画师1 有二倍于 画师2 的概率被选中", 117 | "Wildcards can be used and the joiner can also be specified:": "可以用通配咒文,也可以指定拼接符", 118 | "{{1-$$and$$__adjective__}}": "{{1-3$$and$$__形容__}}", 119 | "Here, a random number between 1 and 3 words from adjective.txt will be chosen and joined together with the word 'and' instead of the default comma.": "此处,会从 形容.txt 中选取随机 1 至 3 行,以 'and' (而不是默认的逗号)拼接", 120 | "Wildcards": "通配咒文(Wildcards)", 121 | "Find and manage wildcards in the Wildcards Manager tab.": "在 管理通配咒文 选项卡中查看、管理通配咒文", 122 | "You can add more wildcards by creating a text file with one term per line and name is mywildcards.txt. Place it in /home/ubuntu/stable-diffusion-webui/extensions/dynamic-prompts/wildcards.": "要添加更多通配咒文,可以创建一个文本文件(如我的通配咒文.txt),每行写入一项咒文", 123 | "__/mywildcards__": "__/mywildcards__", 124 | "will then become available.": "文件放在相应目录就能被识别", 125 | "Jinja2 templates": "Jinja2 模板", 126 | "Enable Jinja2 templates": "启用 Jinja2 模板", 127 | "Help for Jinja2 templates": "Jinja2 模板帮助", 128 | "Jinja2 templates is an experimental feature for advanced template generation. It is not recommended for general use unless you are comfortable with writing scripts.": "Jinja2 模板是一个用于高级模板生成的实验特性;如果不熟悉编写脚本,正常使用时不推荐启用", 129 | "Literals": "字面量", 130 | "I love red roses": "I love red roses", 131 | "Random choices": "随机选择", 132 | "I love {{ choice('red', 'blue', 'green') }} roses": "I love {{ choice('red', 'blue', 'green') }} roses", 133 | "This will randomly choose one of the three colors.": "会随机从三种颜色中选一个", 134 | "Iterations": "迭代", 135 | "{% for colour in ['red', 'blue', 'green'] %}\n {% prompt %}I love {{ colour }} roses{% endprompt %}\n {% endfor %}": "{% for colour in ['red', 'blue', 'green'] %}\n {% prompt %}I love {{ colour }} roses{% endprompt %}\n {% endfor %}", 136 | "This will produce three prompts, one for each color. The prompt tag is used to mark the text that will be used as the prompt. If no prompt tag is present then only one prompt is assumed": "会产生三条咒文,每个颜色各一条;\n prompt 标签用于标记作为咒文的文本;\n 如果没有 prompt 标签则默认为仅一条咒文", 137 | "{% for colour in wildcard(\"__colours__\") %}\n {% prompt %}I love {{ colour }} roses{% endprompt %}\n {% endfor %}": "{% for colour in wildcard(\"__colours__\") %}\n {% prompt %}I love {{ colour }} roses{% endprompt %}\n {% endfor %}", 138 | "This will produce one prompt for each colour in the wildcard.txt file.": "会为 colours.txt 中的每个颜色产生一条咒文", 139 | "Conditionals": "条件", 140 | "{% for colour in [\"red\", \"blue\", \"green\"] %}\n {% if colour == \"red\"}\n {% prompt %}I love {{ colour }} roses{% endprompt %}\n {% else %}\n {% prompt %}I hate {{ colour }} roses{% endprompt %}\n {% endif %}\n {% endfor %}": "{% for colour in [\"red\", \"blue\", \"green\"] %}\n {% if colour == \"red\"}\n {% prompt %}I love {{ colour }} roses{% endprompt %}\n {% else %}\n {% prompt %}I hate {{ colour }} roses{% endprompt %}\n {% endif %}\n {% endfor %}", 141 | "This will produce the following prompts:": "会产生下列咒文", 142 | "I hate blue roses": "I hate blue roses", 143 | "I hate green roses": "I hate green roses", 144 | "Jinja2 templates are based on the Jinja2 template engine. For more information see the": "Jinja2 模板基于 Jinja2 模板引擎,更多信息参见", 145 | "Jinja2 documentation.": "Jinja2 文档", 146 | "If you are using these templates, please let me know if they are useful.": "如果你在用这些模板,请告诉我它们是否有用", 147 | "Advanced options": "高级选项", 148 | "Unlink seed from prompt": "将随机种子与咒文解绑", 149 | "Disable negative prompt": "禁用反向咒文", 150 | "Fixed seed": "固定随机种子", 151 | "Script": "脚本", 152 | "Prompt matrix": "咒文矩阵(Prompt matrix)", 153 | "Prompts from file or textbox": "从文本框或文件载入咒文", 154 | "X/Y plot": "X/Y 图表", 155 | "Put variable parts at start of prompt": "把可变部分放在咒文开头", 156 | "Use different seed for each picture": "为每张图用不同随机种子", 157 | "Iterate seed every line": "每行输入更换随机种子", 158 | "Use same random seed for all lines": "每行输入用同一随机种子", 159 | "List of prompt inputs": "咒文输入列表", 160 | "Upload prompt inputs": "上传咒文输入", 161 | "X type": "X 轴类型", 162 | "Nothing": "无", 163 | "Var. seed": "差异化随机种子(Variation seed)", 164 | "Var. strength": "差异化强度", 165 | "Steps": "步数", 166 | "Prompt S/R": "咒文搜索/替换(Prompt S/R)", 167 | "Prompt order": "咒文顺序", 168 | "Sampler": "采样方法", 169 | "Checkpoint name": "模型名称", 170 | "Hypernetwork": "超网络(Hypernetwork)", 171 | "Hypernet str.": "超网络强度", 172 | "Sigma Churn": "Sigma 扰动(Churn)", 173 | "Sigma min": "最小 Sigma", 174 | "Sigma max": "最大 Sigma", 175 | "Sigma noise": "Sigma 噪声", 176 | "Eta": "Eta", 177 | "Clip skip": "跳过 Clip", 178 | "Denoising": "去噪强度", 179 | "Upscale latent space for hires.": "高分辨率修复时的隐空间放大", 180 | "Cond. Image Mask Weight": "图片调节遮罩权重", 181 | "VAE": "VAE", 182 | "Styles": "样式", 183 | "X values": "X 轴值", 184 | "Y type": "Y 轴类型", 185 | "Y values": "Y 轴值", 186 | "Draw legend": "绘制轴标题", 187 | "Include Separate Images": "包括单图", 188 | "Keep -1 for seeds": "保持随机种子为 -1", 189 | "Save": "保存", 190 | "Send to img2img": "传到图生图(img2img)", 191 | "Send to inpaint": "传到局部重绘(Inpaint)", 192 | "Send to extras": "传到附加(Extras)", 193 | "Make Zip when Save?": "也保存为 Zip 文件?", 194 | "Textbox": "文本框", 195 | "Interrogate\nCLIP": "CLIP\n反推咒文\n(Interrogate)", 196 | "Interrogate\nDeepBooru": "DeepBooru\n 反推咒文 \n(Interrogate)", 197 | "Inpaint": "局部重绘(Inpaint)", 198 | "Batch img2img": "批量图生图", 199 | "Image for img2img": "图生图(img2img)的参考图片", 200 | "Drop Image Here": "拖拽图片至此", 201 | "Image for inpainting with mask": "局部重绘(Inpaint)的原图", 202 | "Mask": "遮罩", 203 | "Mask blur": "遮罩模糊", 204 | "Mask transparency": "遮罩透明度", 205 | "Mask mode": "遮罩模式", 206 | "Draw mask": "绘制遮罩", 207 | "Upload mask": "上传遮罩图", 208 | "Masking mode": "遮罩模式", 209 | "Inpaint masked": "作为遮罩部分", 210 | "Inpaint not masked": "作为非遮罩部分", 211 | "Masked content": "遮罩内容", 212 | "fill": "填充", 213 | "original": "原图", 214 | "latent noise": "隐空间噪声(latent noise)", 215 | "latent nothing": "隐空间抹除(latent nothing)", 216 | "Inpaint at full resolution": "全分辨率局部重绘(Inpaint)", 217 | "Inpaint at full resolution padding, pixels": "预留像素", 218 | "Process images in a directory on the same machine where the server is running.": "处理服务器中某目录的图片,", 219 | "Use an empty output directory to save pictures normally instead of writing to the output directory.": "输出到单独的空目录(而非默认输出目录)", 220 | "Input directory": "输入目录", 221 | "Output directory": "输出目录", 222 | "Resize mode": "缩放模式", 223 | "Just resize": "只缩放(不保持宽高比)", 224 | "Crop and resize": "裁剪并缩放(保持宽高比)", 225 | "Resize and fill": "缩放并填充(保持宽高比)", 226 | "Just resize (latent upscale)": "只缩放(隐空间放大)", 227 | "img2img alternative test": "图生图替代测试(img2img alternative test)", 228 | "Loopback": "产物迭代(Loopback)", 229 | "Outpainting mk2": "外部扩绘(Outpainting)mk2", 230 | "Poor man's outpainting": "穷把式的外部扩绘(Poor man's outpainting)", 231 | "SD upscale": "SD 图片放大(SD upscale)", 232 | "should be 2 or lower.": "应为 2 或更小。", 233 | "Override `Sampling method` to Euler?(this method is built for it)": "覆写 `采样方法` 为 Euler?(此方法是为它设计的)", 234 | "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "以 `原咒文` 覆写 `咒文`?(`反向咒文` 同理)", 235 | "Original prompt": "原咒文", 236 | "Original negative prompt": "原反向咒文", 237 | "Override `Sampling Steps` to the same value as `Decode steps`?": "以 `解码步数` 覆写 `采样步数`?", 238 | "Decode steps": "解码步数(Decode steps)", 239 | "Override `Denoising strength` to 1?": "覆写 `去噪强度` 为 1?", 240 | "Decode CFG scale": "解码咒文相关性(Decode CFG scale)", 241 | "Randomness": "随机性", 242 | "Sigma adjustment for finding noise for image": "用于发现图片噪声的 Sigma 调整(adjustment)", 243 | "Loops": "迭代次数", 244 | "Denoising strength change factor": "去噪强度调整系数", 245 | "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "推荐设置: 采样步数:80-100; 采样方法:Euler a; 去噪强度:0.8", 246 | "Pixels to expand": "扩展像素数", 247 | "Outpainting direction": "扩展方向", 248 | "left": "左", 249 | "right": "右", 250 | "up": "上", 251 | "down": "下", 252 | "Fall-off exponent (lower=higher detail)": "衰减指数(Fall-off exponent)(越小细节越好)", 253 | "Color variation": "色彩变化", 254 | "Will upscale the image by the selected scale factor; use width and height sliders to set tile size": "会按放大系数放大图片;用宽度和高度滑块设置图块尺寸", 255 | "Tile overlap": "图块重叠", 256 | "Scale Factor": "放大系数", 257 | "Upscaler": "放大算法", 258 | "Lanczos": "Lanczos", 259 | "Nearest": "Nearest", 260 | "LDSR": "LDSR", 261 | "SwinIR 4x": "SwinIR 4x", 262 | "ESRGAN_4x": "ESRGAN_4x", 263 | "Single Image": "单张图片", 264 | "Batch Process": "批处理", 265 | "Batch from Directory": "批处理目录", 266 | "Source": "源文件", 267 | "Show result images": "显示结果图片", 268 | "Scale by": "等比缩放", 269 | "Scale to": "按尺寸缩放", 270 | "Resize": "缩放比例", 271 | "Crop to fit": "裁剪以适应宽高比", 272 | "Upscaler 2 visibility": "放大算法 2 可见度", 273 | "GFPGAN visibility": "GFPGAN 可见度", 274 | "CodeFormer visibility": "CodeFormer 可见度", 275 | "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "CodeFormer 权重(为 0 时影响最大;为 1 时影响最小)", 276 | "Upscale Before Restoring Faces": "面部修复前放大图片", 277 | "Send to txt2img": "传到文生图(txt2img)", 278 | "A merger of the two checkpoints will be generated in your": "合并结果会生成在你的", 279 | "checkpoint": "模型", 280 | "directory.": "目录", 281 | "Primary model (A)": "主模型(A)", 282 | "Secondary model (B)": "第二模型(B)", 283 | "Tertiary model (C)": "第三模型(C)", 284 | "Custom Name (Optional)": "自定义名称(可选)", 285 | "Multiplier (M) - set to 0 to get model A": "模型比例(M)- 为 0 则等同于模型 A", 286 | "Interpolation Method": "插值方法", 287 | "Weighted sum": "加权和", 288 | "Add difference": "加上差值", 289 | "Checkpoint format": "模型格式", 290 | "ckpt": "ckpt", 291 | "safetensors": "safetensors", 292 | "Save as float16": "保存为半精度数(float16)", 293 | "See": "查看", 294 | "wiki": " wiki ", 295 | "for detailed explanation.": "获取详细说明", 296 | "Create embedding": "创建模型嵌入(Embedding)", 297 | "Create hypernetwork": "创建超网络(Hypernetwork)", 298 | "Preprocess images": "图片预处理", 299 | "Name": "名称", 300 | "Initialization text": "初始咒文", 301 | "Number of vectors per token": "每个 token 的向量个数", 302 | "Overwrite Old Embedding": "覆盖旧模型嵌入", 303 | "Modules": "模块", 304 | "Enter hypernetwork layer structure": "输入超网络层结构", 305 | "Select activation function of hypernetwork. Recommended : Swish / Linear(none)": "选择超网络激活函数(activation function);推荐:Swish 或 Linear(无)", 306 | "linear": "linear", 307 | "relu": "relu", 308 | "leakyrelu": "leakyrelu", 309 | "elu": "elu", 310 | "swish": "swish", 311 | "tanh": "tanh", 312 | "sigmoid": "sigmoid", 313 | "celu": "celu", 314 | "gelu": "gelu", 315 | "glu": "glu", 316 | "hardshrink": "hardshrink", 317 | "hardsigmoid": "hardsigmoid", 318 | "hardtanh": "hardtanh", 319 | "logsigmoid": "logsigmoid", 320 | "logsoftmax": "logsoftmax", 321 | "mish": "mish", 322 | "prelu": "prelu", 323 | "rrelu": "rrelu", 324 | "relu6": "relu6", 325 | "selu": "selu", 326 | "silu": "silu", 327 | "softmax": "softmax", 328 | "softmax2d": "softmax2d", 329 | "softmin": "softmin", 330 | "softplus": "softplus", 331 | "softshrink": "softshrink", 332 | "softsign": "softsign", 333 | "tanhshrink": "tanhshrink", 334 | "threshold": "threshold", 335 | "Select Layer weights initialization. Recommended: Kaiming for relu-like, Xavier for sigmoid-like, Normal otherwise": "选择网络层权重初始化方式;按激活函数推荐:类 relu - Kaiming;类 sigmoid - Xavier;其他 - Normal", 336 | "Normal": "Normal", 337 | "KaimingUniform": "KaimingUniform", 338 | "KaimingNormal": "KaimingNormal", 339 | "XavierUniform": "XavierUniform", 340 | "XavierNormal": "XavierNormal", 341 | "Add layer normalization": "添加层归一化(layer normalization)", 342 | "Use dropout": "采用随机失活(dropout)", 343 | "Overwrite Old Hypernetwork": "覆盖旧超网络", 344 | "Source directory": "源目录", 345 | "Destination directory": "目标目录", 346 | "Existing Caption txt Action": "对既存描述文本 txt 的行为", 347 | "ignore": "忽略", 348 | "copy": "复制", 349 | "prepend": "置于前", 350 | "append": "置于后", 351 | "Create flipped copies": "创建镜像副本", 352 | "Split oversized images": "切分过大的图片", 353 | "Auto focal point crop": "自动裁出焦点部分", 354 | "Use BLIP for caption": "用 BLIP 生成说明文本", 355 | "Use deepbooru for caption": "用 deepbooru 生成说明文本", 356 | "Split image threshold": "切分图片阈值", 357 | "Split image overlap ratio": "切分图片重叠率", 358 | "Focal point face weight": "焦点部分脸部权重", 359 | "Focal point entropy weight": "焦点部分熵(entropy)权重", 360 | "Focal point edges weight": "焦点部分边缘权重", 361 | "Create debug image": "创建调试图(debug image)", 362 | "Preprocess": "预处理", 363 | "Train an embedding or Hypernetwork; you must specify a directory with a set of 1:1 ratio images": "训练一个模型嵌入或超网络;必须指定一个具有 1:1 比例图片集的目录", 364 | "[wiki]": "[wiki]", 365 | "Embedding": "模型嵌入(Embedding)", 366 | "Embedding Learning rate": "模型嵌入学习率", 367 | "Hypernetwork Learning rate": "超网络学习率", 368 | "Gradient accumulation steps": "梯度累积步数", 369 | "Dataset directory": "数据集目录", 370 | "Log directory": "日志目录", 371 | "Prompt template file": "咒文模板文件", 372 | "Max steps": "最大步数", 373 | "Save an image to log directory every N steps, 0 to disable": "每 N 步保存一张图片到日志目录,0 为禁用", 374 | "Save a copy of embedding to log directory every N steps, 0 to disable": "每 N 步保存模型嵌入的副本到日志目录,0 为禁用", 375 | "Save images with embedding in PNG chunks": "保存图片时将模型嵌入存入 PNG 数据块", 376 | "Read parameters (prompt, etc...) from txt2img tab when making previews": "预览时从文生图(txt2img)选项卡读取参数(咒文等)", 377 | "Shuffle tags by ',' when creating prompts.": "创建咒文时按 “,” 区分并打乱标签", 378 | "Drop out tags when creating prompts.": "创建咒文时随机舍弃标签", 379 | "Choose latent sampling method": "选择隐空间采样方法", 380 | "once": "单次", 381 | "deterministic": "确定性", 382 | "random": "随机", 383 | "Train Hypernetwork": "训练超网络(Hypernetwork)", 384 | "Train Embedding": "训练模型嵌入(Embedding)", 385 | "Create an aesthetic embedding out of any number of images": "从任意张图片创建美术风格嵌入(Aesthetic Embedding)", 386 | "Create images embedding": "创建图集嵌入(Images Embedding)", 387 | "Manage wildcards for Dynamic Prompts": "管理动态咒文的通配咒文(Wildcards)", 388 | "1. Create your wildcard library by copying a collection using the dropdown below.": "1、复制下面下拉栏中的一个合集,创建自己的通配咒文库", 389 | "2. Click on any of the files that appear in the tree to edit them.": "2、点击任意列出的文件,编辑它们", 390 | "3. Use the wildcard in your script by typing the name of the file or copying the text from the Wildcards file text box": "3、输入文件名或复制 通配咒文文件 文本框中的内容,在脚本中引入通配咒文", 391 | "4. Optional - add your own wildcards files to the /home/ubuntu/stable-diffusion-webui/extensions/dynamic-prompts/wildcards folder": "4、可选:将自制的通配咒文文件加入相应目录", 392 | "Select a collection": "选择一个通配咒文合集", 393 | "jumbo": "jumbo", 394 | "parrotzone": "parrotzone", 395 | "Copy collection": "复制合集", 396 | "Overwrite existing": "覆盖现存的", 397 | "Refresh wildcards": "刷新列表", 398 | "Delete all wildcards": "删除所有", 399 | "Wildcards file": "通配咒文文件", 400 | "File editor": "编辑文件", 401 | "Save wildcards": "保存通配咒文", 402 | "Action": "行为", 403 | "txt2img-grids": "文生图宫格图", 404 | "img2img-grids": "图生图宫格图", 405 | "Favorites": "收藏", 406 | "Others": "其它", 407 | "Images directory": "图片目录", 408 | "Dropdown": "下拉选项", 409 | "First Page": "首页", 410 | "Prev Page": "上一页", 411 | "Page Index": "页码", 412 | "Next Page": "下一页", 413 | "End Page": "尾页", 414 | "delete next": "删除后 N 张", 415 | "Delete": "删除", 416 | "sort by": "排序方式", 417 | "path name": "路径名称", 418 | "date": "日期", 419 | "keyword": "关键字搜索", 420 | "Generate Info": "生成信息", 421 | "File Name": "文件名", 422 | "Move to favorites": "加入收藏", 423 | "Renew Page": "Renew Page", 424 | "Number": "Number", 425 | "set_index": "set_index", 426 | "load_switch": "load_switch", 427 | "turn_page_switch": "turn_page_switch", 428 | "Checkbox": "Checkbox", 429 | "Apply settings": "应用设置", 430 | "Saving images/grids": "保存图片/宫格图", 431 | "Always save all generated images": "始终保存所有生成的图片", 432 | "File format for images": "图片文件格式", 433 | "Images filename pattern": "文件名模板", 434 | "Add number to filename when saving": "保存时在文件名中加入数字", 435 | "Always save all generated image grids": "始终保存所有生成的宫格图", 436 | "File format for grids": "宫格图文件格式", 437 | "Add extended info (seed, prompt) to filename when saving grid": "在宫格图文件名中加入额外信息(随机种子、咒文)", 438 | "Do not save grids consisting of one picture": "不保存只有单张图片的宫格图", 439 | "Prevent empty spots in grid (when set to autodetect)": "(在自动检测时)防止宫格图中出现空位", 440 | "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "宫格图行数;-1 为自动检测;0 为与批量(Batch size)相同", 441 | "Save text information about generation parameters as chunks to png files": "生成参数相关的文本信息作为数据块存入 PNG 文件中", 442 | "Create a text file next to every image with generation parameters.": "保存图片时在其旁边创建文本文件记录生成参数", 443 | "Save a copy of image before doing face restoration.": "面部修复前保存图片副本", 444 | "Save a copy of image before applying highres fix.": "高分辨率修复前保存图片副本", 445 | "Save a copy of image before applying color correction to img2img results": "对图生图结果做颜色校正前保存图片副本", 446 | "Quality for saved jpeg images": "JPEG 图片保存质量", 447 | "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "当 PNG 图片大于 4MB 或某一维大于 4000 像素时,缩小并保存副本为 JPG", 448 | "Use original name for output filename during batch process in extras tab": "附加(Extras)选项卡中,批处理时用原始名称作为输出文件名", 449 | "Use upscaler name as filename suffix in the extras tab": "在附加选项卡中把放大算法名称用作文件名后缀", 450 | "When using 'Save' button, only save a single selected image": "用 “保存” 按钮时,只保存单张选中的图片", 451 | "Do not add watermark to images": "不为图片添加水印", 452 | "Directory for temporary images; leave empty for default": "临时图片目录;默认留空", 453 | "Cleanup non-default temporary directory when starting webui": "启动时清理非默认临时目录", 454 | "Paths for saving": "保存路径", 455 | "Output directory for images; if empty, defaults to three directories below": "图片输出目录;若为空,则默认为以下三个目录", 456 | "Output directory for txt2img images": "文生图(txt2img)输出目录", 457 | "Output directory for img2img images": "图生图(img2img)输出目录", 458 | "Output directory for images from extras tab": "附加(Extras)选项卡输出目录", 459 | "Output directory for grids; if empty, defaults to two directories below": "宫格图输出目录;若为空,则默认为以下两个目录", 460 | "Output directory for txt2img grids": "文生图(txt2img)宫格图输出目录", 461 | "Output directory for img2img grids": "图生图(img2img)宫格图输出目录", 462 | "Directory for saving images using the Save button": "用 “保存” 按钮将图片保存到的目录", 463 | "Saving to a directory": "保存到目录", 464 | "Save images to a subdirectory": "保存图片到子目录", 465 | "Save grids to a subdirectory": "保存宫格图到子目录", 466 | "When using \"Save\" button, save images to a subdirectory": "用 “保存” 按钮时,保存图片到子目录", 467 | "Directory name pattern": "目录名模板", 468 | "Max prompt words for [prompt_words] pattern": "[prompt_words] 模板中咒文词的最大个数", 469 | "Upscaling": "图片放大", 470 | "Tile size for ESRGAN upscalers. 0 = no tiling.": "ESRGAN 系放大算法的图块尺寸;0 为不分块", 471 | "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "ESRGAN 系放大算法的图块重叠像素数;较小时缝隙明显", 472 | "Upscaler for img2img": "图生图(img2img)的放大算法", 473 | "Upscale latent space image when doing hires. fix": "做高分辨率修复时放大隐空间图片", 474 | "LDSR processing steps. Lower = faster": "LDSR 处理步数;越少越快", 475 | "Cache LDSR model in memory": "缓存 LDSR 模型至内存", 476 | "Tile size for all SwinIR.": "SwinIR 系放大算法的图块尺寸", 477 | "Tile overlap, in pixels for SwinIR. Low values = visible seam.": "SwinIR 系放大算法的图块重叠像素数;较小时缝隙明显", 478 | "Face restoration": "面部修复", 479 | "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "CodeFormer 权重参数;为 0 时影响最大;为 1 时影响最小", 480 | "Move face restoration model from VRAM into RAM after processing": "完成处理后将面部修复模型从显存移至内存", 481 | "System": "系统", 482 | "VRAM usage polls per second during generation. Set to 0 to disable.": "生成时每秒轮询显存用量次数;0 为禁用", 483 | "Always print all generation info to standard output": "始终打印所有生成信息至标准输出(standard output)", 484 | "Add a second progress bar to the console that shows progress for an entire job.": "为控制台增加第二进度条,显示整体作业进度", 485 | "Training": "训练", 486 | "Move VAE and CLIP to RAM when training if possible. Saves VRAM.": "训练时试着移动 VAE 和 CLIP 模型至内存,节省显存", 487 | "Turn on pin_memory for DataLoader. Makes training slightly faster but can increase memory usage.": "为数据加载器(DataLoader)启用 pin_memory;略微加快训练但也增加内存占用", 488 | "Saves Optimizer state as separate *.optim file. Training can be resumed with HN itself and matching optim file.": "保存优化方法(Optimizer)状态到单独的 *.optim 文件;可用超网络自身和匹配的 optim 文件来恢复训练", 489 | "Filename word regex": "文件名词语提取正则表达式", 490 | "Filename join string": "拼接用字符串", 491 | "Number of repeats for a single input image per epoch; used only for displaying epoch number": "每轮(epoch)重复单张输入图片的次数; 只用于显示轮数", 492 | "Save an csv containing the loss to log directory every N steps, 0 to disable": "每 N 步保存一个包含损失值(loss)的 csv 文件到日志目录,0 为禁用", 493 | "Use cross attention optimizations while training": "训练时启用交叉注意力(cross attention)优化", 494 | "Stable Diffusion": "Stable Diffusion", 495 | "Checkpoints to cache in RAM": "缓存至内存中的模型数", 496 | "SD VAE": "SD VAE 模型", 497 | "auto": "自动", 498 | "Ignore selected VAE for stable diffusion checkpoints that have their own .vae.pt next to them": "为旁边有同名 .vae.pt 的模型(Checkpoint)忽略选中的 VAE", 499 | "Hypernetwork strength": "超网络强度", 500 | "Inpainting conditioning mask strength": "局部重绘(Inpaint)调节遮罩强度", 501 | "Noise multiplier for img2img": "图生图的噪声因数", 502 | "Apply color correction to img2img results to match original colors.": "对图生图(img2img)结果应用颜色校正以匹配原图颜色", 503 | "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "图生图时,确切做完指定的采样步数(通常降噪强度较小时要做的步数也较少)", 504 | "With img2img, fill image's transparent parts with this color.": "图生图时,用此颜色填充图片的透明部分", 505 | "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "为 K 采样方法启用量化以获得更清晰、干净的结果;这可能会改变现有的随机种子;应用设置后需重启", 506 | "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "强调记号:咒文中用 (文本) 吸引模型关注,用 [文本] 减少模型关注", 507 | "Use old emphasis implementation. Can be useful to reproduce old seeds.": "用旧的强调记号实现,可用于复现旧随机种子", 508 | "Make K-diffusion samplers produce same images in a batch as when making a single image": "让 K-diffusion 采样方法在批量生成与单张生成时图片产出一致", 509 | "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "所用 token 超过 75 个时,从 n 个 token 中的最后一个逗号开始填充,以提高一致性", 510 | "Interrogate Options": "反推咒文(Interrogate)选项", 511 | "Interrogate: keep models in VRAM": "反推咒文:在显存中保留模型", 512 | "Interrogate: use artists from artists.csv": "反推咒文:用 artists.csv 中的画师", 513 | "Interrogate: include ranks of model tags matches in results (Has no effect on caption-based interrogators).": "反推咒文:在结果中包括模型标签(model tags)匹配的等级(对基于说明文本的反推没有影响)", 514 | "Interrogate: num_beams for BLIP": "反推咒文:BLIP 的 beams 数(num_beams)", 515 | "Interrogate: minimum description length (excluding artists, etc..)": "反推咒文:最小描述长度(不包括画师等)", 516 | "Interrogate: maximum description length": "反推咒文:最大描述长度", 517 | "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP:文本文件中的最大行数(0 为无限制)", 518 | "Interrogate: deepbooru score threshold": "反推咒文:deepbooru 分数阈值", 519 | "Interrogate: deepbooru sort alphabetically": "反推咒文:deepbooru 结果按字母顺序排序", 520 | "use spaces for tags in deepbooru": "在 deepbooru 标签中用空格", 521 | "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "为 deepbooru 转义 (\\) 括号(使其作为括号字符而非强调记号)", 522 | "filter out those tags from deepbooru output (separated by comma)": "从 deepbooru 输出中过滤这些标签(以英文逗号隔开)", 523 | "User interface": "用户界面", 524 | "Show progressbar": "显示进度条", 525 | "Show image creation progress every N sampling steps. Set to 0 to disable. Set to -1 to show after completion of batch.": "每 N 步显示图片生成进度,0 为禁用,-1 为完成整批后显示", 526 | "Image creation progress preview mode": "图片生成进度预览模式", 527 | "Full": "完整", 528 | "Approx NN": "神经网络近似", 529 | "Approx cheap": "廉价近似", 530 | "Show previews of all images generated in a batch as a grid": "以宫格图形式预览一批中生成的所有图片", 531 | "Show grid in results for web": "在网页结果栏中显示宫格图", 532 | "Do not show any images in results for web": "不在网页结果栏中显示任何图片", 533 | "Add model hash to generation information": "添加模型哈希值(hash)到生成信息", 534 | "Add model name to generation information": "添加模型名称到生成信息", 535 | "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.": "从文本(PNG 信息或粘贴的文本)读入生成参数到用户界面时,不更改选定的模型", 536 | "Send seed when sending prompt or image to other interface": "传咒文或图片到其他界面时也传随机种子", 537 | "Send size when sending prompt or image to another interface": "传咒文或图片到其他界面时也传图片尺寸", 538 | "Font for image grids that have text": "宫格图文本字体", 539 | "Enable full page image viewer": "启用全页图片查看器", 540 | "Show images zoomed in by default in full page image viewer": "在全页图片查看器中默认显示放大的图片", 541 | "Show generation progress in window title.": "在窗口标题显示生成进度", 542 | "Quicksettings list": "快捷设置列表", 543 | "Localization (requires restart)": "本地化(应用设置后需重启)", 544 | "it_IT": "意大利语", 545 | "localization-template": "本地化模板", 546 | "localization-zh": "中文", 547 | "zh_CN_mixed": "中文(混合版)", 548 | "zh_CN": "官方中文", 549 | "Sampler parameters": "采样方法参数", 550 | "Hide samplers in user interface (requires restart)": "在用户界面中隐藏以下采样方法(应用设置后需重启)", 551 | "eta (noise multiplier) for DDIM": "DDIM eta(噪声因数)", 552 | "eta (noise multiplier) for ancestral samplers": "ancestral 系采样方法 eta(噪声因数)", 553 | "img2img DDIM discretize": "图生图 DDIM 离散化", 554 | "uniform": "均匀", 555 | "quad": "二阶", 556 | "sigma churn": "sigma 扰动(Churn)", 557 | "sigma tmin": "最小(tmin) sigma", 558 | "sigma noise": "sigma 噪声", 559 | "Eta noise seed delta": "Eta 噪声下随机种子偏移量(delta)", 560 | "Images Browser": "浏览图片", 561 | "Preload images at startup": "在启动时预载图片", 562 | "Record accessable images directories": "记录可访问的图片目录", 563 | "Print image deletion messages to the console": "向控制台打印图片删除信息", 564 | "Number of columns on the page": "每页列数", 565 | "Number of rows on the page": "每页行数", 566 | "Minimum number of pages per load": "每次最低加载页数", 567 | "Tag Autocomplete": "自动补全", 568 | "Tag filename": "标签文件", 569 | "danbooru-zh.csv": "danbooru-zh.csv", 570 | "danbooru.csv": "danbooru.csv", 571 | "e621.csv": "e621.csv", 572 | "Enable Tag Autocompletion": "启用自动补全", 573 | "Active in txt2img (Requires restart)": "在文生图中启用(应用设置后需重启)", 574 | "Active in img2img (Requires restart)": "在图生图中启用(应用设置后需重启)", 575 | "Active in negative prompts (Requires restart)": "在反向咒文中启用(应用设置后需重启)", 576 | "Active in third party textboxes [Dataset Tag Editor] (Requires restart)": "在 [Dataset Tag Editor] 扩展的文本框中启用(应用设置后需重启)", 577 | "Maximum results": "最多显示", 578 | "Show all results": "显示所有", 579 | "How many results to load at once": "一次性加载", 580 | "Time in ms to wait before triggering completion again (Requires restart)": "再次触发补全的毫秒数(应用设置后需重启)", 581 | "Search for wildcards": "搜索通配咒文", 582 | "Search for embeddings": "搜索嵌入(Embeddings)", 583 | "Replace underscores with spaces on insertion": "插入时替换下划线为空格", 584 | "Escape parentheses on insertion": "插入时转义括号", 585 | "Append comma on tag autocompletion": "自动补全标签后附加逗号", 586 | "Search by alias": "按别名搜索", 587 | "Only show alias": "只显示别名", 588 | "Translation filename": "翻译文件", 589 | "Translation file uses old 3-column translation format instead of the new 2-column one": "翻译文件用旧的三列格式(而非新的两列格式)", 590 | "Search by translation": "按翻译搜索", 591 | "Extra filename (do not use e621.csv here!)": "额外文件(不要在这里填入 e621.csv!)", 592 | "Extra file in alias only format": "额外文件用只包含别名的格式", 593 | "Use same seed for all images": "为所有图片用相同的随机种子", 594 | "Request browser notifications": "请求浏览器通知", 595 | "Download localization template": "下载本地化模板", 596 | "Reload custom script bodies (No ui updates, No restart)": "重载自定义脚本(无界面更新、不重启)", 597 | "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "重启 Gradio 并刷新组件(仅自定义脚本、ui.py、js 和 css)", 598 | "Installing...": "正在安装…", 599 | "Installed": "已安装", 600 | "Available": "可选", 601 | "Install from URL": "从链接安装", 602 | "Apply and restart UI": "应用并重启界面", 603 | "Check for updates": "检查更新", 604 | "Extension": "扩展", 605 | "URL": "链接", 606 | "Update": "更新状态", 607 | "aesthetic-gradients": "aesthetic-gradients", 608 | "unknown": "未知", 609 | "dynamic-prompts": "dynamic-prompts", 610 | "images-browser": "images-browser", 611 | "novelai-2-local-prompt": "novelai-2-local-prompt", 612 | "tag-autocomplete": "tag-autocomplete", 613 | "wildcards": "wildcards", 614 | "built-in": "内置", 615 | "ScuNET": "ScuNET", 616 | "SwinIR": "SwinIR", 617 | "prompt-bracket-checker": "咒文括号检查器", 618 | "Load from:": "加载自:", 619 | "Extension index URL": "扩展一览链接", 620 | "Hide extensions with tags": "隐藏有以下标签的扩展", 621 | "script": "脚本", 622 | "tab":"新选项卡", 623 | "ads": "含广告", 624 | "localization": "本地化", 625 | "installed": "已安装", 626 | "URL for extension's git repository": "扩展的 git 仓库链接", 627 | "Local directory name": "本地目录名称", 628 | "Install": "安装", 629 | "Prompt (press Ctrl+Enter or Alt+Enter to generate)": "咒文(按 Ctrl+Enter 或 Alt+Enter 生成图片)", 630 | "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "反向咒文 (按 Ctrl+Enter 或 Alt+Enter 生成图片)", 631 | "Add a random artist to the prompt.": "向咒文中添加随机画师", 632 | "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "从咒文读取生成参数,若无咒文,则从上次生成中读取,并填补至界面", 633 | "Save style": "保存样式", 634 | "Apply selected styles to current prompt": "在咒文中应用选中样式", 635 | "Stop processing current image and continue processing.": "跳过当前图片,继续处理", 636 | "Stop processing images and return any results accumulated so far.": "停止处理,返回既存结果", 637 | "Style to apply; styles have components for both positive and negative prompts and apply to both": "可用样式;包含咒文和反向咒文", 638 | "Do not do anything special": "不做任何事", 639 | "Which algorithm to use to produce the image": "用哪个算法产生图片", 640 | "Euler Ancestral - very creative, each can get a completely different picture depending on step count, setting steps to higher than 30-40 does not help": "Euler Ancestral - 富有创意,根据采样步数不同每次能得到完全不同的图片,设步数到高于 30-40 帮助不大", 641 | "Ignores step count - uses a number of steps determined by the CFG and resolution": "忽略步数 - 具体步数由 CFG 和分辨率决定", 642 | "Denoising Diffusion Implicit Models - best at inpainting": "Denoising Diffusion Implicit Models - 擅长局部重绘(Inpaint)", 643 | "Produce an image that can be tiled.": "产生一张可以被密铺的图片", 644 | "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "分两步处理,先在较小分辨率下部分地创建一张图片,放大,再在不改变构图的情况下改进细节", 645 | "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image. With values below 1.0, processing will take less steps than the Sampling Steps slider specifies.": "决定算法对提供图片的重视程度\n为 0 时,不会改变图片内容\n为 1 时,会得到一张无关图片\n小于 1.0 的值会导致实际处理所用步数少于指定的采样步数", 646 | "How many batches of images to create": "要生成多少批图片", 647 | "How many image to create in a single batch": "一批生成多少张图片", 648 | "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - 图应与咒文一致的程度——数值越小越能产生有创意的结果", 649 | "A value that determines the output of random number generator - if you create an image with same parameters and seed as another image, you'll get the same result": "用于决定随机数生成器输出的值——参数和随机种子完全相同时产生的图片也相同", 650 | "Set seed to -1, which will cause a new random number to be used every time": "设随机种子为 -1,代表每次都用新的随机数", 651 | "Reuse seed from last generation, mostly useful if it was randomed": "复用上次生成时的随机种子,在那次是随机生成的情况下最有用", 652 | "Seed of a different picture to be mixed into the generation.": "另一张图片的随机种子,会被混入生成中", 653 | "How strong of a variation to produce. At 0, there will be no effect. At 1, you will get the complete picture with variation seed (except for ancestral samplers, where you will just get something).": "差异化剧烈程度\n 为 0 时,没有效果\n 为 1 时,会得到完全产自差异化随机种子的图片\n(ancestral 采样方法除外,用它只会单纯地得到一些东西)", 654 | "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "尝试产出一张图片,优先近似于在指定分辨率下以相同随机种子能生成的图片,并扩展或裁剪到当前分辨率", 655 | "This text is used to rotate the feature space of the imgs embs": "此文本用于旋转图集嵌入的特征空间", 656 | "Disable dynamic prompts by unchecking this box.": "取消勾选来禁用动态咒文", 657 | "Instead of generating random prompts from a template, combinatorial generation produces every possible prompt from the given string.\nThe prompt 'I {love|hate} {New York|Chicago} in {June|July|August}' will produce 12 variants in total.\nDon't forget to increase the 'Batch count'/'Batch size' value accordingly.\n\t\nThe value of the 'Seed' field is only used for the first image. To change this, look for 'Fixed seed' in the 'Advanced options' section.": "组合生成从给定的字符串中生成所有可能的咒文,而非随机其中一个\n'I {love|hate} {New York|Chicago} in {June|July|August}' 总共会生成 12 句咒文变体\n别忘记相应地增加 “批次(Batch count)” 和 “批量(Batch size)” 值\n\t\n“随机种子” 的值只用于第一张图片,可在 “高级选项” 中的 “固定随机种子” 修改此行为", 658 | "Re-run your combinatorial batch this many times with a different seed each time.\nThe maximum number of outputs = Combinatorial batches * Batch size * Batch count.\nTo specify the maximum number of prompt combinations use 'Batch count'/'Batch size' options.": "重复做多批次组合生成,每次用不同的随机种子\n最大输出数为 组合批次 * 批量(Batch size) * 批次(Batch count)\n在 “批次” 和 “批量” 处指定咒文组合的最大数量", 659 | "Magic Prompt adds interesting modifiers to your prompt for a little bit of extra spice.\nThe first time you use it, the MagicPrompt model is downloaded so be patient.\nIf you're running low on VRAM, you might get a CUDA error.": "魔法咒文在咒文中加入有趣的修饰词,额外增添趣味\n首次使用时会下载 MagicPrompt 模型,请耐心等待\n在低显存情况下可能会导致 CUDA 报错", 660 | "Controls the maximum length in tokens of the generated prompt.": "按 token 数控制咒文生成的最大长度", 661 | "Adjusts the generated prompt. You will need to experiment with this setting.": "调整生成的咒文,使用时要尝试调整此设置", 662 | "Uses the lexica.art API to create random prompts.\nThe prompt in the main prompt box is used as a search string.\nLeaving the prompt box blank returns a list of completely randomly chosen prompts.\nTry it out, it can be quite fun.": "用 lexica.art API 生成随机咒文\n咒文框中的内容会作为搜索字符串\n留空咒文框会得到一组完全随机选择的咒文\n用用看,它会很有趣", 663 | "Randomly selects a keyword from the prompt and adds emphasis to it. Try this with Fixed Seed enabled.": "随机强调咒文中的一个关键词,尝试前要启用固定随机种子", 664 | "The generated file is a slugified version of the prompt and can be found in the same directory as the generated images.\nE.g. in ./outputs/txt2img-images/.": "生成的文件包含处理过的咒文,和生成的图片在同一目录\n例如 ./outputs/txt2img-images/", 665 | "Be sure to check the 'Write prompts to file' checkbox if you don't want to lose the generated prompts. Note, one image is still generated.": "不想丢失生成的咒文的话,需确保勾选 “将咒文写入文件”\n注意依然会生成一张图片", 666 | "Enable the use of C-style comments (//, /* */). Text within comments is stripped out before any processing occurs.": "允许用 C语言 格式的注释( // 、 /* ... */),注释文本会在任何处理发生前被排除", 667 | "Jinja2 templates are an expressive alternative to the standard syntax. See the Help section below for instructions.": "Jinja2 模板是标准语法富有表现力的一种替代品,相关说明参见下方帮助栏", 668 | "Check this if you want to generate random prompts, even if your seed is fixed": "勾选此选项以在固定随机种子的情况下依然生成随机咒文", 669 | "Ignore the negative prompt. Magic Prompt and I'm feeling lucky generate negative prompts by default, check this to disable that functionality.": "忽略反向咒文\n魔法咒文和手气不错默认生成反向咒文,勾选此选项以禁用这种功能", 670 | "Select this if you want to use the same seed for every generated image.\nThis is useful if you want to test prompt variations while using the same seed.\nIf there are no wildcards then all the images will be identical.": "勾选此选项以对每张生成的图片用同样的随机种子\n这在想用同样的随机种子测试咒文变化时会有用\n没有通配咒文则所有图片会相同", 671 | "Separate values for X axis using commas.": "用逗号分隔 X 轴的值", 672 | "Separate values for Y axis using commas.": "用逗号分隔 Y 轴的值", 673 | "Write image to a directory (default - log/images) and generation parameters into csv file.": "保存图片(默认在 log/images),并将生成参数存入 csv 文件", 674 | "Open images output directory": "打开图片输出目录", 675 | "How much to blur the mask before processing, in pixels.": "处理前对遮罩模糊的像素数", 676 | "What to put inside the masked area before processing it with Stable Diffusion.": "处理前要在遮罩区域填入什么内容", 677 | "fill it with colors of the image": "填入图片里有的颜色", 678 | "keep whatever was there originally": "保持原样", 679 | "fill it with latent space noise": "填入隐空间噪声(latent space noise)", 680 | "fill it with latent space zeroes": "填入隐空间零点(latent space zeroes)", 681 | "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "放大遮罩区域至目标分辨率,做局部重绘,缩小回原尺寸并贴入原图", 682 | "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "缩放图片至目标分辨率,除非宽高匹配,否则得到的图片比例有误", 683 | "Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "缩放图片以填满目标分辨率,裁剪多余的部分", 684 | "Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "缩放图片使其整体在目标分辨率内,用图片里有的颜色填充空白区域", 685 | "How many times to repeat processing an image and using it as input for the next iteration": "处理图片并作为下次迭代输入的重复次数", 686 | "In loopback mode, on each loop the denoising strength is multiplied by this value. <1 means decreasing variety so your sequence will converge on a fixed picture. >1 means increasing variety so your sequence will become more and more chaotic.": "产物迭代模式中,每次迭代去噪强度(Denoising strength)会乘以该值\n小于 1 意味着变化程度递减,故生成的图片序列收敛到一张固定图片;大于 1 意味着变化程度递增,故生成的图片序列变得越来越混乱", 687 | "For SD upscale, how much overlap in pixels should there be between tiles. Tiles overlap so that when they are merged back into one picture, there is no clearly visible seam.": "对于 SD 放大,表示图块间应重叠的像素数,图块重叠使得在合并回一张图片后没有明显可见的接缝", 688 | "A directory on the same machine where the server is running.": "服务器中某目录", 689 | "Leave blank to save images to the default path.": "留空以将图片保存到默认路径", 690 | "Result = A * (1 - M) + B * M": "结果 R = A * (1 - M) + B * M", 691 | "Result = A + (B - C) * M": "结果 R = A + (B - C) * M", 692 | "1st and last digit must be 1. ex:'1, 2, 1'": "首尾两项需为 1,例如 1, 2, 1 ", 693 | "Path to directory with input images": "输入图片的目录路径", 694 | "Path to directory where to write outputs": "写入输出的目录路径", 695 | "Input images directory": "输入图片目录", 696 | "Use following tags to define how filenames for images are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [model_name], [prompt_words], [date], [datetime], [datetime], [datetime