Spaces:
Runtime error
Runtime error
import gradio as gr | |
import os | |
import json | |
from waifuc.action import HeadCountAction, AlignMinSizeAction, CCIPAction, ThreeStageSplitAction, ModeConvertAction, ClassFilterAction, PersonSplitAction, TaggingAction, RatingFilterAction, NoMonochromeAction, RandomFilenameAction, FirstNSelectAction, FilterSimilarAction, FileExtAction | |
from waifuc.export import SaveExporter, TextualInversionExporter | |
from waifuc.source import DanbooruSource, PixivSearchSource, ZerochanSource, LocalSource, GcharAutoSource | |
from cyberharem.dataset.crawler import crawl_dataset_to_huggingface | |
from cyberharem.utils import get_hf_client, get_hf_fs | |
from hbutils.system import TemporaryDirectory | |
from cyberharem.utils import download_file as cyber_download_file | |
from huggingface_hub import hf_hub_url, hf_hub_download | |
def start_func(token, chars, is_cpu, udghs): | |
if not udghs: | |
if token: | |
os.environ['HF_TOKEN'] = token | |
else: | |
return "无令牌" | |
if is_cpu: | |
os.environ['ONNX_MODE'] = 'CPUExecutionProvider' | |
char_list = chars.split(',') | |
for ch in char_list: | |
crawl_dataset_to_huggingface(ch) | |
print(ch + "完成") | |
return str(chars)+" 上传完成" | |
else: | |
if token: | |
os.environ['HF_TOKEN'] = token | |
dgrepo = 'deepghs/game_characters' | |
else: | |
return "无令牌" | |
if is_cpu: | |
os.environ['ONNX_MODE'] = 'CPUExecutionProvider' | |
with TemporaryDirectory() as jsondir: | |
print("Downloading jsons..") | |
hf_fs = get_hf_fs() | |
_dgdatas = [file for file in hf_fs.glob(f'datasets/{dgrepo}/*/pixiv_characters.json')] | |
for name in _dgdatas: | |
os.makedirs(os.path.basename(os.path.dirname(name)), exist_ok=True) | |
# print(f'https://huggingface.co/{dgrepo}/blob/main/{os.path.basename(os.path.dirname(name))}/{os.path.basename(name)}') | |
js = hf_hub_download( | |
# f'https://huggingface.co/{dgrepo}/blob/main/{os.path.basename(os.path.dirname(name))}/{os.path.basename(name)}', | |
# hf_hub_url(dgrepo, filename=os.path.relpath(name, dgrepo)), | |
repo_id=dgrepo, repo_type='dataset', | |
# os.path.join(os.path.basename(os.path.dirname(name)), 'pixiv_characters.json'), | |
filename=os.path.join(os.path.basename(os.path.dirname(name)), 'pixiv_characters.json'), | |
token=os.environ['HF_TOKEN'] | |
) | |
# with open(os.path.join(os.path.basename(os.path.dirname(name)), 'pixiv_characters.json'), 'r') as f: | |
with open(js, 'r', encoding='utf-8') as f: | |
jt = json.load(f) | |
chs = jt['characters'] | |
for jp in chs: | |
jp = jp['jpname'] | |
print(jp, 'start...') | |
crawl_dataset_to_huggingface(jp) | |
print(jp + "完成") | |
return "完成" | |
with gr.Blocks() as jblock: | |
hf_token = gr.Textbox(label="访问令牌", interactive=True) | |
char_list = gr.Textbox(label="角色列表", info="用,分隔", placeholder="《输入角色名然后你的数据集就出现在抱脸了》", interactive=True) | |
is_cpu = gr.Checkbox(label="无显卡", info="不使用显卡", value=True, interactive=True) | |
use_dghs = gr.Checkbox(label="从dghs", info="override", value=False, interactive=True) | |
start_button = gr.Button("开始上传", interactive=True) | |
opt_msg = gr.Textbox(interactive=False) | |
start_button.click(start_func, [hf_token, char_list, is_cpu, use_dghs], [opt_msg], api_name="crawlup") | |
if __name__ == "__main__": | |
jblock.queue(max_size=64) | |
jblock.launch(share=True) | |
# if __name__ == "__main__": | |
# jblock.launch(server_port=args.port) | |