Guide model execution setup across catalog library and profiles

This commit is contained in:
Mikei386
2026-09-29 08:27:19 +02:00
parent 88e0edcc59
commit 7bd9096e67
11 changed files with 95 additions and 13 deletions
+32
View File
@@ -0,0 +1,32 @@
"""Read-only, conservative mapping to Deck's maintained execution adapters."""
from catalog import file_role
from profiles import image_recipe
from tts_runtime import REPO, REVISION
def assess(model, installed, profile=None):
kind=model.get('kind'); filename=model.get('file',''); repo=model.get('repo','')
result=dict(state='unsupported',label='Noch nicht unterstützt',runtime=None,installed=False,route=None,components=[],message='Für dieses Modell ist in Deck noch kein geprüfter Ausführungsweg hinterlegt. Herunterladen und Aufbewahren ist möglich; eine Installation allein genügt nicht.')
if not file_role(filename)['profile_eligible']:
result.update(state='component',label='Zusatzdatei',message='Diese Datei wird einem kompatiblen Modellprofil zugeordnet und benötigt keine eigene Laufzeit.')
return result
if kind=='image' and image_recipe(model):
result.update(runtime='ComfyUI + ComfyUI-GGUF',route='#image-runtime',components=[x['label'] for x in image_recipe(model).values()])
elif kind=='audio' and repo==REPO and filename=='model.safetensors' and model.get('revision')==REVISION:
result.update(runtime='Qwen3-TTS CustomVoice',route='#tts-runtime',components=['Vollständiges Modellpaket und Sprach-Tokenizer (im Einrichtungsassistenten enthalten)'])
elif kind=='chat' and filename.lower().endswith('.gguf'):
result.update(runtime='llama.cpp',route='#runtime',state='check',label='Kompatibilität beim Laden prüfen',message='llama.cpp ist der mögliche Ausführungsweg für dieses Chat-GGUF. Architektur und gewählte Optionen müssen vom installierten Build unterstützt werden. Der Testchat prüft die tatsächliche Ausführung.')
elif kind=='audio':
result.update(message='Dieses TTS-Modell wird noch nicht ausgeführt. Deck unterstützt derzeit die festgelegte Qwen3-TTS-CustomVoice-Variante mit eingebauten Stimmen. MLX, Base mit Referenzstimme und andere TTS-Architekturen benötigen andere Anbindungen.',alternative=dict(route='#tts-runtime',label='Unterstützte TTS-Alternative ansehen (Modellwechsel)'))
if not result['runtime']:return result
result['installed']=bool(installed.get(kind))
if kind!='chat':
result.update(state='setup',label='Unterstützt – Einrichtung prüfen',message='Die Laufzeit wird für kompatible Modelle gemeinsam genutzt. Modellabhängige Komponenten werden dem jeweiligen Profil zugeordnet.')
if not result['installed']:
result.update(state='runtime_missing',label='Passende Laufzeit fehlt')
if profile:
result['blockers']=profile.get('blockers',[])
if profile.get('runnable'):
result.update(state='ready',label='Ausführbar – Laufzeit eingerichtet')
elif result['installed']:
result.update(state='profile_incomplete',label='Profil prüfen – Voraussetzungen fehlen')
return result