AI Personal Learning
und praktische Anleitung
CyberKnife-Zeichenspiegel

InstantCharacter: Ein Open-Source-Tool zur Erzeugung konsistenter Zeichen aus einem einzigen Bild

Allgemeine Einführung

InstantCharacter ist ein Open-Source-Projekt, das von Tencent Hunyuan und dem InstantX-Team entwickelt wurde und auf GitHub gehostet wird. Es verwendet ein Referenzbild und eine Textbeschreibung, um konsistent aussehende Charakterbilder für eine Vielzahl von Szenen und Stilen zu erzeugen. Das Projekt basiert auf der Diffusion-Transformer-Technologie, die die Beschränkungen der traditionellen U-Net-Architektur durchbricht und eine höhere Bildqualität und Flexibilität bietet. Die Benutzer müssen keine komplexen Einstellungen vornehmen, sondern können durch einfache Bedienung Charakterbilder erzeugen, die der Beschreibung entsprechen, die in der Animation, in Spielen und in der digitalen Kunst weit verbreitet ist. Das Projekt unterstützt das Flux.1-Modell und bietet eine stilisierte LoRA-Anpassung, um den Benutzern eine stilisierte Erzeugung zu ermöglichen.

InstantCharacter: Ein Open-Source-Werkzeug zur Erzeugung konsistenter Zeichen aus einem einzigen Bild-1


 

Funktionsliste

  • Konsistente Charaktergenerierung aus einem einzigen Bild: Generieren Sie Charakterbilder für verschiedene Szenen, Aktionen und Blickwinkel mit nur einem Referenzbild.
  • Textgesteuerte Generierung: Passen Sie die Bewegungen, Szenen und Stile der Figuren mit Texteingaben an, z. B. "Mädchen spielt Gitarre auf der Straße".
  • Unterstützung der Stilmigration: Kompatibel mit vielen LoRA-Stilen, wie z. B. dem Ghibli-Stil oder dem Makoto Shinkai-Stil, um künstlerische Bilder zu erzeugen.
  • Hochwertige Bildausgabe: Generieren Sie hochauflösende, detaillierte Charakterbilder auf der Grundlage von Flux.1-Modellen.
  • Open-Source-Modell-Unterstützung: Unterstützung für Flux und andere Open-Source-Text-Bild-Modell, können Entwickler frei erweitern die Funktion.
  • Leichtgewichtige Adapter: Verwenden Sie skalierbare Adaptermodule, um den Verbrauch von Rechenressourcen zu reduzieren und die Effizienz der Generierung zu verbessern.
  • Groß angelegte Datensatzoptimierung: Training auf der Grundlage von zehn Millionen Beispieldatensätzen, um die Konsistenz der Rollen und die Kontrollierbarkeit der Texte zu gewährleisten.

 

Hilfe verwenden

Einbauverfahren

InstantCharacter erfordert eine GPU-fähige Umgebung, empfohlen wird ein NVIDIA-Grafikprozessor (mindestens 48 GB VRAM, optimiert für 24 GB). Nachfolgend finden Sie die detaillierten Installationsschritte:

  1. Vorbereitung der Umwelt::
    • Installieren Sie Python 3.8 oder höher.
    • Die Installation von PyTorch (mit CUDA-Unterstützung) wird empfohlen. pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118.
    • Um die Abhängigkeitsbibliothek zu installieren, führen Sie folgenden Befehl aus:
      pip install transformers accelerate diffusers huggingface_cli
      
    • Stellen Sie sicher, dass Sie Git und Git LFS auf Ihrem System installiert haben, um große Dateien herunterzuladen.
  2. Klon-Lager::
    • Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus, um das InstantCharacter-Repository zu klonen:
      git clone https://github.com/Tencent/InstantCharacter.git
      cd InstantCharacter
      
  3. Download der Modellprüfpunkte::
    • Laden Sie das Modell von Hugging Face herunter:
      huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
      
    • Wenn Sie keinen Zugriff auf das Hugging Face haben, können Sie eine gespiegelte Adresse verwenden:
      export HF_ENDPOINT=https://hf-mirror.com
      huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
      
    • Überprüfen Sie nach Abschluss des Downloads, ob die Ordnerstruktur Folgendes enthält checkpointsundassetsundmodels usw. Katalog.
  4. Einrichten der Laufzeitumgebung::
    • Stellen Sie sicher, dass der GPU-Treiber und die CUDA-Version mit PyTorch kompatibel sind.
    • Verschieben Sie das Modell und den Code auf ein CUDA-fähiges Gerät, führen Sie die pipe.to("cuda").

