Dieses Repo enthält PyTorch-Modelldefinitionen, vorab trainierte Gewichte und Inferenz-/Sampling-Code für unseren Artikel über Hunyuan-DiT. Weitere Visualisierungen finden Sie auf unserer Projektseite.
Hunyuan-DiT: Ein leistungsstarker Diffusionstransformator mit mehreren Auflösungen und feinkörnigem chinesischem Verständnis
DialogGen: Multimodales interaktives Dialogsystem zur Multiturn-Text-zu-Bild-Generierung
15. Juli 2024: HunYuanDiT und Shakker.Ai haben gemeinsam eine Feinabstimmungsveranstaltung basierend auf dem HunYuanDiT 1.2-Modell gestartet. Durch die Veröffentlichung einer Lora oder eines fein abgestimmten Modells basierend auf HunYuanDiT können Sie einen Bonus von bis zu 230 $ von Shakker.Ai verdienen. Weitere Informationen finden Sie unter Shakker.Ai.
15. Juli 2024: ? Aktualisieren Sie ComfyUI, um standardisierte Arbeitsabläufe und Kompatibilität mit Gewichten aus dem t2i-Modul und Lora-Training für die Versionen 1.1/1.2 sowie mit denen, die von Kohya oder dem offiziellen Skript trainiert wurden, zu unterstützen. Weitere Informationen finden Sie unter ComfyUI.
15. Juli 2024: ⚡ Wir bieten Docker-Umgebungen für CUDA 11/12 an, sodass Sie komplexe Installationen umgehen und mit einem einzigen Klick spielen können! Weitere Informationen finden Sie unter Dockers.
08.07.2024: ? Die Version HYDiT-v1.2 ist veröffentlicht. Weitere Informationen finden Sie in HunyuanDiT-v1.2 und Distillation-v1.2.
03.07.2024: ? Die Kohya-hydit-Version ist jetzt für die Modelle v1.1 und v1.2 verfügbar, mit GUI für Rückschlüsse. Die offizielle Kohya-Version wird derzeit überprüft. Weitere Informationen finden Sie unter Kohya.
27. Juni 2024: ? Hunyuan-Captioner wird veröffentlicht und bietet eine detaillierte Beschriftung für Trainingsdaten. Weitere Informationen finden Sie unter mllm.
27. Juni 2024: ? Unterstützen Sie LoRa und ControlNet in Diffusoren. Weitere Informationen finden Sie unter Diffusoren.
27. Juni 2024: ? 6-GB-GPU-VRAM-Inferenzskripte werden veröffentlicht. Weitere Informationen finden Sie unter Lite.
19. Juni 2024: ? ControlNet wird veröffentlicht und unterstützt Canny-, Pose- und Tiefensteuerung. Weitere Informationen finden Sie unter Trainings-/Inferenzcodes.
13. Juni 2024: ⚡ Die Version HYDiT-v1.1 wird veröffentlicht, die das Problem der Bildübersättigung und das Wasserzeichenproblem mildert. Weitere Informationen finden Sie in HunyuanDiT-v1.1 und Distillation-v1.1.
13. Juni 2024: ? Der Trainingscode wird veröffentlicht und bietet Training mit vollständigen Parametern und LoRA-Training.
06.06.2024: ? Hunyuan-DiT ist jetzt in ComfyUI verfügbar. Weitere Informationen finden Sie in ComfyUI.
6. Juni 2024: Wir stellen die Destillationsversion für die Hunyuan-DiT-Beschleunigung vor, die auf NVIDIA-GPUs eine Beschleunigung von 50 % erreicht. Weitere Informationen finden Sie unter Destillation.
05.06.2024: ? Hunyuan-DiT ist jetzt in ? verfügbar. Diffusoren! Bitte überprüfen Sie das Beispiel unten.
04. Juni 2024: Unterstützen Sie Tencent Cloud-Links zum Herunterladen der vorab trainierten Modelle! Bitte überprüfen Sie die untenstehenden Links.
22. Mai 2024: Wir stellen die TensorRT-Version für die Hunyuan-DiT-Beschleunigung vor, die auf NVIDIA-GPUs eine Beschleunigung von 47 % erreicht. Anweisungen finden Sie in den TensorRT-libs.
22. Mai 2024: Wir unterstützen jetzt die Demoversion der Multiturn-Text2Image-Generierung. Bitte überprüfen Sie das Skript unten.
Willkommen bei unserem webbasierten Tencent Hunyuan Bot , wo Sie unsere innovativen Produkte erkunden können! Geben Sie einfach die unten vorgeschlagenen Eingabeaufforderungen oder andere einfallsreiche Eingabeaufforderungen mit zeichnungsbezogenen Schlüsselwörtern ein, um die Hunyuan-Funktion zur Text-zu-Bild-Generierung zu aktivieren. Lassen Sie Ihrer Kreativität freien Lauf und erstellen Sie jedes gewünschte Bild – alles kostenlos!
Sie können einfache Eingabeaufforderungen verwenden, die dem Text in natürlicher Sprache ähneln
画一只穿着西装的猪
Zeichne ein Schwein in einem Anzug
生成一幅画,赛博朋克风,跑车
Generieren Sie ein Gemälde im Cyberpunk-Stil, einen Sportwagen
oder mehrstufige Sprachinteraktionen, um das Bild zu erstellen.
画一个木制的鸟
Zeichne einen Holzvogel
变成玻璃的
in Glas verwandeln
Hunyuan-DiT (Text-zu-Bild-Modell)
Schlussfolgerung
Kontrollpunkte
Destillationsversion
TensorRT-Version
Ausbildung
Lora
Controlnet (Pose, Geschicklichkeit, Tiefe)
6 GB GPU-VRAM-Inferenz
IP-Adapter
Hunyuan-DiT-S-Kontrollpunkte (0,7B-Modell)
Mllm
Schlussfolgerung
Schlussfolgerung
Hunyuan-Captioner (Erneute Beschriftung der rohen Bild-Text-Paare)
Hunyuan-DialogGen (Prompt-Erweiterungsmodell)
Webdemo (Gradio)
Multiturn-T2I-Demo (Gradio)
Cli-Demo
ComfyUI
Diffusoren
Kohya
WebUI
Hunyuan-DiT: Ein leistungsstarker Diffusionstransformator mit mehreren Auflösungen und feinkörnigem chinesischem Verständnis
Beispiele
Anweisungen
Schlussfolgerung
Gradio
ControlNet
6 GB GPU-VRAM-Inferenz
Verwendung von Gradio
Mit ? Diffusoren
Verwenden der Befehlszeile
Weitere Konfigurationen
ComfyUI verwenden
Mit Kohya
Verwendung früherer Versionen
Datenvorbereitung
Vollständiges Parametertraining
LoRA
Installationsanleitung für Linux
Chinesisch-englische zweisprachige DiT-Architektur
Multiturn-Text2Image-Generierung
Nachricht!!
Probieren Sie es im Internet aus
Open-Source-Plan
Inhalt
Abstrakt
Hauptmerkmale von Hunyuan-DiT
Vergleiche
Visualisierung
Anforderungen
Abhängigkeiten und Installation
Vorab trainierte Modelle herunterladen – 1. HF-Mirror verwenden – 2. Download fortsetzen
Ausbildung
Schlussfolgerung
Adapter
Hunyuan-Bildunterschrift
Beschleunigung (für Linux)
BibTeX
Verlauf starten
Wir präsentieren Hunyuan-DiT, einen Text-zu-Bild-Diffusionstransformator mit feinkörnigen Kenntnissen von Englisch und Chinesisch. Um Hunyuan-DiT zu konstruieren, haben wir die Transformatorstruktur, den Textkodierer und die Positionskodierung sorgfältig entworfen. Wir bauen auch von Grund auf eine komplette Datenpipeline auf, um Daten für die iterative Modelloptimierung zu aktualisieren und auszuwerten. Für ein feinkörniges Sprachverständnis trainieren wir ein multimodales großes Sprachmodell, um die Bildunterschriften zu verfeinern. Schließlich kann Hunyuan-DiT einen mehrstufigen, multimodalen Dialog mit Benutzern führen und Bilder entsprechend dem Kontext generieren und verfeinern. Durch unser sorgfältig entwickeltes ganzheitliches menschliches Bewertungsprotokoll mit mehr als 50 professionellen menschlichen Bewertern setzt Hunyuan-DiT im Vergleich zu anderen Open-Source-Modellen einen neuen Stand der Technik bei der Generierung von Chinesisch-zu-Bildern.
Hunyuan-DiT ist ein Diffusionsmodell im latenten Raum, wie in der Abbildung unten dargestellt. Nach dem Modell der latenten Diffusion verwenden wir einen vorab trainierten Variational Autoencoder (VAE), um die Bilder in niedrigdimensionale latente Räume zu komprimieren und ein Diffusionsmodell zu trainieren, um die Datenverteilung mit Diffusionsmodellen zu lernen. Unser Diffusionsmodell wird mit einem Transformator parametrisiert. Um die Textansagen zu kodieren, nutzen wir eine Kombination aus vorab trainiertem zweisprachigen (Englisch und Chinesisch) CLIP und einem mehrsprachigen T5-Encoder.
Für ein Text-zu-Bild-System ist es wichtig, Anweisungen in natürlicher Sprache zu verstehen und eine Multi-Turn-Interaktion mit Benutzern durchzuführen. Es kann dabei helfen, einen dynamischen und iterativen Erstellungsprozess aufzubauen, der die Idee des Benutzers Schritt für Schritt in die Realität umsetzt. In diesem Abschnitt werden wir detailliert beschreiben, wie wir Hunyuan-DiT in die Lage versetzen, Gespräche in mehreren Runden durchzuführen und Bilder zu generieren. Wir trainieren MLLM, um den mehrrunden Benutzerdialog zu verstehen und die neue Textaufforderung für die Bildgenerierung auszugeben.
Um die Generierungsfunktionen von HunyuanDiT und anderen Modellen umfassend zu vergleichen, haben wir einen vierdimensionalen Testsatz erstellt, der Text-Bild-Konsistenz, Ausschluss von KI-Artefakten, Subjektklarheit und Ästhetik umfasst. Mehr als 50 professionelle Gutachter führen die Bewertung durch.
Modell | Open Source | Text-Bild-Konsistenz (%) | Ohne KI-Artefakte (%) | Betreffklarheit (%) | Ästhetik (%) | Gesamt (%) | ||||
---|---|---|---|---|---|---|---|---|---|---|
SDXL | ✔ | 64.3 | 60.6 | 91.1 | 76,3 | 42.7 | ||||
PixArt-α | ✔ | 68,3 | 60.9 | 93,2 | 77,5 | 45,5 | ||||
Spielplatz 2.5 | ✔ | 71.9 | 70,8 | 94,9 | 83,3 | 54.3 | ||||
SD 3 | ✘ | 77.1 | 69,3 | 94,6 | 82,5 | 56,7 | ||||
MidJourney v6 | ✘ | 73,5 | 80.2 | 93,5 | 87,2 | 63.3 | ||||
DALL-E 3 | ✘ | 83,9 | 80,3 | 96,5 | 89,4 | 71,0 | ||||
Hunyuan-DiT | ✔ | 74.2 | 74,3 | 95,4 | 86,6 | 59,0 |
Chinesische Elemente
Lange Texteingabe
Multiturn-Text2Image-Generierung
Dieses Repo besteht aus DialogGen (einem Prompt-Enhancement-Modell) und Hunyuan-DiT (einem Text-to-Image-Modell).
Die folgende Tabelle zeigt die Anforderungen für die Ausführung der Modelle (Batchgröße = 1):
Modell | --load-4bit (DialogGen) | GPU-Spitzenspeicher | GPU |
---|---|---|---|
DialogGen + Hunyuan-DiT | ✘ | 32G | A100 |
DialogGen + Hunyuan-DiT | ✔ | 22G | A100 |
Hunyuan-DiT | - | 11G | A100 |
Hunyuan-DiT | - | 14G | RTX3090/RTX4090 |
Eine NVIDIA-GPU mit CUDA-Unterstützung ist erforderlich.
Wir haben V100- und A100-GPUs getestet.
Minimum : Der mindestens erforderliche GPU-Speicher beträgt 11 GB.
Empfohlen : Für eine bessere Generierungsqualität empfehlen wir die Verwendung einer GPU mit 32 GB Speicher.
Getestetes Betriebssystem: Linux
Beginnen Sie mit dem Klonen des Repositorys:
Git-Klon https://github.com/tencent/HunyuanDiTcd HunyuanDiT
Wir stellen eine Datei environment.yml
zum Einrichten einer Conda-Umgebung bereit. Die Installationsanweisungen von Conda finden Sie hier.
Wir empfehlen die CUDA-Versionen 11.7 und 12.0+.
# 1. Conda-Umgebung vorbereitenconda env create -f ambient.yml# 2. Umgebung aktivierenconda activate HunyuanDiT# 3. Pip dependenciespython -m pip install -r require.txt# installieren# 4. Flash Attention v2 zur Beschleunigung installieren (erfordert CUDA 11.6 oder oben)python -m pip install git+https://github.com/Dao-AILab/[email protected]
Darüber hinaus können Sie Docker auch zum Einrichten der Umgebung verwenden.
# 1. Verwenden Sie den folgenden Link, um die Docker-Image-TAR-Datei herunterzuladen.# Für CUDA 12wget https://dit.hunyuan.tencent.com/download/HunyuanDiT/hunyuan_dit_cu12.tar# Für CUDA 11wget https://dit.hunyuan. tencent.com/download/HunyuanDiT/hunyuan_dit_cu11.tar# 2. Importieren Sie die Docker-TAR-Datei und zeigen Sie die Bildmetainformationen an# Für CUDA 12docker Load -i hunyuan_dit_cu12.tar# Für CUDA 11docker Load -i hunyuan_dit_cu11.tar Docker-Image ls# 3. Führen Sie den Container basierend auf dem Imagedocker aus und führen Sie -dit --gpus all --init --net=host --uts=host --ipc=host --name hunyuandit --security-opt=seccomp= aus unconfined --ulimit=stack=67108864 --ulimit=memlock=-1 --privileged docker_image_tag
Um das Modell herunterzuladen, installieren Sie zunächst die Huggingface-CLI. (Eine ausführliche Anleitung finden Sie hier.)
python -m pip install „huggingface_hub[cli]“
Laden Sie dann das Modell mit den folgenden Befehlen herunter:
# Erstellen Sie ein Verzeichnis mit dem Namen „ckpts“, in dem das Modell gespeichert wird und die Voraussetzungen für die Ausführung von demo.mkdir erfüllt. ckpts# Verwenden Sie das Tool „huggingface-cli“, um das Modell herunterzuladen.# Die Downloadzeit kann je nach Modell zwischen 10 Minuten und 1 Stunde variieren auf Netzwerkbedingungen.huggingface-cli herunterladen Tencent-Hunyuan/HunyuanDiT-v1.2 --local-dir ./ckpts
Wenn Sie in China auf langsame Download-Geschwindigkeiten stoßen, können Sie einen Spiegel ausprobieren, um den Download-Vorgang zu beschleunigen. Zum Beispiel,
HF_ENDPOINT=https://hf-mirror.com Huggingface-cli herunterladen Tencent-Hunyuan/HunyuanDiT-v1.2 --local-dir ./ckpts
huggingface-cli
unterstützt das Fortsetzen von Downloads. Wenn der Download unterbrochen wird, können Sie den Download-Befehl einfach erneut ausführen, um den Download-Vorgang fortzusetzen.
Hinweis: Wenn während des Downloadvorgangs ein Fehler wie No such file or directory: 'ckpts/.huggingface/.gitignore.lock'
auftritt, können Sie den Fehler ignorieren und den Downloadbefehl erneut ausführen.
Alle Modelle werden automatisch heruntergeladen. Weitere Informationen zum Modell finden Sie hier im Hugging Face-Repository.
Modell | #Params | Huggingface-Download-URL | Tencent Cloud-Download-URL |
---|---|---|---|
mT5 | 1,6B | mT5 | mT5 |
CLIP | 350M | CLIP | CLIP |
Tokenizer | - | Tokenizer | Tokenizer |
DialogGen | 7,0B | DialogGen | DialogGen |
sdxl-vae-fp16-fix | 83M | sdxl-vae-fp16-fix | sdxl-vae-fp16-fix |
Hunyuan-DiT-v1.0 | 1,5B | Hunyuan-DiT | Hunyuan-DiT-v1.0 |
Hunyuan-DiT-v1.1 | 1,5B | Hunyuan-DiT-v1.1 | Hunyuan-DiT-v1.1 |
Hunyuan-DiT-v1.2 | 1,5B | Hunyuan-DiT-v1.2 | Hunyuan-DiT-v1.2 |
Datendemo | - | - | Datendemo |
Verwenden Sie die folgenden Befehle, um die Trainingsdaten vorzubereiten.
Abhängigkeiten installieren
Wir bieten eine effiziente Datenverwaltungsbibliothek namens IndexKits an, die das Lesen von Hunderten Millionen Daten während des Trainings unterstützt. Weitere Informationen finden Sie in den Dokumenten.
# 1 Installieren Sie dependenciescd HunyuanDiT pip install -e ./IndexKits
Datendownload
Laden Sie sich gerne die Datendemo herunter.
# 2 Daten herunterladenwget -O ./dataset/data_demo.zip https://dit.hunyuan.tencent.com/download/HunyuanDiT/data_demo.zip entpacken ./dataset/data_demo.zip -d ./dataset mkdir ./dataset/porcelain/arrows ./dataset/porcelain/jsons
Datenkonvertierung
Erstellen Sie eine CSV-Datei für Trainingsdaten mit den in der folgenden Tabelle aufgeführten Feldern.
Felder | Erforderlich | Beschreibung | Beispiel |
---|---|---|---|
image_path | Erforderlich | Bildpfad | ./dataset/porcelain/images/0.png |
text_zh | Erforderlich | Text | 青花瓷风格, 一只蓝色的鸟儿站在蓝色的花瓶上, 周围点缀着白色花朵, 背景是白色 |
md5 | Optional | image md5 (Message Digest-Algorithmus 5) | d41d8cd98f00b204e9800998ecf8427e |
width | Optional | Bildbreite | 1024 |
height | Optional | Bildhöhe | 1024 |
️ Optionale Felder wie MD5, Breite und Höhe können weggelassen werden. Wenn sie weggelassen werden, werden sie vom folgenden Skript automatisch berechnet. Dieser Vorgang kann bei der Verarbeitung umfangreicher Trainingsdaten zeitaufwändig sein.
Wir verwenden Arrow für das Trainingsdatenformat und bieten eine standardmäßige und effiziente In-Memory-Datendarstellung. Zum Konvertieren von CSV-Dateien in das Arrow-Format wird ein Konvertierungsskript bereitgestellt.
# 3 Datenkonvertierung Python ./hydit/data_loader/csv2arrow.py ./dataset/porcelain/csvfile/image_text.csv ./dataset/porcelain/arrows 1
Datenauswahl und Konfigurationsdateierstellung
Wir konfigurieren die Trainingsdaten über YAML-Dateien. In diesen Dateien können Sie Standard-Datenverarbeitungsstrategien zum Filtern, Kopieren, Deduplizieren und mehr in Bezug auf die Trainingsdaten einrichten. Weitere Einzelheiten finden Sie unter ./IndexKits.
Eine Beispieldatei finden Sie in der Datei. Eine vollständige Parameterkonfigurationsdatei finden Sie unter Datei.
Erstellen Sie eine Trainingsdaten-Indexdatei mithilfe einer YAML-Datei.
# Datenvorbereitung mit einfacher Auflösung idk base -c dataset/yamls/porcelain.yaml -t dataset/porcelain/jsons/porcelain.json # Datenvorbereitung mit mehreren Auflösungen idk multireso -c dataset/yamls/porcelain_mt.yaml -t dataset/porcelain/jsons/porcelain_mt.json
Die Verzeichnisstruktur für porcelain
ist:
cd ./dataset Porzellan ├──Bilder/ (Bilddateien) │ ├──0.png │ ├──1.png │ ├──...... ├──csvfile/ (CSV-Dateien mit Text-Bild-Paaren) │ ├──image_text.csv ├──arrows/ (Pfeildateien mit allen notwendigen Trainingsdaten) │ ├──00000.pfeil │ ├──00001.pfeil │ ├──...... ├──jsons/ (endgültige Trainingsdaten-Indexdateien, die während des Trainings Daten aus Pfeildateien lesen) │ ├──porcelain.json │ ├──porcelain_mt.json
Erfordernis:
Die Mindestanforderung ist eine einzelne GPU mit mindestens 20 GB Speicher. Wir empfehlen jedoch die Verwendung einer GPU mit etwa 30 GB Speicher, um eine Auslastung des Host-Speichers zu vermeiden.
Darüber hinaus ermutigen wir Benutzer, die mehreren GPUs über verschiedene Knoten hinweg zu nutzen, um das Training großer Datensätze zu beschleunigen.
Beachten:
Privatanwender können zur Feinabstimmung des Modells auch das leichte Kohya mit etwa 16 GB Speicher nutzen. Derzeit versuchen wir, die Speichernutzung unseres Branchen-Frameworks für Privatanwender weiter zu reduzieren.
Wenn Sie über genügend GPU-Speicher verfügen, versuchen Sie bitte --cpu-offloading
oder --gradient-checkpointing
zu entfernen, um den Zeitaufwand zu senken.
Speziell für verteiltes Training haben Sie die Flexibilität, das Training mit einem oder mehreren Knoten zu steuern, indem Sie Parameter wie --hostfile
und --master_addr
anpassen. Weitere Details finden Sie unter Link.
# Single Resolution TrainingPYTHONPATH=./ sh hydit/train.sh --index-file dataset/porcelain/jsons/porcelain.json# Multi Resolution TrainingPYTHONPATH=./ sh hydit/train.sh --index-file dataset/porcelain/jsons /porcelain_mt.json --multireso --reso-step 64# Training mit alter Version von HunyuanDiT (<= v1.1)PYTHONPATH=./ sh hydit/train_v1.1.sh --index-file dataset/porcelain/jsons/porcelain.json
Nachdem die Prüfpunkte gespeichert wurden, können Sie das Modell mit dem folgenden Befehl auswerten.
# Schlussfolgerung # Sie sollten „log_EXP/xxx/checkpoints/final.pt“ durch Ihren tatsächlichen Pfad ersetzen.python sample_t2i.py --infer-mode fa --prompt "青花瓷风格,一只可爱的哈士奇" --no-enhance - -dit-weight log_EXP/xxx/checkpoints/final.pt --load-key module# Alte Version von HunyuanDiT (<= v1.1)# Sie sollten „log_EXP/xxx/checkpoints/final.pt“ durch Ihren tatsächlichen Pfad ersetzen.python sample_t2i.py --infer-mode fa - -prompt „青花瓷风格,一只可爱的哈士奇“ –model-root ./HunyuanDiT-v1.1 --use-style-cond --size-cond 1024 1024 --beta-end 0.03 --no-enhance --dit-weight log_EXP/xxx/checkpoints/final.pt --load- Schlüsselmodul
Wir stellen Trainings- und Inferenzskripte für LoRA bereit, ausführlicher im ./lora.
# Training für Porzellan LoRA.PYTHONPATH=./ sh lora/train_lora.sh --index-file dataset/porcelain/jsons/porcelain.json# Inferenz unter Verwendung trainierter LORA-Gewichte.python sample_t2i.py --infer-mode fa --prompt „青花瓷风格,一只小狗“ – keine Verbesserung --lora-ckpt log_EXP/001-lora_porcelain_ema_rank64/checkpoints/0001000.pt
Wir bieten zwei Arten von trainierten LoRA-Gewichten für porcelain
und jade
an, Einzelheiten finden Sie unter den Links
cd HunyuanDiT# Verwenden Sie das Tool „huggingface-cli“, um model.huggingface-cli herunterzuladen. Tencent-Hunyuan/HYDiT-LoRA --local-dir ./ckpts/t2i/lora# Schnellstartpython sample_t2i.py --infer-mode fa - -prompt "青花瓷风格,一只猫在追蝴蝶" --no-enhance --load-key ema --lora-ckpt ./ckpts/t2i/lora/porcelain
Beispiele für Trainingsdaten | |||
青花瓷风格,一只蓝色的鸟儿站在蓝色的花瓶上,周围点缀着白色花朵,背景是白色 (Porzellanstil, a Blauer Vogel steht auf einer blauen Vase, umgeben von weißen Blumen, mit weißem Hintergrund. ) | 青花瓷风格,这是一幅蓝白相间的陶瓷盘子,上面描绘着一只狐狸和它的幼崽在森林中漫步,背景是白色(Porzellanstil, dies ist ein blau-weißer Keramikteller, der einen Fuchs und seine Jungen beim Spaziergang im Wald darstellt, mit weißem Hintergrund.) | Porzellan Stil, auf schwarzem Hintergrund steht ein blauer Wolf auf einem blau-weißen Teller, umgeben von Bäumen und dem Mond.) | 青花瓷风格,在蓝色背景上,一只蓝色蝴蝶和白色花朵被放置在中央 (Porzellanstil, auf blauem Hintergrund, in der Mitte sind ein blauer Schmetterling und weiße Blumen platziert.) |
Beispiele für Inferenzergebnisse | |||
青花瓷风格,苏州园林 (Porzellanstil, Suzhou-Gärten.) | 青花瓷风格,一朵荷花 (Porzellanstil, eine Lotusblume.) | 青花瓷风格,一只羊 (Porzellanstil, ein Schaf.) | 青花瓷风格,一个女孩在雨中跳舞(Porzellanstil, ein Mädchen tanzt im Regen.) |
Der Betrieb von HunyuanDiT mit weniger als 6 GB GPU-VRAM ist jetzt basierend auf Diffusoren verfügbar. Hier stellen wir Ihnen Anleitungen und Demo für Ihren schnellen Einstieg zur Verfügung.
Die 6-GB-Version unterstützt Grafikkarten der Nvidia Ampere-Architekturserie wie RTX 3070/3080/4080/4090, A100 usw.
Sie müssen lediglich die folgende Bibliothek installieren:
pip install -U Bitsandbytes pip install git+https://github.com/huggingface/diffusers pip install Torch==2.0.0
Dann können Sie Ihre HunyuanDiT-Text-zu-Bild-Reise direkt unter 6 GB GPU-VRAM genießen!
Hier ist eine Demo für Sie.
cd HunyuanDiT# Schnellstartmodel_id=Tencent-Hunyuan/HunyuanDiT-v1.2-Diffusers-Distilled prompt=一个宇航员在骑马 infer_steps=50 Guidance_scale=6 python3 lite/inference.py ${model_id} ${prompt} ${infer_steps} ${guidance_scale}
Weitere Details finden Sie in ./lite.
Stellen Sie sicher, dass die Conda-Umgebung aktiviert ist, bevor Sie den folgenden Befehl ausführen.
# Standardmäßig starten wir eine chinesische Benutzeroberfläche. Verwenden von Flash Attention für beschleunigt.python app/hydit_app.py --infer-mode fa# Sie können das Erweiterungsmodell deaktivieren, wenn der GPU-Speicher nicht ausreicht.# Die Erweiterung ist erst verfügbar, wenn Sie die App ohne das „--no-“ neu starten. „Enhance“-Flag. python app/hydit_app.py --no-enhance --infer-mode fa# Beginnen Sie mit der englischen UIpython app/hydit_app.py --lang en --infer-mode fa# Starten Sie eine Multi-Turn-T2I-Generierungs-Benutzeroberfläche. # Wenn Ihr GPU-Speicher weniger als 32 GB beträgt, verwenden Sie „--load-4bit“, um die 4-Bit-Quantisierung zu aktivieren, was mindestens 22 GB Speicher erfordert.python app/multiTurnT2I_app.py --infer-mode fa
Anschließend kann über http://0.0.0.0:443 auf die Demo zugegriffen werden. Bitte beachten Sie, dass 0.0.0.0 hier XXXX mit Ihrer Server-IP sein muss.
Bitte installieren Sie PyTorch Version 2.0 oder höher im Voraus, um die Anforderungen der angegebenen Version der Diffusorbibliothek zu erfüllen.
Installieren Sie Diffusoren und stellen Sie sicher, dass die Version mindestens 0.28.1 ist:
pip install git+https://github.com/huggingface/diffusers.git
oder
Pip-Diffusoren installieren
Mit dem folgenden Python-Skript können Sie Bilder mit chinesischen und englischen Eingabeaufforderungen generieren:
import Torchfrom diffusers import HunyuanDiTPipelinepipe = HunyuanDiTPipeline.from_pretrained("Tencent-Hunyuan/HunyuanDiT-v1.2-Diffusers", Torch_dtype=torch.float16)pipe.to("cuda")# Sie können auch die englische Eingabeaufforderung verwenden, da HunyuanDiT sowohl Englisch unterstützt und Chinesisch# prompt = „Ein Astronaut reitet auf einem Pferd“ prompt = "一个宇航员在骑马"image = pipe(prompt).images[0]
Mit unserem destillierten Modell können Sie Bilder noch schneller generieren:
import Torchfrom diffusers import HunyuanDiTPipelinepipe = HunyuanDiTPipeline.from_pretrained("Tencent-Hunyuan/HunyuanDiT-v1.2-Diffusers-Distilled", Torch_dtype=torch.float16)pipe.to("cuda")# Sie können auch die englische Eingabeaufforderung verwenden, da HunyuanDiT dies unterstützt sowohl Englisch als auch Chinesisch# prompt = „Ein Astronaut reitet auf einem Pferd“prompt = "一个宇航员在骑马"image = pipe(prompt, num_inference_steps=25).images[0]
Weitere Details finden Sie in HunyuanDiT-v1.2-Diffusers-Distilled
Weitere Funktionen: Weitere Funktionen wie LoRA und ControlNet finden Sie in der README-Datei von ./diffusers.
Für den Schnellstart stellen wir mehrere Befehle zur Verfügung:
# Nur Text-zu-Bild. Flash Achtung modepython sample_t2i.py --infer-mode fa --prompt "Weiterlesen" --no-enhance# Erzeuge ein Bild mit anderen Bildgrößen.python sample_t2i.py --infer-mode fa --prompt "Neu anzeigen晚" --image-size 1280 768# Prompt Enhancement + Text-zu-Bild. DialogGen wird mit 4-Bit-Quantisierung geladen, es kann jedoch zu Leistungseinbußen kommen.python sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --load-4bit
Weitere Beispielaufforderungen finden Sie in example_prompts.txt
Wir listen einige weitere nützliche Konfigurationen für eine einfache Verwendung auf:
Argument | Standard | Beschreibung |
---|---|---|
--prompt | Keiner | Die Textaufforderung zur Bildgenerierung |
--image-size | 1024 1024 | Die Größe des generierten Bildes |
--seed | 42 | Der zufällige Startwert zum Generieren von Bildern |
--infer-steps | 100 | Die Anzahl der Schritte für die Probenahme |
--negative | - | Die negative Aufforderung zur Bildgenerierung |
--infer-mode | Fackel | Der Inferenzmodus (Torch, Fa oder Trt) |
--sampler | ddpm | Der Diffusionssammler (ddpm, ddim oder dpmms) |
--no-enhance | FALSCH | Deaktivieren Sie das Prompt-Erweiterungsmodell |
--model-root | ckpts | Das Stammverzeichnis der Modellprüfpunkte |
--load-key | ema | Laden Sie das Studentenmodell oder EMA-Modell (EMA oder Modul) |
--load-4bit | Fasle | Laden Sie das DialogGen-Modell mit 4-Bit-Quantisierung |
Unterstützt zwei Workflows: Standard ComfyUI und Diffusers Wrapper, wobei ersterer empfohlen wird.
Unterstützt HunyuanDiT-v1.1 und v1.2.
Unterstützungsmodul, Lora- und Clip-Lora-Modelle, geschult von Kohya.
Support-Modul, Lora-Modelle, trainiert durch offizielle HunyunDiT-Trainingsskripte.
ControlNet kommt bald.
Weitere Details finden Sie unter ./comfyui-hydit
Wir unterstützen benutzerdefinierte Codes für die kohya_ss-GUI und SD-Scripts-Trainingscodes für HunyuanDiT. Weitere Details finden Sie in ./kohya_ss-hydit
Hunyuan-DiT <= v1.1
# ============================= v1.1 ================ ==============# Laden Sie das modelhuggingface-cli herunter, laden Sie Tencent-Hunyuan/HunyuanDiT-v1.1 --local-dir ./HunyuanDiT-v1.1# herunter das Modellpython sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --model-root ./HunyuanDiT-v1.1 --use-style-cond --size-cond 1024 1024 --beta-end 0,03# ============================= v1.0 ================= =============# Modelhuggingface-cli herunterladen Tencent-Hunyuan/HunyuanDiT --local-dir ./HunyuanDiT-v1.0# Inferenz mit Modelpython sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --model-root ./HunyuanDiT-v1.0 --use-style-cond --size-cond 1024 1024 --beta-end 0.03
Wir stellen Schulungsskripte für ControlNet bereit, detailliert im ./controlnet.
# Training für schlaue ControlNet.PYTHONPATH=./ sh hydit/train_controlnet.sh
Wir bieten drei Arten trainierter ControlNet-Gewichte für canny
depth
und pose
an, Einzelheiten finden Sie unter den Links
cd HunyuanDiT# Verwenden Sie das Tool „huggingface-cli“, um das Modell herunterzuladen.# Wir empfehlen die Verwendung destillierter Gewichte als Basismodell für die ControlNet-Inferenz, da unsere bereitgestellten vorab trainierten Gewichte darauf trainiert werden.huggingface-cli herunterladen Tencent-Hunyuan/HYDiT-ControlNet- v1.2 --local-dir ./ckpts/t2i/controlnet Huggingface-cli herunterladen Tencent-Hunyuan/Distillation-v1.2 ./pytorch_model_distill.pt --local-dir ./ckpts/t2i/model# Schnellstartpython3 sample_controlnet.py --infer-mode fa --no-enhance --load -key destillieren --infer-steps 50 --control-type canny --prompt „在夜晚的酒 Aliexpress门前,一座古老的中国风格的狮子雕像矗立着它的眼睛闪烁着光芒,仿佛在守护着这座建筑.背景是夜晚的酒 Aliexpress前, 构图方式是特写, 平视, 居中构图.这张照片呈现" --condition-image-path controlnet/asset/input/canny.jpg --control-weight 1.0
Bedingungseingabe | ||
Canny ControlNet | Tiefenkontrollnetz | Pose ControlNet |
在夜晚的酒 Aliexpress门前, 一座古老的中国风格的狮子雕像矗立着,它的眼睛闪烁着光芒,仿佛在守护着这座建筑.背景是夜晚的酒HQ前,构图方式是特写,平视,居中构图.这张照片呈现了真实摄影风格,蕴含了中国雕塑文化,同时展现了神秘氛围(At Nachts steht vor dem Hotel eine alte Löwenstatue im chinesischen Stil, deren Augen leuchten, als würde sie das Gebäude bewachen. Der Hintergrund ist der Hoteleingang bei Nacht, mit einer Nahaufnahme, auf Augenhöhe und mit zentrierter Komposition. Dieses Foto präsentiert einen realistischen fotografischen Stil, verkörpert die chinesische Skulpturenkultur und offenbart eine mysteriöse Atmosphäre.) | 在茂密的森林中, 一只黑白相间的熊猫静静地坐在绿树红花中, 周围是山川和海洋.背景是白天的森林,光线充足Im dichten Wald sitzt ein schwarz-weißer Panda ruhig zwischen grünen Bäumen und roten Blumen, umgeben von Bergen und Ozeanen. Der Hintergrund ist ein Tageswald mit viel Licht. Das Foto verwendet eine Nahaufnahme, Augenhöhe und eine zentrierte Komposition, um einen realistischen Effekt zu erzielen.) | 在白天的森林中, 一位穿着绿色上衣的亚洲女性站在大象旁边.照片采用了中景、平视和居中构图的方式,呈现出写实的效果.这张照片蕴含了人物摄影文化,并展现了宁静的氛围(In Im Tageswald steht eine asiatische Frau im grünen Hemd neben einem Elefanten. Das Foto verwendet eine mittlere Aufnahme, Augenhöhe und eine zentrierte Komposition, um einen realistischen Effekt zu erzielen. Dieses Bild verkörpert die Kultur der Charakterfotografie und vermittelt eine gelassene Atmosphäre.) |
ControlNet-Ausgabe | ||
Hunyuan-Captioner erfüllt die Anforderungen von Text-zu-Bild-Techniken, indem es ein hohes Maß an Bild-Text-Konsistenz aufrechterhält. Es kann hochwertige Bildbeschreibungen aus verschiedenen Blickwinkeln generieren, einschließlich Objektbeschreibung, Objektbeziehungen, Hintergrundinformationen, Bildstil usw. Unser Code basiert auf der LLaVA-Implementierung.
A. Abhängigkeiten installieren
Die Abhängigkeiten und die Installation sind grundsätzlich dieselben wie beim Basismodell .
B. Modell-Download
# Verwenden Sie das Tool „huggingface-cli“, um model.huggingface-cli herunterzuladen. Laden Sie Tencent-Hunyuan/HunyuanCaptioner --local-dir ./ckpts/captioner herunter
Unser Modell unterstützt drei verschiedene Modi, darunter: direkte Generierung chinesischer Untertitel , Generierung chinesischer Untertitel basierend auf spezifischem Wissen und direkte Generierung englischer Untertitel . Bei den eingefügten Informationen kann es sich entweder um genaue Hinweise oder verrauschte Bezeichnungen (z. B. aus dem Internet gecrawlte Rohbeschreibungen) handeln. Das Modell ist in der Lage, sowohl auf Basis der eingefügten Informationen als auch des Bildinhalts zuverlässige und genaue Beschreibungen zu generieren.
Modus | Eingabeaufforderungsvorlage | Beschreibung |
---|---|---|
caption_zh | 描述这张图片 | Bildunterschrift auf Chinesisch |
insert_content | 根据提示词„{}“,描述这张图片 | Bildunterschrift mit eingefügtem Wissen |
caption_de | Bitte beschreiben Sie den Inhalt dieses Bildes | Bildunterschrift auf Englisch |
A. Einzelbildinferenz auf Chinesisch
python mllm/caption_demo.py --mode "caption_zh" --image_file "mllm/images/demo1.png" --model_path "./ckpts/captioner"
B. Fügen Sie spezifisches Wissen in die Bildunterschrift ein
python mllm/caption_demo.py --mode "insert_content" --content "Inhaltsverzeichnis" --image_file "mllm/images/demo2.png" --model_path "./ckpts/captioner"
C. Einzelbild-Inferenz auf Englisch
python mllm/caption_demo.py --mode "caption_en" --image_file "mllm/images/demo3.png" --model_path "./ckpts/captioner"
D. Rückschluss auf mehrere Bilder auf Chinesisch