Nachrichten | Methodik | Fähigkeiten | Schnellstart | Feinabstimmung | Lizenz | Zitat
03.11.2024: Replikate-Demo und API hinzugefügt:
28.10.2024: Wir veröffentlichen eine neue Version des Inferenzcodes, die die Speichernutzung und den Zeitaufwand optimiert. Ausführliche Informationen finden Sie unter docs/inference.md.
22.10.2024: ? Wir veröffentlichen den Code für OmniGen. Inferenz: docs/inference.md Trainieren: docs/fine-tuning.md
22.10.2024: ? Wir veröffentlichen die erste Version von OmniGen. Modellgewicht: Shitao/OmniGen-v1 HF Demo: ?
OmniGen ist ein einheitliches Bildgenerierungsmodell, das aus multimodalen Eingabeaufforderungen eine breite Palette von Bildern generieren kann. Es ist so konzipiert, dass es einfach, flexibel und benutzerfreundlich ist. Wir stellen Inferenzcode bereit, damit jeder mehr Funktionalitäten von OmniGen erkunden kann.
Bestehende Bilderzeugungsmodelle erfordern oft das Laden mehrerer zusätzlicher Netzwerkmodule (wie ControlNet, IP-Adapter, Reference-Net usw.) und die Durchführung zusätzlicher Vorverarbeitungsschritte (z. B. Gesichtserkennung, Posenschätzung, Zuschneiden usw.), um ein zufriedenstellendes Bild zu generieren Bild. Wir glauben jedoch, dass das zukünftige Paradigma der Bilderzeugung einfacher und flexibler sein sollte, d.
Aufgrund der begrenzten Ressourcen besteht bei OmniGen noch Raum für Verbesserungen. Wir werden es weiter optimieren und hoffen, dass es zu universelleren Bilderzeugungsmodellen inspiriert. Sie können OmniGen auch ganz einfach optimieren, ohne sich Gedanken über den Entwurf von Netzwerken für bestimmte Aufgaben machen zu müssen; Sie müssen lediglich die entsprechenden Daten vorbereiten und dann das Skript ausführen. Der Fantasie sind keine Grenzen mehr gesetzt; Jeder kann jede Bildgenerierungsaufgabe konstruieren, und vielleicht können wir sehr interessante, wunderbare und kreative Dinge erreichen.
Wenn Sie Fragen, Ideen oder interessante Aufgaben haben, die OmniGen erledigen soll, können Sie diese gerne mit uns besprechen: [email protected], [email protected], [email protected]. Wir freuen uns über jedes Feedback, das uns hilft, das Modell zu verbessern.
Einzelheiten können Sie unserem Papier entnehmen.
OmniGen ist ein einheitliches Bildgenerierungsmodell, mit dem Sie verschiedene Aufgaben ausführen können, einschließlich, aber nicht beschränkt auf, Text-zu-Bild-Generierung, subjektgesteuerte Generierung, identitätserhaltende Generierung, Bildbearbeitung und bildbedingte Generierung. OmniGen benötigt keine zusätzlichen Plugins oder Vorgänge, sondern kann die Merkmale (z. B. erforderliches Objekt, menschliche Pose, Tiefenkartierung) in Eingabebildern entsprechend der Textaufforderung automatisch identifizieren. Einige Beispiele stellen wir in inference.ipynb vor. Und in inference_demo.ipynb zeigen wir eine interessante Pipeline zum Generieren und Ändern eines Bildes.
Hier sind die Abbildungen der Fähigkeiten von OmniGen:
Über OmniGen können Sie die Bilderzeugung flexibel steuern
Generierung verweisender Ausdrücke: Sie können mehrere Bilder eingeben und eine einfache, allgemeine Sprache verwenden, um auf die Objekte in diesen Bildern zu verweisen. OmniGen kann automatisch die notwendigen Objekte in jedem Bild erkennen und darauf basierend neue Bilder generieren. Es sind keine zusätzlichen Vorgänge wie Bildzuschnitt oder Gesichtserkennung erforderlich.
Wenn Sie mit bestimmten Funktionen nicht ganz zufrieden sind oder neue Funktionen hinzufügen möchten, können Sie eine Feinabstimmung von OmniGen versuchen.
Installation über Github:
Git-Klon https://github.com/staoxiao/OmniGen.gitcd OmniGen pip install -e .
Hier einige Beispiele:
from OmniGen import OmniGenPipelinepipe = OmniGenPipeline.from_pretrained("Shitao/OmniGen-v1") # Hinweis: Ihr lokaler Modellpfad ist ebenfalls akzeptabel, z. B. „pipe = OmniGenPipeline.from_pretrained(your_local_model_path)“, wobei alle Dateien in your_local_model_path als https://huggingface.co/Shitao/OmniGen-v1/tree/main organisiert sein sollten # Hinweis: Wenn der ursprüngliche Link https://huggingface.co/Shitao/OmniGen-v1/tree/main beim Herunterladen instabil ist, wird empfohlen, diesen Spiegellink https://hf-mirror.com/Shitao/OmniGen zu verwenden -v1/tree/main oder auf andere Weise in https://hf-mirror.com/ ## Text to Imageimages = pipe(prompt="Ein lockiger Mann in einem roten Hemd trinkt Tee.", height=1024, Breite = 1024, Guidance_scale = 2,5, Seed = 0, )images[0].save("example_t2i.png") # Ausgabe-PIL-Bild speichern## Multimodal zu Bild# In der Eingabeaufforderung verwenden wir den Platzhalter, um das Bild darzustellen. Der Bildplatzhalter sollte das Format <|image_*|># haben. Sie können mehrere Bilder in den input_images hinzufügen. Bitte stellen Sie sicher, dass jedes Bild seinen Platzhalter hat. Für die Liste input_images [img1_path, img2_path] muss die Eingabeaufforderung beispielsweise zwei Platzhalter haben: <|image_1|>, <|image_2|>.images = Pipe (prompt="Ein Mann in einem schwarzen Hemd liest ein Buch. Der Mann ist der richtige Mann in <|image_1|>.",input_images=["./imgs/test_cases/two_man.jpg "],height=1024, width=1024,guidance_scale=2.5, img_guidance_scale=1.6,seed=0)images[0].save("example_ti2i.png") # Ausgabe-PIL-Bild speichern
Wenn nicht genügend Arbeitsspeicher vorhanden ist, können Sie offload_model=True
festlegen. Wenn die Inferenzzeit bei der Eingabe mehrerer Bilder zu lang ist, können Sie max_input_image_size
reduzieren. Informationen zu den erforderlichen Ressourcen und der Methode zur effizienten Ausführung von OmniGen finden Sie unter docs/inference.md#requiremented-resources.
Weitere Beispiele zur Bildgenerierung finden Sie in inference.ipynb und inference_demo.ipynb
Weitere Einzelheiten zum Argument in Inferenz finden Sie unter docs/inference.md.
Kommt bald.
Wir erstellen eine Online-Demo in Huggingface.
Für die lokale Gradio-Demo müssen Sie pip install gradio spaces
installieren und können dann Folgendes ausführen:
pip install gradio spacepython app.py
Wir stellen ein Trainingsskript train.py
zur Feinabstimmung von OmniGen bereit. Hier ist ein Spielzeugbeispiel zur LoRA-Feinabstimmung:
Beschleunigung des Starts --num_processes=1 train.py --model_name_or_path Shitao/OmniGen-v1 --batch_size_per_device 2 --condition_dropout_prob 0.01 --lr 1e-3 --use_lora --lora_rank 8 --json_file ./toy_data/toy_subject_data.jsonl --image_path ./toy_data/images --max_input_length_limit 18000 --keep_raw_resolution --max_image_size 1024 --gradient_accumulation_steps 1 --ckpt_every 10 --epochs 200 --log_every 1 --results_dir ./results/toy_finetune_lora
Weitere Details (z. B. vollständige Feinabstimmung) finden Sie unter docs/fine-tuning.md.
Wir danken allen Mitwirkenden für ihren Einsatz und heißen neue Mitglieder herzlich willkommen!
Dieses Repo ist unter der MIT-Lizenz lizenziert.
Wenn Sie dieses Repository nützlich finden, denken Sie bitte darüber nach, einen Stern ⭐ zu vergeben und zu zitieren
@article{xiao2024omnigen, title={Omnigen: Unified image generation}, author={Xiao, Shitao and Wang, Yueze and Zhou, Junjie and Yuan, Huaying and Xing, Xingrun and Yan, Ruiran and Wang, Shuting and Huang, Tiejun and Liu, Zheng}, journal={arXiv preprint arXiv:2409.11340}, year={2024} }