>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Python

So funktioniert ComfyUIs Template Factory unter der Haube

Wenn du bereits mit ComfyUI gearbeitet hast, erinnerst du dich wahrscheinlich an das Gefühl, wenn du den Workflow eines anderen öffnest und er nur so von roten Nodes zerfällt. Dir fehlen ein paar Nodes, das Modell liegt im falschen Ordner, und du hast keine Ahnung, wo du mit dem Schema anfangen sollst. Um dieses Problem für alle Benutzer zu lösen, hat das ComfyUI-Team das workflow_templates-Repository erstellt.

Das ist nicht nur eine Ansammlung von JSON-Schema-Dateien. Die Entwickler haben ein Monorepo aufgebaut, das fertige Szenarien und Subgraphs in eine Bibliothek von Python-Paketen umwandelt, den Template-Showcase automatisch aktualisiert und die erforderlichen neuronalen Netze direkt aus Hugging Face in die Anwendungsoberfläche lädt.

Was sich im Repository befindet

Das offizielle Comfy-Org/workflow_templates-Repository adressiert zwei Anforderungen: Es stellt fertige Generierungstemplates bereit (Bilder, Video, Audio) und bietet wiederverwendbare Node-Blöcke, sogenannte Subgraph Blueprints.

Die Projektarchitektur folgt einem separaten Paket pro Medientyp:

  • templates/ und packages/media_* enthalten Workflow-Dateien im JSON-Format und Vorschauen für die Auswahloberfläche.
  • blueprints/ und packages/blueprints speichern fertige zusammengesetzte Nodes (Subgraphs), die in der Node-Palette erscheinen.
  • packages/core stellt den Helper-Loader comfyui-workflow-templates-core bereit.
  • site/ enthält die Astro-basierte Website (templates.comfy. org) mit Suche, 11-facher Sprachunterstützung und Beschreibungsgenerierung.

Das gesamte Projekt wird über PyPI unter dem Namen comfyui-workflow-templates verteilt. Wenn du ComfyUI aktualisierst, gelangen die neuen Templates von hier aus in die Oberfläche.

Anatomie eines ordnungsgemäßen ComfyUI-Templates

Der interessanteste Teil des Projekts sind die Template-Zusammenstellungsanforderungen. Die Entwickler exportieren nicht einfach ein JSON-Schema – sie transformieren es in ein eigenständiges Bundle.

Nehmen wir als Beispiel das Hinzufügen eines Video-Generierungstemplates basierend auf dem Wan-2.1-Modell. Damit ein Workflow ein offizielles Template wird, durchlaufen die Autoren mehrere obligatorische Schritte.

Zuerst bereinigen sie das Schema. ComfyUI wird mit dem Flag --disable-all-custom-nodes ausgeführt. Dadurch wird sichergestellt, dass Drittanbieter-Erweiterungen das JSON nicht mit zusätzlichen Metadaten verunreinigen.

Dann bereiten sie Vorschauen vor. Für das Template erstellen sie ein Bild, eine WebP-Animation oder ein Video. Die Abmessungen werden angepasst, damit die Datei so wenig wie möglich wiegt. Typischerweise verwenden sie Kompression mit einer auf 65% reduzierten Qualität.

Anschließend betten sie Modellbindungen direkt in die Nodes ein. Benutzer müssen nicht mehr danach suchen, welches VAE- oder CLIP-Modell sie manuell herunterladen müssen. Eine direkte URL von Hugging Face, ein SHA256-Hash und ein Zielverzeichnis werden direkt zu den Node-Eigenschaften hinzugefügt (properties.models).

So sieht das Einbetten von VAE-Modellmetadaten in eine Workflow-JSON-Datei aus:

{
  "id": 39,
  "type": "VAELoader",
  "properties": {
    "Node name for S&R": "VAELoader",
    "models": [
      {
        "name": "wan_2.1_vae.safetensors",
        "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors?download=true",
        "hash": "2fc39d31359a4b0a64f55876d8ff7fa8d780956ae2cb13463b0223e15148976b",
        "hash_type": "SHA256",
        "directory": "vae"
      }
    ]
  },
  "widgets_values": ["wan_2.1_vae.safetensors"]
}

Dank dieses Eintrags weiß ComfyUI, welche Datei fehlt, verifiziert ihre Prüfsumme und lädt die Gewichte automatisch in den models/vae-Ordner herunter.

Hashes und Links werden direkt von der Dateiseite auf Hugging Face übernommen.

Über Modelle hinaus kannst du die minimale ComfyUI-Core-Version oder eine bestimmte Custom-Node-Version in Node-Eigenschaften einbetten. Zum Beispiel wird Node SaveWEBM mit "ver": "0.3.26" versehen, sodass der Benutzer eine Warnung sieht, wenn sein Client veraltet ist.

Alle Templates werden in einer einzigen Konfigurationsdatei index.json registriert.

Was sind diese Subgraph Blueprints

Über vollständige Szenarien hinaus verwendet ComfyUI Subgraphs. Eine komplexe Kombination aus einem Dutzend Nodes wird in einem einzigen Block mit klaren Inputs und Outputs verpackt.

Im Repository werden Blaupausen für solche Blöcke im Ordner blueprints/ gespeichert. Eine Blueprint-Datei enthält eine Schnittstellenbeschreibung und die Struktur interner Verbindungen:

{
  "id": "workflow-uuid",
  "nodes": [{"id": -1, "type": "subgraph-uuid"}],
  "definitions": {
    "subgraphs": [{
      "id": "subgraph-uuid",
      "name": "Text to Image (Flux.1 Dev)",
      "inputs": [
        {"name": "text", "type": "STRING"},
        {"name": "width", "type": "INT"}
      ],
      "outputs": [
        {"name": "IMAGE", "type": "IMAGE"}
      ],
      "nodes": [],
      "links": []
    }]
  }
}

Der Entwickler erstellt einen solchen Node in der grafischen Oberfläche über „Create Subgraph

Ähnliche Projekte