Skip to content

Instantly share code, notes, and snippets.

@SummonHIM
Last active August 2, 2025 17:02
Show Gist options
  • Select an option

  • Save SummonHIM/7a343fe08237af47bfc9fbe42385a0f9 to your computer and use it in GitHub Desktop.

Select an option

Save SummonHIM/7a343fe08237af47bfc9fbe42385a0f9 to your computer and use it in GitHub Desktop.
Face Fusion Chinese Language Patch

FaceFusionChinese

FaceFusion 换脸程序的中文翻译文件

Usage/使用方法

  1. 按照官方安装教程安装 FaceFusion
  2. 打开FaceFusion\facefusion\wording.py将下方文本替换上去即可。

Compatible version/适用版本

3.0.0

from typing import Any, Dict, Optional
WORDING : Dict[str, Any] =\
{
'conda_not_activated': 'Conda 未激活',
'python_not_supported': 'Python 版本不支持,请升级到 {version} 以上',
'curl_not_installed': 'CURL 未安装',
'ffmpeg_not_installed': 'FFMpeg 未安装',
'creating_temp': '正在创建临时资源',
'extracting_frames': '正在解压分辨率为 {resolution} 和每秒帧率为 {fps} 的帧',
'extracting_frames_succeed': '解压帧成功',
'extracting_frames_failed': '解压帧失败',
'analysing': '分析中',
'processing': '处理中',
'downloading': '下载中',
'temp_frames_not_found': '临时帧未找到',
'copying_image': '正在复制分辨率为 {resolution} 的图像',
'copying_image_succeed': '复制图像成功',
'copying_image_failed': '复制图像失败',
'finalizing_image': '正在定稿分辨率为 {resolution} 的图像',
'finalizing_image_succeed': '定稿图像成功',
'finalizing_image_skipped': '跳过定稿图像',
'merging_video': '正在合并分辨率为 {resolution} 和每秒帧率为 {fps} 的视频',
'merging_video_succeed': '合并视频成功',
'merging_video_failed': '合并视频失败',
'skipping_audio': '正在跳过音频',
'replacing_audio_succeed': '替换音频成功',
'replacing_audio_skipped': '跳过替换音频',
'restoring_audio_succeed': '恢复音频成功',
'restoring_audio_skipped': '跳过恢复音频',
'clearing_temp': '正在清理临时资源',
'processing_stopped': '处理已停止',
'processing_image_succeed': '处理图像成功,时间为 {seconds} 秒',
'processing_image_failed': '处理图像失败',
'processing_video_succeed': '处理视频成功,时间为 {seconds} 秒',
'processing_video_failed': '处理视频失败',
'choose_image_source': '为原始文件选则一个图像',
'choose_audio_source': '为原始文件选择一个音频',
'choose_video_target': '为目标文件选择一个视频',
'choose_image_or_video_target': '为目标文件选择一个图像或视频',
'specify_image_or_video_output': '指定输出音频或视频的文件夹',
'match_target_and_output_extension': '匹配目标和输出的扩展名',
'no_source_face_detected': '未检测到原始文件的脸部',
'processor_not_loaded': '无法加载处理器 {frame_processor}',
'processor_not_implemented': '未正确实现处理器 {frame_processor}',
'ui_layout_not_loaded': '无法加载 UI 布局 {ui_layout}',
'ui_layout_not_implemented': '未正确实现 UI 布局 {ui_layout}',
'stream_not_loaded': '无法加载流 {stream_mode}',
'job_created': '任务 {job_id} 已添加',
'job_not_created': '任务 {job_id} 尚未添加',
'job_submitted': '任务 {job_id} 已提交',
'job_not_submitted': '任务 {job_id} 未提交',
'job_all_submitted': '任务组已提交',
'job_all_not_submitted': '任务组尚未提交',
'job_deleted': '任务 {job_id} 已删除',
'job_not_deleted': '任务 {job_id} 尚未删除',
'job_all_deleted': '任务组已删除',
'job_all_not_deleted': '任务组尚未删除',
'job_step_added': '已将步骤添加至任务 {job_id}',
'job_step_not_added': '步骤尚未添加至任务 {job_id}',
'job_remix_step_added': '已将任务 {job_id} 重混入步骤 {step_index}',
'job_remix_step_not_added': '任务 {job_id} 尚未重混入步骤 {step_index}',
'job_step_inserted': '已将步骤 {step_index} 插入任务 {job_id}',
'job_step_not_inserted': '步骤 {step_index} 尚未插入任务 {job_id}',
'job_step_removed': '已从任务 {job_id} 中移除了步骤 {step_index}',
'job_step_not_removed': '任务 {job_id} 中的步骤 {step_index} 尚未被移除',
'running_job': '正在运行队列的任务 {job_id}',
'running_jobs': '正在运行所有队列的任务',
'retrying_job': '正在重试失败的任务 {job_id}',
'retrying_jobs': '正在重试所有失败的任务',
'processing_job_succeed': '任务 {job_id} 处理成功',
'processing_jobs_succeed': '所有任务均处理成功',
'processing_job_failed': '任务 {job_id} 处理失败',
'processing_jobs_failed': '所有任务均处理失败',
'processing_step': '正在处理第 {step_current} 步,共 {step_total} 步',
'validating_hash_succeed': '验证文件 {hash_file_name} 的哈希值成功',
'validating_hash_failed': '验证文件 {hash_file_name} 的哈希值失败',
'validating_source_succeed': '验证原始文件 {source_file_name} 成功',
'validating_source_failed': '验证原始文件 {source_file_name} 失败',
'deleting_corrupt_source': '正在删除损坏的原始文件 {source_file_name}',
'time_ago_now': '刚刚',
'time_ago_minutes': '{minutes} 分钟前',
'time_ago_hours': '{hours} 时 {minutes} 分前',
'time_ago_days': '{days} 天 {hours} 时 {minutes} 分前',
'point': '。',
'comma': ',',
'colon': ':',
'question_mark': '?',
'exclamation_mark': '!',
'help':
{
# installer
'install_dependency': '选择欲安装的 {dependency} 版本',
'skip_conda': '跳过 Conda 环境检查',
# paths
'config_path': '指定一个用于覆盖默认配置的配置文件',
'jobs_path': '指定一个用于存储任务的文件夹',
'source_paths': '指定一个或多个原始图像或音频',
'target_path': '指定单个目标文件或视频',
'output_path': '指定输出图像或视频的文件夹',
# face detector
'face_detector_model': '指定负责侦测面部的模型',
'face_detector_size': '指定提供给面部侦测器的帧大小',
'face_detector_angles': '指定侦测面部之前旋转该帧的角度',
'face_detector_score': '基于置信分数过滤已侦测面部',
# face landmarker
'face_landmarker_model': '指定负责侦测面部特征的模型',
'face_landmarker_score': '基于置信分数过滤已侦测的面部特征',
# face selector
'face_selector_mode': '使用基于追踪或简单匹配的参考',
'face_selector_order': '指定检测到的面部顺序',
'face_selector_age_start': '基于起始最小年龄过滤侦测到的面部',
'face_selector_age_end': '基于最大结束年龄过滤侦测到的面部',
'face_selector_gender': '基于性别过滤侦测到的面部',
'face_selector_race': '基于种族过滤侦测到的面部',
'reference_face_position': '指定用于创建参考面部的位置',
'reference_face_distance': '指定参考人脸与目标人脸之间的相似处',
'reference_frame_number': '指定用于创建参考面部的帧',
# face masker
'face_mask_types': '混合并搭配不同的面罩类型(可选:{choices})',
'face_mask_blur': '指定应用于遮罩框的模糊程度',
'face_mask_padding': '将顶部、右侧、底部和左侧填充应用于遮罩框',
'face_mask_regions': '选择用于区域遮罩的面部特征(可选:{choices})',
# frame extraction
'trim_frame_start': '指定目标视频的起始帧',
'trim_frame_end': '指定目标视频的结束帧',
'temp_frame_format': '指定临时资源格式',
'keep_temp': '处理完成后保留临时资源',
# output creation
'output_image_quality': '指定图像质量,即压缩系数',
'output_image_resolution': '基于目标图像指定图像的输出分辨率',
'output_audio_encoder': '指定输出音频的编码器',
'output_video_encoder': '指定输出视频的编码器',
'output_video_preset': '平衡快速视频处理和视频文件大小',
'output_video_quality': '指定视频质量,即压缩系数',
'output_video_resolution': '基于目标视频指定视频输出分辨率',
'output_video_fps': '基于目标视频指定视频输出帧率',
'skip_audio': '忽略目标视频的音频',
# processors
'processors': '加载一个或多个处理器(可选:{choices},…)',
'age_modifier_model': '选择负责进行面部老化的模型',
'age_modifier_direction': '指定年龄修改的方向',
'expression_restorer_model': '选择负责恢复表情的模型',
'expression_restorer_factor': '从目标面部恢复表情的系数',
'face_debugger_items': '加载一个或多个处理器(可选:{choices})',
'face_editor_model': '选择负责编辑面部的模型',
'face_editor_eyebrow_direction': '指定眉毛的方向',
'face_editor_eye_gaze_horizontal': '指定水平视线方向',
'face_editor_eye_gaze_vertical': '指定垂直视线方向',
'face_editor_eye_open_ratio': '指定眼睛张开的比例',
'face_editor_lip_open_ratio': '指定嘴唇张开的比例',
'face_editor_mouth_grim': '指定嘴巴的紧绷程度',
'face_editor_mouth_pout': '指定嘴唇嘟起的程度',
'face_editor_mouth_purse': '指定嘴唇抿起的程度',
'face_editor_mouth_smile': '指定嘴巴微笑的程度',
'face_editor_mouth_position_horizontal': '指定嘴巴的水平位置',
'face_editor_mouth_position_vertical': '指定嘴巴的垂直位置',
'face_editor_head_pitch': '指定头部俯仰角度',
'face_editor_head_yaw': '指定头部偏航角度',
'face_editor_head_roll': '指定头部滚转角度',
'face_enhancer_model': '选择负责增强面部的模型',
'face_enhancer_blend': '将增强效果混合到之前的面部图像中',
'face_swapper_model': '选择负责进行面部替换的模型',
'face_swapper_pixel_boost': '选择面部替换的像素增强分辨率',
'frame_colorizer_model': '选择负责给帧上色的模型',
'frame_colorizer_size': '指定提供给帧着色器的帧尺寸',
'frame_colorizer_blend': '将着色效果混合到之前的帧中',
'frame_enhancer_model': '选择负责增强帧的模型',
'frame_enhancer_blend': '将增强效果混合到之前的帧中',
'lip_syncer_model': '选择负责唇同步的模型',
# uis
'open_browser': '当程序就绪时启动浏览器',
'ui_layouts': '启动单个或多个 UI 布局(可选:{choices})',
'ui_workflow': '指定 UI 工作流',
# execution
'execution_device_id': '指定用于处理的设备',
'execution_providers': '使用不同的提供者加速模型推理(选择:{choices},...)',
'execution_thread_count': '指定处理时的并行线程数量',
'execution_queue_count': '指定每个线程正在处理的帧数量',
# memory
'video_memory_strategy': '平衡快速处理和低显存使用',
'system_memory_limit': '限制处理时可用的内存',
# misc
'skip_download': '跳过下载和远程查找',
'log_level': '调整终端显示的消息严重性级别',
# run
'run': '运行程序',
'headless_run': '在无界面模式下运行程序',
'force_download': '强制自动下载并退出',
# jobs
'job_id': '指定任务 ID',
'job_status': '指定任务状态',
'step_index': '指定步骤索引',
# job manager
'job_list': '按状态列出任务',
'job_create': '创建一个草稿任务',
'job_submit': '提交一个草稿任务以进入队列任务',
'job_submit_all': '提交所有草稿任务以进入队列任务',
'job_delete': '删除草稿、队列、失败或已完成的任务',
'job_delete_all': '删除所有草稿、队列、失败和已完成的任务',
'job_add_step': '向草稿任务添加一个步骤',
'job_remix_step': '从草稿任务重新组合之前的步骤',
'job_insert_step': '向草稿任务插入一个步骤',
'job_remove_step': '从草稿任务移除一个步骤',
# job runner
'job_run': '运行一个队列任务',
'job_run_all': '运行所有队列任务',
'job_retry': '重试失败的任务',
'job_retry_all': '重试所有失败的任务',
},
'about':
{
'become_a_member': '加入我们',
'join_our_community': '加入我们的社区',
'read_the_documentation': '阅读文档'
},
'uis':
{
'age_modifier_direction_slider': '年龄修改方向',
'age_modifier_model_dropdown': '年龄修改模型',
'apply_button': '应用',
'benchmark_cycles_slider': '基准测试周期',
'benchmark_runs_checkbox_group': '基准测试运行',
'clear_button': '清除',
'common_options_checkbox_group': '通用选项',
'execution_providers_checkbox_group': '执行提供者',
'execution_queue_count_slider': '执行队列计数',
'execution_thread_count_slider': '执行线程数',
'expression_restorer_factor_slider': '表情恢复系数',
'expression_restorer_model_dropdown': '表情恢复模型',
'face_debugger_items_checkbox_group': '面部调试项',
'face_detector_angles_checkbox_group': '面部检测角度',
'face_detector_model_dropdown': '面部检测模型',
'face_detector_score_slider': '面部检测得分',
'face_detector_size_dropdown': '面部检测尺寸',
'face_editor_eyebrow_direction_slider': '面部编辑眉毛方向',
'face_editor_eye_gaze_horizontal_slider': '面部编辑水平视线',
'face_editor_eye_gaze_vertical_slider': '面部编辑垂直视线',
'face_editor_eye_open_ratio_slider': '面部编辑眼睛开合率',
'face_editor_head_pitch_slider': '面部编辑头部俯仰',
'face_editor_head_roll_slider': '面部编辑头部滚转',
'face_editor_head_yaw_slider': '面部编辑头部偏航',
'face_editor_lip_open_ratio_slider': '面部编辑嘴唇开合率',
'face_editor_model_dropdown': '面部编辑模型',
'face_editor_mouth_grim_slider': '面部编辑嘴部紧绷',
'face_editor_mouth_position_horizontal_slider': '面部编辑嘴巴水平位置',
'face_editor_mouth_position_vertical_slider': '面部编辑嘴巴垂直位置',
'face_editor_mouth_pout_slider': '面部编辑嘴部嘟起',
'face_editor_mouth_purse_slider': '面部编辑嘴部抿起',
'face_editor_mouth_smile_slider': '面部编辑嘴巴微笑',
'face_enhancer_blend_slider': '面部增强混合',
'face_enhancer_model_dropdown': '面部增强模型',
'face_landmarker_model_dropdown': '面部标记模型',
'face_landmarker_score_slider': '面部标记得分',
'face_mask_blur_slider': '面部遮罩模糊度',
'face_mask_padding_bottom_slider': '面部遮罩底部填充',
'face_mask_padding_left_slider': '面部遮罩左侧填充',
'face_mask_padding_right_slider': '面部遮罩右侧填充',
'face_mask_padding_top_slider': '面部遮罩顶部填充',
'face_mask_regions_checkbox_group': '面部遮罩区域',
'face_mask_types_checkbox_group': '面部遮罩类型',
'face_selector_age_range_slider': '面部选择年龄范围',
'face_selector_gender_dropdown': '面部选择性别',
'face_selector_mode_dropdown': '面部选择模式',
'face_selector_order_dropdown': '面部选择顺序',
'face_selector_race_dropdown': '面部选择种族',
'face_swapper_model_dropdown': '面部交换模型',
'face_swapper_pixel_boost_dropdown': '面部交换像素增强',
'frame_colorizer_blend_slider': '帧着色混合',
'frame_colorizer_model_dropdown': '帧着色模型',
'frame_colorizer_size_dropdown': '帧着色尺寸',
'frame_enhancer_blend_slider': '帧增强混合',
'frame_enhancer_model_dropdown': '帧增强模型',
'job_list_status_checkbox_group': '任务状态',
'job_manager_job_action_dropdown': '任务管理器动作',
'job_manager_job_id_dropdown': '任务 ID',
'job_manager_step_index_dropdown': '步骤索引',
'job_runner_job_action_dropdown': '任务运行器动作',
'job_runner_job_id_dropdown': '任务 ID',
'lip_syncer_model_dropdown': '唇同步模型',
'log_level_dropdown': '日志级别',
'output_audio_encoder_dropdown': '输出音频编码器',
'output_image_or_video': '输出',
'output_image_quality_slider': '输出图像质量',
'output_image_resolution_dropdown': '输出图像分辨率',
'output_path_textbox': '输出路径',
'output_video_encoder_dropdown': '输出视频编码器',
'output_video_fps_slider': '输出视频帧率',
'output_video_preset_dropdown': '输出视频预设',
'output_video_quality_slider': '输出视频质量',
'output_video_resolution_dropdown': '输出视频分辨率',
'preview_frame_slider': '预览帧',
'preview_image': '预览',
'processors_checkbox_group': '处理器',
'reference_face_distance_slider': '参考面部距离',
'reference_face_gallery': '参考面部',
'refresh_button': '刷新',
'source_file': '原始文件',
'start_button': '开始',
'stop_button': '停止',
'system_memory_limit_slider': '系统内存限制',
'target_file': '目标文件',
'temp_frame_format_dropdown': '临时帧格式',
'terminal_textbox': '终端',
'trim_frame_slider': '修剪帧',
'ui_workflow': 'UI 工作流',
'video_memory_strategy_dropdown': '视频内存策略',
'webcam_fps_slider': '摄像头帧率',
'webcam_image': '摄像头图像',
'webcam_mode_radio': '摄像头模式',
'webcam_resolution_dropdown': '摄像头分辨率'
}
}
def get(key : str) -> Optional[str]:
if '.' in key:
section, name = key.split('.')
if section in WORDING and name in WORDING.get(section):
return WORDING.get(section).get(name)
if key in WORDING:
return WORDING.get(key)
return None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment