AI Personal Learning
und praktische Anleitung
讯飞绘镜

DiffSynth-Engine: Open-Source-Engine für den Einsatz von FLUX mit geringem Umfang, Wan 2.1

Allgemeine Einführung

DiffSynth-Engine ist ein Open-Source-Projekt von ModelScope, das auf GitHub gehostet wird. Es basiert auf der Technologie der Diffusionsmodellierung und konzentriert sich auf die effiziente Erzeugung von Bildern und Videos für Entwickler, um KI-Modelle in Produktionsumgebungen einzusetzen. Das Projekt ist aus DiffSynth-Studio hervorgegangen, nachdem es einer umfassenden technischen Umgestaltung unterzogen wurde, um die Berechnungseffizienz und die einfache Bereitstellung zu optimieren. Es unterstützt mehrere Modelle (z. B. FLUX, Wan2.1) und bietet eine klare Codestruktur und eine flexible Speicherverwaltung. Seit März 2025 wird das Projekt laufend aktualisiert und hat in der Open-Source-Gemeinschaft große Beachtung gefunden, mit dem Ziel, die Praktikabilität der KI-Erstellung zu fördern.

DiffSynth-Engine:低现存部署FLUX、Wan2.1的开源引擎-1


 

Funktionsliste

  • Unterstützt die effiziente Generierung von Bildern und Videos und deckt ein breites Spektrum an Anforderungen ab, von statischen Bildern bis hin zu dynamischen Inhalten.
  • Bereitstellung von klarem und lesbarem Code, ohne auf Bibliotheken von Drittanbietern angewiesen zu sein, so dass Entwickler ihn leicht ändern und erweitern können.
  • Kompatibel mit einer Vielzahl von Basismodellen (z. B. FLUX, Wan2.1) und LoRA-Modellen zur Anpassung an verschiedene Szenarien.
  • Eingebautes flexibles Speichermanagement, unterstützt FP8, INT8 und andere Quantisierungsmodi und kann auf Geräten mit geringem Grafikspeicher laufen.
  • Optimierung der Inferenzgeschwindigkeit und Unterstützung der Tensor-Parallelverarbeitung zur Beschleunigung umfangreicher generativer Aufgaben.
  • Bietet plattformübergreifende Unterstützung und ist kompatibel mit Windows, macOS (einschließlich Apple Silicon) und Linux.
  • Unterstützt unter anderem Text-zu-Bild, Text-zu-Video und Video-Styling.

 

Hilfe verwenden

Einbauverfahren

Die Installation von DiffSynth-Engine ist einfach und kann in wenigen Schritten durchgeführt werden.

  1. Installation von Kernpaketen
    Installieren Sie über pip3, indem Sie den folgenden Befehl in das Terminal eingeben:
pip3 install diffsynth-engine

Stellen Sie sicher, dass die Python-Version 3.8 oder höher ist. Es wird empfohlen, eine virtuelle Umgebung zu verwenden, um Konflikte mit Abhängigkeiten zu vermeiden.

  1. Modelldateien herunterladen
    Das Projekt enthält keine Modelldateien, die manuell oder per Code heruntergeladen werden müssen. Zum Beispiel, um die FLUX Modelle:
from diffsynth_engine import fetch_model
model_path = fetch_model("muse/flux-with-vae", revision="20240902173035", path="flux1-dev-with-vae.safetensors")

Nach dem Herunterladen werden die Modelldateien in der Regel lokal in einem bestimmten Verzeichnis abgelegt, damit Skripte sie aufrufen können.

  1. Überprüfen der Installation
    Führen Sie nach Abschluss der Installation ein einfaches Testskript aus, um sicherzustellen, dass die Umgebung funktioniert:

    from diffsynth_engine import __version__
    print(__version__)
    

    Die Ausgabe der Versionsnummer bedeutet, dass die Installation erfolgreich war.

Hauptfunktionen

1. die Erzeugung von Bildern (am Beispiel von FLUX)

  • Verfahren
    Verwenden Sie den folgenden Code, um ein Bild zu erzeugen:

    from diffsynth_engine.pipelines import FluxImagePipeline, FluxModelConfig
    from diffsynth_engine import fetch_model
    model_path = fetch_model("muse/flux-with-vae", revision="20240902173035", path="flux1-dev-with-vae.safetensors")
    config = FluxModelConfig(dit_path=model_path)
    pipe = FluxImagePipeline.from_pretrained(config, offload_mode="cpu_offload").eval()
    image = pipe(
    prompt="月球上的宇航员骑马,黑白摄影风格,颗粒感强,对比度高",
    width=1024,
    height=1024,
    num_inference_steps=30,
    seed=42,
    )
    image.save("flux_txt2img.png")
    
  • Ausgewählte Beschreibung
    Standardmäßig sind 23 GB Videospeicher erforderlich. Wenn Sie nicht genug Speicher haben, können Sie die offload_mode="sequential_cpu_offload"Der Quantisierungsprozess kann mit nur 4 GB RAM ausgeführt werden, aber die Generierungszeit verlängert sich (z. B. 91 Sekunden). Unterstützt mehrere Quantisierungsgenauigkeiten (z. B. q8_0, q6_k) und der Speicherbedarf kann auf 7-12 GB reduziert werden.

