أنتوني تشين 1,2 · جيانجين شو 3 · وينزهاو زينج 4 · جاولي داي 1 · ييدا وانغ 5 · رينروي تشانغ 6 · هاوفان وانغ 2 · شانغهانغ تشانغ 1*
1 جامعة بكين · 2 فريق InstantX · 3 جامعة كارنيجي ميلون · 4 جامعة كاليفورنيا في بيركلي · 5 شركة Li Auto Inc. · 6 CUHK
تعمل المطالبة الإقليمية الخالية من التدريب لمحولات الانتشار (Regional-Prompting-FLUX) على تمكين محولات الانتشار (أي FLUX) مع إمكانية إنشاء تحويل النص إلى صورة تركيبية محببة بطريقة خالية من التدريب. من الناحية التجريبية، نظهر أن طريقتنا فعالة للغاية ومتوافقة مع LoRA وControlNet.
نحن نستنتج أن السرعة أسرع بكثير من التنفيذ القائم على لعبة RPG، ولكنها تستهلك ذاكرة GPU أقل .
[2024/11/05] أطلقنا الكود، فلا تتردد في تجربته!
[2024/11/05] نصدر التقرير الفني!
الأقنعة الإقليمية | إعدادات | النتيجة المولدة |
---|---|---|
الأحمر: منطقة الكوكتيل (xyxy: [450، 560، 960، 900]) الأخضر: منطقة الجدول (xyxy: [320، 900، 1280، 1280]) الأزرق: الخلفية | موجه القاعدة: "كوكتيل استوائي على طاولة خشبية على الشاطئ أثناء غروب الشمس." موجه الخلفية: "صورة" المطالبات الإقليمية:
| |
الأحمر: منطقة قوس قزح (xyxy: [0، 0، 1280، 256]) الأخضر: منطقة السفينة (xyxy: [0, 256, 1280, 520]) الأصفر: منطقة الأسماك (xyxy: [0، 520، 640، 768]) الأزرق: منطقة الكنز (xyxy: [640، 520، 1280، 768]) | موجه القاعدة: "تبحر سفينة مهيبة تحت قوس قزح بينما تنزلق الكائنات البحرية النابضة بالحياة عبر المياه الكريستالية بالأسفل، مجسدة عجائب الطبيعة، بينما يقع صندوق كنز قديم صدئ مختبئًا في قاع المحيط." المطالبات الإقليمية:
| |
الأحمر: المرأة مع منطقة الشعلة (xyxy: [128، 128، 640، 768]) الأخضر: الخلفية | موجه القاعدة: "تقف امرأة عجوز ممسكة بشعلة مشتعلة، بينما تحتدم معركة شرسة في الخلفية، تستحوذ على القوة والمأساة في مشهد حرب تاريخي." موجه الخلفية: "صورة." المطالبات الإقليمية:
| |
الأحمر: منطقة الكلاب (assets/demo_custom_0_mask_0.png) الأخضر: منطقة القطة (assets/demo_custom_0_mask_1.png) الأزرق: الخلفية | موجه القاعدة: "كلب وقط يجلسان على العشب الأخضر، في مكان مشمس بالخارج." موجه الخلفية: "صورة" المطالبات الإقليمية:
| ملاحظة: التوليد باستخدام قناع التجزئة هو وظيفة تجريبية، والصورة التي تم إنشاؤها ليست مقيدة تمامًا بالمناطق، ونحن نفترض أن السبب هو أن القناع يعاني من التدهور أثناء عملية الاختزال. |
الأقنعة الإقليمية | إعدادات | النتيجة المولدة |
---|---|---|
الأحمر: منطقة الديناصورات (xyxy: [0, 0, 640, 1280]) الأزرق: منطقة المدينة (xyxy: [640, 0, 1280, 1280]) | موجه القاعدة: "أسلوب الرسم: ديناصور لطيف ينفخ نيرانًا صغيرة بشكل هزلي فوق مدينة كرتونية في مشهد مبهج." المطالبات الإقليمية:
| |
الأحمر: منطقة الجسم الغريب (xyxy: [320، 320، 640، 640]) | موجه القاعدة: "جسم غامض لطيف على طراز الرسوم المتحركة يطفو فوق أحد شوارع المدينة المشمسة، ويمزج الأسلوب الفني بين عناصر الواقع والتوضيح" موجه الخلفية: "صورة" المطالبات الإقليمية:
|
الأقنعة الإقليمية | إعدادات | النتيجة المولدة |
---|---|---|
الأحمر: منطقة السيارة الأولى (xyxy: [0, 0, 426, 968]) الأخضر: منطقة السيارة الثانية (xyxy: [426, 0, 853, 968]) الأزرق: منطقة السيارة الثالثة (xyxy: [853, 0, 1280, 968]) | موجه القاعدة: "ثلاث سيارات رياضية عالية الأداء، الأحمر والأزرق والأصفر، تتسابق جنبًا إلى جنب في أحد شوارع المدينة" المطالبات الإقليمية:
| |
الأحمر: منطقة المرأة (xyxy: [0, 0, 640, 968]) الأخضر: منطقة الشاطئ (xyxy: [640, 0, 1280, 968]) | موجه القاعدة: "امرأة تمشي على طول شاطئ جميل ذو منظر ساحلي خلاب." المطالبات الإقليمية:
|
نحن نستخدم الالتزام السابق من مستودعات الناشرين لضمان إمكانية التكرار، حيث وجدنا أن إصدار الناشرين الجديد قد يواجه نتائج مختلفة.
# install diffusers locally git clone https://github.com/huggingface/diffusers.git cd diffusers # reset diffusers version to 0.31.dev, where we developed Regional-Prompting-FLUX on, different version may experience different results git reset --hard d13b0d63c0208f2c4c078c4261caf8bf587beb3b pip install -e ".[torch]" cd .. # install other dependencies pip install -U transformers sentencepiece protobuf PEFT # clone this repo git clone https://github.com/antonioo-c/Regional-Prompting-FLUX.git # replace file in diffusers cd Regional-Prompting-FLUX cp transformer_flux.py ../diffusers/src/diffusers/models/transformers/transformer_flux.py
راجع المثال التفصيلي (بما في ذلك LoRAs وControlNets) في infer_flux_regional.py. فيما يلي مثال للبدء السريع.
استيراد الشعلة من خط أنابيب_flux_regional import RegionalFluxPipeline، RegionalFluxAttnProcessor2_0pipeline = RegionalFluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev"، torch_dtype=torch.bfloat16).to("cuda")attn_procs = {}للاسم في Pipe.transformer.attn_processors.keys():if 'transformer_blocks' في الاسم والاسم.endswith("attn.processor"):attn_procs[name] = RegionalFluxAttnProcessor2_0()else:attn_procs[name] = Pipe.transformer.attn_processors[name]pipeline.transformer.set_attn_processor(attn_procs)## الإعدادات العامةimage_width = 1280image_height = 768num_inference_steps = 24seed = 124base_prompt = "امرأة عجوز تقف حاملة شعلة مشتعلة، بينما تحتدم معركة شرسة في الخلفية، التقاط كل من القوة والمأساة في مشهد حرب تاريخي. : "تقف امرأة كريمة ترتدي ثيابًا قديمة في المقدمة، ووجهها مضاء بالشعلة التي تحملها عاليًا. تعبيرها هو تعبير عن التصميم والحزن، وملابسها ومظهرها يعكسان الفترة التاريخية. تُلقي الشعلة ظلالاً دراماتيكية على ملامحها، وتتراقص ألسنة اللهب بحيوية ضد الظلام. ""القناع": [128، 128، 640، 768] } }## إعدادات عامل التحكم في المنطقة = 10 # الأكبر يعني تحكمًا أقوى، موصى به بين 5-10double_inject_blocks_interval = 1 # 1 يعني أقوى عناصر التحكمle_inject_blocks_interval = 1 # 1 يعني أقوى نسبة_تحكم = 0.2 # الأصغر يعني تحكمًا أقوىregional_prompts = []regional_masks = []background_mask = torch.ones((image_height, image_width))لمنطقة_idx، المنطقة في Regional_prompt_mask_pairs.items():description = المنطقة['description']قناع = المنطقة['mask']x1, y1, x2, y2 = قناع قناع = torch.zeros ((image_height, image_width))القناع[y1:y2, x1:x2] = 1.0background_mask -= Maskregional_prompts.append(description)regional_masks.append(mask)# إذا كانت الأقنعة الإقليمية لا تغطي الصورة بأكملها، قم بإلحاق موجه الخلفية وmaskif الخلفية_mask.sum() > 0:regional_prompts.append(background_prompt)regional_masks.append (background_mask) الصورة = خط الأنابيب(prompt=base_prompt,width=image_width, height=image_height,mask_inject_steps=mask_inject_steps,num_inference_steps=num_inference_steps,generator=torch.Generator("cuda").manual_seed(seed),joint_attention_kwargs={"regional_prompts": Regional_prompts,"regional_masks": Regional_masks,"double_inject_blocks_interval": double_inject_blocks_interval,"single_inject_blocks_interval": Single_inject_blocks_interval,"base_ratio": base_ratio}, ).images[0]image.save(f"output.jpg")
عملنا برعاية HuggingFace وfal.ai. شكرًا!
إذا وجدت أن Regional-Prompting-FLUX مفيد لأبحاثك وتطبيقاتك، فيرجى الاستشهاد بنا باستخدام BibTeX:
@article{chen2024training, title={مطالبة إقليمية خالية من التدريب لمحولات الانتشار}، المؤلف={Chen، Anthony and Xu، Jianjin and Zheng، Wenzhao and Dai، Gaole and Wang، Yida and Zhang، Renrui and Wang، Haofan and Zhang , Shanghang}, Journal={arXiv preprint arXiv:2411.02395}, year={2024}}
إذا كانت لديك أي أسئلة، فلا تتردد في الاتصال بنا عبر [email protected].