Verwendung

Die Hauptfunktion von InstantCharacter besteht darin, Zeichenbilder aus Referenzbildern und Textaufforderungen zu erzeugen. Im Folgenden finden Sie die detaillierte Vorgehensweise:

1. laden von Modellen und Adaptern

  • Verwenden Sie das mitgelieferte pipeline.py Das Skript lädt das Basismodell und die Adapter. Der Beispielcode lautet wie folgt:
    import torch
    from PIL import Image
    from pipeline import InstantCharacterFluxPipeline
    # 设置种子以确保可重复性
    seed = 123456
    # 加载基础模型
    base_model = 'black-forest-labs/FLUX.1-dev'
    ip_adapter_path = 'checkpoints/instantcharacter_ip-adapter.bin'
    image_encoder_path = 'google/siglip-so400m-patch14-384'
    image_encoder_2_path = 'facebook/dinov2-giant'
    # 初始化管道
    pipe = InstantCharacterFluxPipeline.from_pretrained(base_model, torch_dtype=torch.bfloat16)
    pipe.to("cuda")
    pipe.init_adapter(
    image_encoder_path=image_encoder_path,
    image_encoder_2_path=image_encoder_2_path,
    subject_ipadapter_cfg=dict(subject_ip_adapter_path=ip_adapter_path, nb_token=1024)
    )
    
  • Der obige Code lädt das Flux.1-Modell und den IP-Adapter von InstantCharacter und stellt sicher, dass das Modell auf der GPU läuft.

2. die Erstellung von Referenzbildern

  • Wählen Sie ein Bild, das ein Zeichen enthält (z. B. assets/girl.jpg), stellen Sie sicher, dass der Hintergrund einfach ist (z. B. ein weißer Hintergrund).
  • Lädt das Bild und wandelt es in das RGB-Format um:
    ref_image_path = 'assets/girl.jpg'
    ref_image = Image.open(ref_image_path).convert('RGB')
    

3. die Erzeugung von Zeichenbildern (keine Stilmigration)

  • Verwenden Sie Textaufforderungen, um Bilder zu erzeugen und Parameter wie die Anzahl der Inferenzschritte und die Bootstrap-Skala festzulegen:
    prompt = "A girl is playing a guitar in street"
    image = pipe(
    prompt=prompt,
    num_inference_steps=28,
    guidance_scale=3.5,
    subject_image=ref_image,
    subject_scale=0.9,
    generator=torch.manual_seed(seed)
    ).images[0]
    image.save("flux_instantcharacter.png")
    
  • subject_scale Steuert die Rollenkonsistenz, wobei niedrigere Werte die Stilisierung begünstigen (z. B. 0,6 oder 0,8).

4) Stil-Migration mit Style LoRA

  • InstantCharacter unterstützt stilisierte LoRA (z.B. Ghibli oder Makoto Shinkai Stil). Laden Sie LoRA-Dateien und erzeugen Sie stilisierte Bilder:
    lora_file_path = 'checkpoints/style_lora/ghibli_style.safetensors'
    trigger = 'ghibli style'
    prompt = "A girl is playing a guitar in street"
    image = pipe.with_style_lora(
    lora_file_path=lora_file_path,
    trigger=trigger,
    prompt=prompt,
    num_inference_steps=28,
    guidance_scale=3.5,
    subject_image=ref_image,
    subject_scale=0.9,
    generator=torch.manual_seed(seed)
    ).images[0]
    image.save("flux_instantcharacter_style_ghibli.png")
    
  • Austauschbarkeit lora_file_path im Gesang antworten trigger Umschaltbar zwischen verschiedenen Stilen (z.B. Makoto_Shinkai_style.safetensors).

