Configure video pipeline and text encoder GPUs with memory guidance
This commit is contained in:
1 parent
0ec51bcf6d
commit
71e8345606
7 files changed
+134
-24
No files matched your search
+12
-1
@@ -13,6 +13,15 @@ SCHEMAS={
|
||||
'stt':{},'music':{},'voice':{},
|
||||
'video':{'width':(256,1920,768),'height':(256,1088,512),'frames':(1,241,33),'fps':(1,60,24),'steps':(1,100,20),'seed':(-1,2147483647,-1)}
|
||||
}
|
||||
VIDEO_DEVICE_DEFAULTS={'video_device':'auto','text_encoder_device':'same'}
|
||||
def video_parameters(params):
|
||||
params={**VIDEO_DEVICE_DEFAULTS,**params}
|
||||
for key in VIDEO_DEVICE_DEFAULTS:
|
||||
value=params[key]
|
||||
if not isinstance(value,str) or not (value in (('auto',) if key=='video_device' else ('same',)) or re.fullmatch(r'GPU-[a-zA-Z0-9-]+',value)):
|
||||
raise ValueError('Video-Gerät muss eine GPU-UUID sein; CPU wird im Disk-Streaming-Adapter noch nicht unterstützt.')
|
||||
return params
|
||||
|
||||
CHAT_GPU_DEFAULTS={'gpu_devices':[], 'split_mode':'none', 'tensor_split':[], 'mtp':False,'gpu_offload':'auto','gpu_reserve_mode':'auto','gpu_reserve_mib':{},'vision_projector':None,'vision_device':'cpu'}
|
||||
CHAT_SAMPLING={'temperature':.8,'top_p':.95,'top_k':40,'mtp_tokens':2,'mtp_min_p':.05}
|
||||
|
||||
@@ -75,6 +84,7 @@ class Profiles:
|
||||
with self.lock:
|
||||
rows=json.loads(json.dumps(self.rows))
|
||||
for p in rows:
|
||||
if p['kind']=='video':p['parameters']={**VIDEO_DEVICE_DEFAULTS,**p['parameters']}
|
||||
if p['kind']=='chat':p['parameters']={**CHAT_GPU_DEFAULTS,**CHAT_SAMPLING,**p['parameters']}
|
||||
try:
|
||||
p['model']=self.catalog.entry(p['model_id'])
|
||||
@@ -110,7 +120,8 @@ class Profiles:
|
||||
if params['vision_projector']:
|
||||
projector=self.catalog.entry(params['vision_projector'])
|
||||
if projector.get('role')!='vision_projector' or not projector['file'].endswith('.gguf'):raise ValueError('Eine heruntergeladene mmproj-GGUF-Datei auswählen.')
|
||||
if not isinstance(params,dict) or set(params)!=(set(SCHEMAS[kind]) | (set(CHAT_GPU_DEFAULTS) if kind=='chat' else set())):raise ValueError('Unvollständige oder unbekannte Profilparameter.')
|
||||
if kind=='video' and isinstance(params,dict):params=video_parameters(params)
|
||||
if not isinstance(params,dict) or set(params)!=(set(SCHEMAS[kind]) | (set(CHAT_GPU_DEFAULTS) if kind=='chat' else set(VIDEO_DEVICE_DEFAULTS) if kind=='video' else set())):raise ValueError('Unvollständige oder unbekannte Profilparameter.')
|
||||
for key,(lo,hi,_) in SCHEMAS[kind].items():
|
||||
value=params[key]
|
||||
floating=key in ('guidance','speed','temperature','top_p','mtp_min_p')
|
||||
|
||||
Reference in new issue
Block a user