AI Personal Learning
und praktische Anleitung
TRAE

UNO: Unterstützung für kundenspezifische Bilderzeugungstools für ein oder mehrere Themen (geeignet für E-Commerce-Grafiken)

Allgemeine Einführung

UNO ist ein Open-Source-Framework zur Bilderzeugung, das vom ByteDance Intelligent Creation Team entwickelt wurde. Es basiert auf FLUX.1-Modell, das sich auf die individuelle Bilderzeugung für ein oder mehrere Subjekte durch einen "Weniger-zu-Mehr"-Verallgemeinerungsansatz konzentriert, löst UNO die Herausforderungen der Datenerweiterung und Subjektkonsistenz in Szenarien mit mehreren Subjekten, indem es die Kontexterzeugungsfähigkeit des Diffusionstransformers (DiT) in Verbindung mit einem hochkonsistenten Datensyntheseprozess nutzt. Es unterstützt die Benutzer bei der Generierung qualitativ hochwertiger Bilder aus Textbeschreibungen und Referenzbildern, was für die personalisierte Bilderstellung, das Design virtueller Charaktere und andere Szenarien weithin anwendbar ist. Der Projektcode ist unter Apache 2.0 lizenziert und die Modellgewichte sind unter CC BY-NC 4.0 lizenziert, geeignet für akademische Forschung und nicht-kommerzielle Nutzung.

UNO: Unterstützung für kundenspezifische Bilderzeugungstools für ein oder mehrere Themen (geeignet für E-Commerce-Grafiken) -1


 

Funktionsliste

  • Erzeugung eines Bildes für ein einzelnes Objekt: Auf der Grundlage eines einzigen Referenzbildes wird ein Bild erzeugt, das mit der Beschreibung übereinstimmt, wobei die Objektmerkmale erhalten bleiben.
  • Generierung von Bildern mit mehreren Objekten: Es werden mehrere spezifische Objekte in derselben Szene generiert, wobei die jeweiligen Merkmale nicht überladen werden.
  • Kontexterzeugung: Ausnutzung der Kontextlernfähigkeit des Diffusionstransformators zur Erzeugung hochkonsistenter Bilder.
  • Optimierung für geringen Speicherbedarf: Unterstützt den fp8-Modus mit einem maximalen Speicherbedarf von ~16 GB für Consumer-GPUs.
  • Modell-Feinabstimmung: bietet Pre-Training und mehrstufige Trainingsstrategien zur Unterstützung der iterativen Optimierung von Text- und Bildmodellen.
  • Open-Source-Unterstützung: Trainingscode, Inferenzcode und Modellgewichte werden bereitgestellt, um Forschern die Erweiterung der Anwendung zu erleichtern.

 

Hilfe verwenden

Einbauverfahren