2. die Videoerstellung (Beispiel Wan 2.1)

  • Verfahren
    Verwenden Sie den folgenden Code, um ein Video zu erstellen:

    from diffsynth_engine.pipelines import WanVideoPipeline, WanModelConfig
    from diffsynth_engine.utils.download import fetch_model
    from diffsynth_engine.utils.video import save_video
    config = WanModelConfig(
    model_path=fetch_model("muse/wan2.1-14b-bf16", path="dit.safetensors"),
    t5_path=fetch_model("muse/wan2.1-umt5", path="umt5.safetensors"),
    vae_path=fetch_model("muse/wan2.1-vae", path="vae.safetensors"),
    )
    pipe = WanVideoPipeline.from_pretrained(config)
    video = pipe(
    prompt="小狗在草地上奔跑,阳光照耀,背景有野花和蓝天",
    num_frames=41,
    width=848,
    height=480,
    seed=42,
    )
    save_video(video, "wan_t2v.mp4", fps=15)
    
  • Ausgewählte Beschreibung
    Es dauert 358 Sekunden, um 2 Sekunden Video auf einer einzigen Karte zu erzeugen. Wenn Sie 4 A100-GPUs verwenden und Tensor-Parallelität aktivieren (parallelism=4, use_cfg_parallel=True),时间缩短至 114 秒,加速比达 3.14 倍。

3. geringe Speicheroptimierung

  • Verfahren
    Im FLUX-Beispiel wird die offload_mode umwandeln in sequential_cpu_offload::

    pipe = FluxImagePipeline.from_pretrained(config, offload_mode="sequential_cpu_offload").eval()
    
  • Ausgewählte Beschreibung
    Die Anforderungen an den Grafikspeicher wurden von 23 GB auf 3,52 GB für durchschnittliche Geräte reduziert. Die Quantisierungsmodi (wie q4_k_s) sorgen für ein besseres Gleichgewicht zwischen Geschwindigkeit und Qualität und liefern leicht reduzierte, aber immer noch nützliche Ergebnisse.

4. paralleles Denken mit mehreren Karten

  • Verfahren
    Im Beispiel Wan2.1 fügen Sie den Parameter parallel hinzu:

    pipe = WanVideoPipeline.from_pretrained(config, parallelism=4, use_cfg_parallel=True)
    
  • Ausgewählte Beschreibung
    Unterstützt parallele Berechnungen mit mehreren GPUs. 2 GPUs beschleunigen 1,97x, 4 GPUs beschleunigen 3,14x für industrielle Anwendungen.

caveat

  • Hardware-Voraussetzung8 GB Videospeicher werden für die Bilderzeugung empfohlen, 24 GB für die Videoerzeugung oder Konfigurationen mit mehreren Karten.
  • ModellpfadUm sicherzustellen, dass fetch_model Der heruntergeladene Pfad ist korrekt, andernfalls müssen Sie ihn manuell angeben.
  • Hinweis auf die DokumentationSiehe die offizielle GitHub-Seite für weitere Verwendung. <https://github.com/modelscope/DiffSynth-Engine>.

 

Anwendungsszenario

  1. persönliche Schöpfung
    Nutzer können mit FLUX künstlerische Bilder oder mit Wan2.1 kurze Videos erstellen, die sich zum Teilen in sozialen Medien eignen.
  2. Industrieller Einsatz
    Unternehmen können das parallele Denken mit mehreren Karten nutzen, um schnell hochwertige Videoinhalte für Werbung oder Filmproduktion zu erstellen.
  3. Technische Studien
    Die Entwickler können den Code ändern, verschiedene Modelle und quantitative Strategien testen und die Optimierung der KI-Technologie vorantreiben.
  4. Bildung und Ausbildung
    Die Schüler können die praktische Anwendung der Diffusionsmodellierung erlernen und die Prinzipien der KI-Erzeugung durch eine einfache Installation erkunden.

 

QA

  1. Was ist, wenn die Installation fehlschlägt?
    Überprüfen Sie die Python-Version und die Netzwerkverbindung. Stellen Sie sicher, dass pip auf dem neuesten Stand ist (pip install --upgrade pip), oder laden Sie die Abhängigkeiten manuell herunter.
  2. Welche Modelle werden unterstützt?
    Unterstützt Basismodelle wie FLUX, Wan2.1 und LoRA-kompatible Feinabstimmungsmodelle für die Bild- und Videoerzeugung.
  3. Funktioniert ein Low-Profile-Computer?
    Dose. Anpassungen offload_mode Nach den Quantisierungsparametern kann FLUX mit 4 GB RAM betrieben werden.
  4. Wie richte ich die Parallelität von mehreren Karten ein?
    Während der Initialisierung der Pipeline hinzugefügt parallelism Parameter, stellen Sie sicher, dass die Anzahl der GPUs übereinstimmt.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " DiffSynth-Engine: Open-Source-Engine für den Einsatz von FLUX mit geringem Umfang, Wan 2.1
de_DEDeutsch