Category: Notes

  • Lokale Bilderzeugung: ComfyUI- und FLUX-Modell

    Heutzutage sind Sie nicht mehr auf Cloud-Dienste angewiesen: Sie können hochwertige Bilder vollständig auf Ihrer eigenen Hardware erstellen. In diesem Beitrag beschreibe ich, wie Sie das moderne FLUX-Modell mit ComfyUI lokal auf Ihrem Computer ausführen.

    ComfyUI verwendet eine knotenbasierte Architektur. Dies ermöglicht Ihnen:
    – Volle Kontrolle über jede Generationsstufe.
    – Einfaches Teilen vorgefertigter „Workflows“

    FLUX ist ein großes Modell, daher sind die Hardwareanforderungen höher als bei SD 1.5 oder SDXL:
    Grafikkarte (GPU): Nvidia RTX mit 12 GB VRAM oder höher (für komfortables Arbeiten). Wenn Sie über 8 GB oder weniger verfügen, müssen Sie die quantisierten Versionen (GGUF oder NF4) verwenden.
    Arbeitsspeicher (RAM): mindestens 16 GB (vorzugsweise 32 GB und mehr).
    Festplattenspeicher: Ungefähr 20–50 GB für Modelle und Komponenten.

    Der einfachste Weg, FLUX zu starten, ist die Verwendung einer vorgefertigten Vorlage. Suchen Sie einfach im Workflow-Fenster nach „flux text to image“ und installieren Sie es.

    Schreiben Sie im Knoten „Text to Image (Flux.1 Dev)“ eine Eingabeaufforderung auf Englisch, wählen Sie die Auflösung aus (FLUX funktioniert gut mit 1024 x 1024 und sogar höher) und drücken Sie RUN.

    Die erste Generation kann einige Zeit dauern, da die Modelle in den Grafikkartenspeicher geladen werden.

    https://github.com/comfyanonymous/ComfyUI

  • Lokale Vibe-Codierung: LM Studio, VS Code und Weiter

    Wenn Sie den Wunsch hatten, neuronale Netze zum Schreiben von Code zu verwenden (sog. Vibe-Codierung), und über einen recht leistungsstarken Computer verfügen, beispielsweise mit einer Nvidia RTX-Grafikkarte, können Sie die gesamte Umgebung völlig kostenlos auf Ihrem Computer bereitstellen. Dadurch werden Probleme mit kostenpflichtigen Abonnements gelöst und Sie können sicher mit Projekten unter NDA arbeiten, da Ihr Code nirgendwohin gesendet wird. In diesem Beitrag beschreibe ich, wie man ein lokales Bundle aus LM Studio, VS Code und der Continue-Erweiterung zusammenstellt.

    Tools für die lokale Vibe-Codierung

    Für komfortables Arbeiten benötigen wir drei Hauptkomponenten:
    LM Studio: eine praktische Anwendung zum Herunterladen und Ausführen lokaler LLMs. Es übernimmt die gesamte Komplexität der Arbeit mit GGUF-Modellen und stellt einen lokalen Server bereit, der mit der OpenAI-API kompatibel ist.
    VS Code: ein beliebter und bekannter Code-Editor.
    Continue: Erweiterung für VS Code, die neuronale Netze direkt in die Arbeitsumgebung integriert. Ermöglicht Ihnen das Chatten, das Hervorheben von Code für die Umgestaltung und unterstützt die automatische Vervollständigung.

    Hardwareanforderungen

    Lokale Sprachmodelle sind speicherintensiv:
    Grafikkarte (GPU): Nvidia mit 8 GB VRAM oder höher (für komfortables Arbeiten mit Modellen mit 7–8 Milliarden Parametern). Schwerere Modelle benötigen 16 GB VRAM.
    Speicherplatz: ca. 500 GB zum Speichern verschiedener heruntergeladener Modelle.

    Link konfigurieren

    Der Einrichtungsprozess ist recht einfach und erfordert keine komplexen Manipulationen im Terminal:
    1. Laden Sie LM Studio herunter und installieren Sie es. Verwenden Sie die integrierte Suche, um ein leichtes Modell wie Qwen Coder oder gemma3:12b zu finden.
    2. Gehen Sie in LM Studio zur Registerkarte Lokaler Server und klicken Sie auf Server starten. Standardmäßig startet es unter „http://localhost:1234/v1“.
    3. Öffnen Sie VS Code und installieren Sie die Erweiterung Continue aus dem Plugin-Store.
    4. Öffnen Sie die Continue-Konfigurationsdatei und fügen Sie ein neues Modell hinzu. Geben Sie dabei den „openai“-Anbieter und die Adresse Ihres lokalen Servers aus LM Studio an.

    Anschließend können Sie direkt in der Seitenleiste „Weiter“ mit Ihrem lokalen LLM kommunizieren, Fragen zu Ihrem Code stellen und neue Komponenten generieren.

    Warum funktioniert das?

    Wie ich bereits geschrieben habe, schneiden LLMs mit flacher Struktur und WET-Code (Write Everything Twice) besser ab. Lokale Parametermodelle sind möglicherweise Giganten wie GPT-4 unterlegen, wenn es um den Entwurf komplexer Architekturen geht, aber sie sind mehr als in der Lage, Boilerplate-Code zu generieren, einfache Funktionen umzugestalten und schnelle Prototypen zu erstellen.

    Darüber hinaus verlässt Ihr Code bei der lokalen Vibe-Codierung nie die Maschine. Damit ist diese Kombination ideal für die Unternehmensentwicklung und die Arbeit mit sensiblen Daten.

    Ausgabe

    Lokale neuronale Netze sind nicht in der Lage, einen Programmierer vollständig zu ersetzen oder ein komplexes System zu entwerfen. Die Kombination aus LM Studio + VS Code + Continue bietet jedoch Unabhängigkeit von Cloud-Diensten und wahrt die Privatsphäre. Dies ist ein voll funktionsfähiges Hilfsmittel für Routineaufgaben, wenn Sie bereit sind, die Einschränkungen kleiner Modelle in Kauf zu nehmen und die Projektarchitektur selbstständig zu steuern.

    Links

    https://code.visualstudio.com/
    https://lmstudio.ai/
    https://continue.dev/

    Quellen

    https://youtu.be/IqqCwhG46jY
    https://www.youtube.com/watch?v=7AImkA96mE8

  • Lokale Videogenerierung: ComfyUI und LTX-2.3

    Bisher war die Erstellung von Videos mithilfe neuronaler Netze das Vorrecht von Cloud-Diensten wie Runway oder Luma. Wenn Sie heute über eine moderne Nvidia-Grafikkarte verfügen, können Sie hochwertige Videos direkt auf Ihrem Computer erstellen. In diesem Beitrag erkläre ich Ihnen, wie Sie die lokale Videogenerierung mit ComfyUI und dem effektiven LTX-2.3-Modell einrichten.

    Tools zur Videogenerierung

    Für die Arbeit benötigen wir:
    ComfyUI: eine leistungsstarke Schnittstelle mit einer knotenbasierten Architektur, die es Ihnen ermöglicht, den Generierungsprozess flexibel anzupassen.
    LTX-2.3: Ein modernes Modell von Lightricks, optimiert für die Erstellung flüssiger und detaillierter Videos mit relativ moderatem Videospeicherbedarf.

    Hardwareanforderungen

    Das Generieren von Videos ist ein viel ressourcenintensiverer Prozess als das Arbeiten mit Bildern:
    Grafikkarte (GPU): Nvidia RTX mit 8 GB VRAM ist das Minimum, das für eine Auflösung von 768 x 512 erforderlich ist. Für eine komfortable Bedienung und höhere Auflösungen sind 16–24 GB VRAM äußerst wünschenswert.
    Arbeitsspeicher (RAM): mindestens 32 GB. Videomodelle und VAEs beanspruchen beim Herunterladen viel Platz.
    Speicherplatz: ca. 500 GB für das Modell selbst und zugehörige Komponenten.

    Einrichten und starten

    Der Prozess zum Starten von LTX-2.3 in ComfyUI ist wie folgt:
    1. ComfyUI aktualisieren: Das Modell ist relativ neu. Stellen Sie daher sicher, dass Sie die neueste Version der Schnittstelle installiert haben.
    2. Workflow installieren: Der einfachste Weg besteht darin, eine vorgefertigte JSON-Vorlage für LTX Video zu finden. Das Modell erfordert bestimmte Knoten, um mit dem latenten Videoraum zu arbeiten.
    3. Eingabeaufforderung und Parameter: Geben Sie eine Beschreibung der Szene auf Englisch ein. Beachten Sie, dass der LTX-2.3 Bewegungen gut versteht (z. B. „Kamera umkreist“, „schnelle Bewegung“).

    Warum LTX-2.3 wählen?

    LTX-2.3 zeichnet sich dadurch aus, dass es Ergebnisse liefert, die mit proprietären Cloud-Diensten vergleichbar sind, aber lokal ausgeführt wird. Das gibt Ihnen:
    Vollständiger Datenschutz: Ihre Eingabeaufforderungen und generierten Videos werden nicht auf die Server anderer Personen übertragen.
    Kontrolle: Sie können mit der Bildrate (FPS), der Auflösung und der Eingabeaufforderungsstärke experimentieren, ohne für jeden Versuch bezahlen zu müssen.

    Die lokale Videoerzeugung befindet sich noch in der aktiven Entwicklung und LTX-2.3 ist ein großartiger Einstieg in die Welt des „Heimat-Hollywoods“.

    Links

    https://github.com/comfyanonymous/ComfyUI
    https://huggingface.co/Lightricks/LTX-Video

  • Lokale Musikgenerierung: ComfyUI und ACE-Step-1.5-Modell

    Heutzutage ist man für die Erstellung von Inhalten nicht mehr auf Cloud-Dienste angewiesen: Sie können hochwertige Musik vollständig auf Ihrer eigenen Hardware generieren. In diesem Beitrag beschreibe ich, wie Sie das moderne ACE-Step-1.5-Modell mithilfe von ComfyUI lokal auf Ihrem Computer ausführen.

    ComfyUI verwendet eine knotenbasierte Architektur. Dies ermöglicht Ihnen:
    – Volle Kontrolle über jede Phase der Audioerzeugung.
    – Teilen Sie ganz einfach vorgefertigte „Workflows“.

    ACE-Step-1.5 ist ein fortschrittliches Modell zur Musikgenerierung, das erhebliche Rechenressourcen erfordert. Die Hardwareanforderungen sind höher als bei vielen einfachen Synthesizern:
    Grafikkarte (GPU): Nvidia RTX mit 8 GB VRAM oder höher (12 GB+ empfohlen) für komfortables Arbeiten in hoher Qualität.
    Arbeitsspeicher (RAM): mindestens 16 GB (vorzugsweise 32 GB und mehr).
    Prozessor (CPU): Moderner Multi-Core-Prozessor mit guter Unterstützung für AVX/CUDA-Computing.
    Festplattenspeicher: Ungefähr 20–50 GB für Modelle und Komponenten.

    Der einfachste Weg, ACE-Step-1.5 auszuführen, besteht darin, eine vorgefertigte Vorlage zur Audiogenerierung zu verwenden. Suchen Sie einfach im Workflow-Fenster nach „Musiktext zu Audio“ und installieren Sie es.

    Schreiben Sie im Knoten „Eingabeaufforderung“ eine Eingabeaufforderung, die das Genre und die Stimmung beschreibt (z. B. „aufmunternder Synthwave-Track mit starkem Bass“). Geben Sie die gewünschte Dauer an und drücken Sie RUN.
    Die erste Generation kann einige Zeit in Anspruch nehmen, da die Modelle in den Speicher der Grafikkarte geladen werden und komplexe akustische Muster verarbeiten.

    https://github.com/comfyanonymous/ComfyUI
    https://www.youtube.com/watch?v=UAlLD5fS7-c

  • Lokale neuronale Netze mit Ollama

    Wenn Sie den Wunsch hatten, so etwas wie ChatGPT zu starten, und über einen ziemlich leistungsstarken Computer verfügen, beispielsweise mit einer Nvidia RTX-Grafikkarte, können Sie das Ollama-Projekt ausführen, mit dem Sie eines der vorgefertigten LLM-Modelle völlig kostenlos auf Ihrem lokalen Computer verwenden können. Ollama bietet die Möglichkeit, mit LLM-Modellen in der Art von ChatGPT zu kommunizieren; Außerdem wurde in der neuesten Version die Möglichkeit angekündigt, Bilder zu lesen und die Ausgabedaten im JSON-Format zu formatieren.

    Ich habe das Projekt selbst auch auf einem MacBook mit einem Apple M2-Prozessor ausgeführt und weiß, dass die neuesten Grafikkartenmodelle von AMD unterstützt werden.

    Um es unter macOS zu installieren, gehen Sie zur Ollama-Website:
    https://ollama.com/download/mac

    Klicken Sie auf „Für macOS herunterladen“. Sie laden ein Archiv der Form ollama-darwin.zip herunter. Im Archiv befindet sich Ollama.app, das nach „Anwendungen“ kopiert werden muss. Starten Sie anschließend Ollama.app. Der Installationsvorgang wird höchstwahrscheinlich beim ersten Start stattfinden. Danach haben Sie in der Taskleiste das Ollama-Symbol gesehen, die Taskleiste befindet sich oben rechts neben der Uhr.

    Starten Sie anschließend ein normales macOS-Terminal und geben Sie den Befehl ein, um ein beliebiges Ollama-Modell herunterzuladen, zu installieren und auszuführen. Eine Liste der verfügbaren Modelle, Beschreibungen und ihre Eigenschaften finden Sie auf der Ollama-Website:
    https://ollama.com/search

    Wählen Sie das Modell mit den wenigsten Parametern, wenn es beim Start nicht in Ihre Grafikkarte passt.

    Zum Beispiel der Befehl zum Starten des Modells llama3.1:latest:

    ollama run llama3.1:latest
    

    Die Installation für Windows und Linux ist im Allgemeinen ähnlich, in einem Fall gibt es einen Ollama-Installer und die weitere Arbeit damit über Powershell.
    Bei Linux erfolgt die Installation über ein Skript, ich empfehle jedoch die Verwendung der Version Ihres spezifischen Paketmanagers. Unter Linux kann Ollama auch über ein normales Bash-Terminal gestartet werden.

    Quellen
    https://www.youtube.com/watch?v=Wjrdr0NU4Sk
    https://ollama.com

  • Videostabilisierung mit ffmpeg

    Wenn Sie Videos stabilisieren und Kameraverwacklungen entfernen möchten, bietet das Tool „ffmpeg“ eine leistungsstarke Lösung. Dank der integrierten Filter „vidstabdetect“ und „vidstabtransform“ können Sie professionelle Ergebnisse erzielen, ohne komplexe Videoeditoren zu verwenden.

    Vorbereitung auf die Arbeit

    Bevor Sie beginnen, stellen Sie sicher, dass Ihr „ffmpeg“ die „vidstab“-Bibliothek unterstützt. Unter Linux können Sie dies mit dem Befehl überprüfen:

    bash  
    ffmpeg -filters | grep vidstab  
    

    Wenn die Bibliothek nicht installiert ist, können Sie sie hinzufügen:

    sudo apt install ffmpeg libvidstab-dev  
    

    Installation für macOS über brew:

    brew install libvidstab
    brew install ffmpeg
    

    Kommen wir nun zum Prozess.

    Schritt 1: Bewegungsanalyse

    Zuerst müssen Sie die Bewegung des Videos analysieren und eine Datei mit Stabilisierungsparametern erstellen.

    ffmpeg -i input.mp4 -vf vidstabdetect=shakiness=10:accuracy=15 transfile=transforms.trf -f null -  
    

    Parameter:

    Wackeligkeit: Video-Verwackelungsstufe (Standard 5, kann für komplexere Fälle auf 10 erhöht werden).
    Genauigkeit: Analysegenauigkeit (Standard 15).
    transfile: Dateiname zum Speichern der Bewegungsparameter.

    Schritt 2: Stabilisierung anwenden

    Jetzt können Sie die Stabilisierung mithilfe der Transformationsdatei anwenden:

    ffmpeg -i input.mp4 -vf vidstabtransform=input=transforms.trf:zoom=5 output.mp4
    

    Parameter:

    Eingabe: Zeigt auf die Datei mit Transformationsparametern (im ersten Schritt erstellt).
    Zoom: Zoomfaktor zum Entfernen schwarzer Ränder (z. B. 5 – automatischer Zoom, bis Artefakte entfernt sind).

  • Turing-Rechenmaschinen

    Ich präsentiere Ihnen eine Übersetzung der ersten Seiten von Alan Turings Artikel „ON COMPUTABLE NUMBERS WITH AN APPLICATION TO THE PROBLEM OF RESOLUTION“ aus dem Jahr 1936. Die ersten Kapitel enthalten eine Beschreibung von Computern, die später zur Grundlage der modernen Informatik wurden.

    Die vollständige Übersetzung des Artikels und der Erklärung kann im Buch des amerikanischen Popularisierers Charles Petzold mit dem Titel „Reading Turing: A Journey through Turing’s Historical Article on Computability and Turing Machines“ (ISBN 978-5-97060-231-7, 978-0-470-22905-7) nachgelesen werden.

    Originalartikel:
    https://www.astro.puc.cl/~rparra/tools/PAPERS/turing_1936.pdf

    ÜBER BERECHNBARE ZAHLEN MIT ANWENDUNG AUF DAS AUFLÖSUNGSPROBLEM

    A. M. TURING

    [Eingegangen am 28. Mai 1936 – gelesen am 12. November 1936]

    „Berechenbare“ Zahlen können kurz als reelle Zahlen beschrieben werden, deren Ausdrücke als Dezimalbrüche auf endlich viele Arten berechnet werden können. Obwohl dieser Artikel Zahlen auf den ersten Blick als berechenbar behandelt, ist es fast genauso einfach, berechenbare Funktionen einer ganzzahligen Variablen, einer reellen Variablen, einer berechenbaren Variablen, berechenbarer Prädikate und dergleichen zu definieren und zu untersuchen. Die grundlegenden Probleme, die mit diesen berechenbaren Objekten verbunden sind, sind jedoch jeweils dieselben. Für eine detaillierte Betrachtung habe ich berechenbare Zahlen als berechenbares Objekt gewählt, da die Methode, sie zu berücksichtigen, am wenigsten umständlich ist. Ich hoffe, bald die Beziehung zwischen berechenbaren Zahlen und berechenbaren Funktionen usw. beschreiben zu können. Gleichzeitig wird auf dem Gebiet der Theorie der Funktionen einer reellen Variablen, ausgedrückt in berechenbaren Zahlen, geforscht. Nach meiner Definition ist eine reelle Zahl berechenbar, wenn ihre Dezimaldarstellung von einer Maschine geschrieben werden kann.

    In den Absätzen 9 und 10 gebe ich einige Argumente an, um zu zeigen, dass berechenbare Zahlen alle Zahlen umfassen, von denen man natürlich annimmt, dass sie berechenbar sind. Insbesondere zeige ich, dass einige große Zahlenklassen berechenbar sind. Dazu gehören beispielsweise die Realteile aller algebraischen Zahlen, die Realteile der Nullstellen von Bessel-Funktionen, die Zahlen π, e und andere. Allerdings umfassen berechenbare Zahlen nicht alle definierbaren Zahlen, wie das folgende Beispiel einer definierbaren Zahl zeigt, die nicht berechenbar ist.

    Obwohl die Klasse der berechenbaren Zahlen sehr groß ist und in vielerlei Hinsicht der Klasse der reellen Zahlen ähnelt, ist sie dennoch aufzählbar. In §8 betrachte ich bestimmte Argumente, die gegenteilig zu sein scheinen. Bei richtiger Anwendung eines dieser Argumente ergeben sich Schlussfolgerungen, die auf den ersten Blick denen von Gödel* ähneln. Diese Ergebnisse haben äußerst wichtige Anwendungsmöglichkeiten. Insbesondere kann das Auflösungsproblem, wie unten (§11) gezeigt wird, keine Lösung haben.

    In einem kürzlich erschienenen Artikel stellte Alonzo Church die Idee der „effektiven Berechenbarkeit“ vor, die meiner Vorstellung von „Berechenbarkeit“ entspricht, aber eine völlig andere Definition hat. Zu ähnlichen Schlussfolgerungen kommt auch Church hinsichtlich des Lösungsproblems. Der Beweis der Äquivalenz von „Berechenbarkeit“ und „effektiv berechenbar“ wird im Anhang dieses Artikels vorgelegt.

    1. Computer

    Wir haben bereits gesagt, dass berechenbare Zahlen diejenigen Zahlen sind, deren Dezimalstellen mit endlichen Mitteln abzählbar sind. Hier ist eine klarere Definition erforderlich. Dieser Artikel wird keinen wirklichen Versuch unternehmen, die hier gegebenen Definitionen zu rechtfertigen, bis wir zu §9 kommen. Vorerst möchte ich nur anmerken, dass der (logische) Grund (dafür) darin besteht, dass das menschliche Gedächtnis zwangsläufig begrenzt ist.

    Vergleichen wir einen Menschen, der eine reelle Zahl berechnet, mit einer Maschine, die nur eine endliche Anzahl von Bedingungen q1, q2, …, qR erfüllen kann; Nennen wir diese Bedingungen „M-Konfigurationen“. Diese (also so definierte) Maschine ist mit einem „Band“ (analog zu Papier) ausgestattet. Dieses durch die Maschine laufende Band ist in Abschnitte unterteilt. Nennen wir sie „Quadrate“. Jedes dieser Quadrate kann eine Art „Symbol“ enthalten. Zu jedem Zeitpunkt gibt es nur ein solches Quadrat, sagen wir das r-te, das das Symbol „in dieser Maschine“ enthält. Nennen wir ein solches Quadrat ein „gescanntes Symbol“. Ein „gescanntes Zeichen“ ist das einzige Zeichen, das der Maschine sozusagen „direkt bekannt“ ist. Durch Ändern seiner M-Konfiguration kann sich die Maschine jedoch effektiv an einige der Zeichen erinnern, die sie zuvor „gesehen“ (gescannt) hat. Das mögliche Verhalten der Maschine zu jedem Zeitpunkt wird durch die m-Konfiguration qn und das gescannte Symbol*** bestimmt. Nennen wir dieses Symbolpaar qn, „Konfiguration“. Die so bezeichnete Konfiguration bestimmt das mögliche Verhalten einer bestimmten Maschine. In einigen dieser Konfigurationen, in denen das gescannte Quadrat leer ist (dh kein Zeichen enthält), schreibt das Gerät ein neues Zeichen auf das gescannte Quadrat und in anderen dieser Konfigurationen löscht es das gescannte Zeichen. Diese Maschine ist auch in der Lage, sich zu bewegen, um ein anderes Quadrat zu scannen, auf diese Weise kann sie sich jedoch nur zu dem benachbarten Quadrat rechts oder links bewegen. Zusätzlich zu diesen Vorgängen kann die M-Konfiguration der Maschine geändert werden. In diesem Fall bilden einige der geschriebenen Zeichen eine Ziffernfolge, die den Dezimalteil der zu berechnenden reellen Zahl darstellt. Der Rest wird nichts weiter als ungenaue Markierungen sein, um „dem Gedächtnis zu helfen“. In diesem Fall können nur die oben genannten ungenauen Markierungen gelöscht werden.

    Ich behaupte, dass die hier betrachteten Operationen alle Operationen umfassen, die in der Berechnung verwendet werden. Die Begründung dieser Aussage ist für den Leser, der sich mit der Maschinentheorie auskennt, leichter zu verstehen. Daher werde ich im nächsten Abschnitt die betreffende Theorie weiter entwickeln, basierend auf einem Verständnis der Bedeutung der Begriffe „Maschine“, „Band“, „gescannt“ usw.

    *Gödel „Über die formal unentscheidbaren Sätze der Principia Mathematics (veröffentlicht von Whitehead und Russell 1910, 1912 und 1913) und verwandte Systeme, Teil I“, Journal of Mathematics. Physik, Monatsheft Nr. 38 (für 1931, S. 173–198).
    ** Alonzo Church, „An Undecidable Problem in Elementary Number Theory“, American J. of Math., Nr. 58 (1936), S. 345-363.
    *** Alonzo Church, „A Note on the Resolution Problem“, J. of Symbolic Logic, Nr. 1 (1936), S. 40-41