5. die Gradio-Schnittstelle ausführen (optional)

  • Das Projekt bietet eine Gradio-Schnittstelle für eine einfache Interaktion. ausführen app.py::
    python app.py
    
  • Öffnen Sie einen Browser, um auf die lokale Adresse zuzugreifen (z. B. http://127.0.0.1:7860), laden Sie das Bild hoch und geben Sie das Aufforderungswort ein, um das Bild zu erzeugen.

caveat

  • Die Erzeugung von Tierfiguren kann instabil sein, es wird empfohlen, menschliche Figuren zu erstellen.
  • Höhere Auflösungen erfordern mehr Arbeitsspeicher, daher werden GPUs der A100- oder RTX 5000-Serie empfohlen.
  • Modell-Downloads können aufgrund von Netzwerkproblemen unterbrochen werden, es wird empfohlen, die --resume-download Parameter.

 

Anwendungsszenario

  1. Animation und Filmproduktion
    • Erstellen Sie schnell Charakterkonzepte oder Storyboards, um den Vorentwurfszyklus zu verkürzen. Benutzer können Charakterskizzen hochladen, Szenenbeschreibungen eingeben (z. B. "Charakter läuft im Wald") und konsistente Bilder für Animationsvorschauen oder Charaktertests generieren.
  2. Spieleentwicklung
    • Generieren Sie Multi-View- und Multi-Motion-Bilder für Spielcharaktere. Entwickler laden Charakterdesigns hoch und generieren Sprites mit verschiedenen Posen (z. B. "Charakter schwingt ein Schwert") zur Verwendung in 2D- oder 3D-Spielressourcen.
  3. Erstellung digitaler Kunst
    • Künstler verwenden die Style LoRA, um künstlerische Charakterbilder zu erzeugen, z. B. realistische Charaktere, die in den Ghibli-Stil umgewandelt werden, um sie für Illustrationen oder NFT-Kreationen zu verwenden.
  4. Inhalt der sozialen Medien
    • Die Nutzer laden Selfies hoch, um Avatare im Anime-Stil oder animierte Szenen (z. B. "Dancing by myself in a sci-fi city") für personalisierte Inhalte in sozialen Medien zu erstellen.

 

QA

  1. Welche Modelle werden von InstantCharacter unterstützt?
    • Das Flux.1-Modell wird derzeit unterstützt und kann in Zukunft auf andere Open-Source-Text-zu-Bild-Modelle ausgeweitet werden.
  2. Wie viel Videospeicher wird für die Ausführung des Programms benötigt?
    • Empfohlener Speicher von 48 GB, optimiert für 24 GB. Es werden derzeit Quantifizierungstechniken entwickelt, um den Speicherbedarf zu verringern.
  3. Wie lässt sich der Fehler beim Herunterladen des Modells beheben?
    • Verwenden Sie die Spiegeladresse Hugging Face oder --resume-download Parameter, um die Stabilität des Netzes zu gewährleisten.
  4. Warum sind die erzeugten Tierfiguren instabil?
    • Die Trainingsdaten des Modells werden von menschlichen Zeichen dominiert, und die Tiermerkmale sind nicht optimal, was die Verwendung von Bildern menschlicher Zeichen nahelegt.
  5. Ist sie im Handel erhältlich?
    • Die aktuelle Lizenz ist nur für Forschungszwecke bestimmt, für die kommerzielle Nutzung ist eine Lizenz von Tencent erforderlich.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " InstantCharacter: Ein Open-Source-Tool zur Erzeugung konsistenter Zeichen aus einem einzigen Bild
de_DEDeutsch