FashGate's picture
Upload 204 files
8a469fd
# -*- coding: UTF-8 -*-
from modules import script_callbacks, extra_networks, prompt_parser, shared, ui_extra_networks
import json
import os
filters = [
'filename',
'description',
'search_term',
'local_preview',
'metadata',
]
def get_extra_networks():
result = []
try:
for extra_page in ui_extra_networks.extra_pages:
result_item = {
'name': extra_page.name,
'title': extra_page.title,
'items': []
}
for item in extra_page.list_items():
# 解析metadata
output_name = None
try:
if 'metadata' in item and item['metadata']:
metadata = json.loads(item['metadata'])
if metadata and 'ss_output_name' in metadata:
output_name = metadata['ss_output_name']
except Exception as e:
pass
item['output_name'] = output_name
# 获取civitai.info
item['civitai_info'] = {}
try:
if 'filename' in item and item['filename']:
if extra_page.name == 'textual inversion':
base, ext = os.path.splitext(item['filename'])
info_file = base + '.civitai.info'
else:
info_file = item['filename'] + '.civitai.info'
if os.path.isfile(info_file):
with open(info_file, 'r') as f:
info = json.load(f)
info = {
'name': info.get('name', ''),
'model': info.get('model', {}),
}
item['civitai_info'] = info
except Exception as e:
pass
# 过滤掉不需要的字段
for filter in filters:
if filter in item:
del item[filter]
result_item['items'].append(item)
result.append(result_item)
except Exception as e:
pass
return result