|
def init(cfg): |
|
|
|
model = cfg['model'] |
|
btn_com = cfg['btn_com'] |
|
s_info = cfg['s_info'] |
|
lock = cfg['session_lock'] |
|
|
|
|
|
def btn_vo(_n_keep, _n_discard, |
|
_temperature, _repeat_penalty, _frequency_penalty, |
|
_presence_penalty, _repeat_last_n, _top_k, |
|
_top_p, _min_p, _typical_p, |
|
_tfs_z, _mirostat_mode, _mirostat_eta, |
|
_mirostat_tau, _usr, _char, |
|
_rag, _max_tokens, _keep_last: int): |
|
with lock: |
|
if not cfg['session_active']: |
|
raise RuntimeError |
|
if cfg['btn_stop_status']: |
|
yield '', model.venv_info |
|
return |
|
|
|
model.venv_create('vo') |
|
_tmp = btn_com(_n_keep, _n_discard, |
|
_temperature, _repeat_penalty, _frequency_penalty, |
|
_presence_penalty, _repeat_last_n, _top_k, |
|
_top_p, _min_p, _typical_p, |
|
_tfs_z, _mirostat_mode, _mirostat_eta, |
|
_mirostat_tau, '旁白', _max_tokens) |
|
for _h in _tmp: |
|
yield _h, model.venv_info |
|
|
|
model.venv_remove('vo', keep_last=_keep_last) |
|
yield _h, model.venv_info |
|
print('清理旁白', model.venv_info) |
|
|
|
cfg['btn_vo_fn'] = { |
|
'fn': btn_vo, |
|
'inputs': cfg['setting'] + [cfg['setting_btn_vo_keep_last']], |
|
'outputs': [cfg['vo'], s_info] |
|
} |
|
cfg['btn_vo_fn'].update(cfg['btn_concurrency']) |
|
|
|
cfg['btn_vo'].click( |
|
**cfg['btn_start'] |
|
).success( |
|
**cfg['btn_vo_fn'] |
|
).success( |
|
**cfg['btn_finish'] |
|
) |
|
|