Sort newest Hub models and run image encoder on second GPU

This commit is contained in:
Mikei386
2026-09-28 18:27:23 +02:00
parent fd797a6c8d
commit a0941c0549
15 changed files with 159 additions and 35 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ RUN git clone https://github.com/Comfy-Org/ComfyUI.git /opt/deck-comfy \
&& /opt/deck-image-python/bin/pip freeze > /opt/deck-comfy/deck-requirements.lock
WORKDIR /app
COPY deploy/image-requirements.lock /app/deploy/image-requirements.lock
COPY image_runtime.py image_test.py profiles.py capacity.py server.py runtime.py catalog.py auth.py collect_hardware.py demo.py /app/
COPY image_encoder_node.py image_runtime.py image_test.py profiles.py capacity.py server.py runtime.py catalog.py auth.py collect_hardware.py demo.py /app/
COPY image-test-ui.js profiles-ui.js index.html app.js studio.js runtime-ui.js catalog-ui.js style.css login.html login.js access-ui.js network-ui.js /app/
COPY network/__init__.py network/client.py network/config.py network/rpc.py /app/network/
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 HOME=/tmp \
+5 -1
View File
@@ -65,5 +65,9 @@ Quelle unter `/opt/deck-comfy` und die gepinnte ComfyUI-GGUF-Erweiterung. Konkre
Commits stehen im Dockerfile; Paketversionen in `image-requirements.lock`.
PyTorch 2.11.0 CUDA 12.8 benötigt kompatiblen bestehenden Treiber. Keine
Treiberänderung oder automatischer Neustart. Der Deck-Service benötigt ausreichend
RAM für CPU-Textencoder; die Testinstallation begrenzt ihn auf 32 GiB und zwei
RAM für Modellladen und Offload; die Testinstallation begrenzt ihn auf 32 GiB und zwei
CPU-Kerne. Modelle/Encoder/VAE werden weiterhin separat über die Bibliothek geladen.
Decks `image_encoder_node.py` muss mitinstalliert werden. Der Bildtest macht
5080 und 3060 per UUID sichtbar und lädt den Textencoder explizit auf die zweite
GPU. Beide Geräte werden vor dem Start auf Fremdbelegung geprüft.
+2 -2
View File
@@ -14,7 +14,7 @@ import urllib.request
ROOT = Path(__file__).resolve().parent.parent
LABEL = 'de.casaderoll.athena-deck.standalone'
FILES = ['image_runtime.py','image_test.py','image-test-ui.js','profiles.py','profiles-ui.js','capacity.py','runtime.py','runtime-ui.js','catalog.py','catalog-ui.js','server.py','auth.py','collect_hardware.py','demo.py','index.html','app.js','studio.js','style.css','login.html','login.js','access-ui.js','network-ui.js','network/__init__.py','network/client.py','network/config.py','network/rpc.py','deploy/Dockerfile','deploy/image-requirements.lock']
FILES = ['image_encoder_node.py','image_runtime.py','image_test.py','image-test-ui.js','profiles.py','profiles-ui.js','capacity.py','runtime.py','runtime-ui.js','catalog.py','catalog-ui.js','server.py','auth.py','collect_hardware.py','demo.py','index.html','app.js','studio.js','style.css','login.html','login.js','access-ui.js','network-ui.js','network/__init__.py','network/client.py','network/config.py','network/rpc.py','deploy/Dockerfile','deploy/image-requirements.lock']
def run(*args, check=True, interactive=False):
@@ -186,7 +186,7 @@ def update(base, rollback=False):
backup_name=config['name']+'-previous'
if inspect(backup_name):raise RuntimeError('Rückfall-Containername belegt. Keine Änderung ausgeführt.')
stamp=str(time.time_ns())
shutil.copytree(base/'state',base/'backups'/stamp,ignore=shutil.ignore_patterns('models','runtime','runtime-verification','image-tests','image-verification','image-runtime'))
shutil.copytree(base/'state',base/'backups'/stamp,ignore=shutil.ignore_patterns('models','runtime','runtime-verification','image-tests','image-verification','image-verification-*','image-runtime'))
was_running=previous['State']['Running']
if was_running:run('docker','stop','--time','15',config['name'])
run('docker','rename',config['name'],backup_name)