Add exclusive music GPU mode beside LLM and video
This commit is contained in:
@@ -14,12 +14,13 @@ class Music:
|
||||
except ValueError:result.append(info['label']+' fehlt oder ist nicht zugeordnet.')
|
||||
return result
|
||||
def status(self):
|
||||
with self.lock:return dict(job=dict(self.job) if self.job else None,loaded=bool(self.process and self.process.poll() is None),runtime_installed=self.runtime.status()['installed'])
|
||||
with self.lock:return dict(job=dict(self.job) if self.job else None,loaded=bool(self.process and self.process.poll() is None),mode=self.scheduler.gpu_mode,runtime_installed=self.runtime.status()['installed'])
|
||||
def start(self,profile_id,lyrics,style,seed=1234,max_tokens=400,steps=8,wait=False):
|
||||
if not isinstance(lyrics,str) or not 1<=len(lyrics.strip())<=8000:raise ValueError('Songtext mit 1–8000 Zeichen eingeben.')
|
||||
if not isinstance(style,str) or not 1<=len(style.strip())<=2000:raise ValueError('Musikstil mit 1–2000 Zeichen eingeben.')
|
||||
for value,lo,hi in ((seed,0,2**31-1),(max_tokens,32,9000),(steps,1,32)):
|
||||
if type(value) is not int or not lo<=value<=hi:raise ValueError('Ungültige Musikparameter.')
|
||||
if self.scheduler.gpu_mode!='music':raise ValueError('Bitte in der Übersicht auf Musik umschalten.')
|
||||
with self.lock:
|
||||
if self.job and self.job['state']=='running':raise ValueError('Musikauftrag läuft bereits.')
|
||||
p=next((p for p in self.profiles.status()['profiles'] if p['id']==profile_id and p['kind']=='music'),None)
|
||||
@@ -30,7 +31,7 @@ class Music:
|
||||
def _run(self,p,lyrics,style,seed,max_tokens,steps,wait):
|
||||
release=None;state='failed';phase='Musikgenerierung fehlgeschlagen.';directory=self.root/self.job['id'];log=directory/'worker.tmp'
|
||||
try:
|
||||
release=self.scheduler.image_reservation(wait=wait)
|
||||
release=self.scheduler.image_reservation(wait=wait,kind="music")
|
||||
if self.cancel.is_set():raise InterruptedError()
|
||||
required=int(p['model']['size']/1024**2)+1800
|
||||
gpu=next((g for g in probe() if 'RTX 5080' in g['name'] and not g['processes'] and g['free_mib']>required),None)
|
||||
|
||||
Reference in New Issue
Block a user