# -*- coding: utf-8 -*- # Copyright (c) Alibaba, Inc. and its affiliates. # For dataset manager class CreateDatasetUIName(): def __init__(self, language='en'): if language == 'en': self.system_log = 'System Log: {} ' self.btn_create_datasets = '\U00002795' # ➕ self.get_data_name_button = '\U0001F3B2' # 🎲 self.new_data_name = ( 'New dataset name, replace "name" and "version" with easy-to-remember identifiers.' f'Also get a random name by clicking {self.get_data_name_button}' ) self.modify_data_button = '\U0001F4DD' # 📝 self.confirm_data_button = '\U00002714' # ✔️ self.cancel_create_button = '\U00002716' # ✖️ self.refresh_list_button = '\U0001f504' # 🔄 self.delete_dataset_button = '\U0001f5d1' # 🗑️ self.dataset_name = ( f'All Dataset,click{self.btn_create_datasets}to create new dataset,' f'click{self.delete_dataset_button}to delete this dataset.') self.dataset_type = 'Dataset Type' self.dataset_type_name = { 'scepter_txt2img': 'Text2Image Generation', 'scepter_img2img': 'Image Edit Generation' } self.user_data_name = ( f'Current Dataset Name. Changes of dataset name take ' f'effect after clicking {self.modify_data_button}') self.zip_file = 'Upload Dataset(Zip/Txt)' self.zip_file_url = 'Dataset Url' self.default_dataset_repo = 'https://www.modelscope.cn/api/v1/models/iic/scepter/' self.default_dataset_zip = \ self.default_dataset_repo + 'repo?Revision=master&FilePath=datasets/3D_example_csv.zip' self.default_dataset_name = '3D_example' self.btn_create_datasets_from_file = 'Create Dataset From File' self.user_direction = ( '### User Guide: \n' + f'* {self.btn_create_datasets} button is used to create a new dataset ' ". Please make sure to modify the dataset's name and version. After creation, " 'you can upload images one by one. \n' f'* The "{self.btn_create_datasets_from_file}" button supports creating a new dataset from ' 'a file, currently supporting zip files. For zip files, the format should be consistent' " with the one used during training, ensuring it contains an 'images/' folder and a '" "train.csv' (which will use the image paths in this file); " 'The first line is Target:FILE, Prompt, followed by the format of each line: image path, description.' 'we also surpport the zip of ' 'one level subfolder of images whose format are in jpg, jpeg, png, webp.' f'The ZIP example is: {self.default_dataset_zip}. \n' # noqa f'* If you have refreshed the page, please click the {self.refresh_list_button} ' 'button to ensure all previously created datasets are visible in the dropdown menu.\n' '* For processing and training with large-scale data(for example more than 10K samples), ' 'it is recommended to use the command line to train the model.' '* Please pay attention to the output of ' 'the system logs to help improve operations. \n') # Error or Warning self.illegal_data_name_err1 = ( 'The data name is empty or contains illegal ' "characters ' ' (space) or '/' (slash).") self.illegal_data_name_err2 = "Please follow the format '{name}-{version}-{randomstr}'" self.illegal_data_name_err3 = "Do not include '.' in the dataset name." self.illegal_data_name_err4 = 'Please do not upload files and set dataset links simultaneously.' self.illegal_data_name_err5 = 'Invalid dataset name, please switch datasets or create a new one.' self.illegal_data_err1 = 'File download failed' self.illegal_data_err3 = 'File decompression failed, failed to upload to storage!' self.delete_data_err1 = 'The example dataset is not allowed delete!' self.modify_data_err1 = 'The example dataset is not allowed modify!' self.modify_data_name_err1 = 'Failed to change dataset name!' self.refresh_data_list_info1 = ( 'The dataset name has been changed, ' 'please refresh the list and try again.') self.use_link = 'Use File Link' elif language == 'zh': self.system_log = '系统日志: {} ' self.btn_create_datasets = '\U00002795' # ➕ self.get_data_name_button = '\U0001F3B2' # 🎲 self.new_data_name = ('新数据集名称,替换"name"和"version"为方便记忆名称.' f'可以通过点击{self.get_data_name_button}获取随机名称') self.modify_data_button = '\U0001F4DD' # 📝 self.confirm_data_button = '\U00002714' # ✔️ self.cancel_create_button = '\U00002716' # ✖️ self.refresh_list_button = '\U0001f504' # 🔄 self.delete_dataset_button = '\U0001f5d1' # 🗑️ self.dataset_name = (f'数据集,点击{self.btn_create_datasets}新建数据集,' f'点击{self.delete_dataset_button}删除数据集') self.dataset_type = '数据集类型' self.dataset_type_name = { 'scepter_txt2img': '文生图数据', 'scepter_img2img': '图像编辑(图生图)数据' } self.user_data_name = f'当前数据集名称,修改后点{self.modify_data_button}生效' self.zip_file = '上传数据集' self.zip_file_url = '数据集链接' self.default_dataset_repo = 'https://www.modelscope.cn/api/v1/models/iic/scepter/' self.default_dataset_zip = \ self.default_dataset_repo + 'repo?Revision=master&FilePath=datasets/3D_example_csv.zip' self.default_dataset_name = '3D_example' self.btn_create_datasets_from_file = '从文件新建' self.user_direction = ( '### 使用说明 \n' + f'* {self.btn_create_datasets} 按钮用于从零新建数据集,请注意修改数据集的name和version,' '新建完成后可以逐个上传图片。\n' + f'* {self.btn_create_datasets_from_file} 按钮支持从文件中来新建数据集,目前支持zip文件,' '需要保证在文件夹外进行打包,并包含images/文件夹和train.csv(会使用该文件中的图片路径),首行为Target:FILE,Prompt,' '其次每行格式为:图片路径,描述;' f'同时我们也支持图像文件的zip包,格式在jpg、jpeg、png或webp。数据ZIP样例路径:{self.default_dataset_zip}. \n' + f'* 如果刷新了页面,请点击{self.refresh_list_button} 按钮以确保所有以往创建的数据集在下拉框中可见。\n' '* 对于大规模数据的处理和训练(数据规模大于1万),建议使用命令行形式\n' '* 请注意观察系统日志的输出以帮助改进操作。 \n') # Error or Warning self.illegal_data_name_err1 = "数据名称为空或包含非法字符' '或者'/'" self.illegal_data_name_err2 = '数据名称应该按照{name}-{version}-{randomstr}' self.illegal_data_name_err3 = "数据集名称中不要包含'.'" self.illegal_data_name_err4 = '请不要同时上传文件和设置数据集链接' self.illegal_data_name_err5 = '不合法的数据集名称,请切换数据集或新建数据集。' self.illegal_data_err1 = '文件下载失败' self.illegal_data_err3 = '文件解压失败,上传存储器失败!' self.delete_data_err1 = '示例数据集不允许删除!' self.modify_data_err1 = '示例数据集不允许修改!' self.modify_data_name_err1 = '变更数据集名称失败!' self.refresh_data_list_info1 = '该数据集名称发生了变更,请刷新列表试一下。' self.use_link = '使用文件链接' class DatasetGalleryUIName(): def __init__(self, language='en'): if language == 'en': self.system_log = 'System Log: {} ' self.upload_image = 'Upload Image' self.upload_image_btn = '\U00002714' # ✔️ self.cancel_upload_btn = '\U00002716' # ✖️ self.image_caption = 'Image Caption' self.ori_caption = 'Original Caption' self.btn_modify = '\U0001F4DD' # 📝 self.btn_delete = '\U0001f5d1' # 🗑️ self.btn_add = '\U00002795' # ➕ self.dataset_images = f'Original Images,click{self.btn_modify} into editable mode.' self.edit_caption = f'Editable Caption,click{self.btn_modify} into editable mode.' self.dataset_images = f'Original Images,click{self.btn_modify} into editable mode.' self.ori_dataset = 'Original Data Height({}) * Width({}) and Image Format({})' self.edit_dataset = 'Editable Data Height({}) * Width({}) and Image Format({})' self.upload_image_info = 'Image Information: Height({}) * Width({}) and Image Format({})' self.range_mode_name = [ 'Current sample', 'All samples', 'Samples in range' ] self.samples_range = 'The samples range to be process.' self.samples_range_placeholder = ( '"1,4,6" indicates to process 1st, 4th and 6th sample;' '"1-6" indicates to process samples from 1st to 6th.' '"1-4,6-8"indicates to process samples from 1st to 4th ' 'and from 6th to 8th.') self.set_range_name = 'Samples Range to be edited' self.btn_confirm_edit = '\U00002714' # ✔️ self.btn_cancel_edit = '\U00002716' # ✖️ self.btn_reset_edit = '\U000021BA' # ↺ self.confirm_direction = ( f'click{self.btn_confirm_edit} to apply all changes,' f'click{self.btn_reset_edit} to reset edited data,' f'click{self.btn_cancel_edit} to out of editing mode.') self.preprocess_choices = [ 'Image Preprocess', 'Caption Preprocess' ] self.image_processor_type = 'Image Preprocessors' self.caption_processor_type = 'Caption Preprocessors' self.image_preprocess_btn = 'Run' self.caption_preprocess_btn = 'Run' self.caption_update_mode = 'Caption Update Mode' self.caption_update_choices = ['Append', 'Replace'] self.used_device = 'Used Device' self.used_memory = 'Used Memory' self.caption_language = "Caption's Language" self.advance_setting = 'Generation Setting' self.system_prompt = 'System Prompt' self.max_new_tokens = 'Max New Tokens' self.min_new_tokens = 'Min New Tokens' self.num_beams = 'Beams Num' self.repetition_penalty = 'Repetition Penalty' self.temperature = 'Temperature' self.height_ratio = 'Height side scale' self.width_ratio = 'Width side scale' # Error or Warning elif language == 'zh': self.system_log = '系统日志: {} ' self.upload_image = '上传图片' self.upload_image_btn = '\U00002714' # ✔️ self.cancel_upload_btn = '\U00002716' # ✖️ self.image_caption = '图片描述' # self.image_height = '高度' # self.image_width = '宽度' # self.image_format = '格式' self.btn_modify = '\U0001F4DD' # 📝 self.dataset_images = f'图片数据,点击{self.btn_modify}进入编辑模式' self.btn_delete = '\U0001f5d1' # 🗑️ self.btn_add = '\U00002795' # ➕ self.ori_caption = f'原始描述,点击{self.btn_modify}进入编辑模式' self.edit_caption = '编辑描述' self.batch_caption_generate = '处理范围' self.ori_dataset = '原始数据 高({}) * 宽({}) 图像格式({})' self.edit_dataset = '可编辑数据 高({}) * 宽({}) 图像格式({})' self.upload_image_info = '图像信息 高({}) * 宽({})' self.range_mode_name = ['当前样本', '全部样本', '指定范围'] self.samples_range = '处理样本范围' self.samples_range_placeholder = ( '"1,4,6"代表处理第1,4,6个样本;' '"1-6" 代表处理从第1个到第6个的全部样本;' '"1-4,6-8" 代表处理从第1个到第4个,第6到第8个样本。') self.set_range_name = '编辑数据范围' self.btn_confirm_edit = '\U00002714' # ✔️ self.btn_cancel_edit = '\U00002716' # ✖️ self.btn_reset_edit = '\U000021BA' # ↺ self.confirm_direction = (f'点击{self.btn_confirm_edit}使所有编辑内容生效,' f'点击{self.btn_cancel_edit}取消编辑,' f'点击{self.btn_reset_edit}重置数据,' f'修改编辑范围可以批量编辑不同范围的数据。') self.preprocess_choices = ['图像预处理', '描述生成'] self.image_processor_type = '图像预处理器' self.caption_processor_type = '描述生成器' self.image_preprocess_btn = '运行' self.caption_preprocess_btn = '运行' self.caption_update_mode = '描述更新方式' self.caption_update_choices = ['追加', '替换'] self.used_device = '使用设备' self.used_memory = '使用内存' self.caption_language = '描述语言' self.advance_setting = '生成设置' self.system_prompt = '系统提示' self.max_new_tokens = '描述最大长度' self.min_new_tokens = '描述最小长度' self.num_beams = 'Beams数' self.repetition_penalty = '重复惩罚' self.temperature = '温度系数' self.height_ratio = '高度比例' self.width_ratio = '宽度比例' # Error or Warning class ExportDatasetUIName(): def __init__(self, language='en'): if language == 'en': self.btn_export_zip = 'Download Data' self.btn_export_list = 'Export List' self.export_file = 'Download Data' # Error or Warning self.export_err1 = 'The dataset is empty, export is not possible!' self.upload_err1 = 'Failed to compress the file!' self.go_to_train = 'Go to train...' elif language == 'zh': self.btn_export_zip = '导出数据' self.btn_export_list = '导出列表' self.export_file = '下载数据' self.export_err1 = '数据集为空,无法导出!' self.upload_err1 = '压缩文件失败!' self.go_to_train = '去训练...' class Text2ImageDataCardName(): def __init__(self, language='en'): if language == 'en': self.illegal_data_err1 = ( 'The list supports only "," or "#;#" as delimiters. ' 'The four columns represent image path, width, height, ' 'and description, respectively.') self.illegal_data_err2 = 'Illegal file format' self.illegal_data_err3 = 'File decompression failed, failed to upload to storage!' self.illegal_data_err4 = 'Illegal width({}),height({})' self.illegal_data_err5 = ( 'The path should not contain "{}". ' 'It should be an OSS path (oss://) or the prefix ' 'can be omitted (xxx/xxx)."') self.illegal_data_err6 = 'Image download failed {}' self.illegal_data_err7 = 'Image upload failed {}' self.delete_err1 = 'Deletion failed, the data is already empty.' self.export_zip_err1 = 'Failed to compress the file!' elif language == 'zh': self.illegal_data_err1 = '列表只支持,或#;#作为分割符,四列分别为图像路径/宽/高/描述' self.illegal_data_err2 = '非法的文件格式' self.illegal_data_err3 = '文件解压失败,上传存储器失败!' self.illegal_data_err4 = '不合法的width({}),height({})' self.illegal_data_err5 = '路径不支持{},应该为oss路径(oss://)或者省略前缀(xxx/xxx)' self.illegal_data_err6 = '下载图像失败{}' self.illegal_data_err7 = '上传图像失败{}' self.delete_err1 = '删除失败,数据已经为空了' self.export_zip_err1 = '压缩文件失败!' class Image2ImageDataCardName(): def __init__(self, language='en'): if language == 'en': self.illegal_data_err1 = ( 'The list supports only "," or "#;#" as delimiters. ' 'The four columns represent image path, width, height, ' 'and description, respectively.') self.illegal_data_err2 = 'Illegal file format' self.illegal_data_err3 = 'File decompression failed, failed to upload to storage!' self.illegal_data_err4 = 'Illegal width({}),height({})' self.illegal_data_err5 = ( 'The path should not contain "{}". ' 'It should be an OSS path (oss://) or the prefix ' 'can be omitted (xxx/xxx)."') self.illegal_data_err6 = 'Image download failed {}' self.illegal_data_err7 = 'Image upload failed {}' self.delete_err1 = 'Deletion failed, the data is already empty.' self.export_zip_err1 = 'Failed to compress the file!' elif language == 'zh': self.illegal_data_err1 = '列表只支持,或#;#作为分割符,四列分别为图像路径/宽/高/描述' self.illegal_data_err2 = '非法的文件格式' self.illegal_data_err3 = '文件解压失败,上传存储器失败!' self.illegal_data_err4 = '不合法的width({}),height({})' self.illegal_data_err5 = '路径不支持{},应该为oss路径(oss://)或者省略前缀(xxx/xxx)' self.illegal_data_err6 = '下载图像失败{}' self.illegal_data_err7 = '上传图像失败{}' self.delete_err1 = '删除失败,数据已经为空了' self.export_zip_err1 = '压缩文件失败!'