الأخبار | المنهجية | القدرات | بداية سريعة | فينيتون | الترخيص | الاقتباس
03-11-2024: تمت إضافة النسخة التجريبية وواجهة برمجة التطبيقات:
28-10-2024: قمنا بإصدار نسخة جديدة من كود الاستدلال، لتحسين استخدام الذاكرة وتكلفة الوقت. يمكنك الرجوع إلى docs/inference.md للحصول على معلومات مفصلة.
2024-10-22: ؟ نقوم بإصدار الكود الخاص بـ OmniGen. الاستدلال: docs/inference.md القطار: docs/fine-tuning.md
2024-10-22: ؟ قمنا بإصدار الإصدار الأول من OmniGen. وزن الموديل: Shitao/OmniGen-v1 HF التجريبي: ؟
OmniGen هو نموذج موحد لتوليد الصور يمكنه إنشاء نطاق واسع من الصور من خلال مطالبات متعددة الوسائط. وهي مصممة لتكون بسيطة ومرنة وسهلة الاستخدام. نحن نقدم رمز الاستدلال حتى يتمكن الجميع من استكشاف المزيد من وظائف OmniGen.
غالبًا ما تتطلب نماذج إنشاء الصور الحالية تحميل العديد من وحدات الشبكة الإضافية (مثل ControlNet، وIP-Adapter، وReference-Net، وما إلى ذلك) وتنفيذ خطوات معالجة مسبقة إضافية (على سبيل المثال، اكتشاف الوجه، وتقدير الوضعية، والاقتصاص، وما إلى ذلك) لإنشاء صورة مُرضية. صورة. ومع ذلك، فإننا نعتقد أن نموذج إنشاء الصور المستقبلي يجب أن يكون أكثر بساطة ومرونة، أي إنشاء صور مختلفة مباشرة من خلال تعليمات متعددة الوسائط بشكل عشوائي دون الحاجة إلى مكونات إضافية وعمليات، على غرار كيفية عمل GPT في إنشاء اللغة.
نظرًا للموارد المحدودة، لا يزال لدى OmniGen مجال للتحسين. سنستمر في تحسينه، ونأمل أن يلهم المزيد من نماذج توليد الصور العالمية. يمكنك أيضًا ضبط OmniGen بسهولة دون القلق بشأن تصميم الشبكات لمهام محددة؛ كل ما عليك فعله هو إعداد البيانات المقابلة، ثم تشغيل البرنامج النصي. لم يعد الخيال محدودا؛ يمكن لأي شخص إنشاء أي مهمة لتوليد الصور، وربما يمكننا تحقيق أشياء مثيرة للاهتمام ورائعة ومبتكرة للغاية.
إذا كانت لديك أي أسئلة أو أفكار أو مهام مثيرة للاهتمام تريد أن ينجزها OmniGen، فلا تتردد في مناقشتها معنا: [email protected]، [email protected]، [email protected]. نحن نرحب بأي تعليقات لمساعدتنا في تحسين النموذج.
يمكنك رؤية التفاصيل في ورقتنا.
OmniGen هو نموذج موحد لإنشاء الصور يمكنك استخدامه لأداء مهام متنوعة، بما في ذلك، على سبيل المثال لا الحصر، إنشاء نص إلى صورة، والتوليد القائم على الموضوع، وتوليد الحفاظ على الهوية، وتحرير الصور، والتوليد المكيف للصور. لا يحتاج OmniGen إلى مكونات إضافية أو عمليات إضافية، حيث يمكنه التعرف تلقائيًا على الميزات (على سبيل المثال، الكائن المطلوب، الوضع البشري، رسم خرائط العمق) في الصور المدخلة وفقًا للمطالبة النصية. نعرض بعض الأمثلة في inference.ipynb. وفي inference_demo.ipynb، نعرض مسارًا مثيرًا للاهتمام لإنشاء صورة وتعديلها.
فيما يلي الرسوم التوضيحية لإمكانيات OmniGen:
يمكنك التحكم في توليد الصور بمرونة عبر OmniGen
إحالة إنشاء التعبير: يمكنك إدخال صور متعددة واستخدام لغة عامة بسيطة للإشارة إلى الكائنات الموجودة داخل تلك الصور. يمكن لـ OmniGen التعرف تلقائيًا على الكائنات الضرورية في كل صورة وإنشاء صور جديدة بناءً عليها. ليست هناك حاجة إلى عمليات إضافية، مثل قص الصورة أو اكتشاف الوجه.
إذا لم تكن راضيًا تمامًا عن وظائف معينة أو ترغب في إضافة إمكانات جديدة، فيمكنك تجربة ضبط OmniGen.
التثبيت عبر جيثب:
استنساخ بوابة https://github.com/staoxiao/OmniGen.gitcd OmniGen تثبيت النقطة -e .
فيما يلي بعض الأمثلة:
من OmniGen استيراد OmniGenPipelinepipe = OmniGenPipeline.from_pretrained("Shitao/OmniGen-v1") # ملاحظة: مسار النموذج المحلي الخاص بك مقبول أيضًا، مثل 'pipe = OmniGenPipeline.from_pretrained(your_local_model_path)'، حيث يجب تنظيم جميع الملفات الموجودة في مسار_local_model_path على النحو التالي: https://huggingface.co/Shitao/OmniGen-v1/tree/main # ملاحظة: إذا كان الرابط الأصلي https://huggingface.co/Shitao/OmniGen-v1/tree/main غير مستقر عند التنزيل، فمن المستحسن استخدام رابط المرآة هذا https://hf-mirror.com/Shitao/OmniGen -v1/tree/main أو طرق أخرى في https://hf-mirror.com/ ## Text to Imageimages = Pipe(prompt="رجل ذو شعر مجعد يرتدي قميصًا أحمر يشرب الشاي.", height=1024, العرض = 1024، مقياس التوجيه = 2.5، البذرة = 0، )images[0].save("example_t2i.png") # حفظ مخرجات PIL Image## Multi-modal to Image# في الموجه، نستخدم العنصر النائب لتمثيل الصورة. يجب أن يكون العنصر النائب للصورة بتنسيق <|image_*|># يمكنك إضافة صور متعددة في input_images. يرجى التأكد من أن كل صورة لها عنصر نائب خاص بها. على سبيل المثال، بالنسبة لقائمة input_images [img1_path, img2_path]، يجب أن يحتوي الموجه على عنصرين نائبين: <|image_1|>, <|image_2|>.images = Pipe (prompt="رجل يرتدي قميصًا أسود يقرأ كتابًا. الرجل هو الرجل المناسب في <|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") # حفظ صورة PIL للإخراج
في حالة نفاد الذاكرة، يمكنك تعيين offload_model=True
. إذا كان وقت الاستدلال طويلاً جدًا عند إدخال صور متعددة، فيمكنك تقليل max_input_image_size
. للحصول على الموارد المطلوبة وطريقة تشغيل OmniGen بكفاءة، يرجى الرجوع إلى docs/inference.md#requiremented-resources.
لمزيد من الأمثلة على إنشاء الصور، يمكنك الرجوع إلى inference.ipynb وinference_demo.ipynb
لمزيد من التفاصيل حول الوسيطة في الاستدلال، يرجى الرجوع إلى docs/inference.md.
قريباً.
نقوم ببناء عرض توضيحي عبر الإنترنت في Huggingface.
للحصول على عرض توضيحي للتدرج المحلي، تحتاج إلى تثبيت pip install gradio spaces
، ومن ثم يمكنك تشغيل:
نقطة تثبيت Gradio spacepython app.py
نحن نقدم برنامج تدريبي train.py
لضبط OmniGen. فيما يلي مثال على لعبة حول LoRA Finetune:
تسريع الإطلاق --num_processes=1 Train.py --model_name_or_path Shitao/OmniGen-v1 --batch_size_per_device 2 --condition_dropout_prob 0.01 --ل1ه-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 - العصور 200 --log_every 1 --results_dir ./results/toy_finetune_lora
يرجى الرجوع إلى docs/fine-tuning.md لمزيد من التفاصيل (على سبيل المثال، الدقة الكاملة).
نشكر جميع المساهمين على جهودهم ونرحب ترحيبًا حارًا بالأعضاء الجدد للانضمام إلينا!
تم ترخيص هذا الريبو بموجب ترخيص MIT.
إذا وجدت هذا المستودع مفيدًا، فيرجى التفكير في منحه نجمة ⭐ واستشهادًا
@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} }