Um UNO zu verwenden, müssen Sie die Abhängigkeiten in Ihrer lokalen Umgebung installieren und konfigurieren. Im Folgenden finden Sie detaillierte Installationsschritte für Python 3.10 bis 3.12 Umgebungen.

  1. Erstellen einer virtuellen Umgebung
    Erstellen Sie zunächst eine separate virtuelle Python-Umgebung, um Konflikte mit Abhängigkeiten zu vermeiden. Sie können den folgenden Befehl verwenden:

    python -m venv uno_env
    source uno_env/bin/activate  # Linux/MacOS
    uno_env\Scripts\activate  # Windows
    

    Oder verwenden Sie Conda, um eine Umgebung zu erstellen:

    conda create -n uno_env python=3.10 -y
    conda activate uno_env
    
  2. Installation von PyTorch
    Wenn Sie einen AMD-Grafikprozessor, eine NVIDIA RTX 50-Serie oder macOS MPS verwenden, müssen Sie die entsprechende Version von PyTorch manuell installieren. Besuchen Sie die PyTorch-Website (https://pytorch.org/) Wählen Sie die richtige Version aus. Zum Beispiel:

    pip install torch torchvision torchaudio
    
  3. Installieren von UNO-Abhängigkeiten
    Klonen Sie das UNO-Repository und installieren Sie die Abhängigkeiten:

    git clone https://github.com/bytedance/UNO.git
    cd UNO
    pip install -e .  # 仅用于推理
    pip install -e .[train]  # 用于推理和训练
    

    Hinweis: Stellen Sie sicher, dass requirements.txt Abhängigkeiten korrekt installiert sind. Wenn Sie auf Probleme stoßen, prüfen Sie, ob Systembibliotheken fehlen (z. B. die ffmpeg) und durch conda install -c conda-forge ffmpeg Einbau.

  4. Download der Modellprüfpunkte
    UNO basiert auf dem FLUX.1-dev Modell und den dazugehörigen Checkpoints. Es kann auf die folgenden Arten heruntergeladen werden:

    • automatischer DownloadWenn Inferenzskripte ausgeführt werden, werden Checkpoints automatisch durch den hf_hub_download Herunterladen in den Standardpfad (~/.cache/huggingface).
    • Handbuch-Download: Verwenden Sie das Hugging Face CLI, um Modelle herunterzuladen:
      huggingface-cli download black-forest-labs/FLUX.1-dev
      huggingface-cli download xlabs-ai/xflux_text_encoders
      huggingface-cli download openai/clip-vit-large-patch14
      huggingface-cli download bytedance-research/UNO
      

    Legen Sie das Modell nach dem Herunterladen in dem angegebenen Verzeichnis ab (z. B. models/unet im Gesang antworten models/loras).

  5. Überprüfen der Installation
    Führen Sie nach Abschluss der Installation den folgenden Befehl aus, um zu überprüfen, ob die Umgebung korrekt konfiguriert ist:

    python -c "import torch; print(torch.cuda.is_available())"
    

    Wenn die Rückgabe TrueIm Folgenden finden Sie ein Beispiel für eine erfolgreiche Konfiguration der GPU-Umgebung.

Verwendung

UNO bietet eine Gradio-Schnittstelle (app.py) für die interaktive Bilderzeugung, oder Sie können Inferenzskripte über die Befehlszeile ausführen (inference.py). Im Folgenden werden die wichtigsten Arbeitsabläufe beschrieben.

Bilderzeugung über die Gradio-Schnittstelle

  1. Starten der Gradio-Anwendung
    Stellen Sie sicher, dass Gradio installiert ist (enthalten in der requirements.txt (in). Führen Sie den folgenden Befehl aus, um die Schnittstelle zu starten:

    python app.py
    

    Beim Start öffnet der Browser eine lokale Seite (normalerweise die http://127.0.0.1:7860).

  2. Eingabeparameter
    In der Gradio-Schnittstelle:

    • Geben Sie eine Textaufforderung (prompt), beschreiben Sie die Bildszene, die Sie erzeugen möchten, z. B. "eine Katze und ein Hund spielen in einem Park".
    • Laden Sie 1-4 Referenzbilder hoch (image_ref1 bis image_ref4), definieren diese Bilder das Aussehen des Motivs.
    • Setzen Sie den Startwert (seed), um die Zufälligkeit der generierten Ergebnisse zu steuern. Der Standardwert ist 3407.
    • Wählen Sie den Modelltyp (flux-devundflux-dev-fp8 vielleicht flux-schnell), empfohlen flux-dev-fp8 um die Anforderungen an den Grafikspeicher zu reduzieren.
  3. Bilder generieren
    Klicken Sie auf die Schaltfläche Generieren und UNO generiert die Ergebnisse auf der Grundlage der Eingabeaufforderungen und des Referenzbildes. Die Generierungszeit hängt von der Hardwareleistung ab und dauert auf Consumer-GPUs wie der RTX 3090 in der Regel einige Sekunden bis einige Minuten.

Ausführen der Argumentation von der Kommandozeile aus

  1. Vorbereiten auf den Eintritt
    Erstellen Sie eine Konfigurationsdatei, die die Pfade für die Eingabeaufforderung und das Referenzbild enthält, oder geben Sie die Parameter direkt in der Befehlszeile an. Beispiel:

    python inference.py --prompt "A man in a suit, standing in a city" --image_paths "./assets/examples/man.jpg" --model_type "flux-dev-fp8" --save_path "./output"
    
  2. Beschreibung der gemeinsamen Parameter
    • --promptTextbeschreibung: Eine Textbeschreibung, die den Inhalt des erzeugten Bildes definiert.
    • --image_pathsReferenzbildpfad mit Unterstützung für mehrere Bilder.
    • --model_type: Modelltyp, empfohlen flux-dev-fp8.
    • --offloadEnable video memory offloading to reduce video memory usage.
    • --num_stepsAnzahl der Diffusionsschritte, Standardwert 25, beeinflusst die Qualität der Erzeugung.
    • --guidanceGuidance-Faktor: Der Guidance-Faktor, Standardwert 4, steuert, wie gut der Text mit dem Bild übereinstimmt.
  3. Ergebnisse anzeigen
    Das erzeugte Bild wird in der Datei --save_path Das angegebene Verzeichnis (z. B. output/inference).

Featured Function Bedienung

Generierung von Einzelobjekten

  • Verfahren::
    1. Laden Sie ein Bild des Motivs hoch (z. B. ein Foto einer Person).
    2. Geben Sie eine Texteingabe ein, die die Zielszene beschreibt (z. B. "Diese Person geht am Strand spazieren").
    3. Setzen Sie die Auflösung des Referenzbildes auf 512 (Standard).
    4. Um ein Bild zu erzeugen, behält UNO das Aussehen der Merkmale der Person (z. B. Gesicht, Kleidung) bei.
  • caveatAchten Sie darauf, dass das Referenzbild klar ist und das Motiv gut charakterisiert ist, und vermeiden Sie unscharfe oder qualitativ schlechte Bilder.

Generierung von mehreren Subjekten

  • Verfahren::
    1. Laden Sie mehrere Referenzbilder hoch (z. B. ein Foto von einer Katze und ein Foto von einem Hund).
    2. Geben Sie Textaufforderungen ein, um Szenen mit mehreren Themen zu beschreiben (z. B. "Die Katze und der Hund spielen im Gras.").
    3. Setzen Sie die Auflösung des Referenzbildes auf 320 (Standardeinstellung für mehrere Objekte).
    4. Um das Bild zu erzeugen, vermeidet UNO durch die UnoPE-Technik (Universal Rotational Position Embedding) die Verwechslung von Merkmalen.
  • caveatDie Anzahl der Referenzbilder sollte 4 nicht überschreiten, und jedes Motiv sollte auf dem Bild deutlich zu erkennen sein.

Optimierung für geringen Speicherbedarf

  • ausnutzen flux-dev-fp8 Modell ist der Speicherbedarf auf etwa 16 GB gesunken.
  • --offload Parameter, wodurch ein Teil der Berechnungen auf die CPU verlagert wird, was die Anforderungen an den Grafikspeicher weiter reduziert.
  • Für Nutzer von Consumer-GPUs wie der RTX 3090 oder RTX 4090.

Häufig gestellte Fragen

  • unzureichender VideospeicherVersuchen Sie, die Auflösung zu reduzieren (--width im Gesang antworten --height) auf 512x512, oder verwenden Sie die flux-dev-fp8 Modelle.
  • InstallationsfehlerPyTorch: Überprüfen Sie, ob die PyTorch-Version mit der GPU kompatibel ist und installieren Sie gegebenenfalls manuell eine bestimmte Version.
  • Unzureichende Generierung von ErgebnissenAnpassungen --guidance(erhöht auf 5 oder 6) oder --num_steps(erhöht auf 50), um die Bildqualität zu verbessern.

 

Anwendungsszenario

  1. Personalisierte Bilderstellung
    Die Nutzer können ihre eigenen Fotos hochladen und sie mit Textbeschreibungen kombinieren, um Bilder von bestimmten Szenarien zu erzeugen. Wenn man zum Beispiel ein Selfie hochlädt, entsteht ein Bild von "sich selbst, wie man in der Stadt der Zukunft spazieren geht", das sich für die Erstellung von Inhalten für soziale Medien eignet.
  2. Virtueller Charakterentwurf
    Spieleentwickler oder Animatoren können Charakterskizzen hochladen, um Charakterbilder für verschiedene Szenarien zu erstellen und ein einheitliches Erscheinungsbild der Charaktere zu erhalten, das sich für Manga, Animation oder Spieleentwicklung eignet.
  3. Werbung und Marketing
    Marketingteams können Bilder von Produkten oder Markenmaskottchen hochladen, um verschiedene Werbeszenarien zu erstellen (z. B. Produkte, die zu verschiedenen Jahreszeiten gezeigt werden) und die Vielfalt der visuellen Inhalte zu erhöhen.
  4. akademische Forschung
    Forscher können den Open-Source-Code und den Trainingsablauf von UNO nutzen, um die Anwendung von Diffusionsmodellen auf die Generierung von mehreren Probanden zu untersuchen, neue Algorithmen zu validieren oder bestehende Modelle zu optimieren.

 

QA

  1. Welche Hardware wird von UNO unterstützt?
    UNO empfiehlt NVIDIA-GPUs (z. B. RTX 3090 oder 4090) mit mindestens 16 GB Videospeicher. AMD-GPUs und macOS MPS werden unterstützt, aber PyTorch muss manuell konfiguriert werden.
  2. Wie lässt sich die Qualität der erzeugten Bilder verbessern?
    Hinzufügung einer Diffusionsstufe (--num_steps auf 50 gesetzt) oder passen Sie den Bootstrap-Faktor (--guidance (auf 5-6 eingestellt). Achten Sie darauf, dass das Referenzbild klar ist und die Textaufforderungen spezifisch sind.
  3. Wird UNO kommerziell unterstützt?
    Die Modellgewichte sind unter CC BY-NC 4.0 für nicht-kommerzielle Zwecke lizenziert. Die kommerzielle Nutzung unterliegt den Bedingungen der ursprünglichen FLUX.1-dev-Lizenz.
  4. Wie geht man mit der Merkmalsverwirrung bei der Generierung von mehreren Subjekten um?
    UNO Reduzieren Sie Verwirrung mit der UnoPE-Technik. Vergewissern Sie sich, dass die Motivmerkmale jedes Referenzbildes klar sind und dass die Auflösung angemessen reduziert ist (z. B. 320), um den Effekt zu optimieren.
Verwandte Dokumente Download-Adresse
© Download-Ressourcen Urheberrecht gehört dem Autor; alle Ressourcen auf dieser Website sind aus dem Netz, nur für Lernzwecke, bitte unterstützen Sie die ursprüngliche Version!
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " UNO: Unterstützung für kundenspezifische Bilderzeugungstools für ein oder mehrere Themen (geeignet für E-Commerce-Grafiken)
de_DEDeutsch