منفذ MLX للتدفق بناءً على تطبيق ناشرات Huggingface.
قم بتشغيل نماذج التدفق القوية من Black Forest Labs محليًا على جهاز Mac الخاص بك!
Mflux هو منفذ خط على حدة لتنفيذ Flux في مكتبة Huggingface Diffusers إلى Apple MLX. يتم الاحتفاظ MFLUX بشكل هادف وبصورة واضحة - يتم ترميز بنيات الشبكة ولا يتم استخدام أي ملفات تكوين باستثناء الرمز المميزات. الهدف من ذلك هو أن يكون لديك قاعدة كود صغيرة مع الغرض الوحيد من التعبير عن هذه النماذج (وبالتالي تجنب الكثير من التجريدات). في حين أن أولويات MFLUX قابلية القراءة على العمومية والأداء ، يمكن أن تكون سريعة للغاية ، وحتى أسرع كمية.
يتم تنفيذ جميع النماذج من نقطة الصفر في MLX ويتم استخدام الرمز المميزات فقط عبر مكتبة Huggingface Transformers. بخلاف ذلك ، لا يوجد سوى الحد الأدنى من التبعيات مثل Numpy والوسادة للمعالجة البسيطة بعد المعالجة.
بالنسبة للمستخدمين ، فإن أسهل طريقة لتثبيت MFLUX هي استخدام uv tool
: إذا كنت قد قمت بتثبيت uv
، ببساطة:
uv tool install --upgrade mflux
للحصول على المناظر التنفيذية لخط الأوامر mflux-generate
و. يمكنك تخطي أدلة الاستخدام أدناه.
يعتمد تشفير T5 على الحكم ، الذي لا يحتوي على قطعة أثرية قابلة للتثبيت لـ Python 3.13 اعتبارًا من نوفمبر 2024. حتى تنشر Google عجلة 3.13 ، تحتاج إلى بناء عجلة خاصة بك مع تعليمات بناء رسمية أو لراحتك استخدام .whl
تم تصميمه مسبقًا من قبل المساهم @Anthonywu. يجب أن تعمل الخطوات أدناه لمعظم المطورين على الرغم من أن نظامك قد يختلف.
uv venv --python 3.13
python -V # e.g. Python 3.13.0rc2
source .venv/bin/activate
# for your convenience, you can use the contributor wheel
uv pip install https://github.com/anthonywu/sentencepiece/releases/download/0.2.1-py13dev/sentencepiece-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
# enable the pytorch nightly
uv pip install --pre --extra-index-url https://download.pytorch.org/whl/nightly -e .
mkdir -p mflux && cd mflux && python3 -m venv .venv && source .venv/bin/activate
هذا ينشئ وينشط بيئة افتراضية في مجلد mflux
. بعد ذلك ، قم بتثبيت Mflux عبر PIP:
pip install -U mflux
git clone [email protected]:filipstrand/mflux.git
make install
make test
make lint
و make format
يثبت ويستخدم ruff
. يمكنك إعداد المحرر/IDE الخاص بك إلى LINT/FORMAT تلقائيًا ، أو استخدام make
Provords:make format
- تنسيقات الرمز الخاص بكmake lint
- يظهر أخطاء الوبر والتحذيرات الخاصة بك ، ولكن لا إصلاح تلقائيmake check
- عبر السنانير pre-commit
، وتنسيقات الكود الخاص بك ومحاولات إصلاح أخطاء الوبر تلقائيًاruff
الرسمية حول الاستخدامات المتقدمة قم بتشغيل الأمر mflux-generate
عن طريق تحديد موجه والنموذج وبعض الوسائط الاختيارية. على سبيل المثال ، نستخدم هنا نسخة كمية من طراز schnell
لخطوتين:
mflux-generate --model schnell --prompt " Luxury food photograph " --steps 2 --seed 2 -q 8
يستخدم هذا المثال نموذج dev
الأكثر قوة مع 25 خطوة زمنية:
mflux-generate --model dev --prompt " Luxury food photograph " --steps 25 --seed 2 -q 8
بشكل افتراضي ، يتم تنزيل ملفات النماذج إلى مجلد .cache
داخل الدليل الرئيسي. على سبيل المثال ، في الإعداد الخاص بي ، يبدو المسار هكذا:
/Users/filipstrand/.cache/huggingface/hub/models--black-forest-labs--FLUX.1-dev
لتغيير هذا السلوك الافتراضي ، يمكنك القيام بذلك عن طريق تعديل متغير بيئة HF_HOME
. لمزيد من التفاصيل حول كيفية ضبط هذا الإعداد ، يرجى الرجوع إلى وثائق الوجه المعانقة .
يتطلب Flux.1-DEV حاليًا الوصول الممنوح إلى Reggingface Repo. لاستكشاف الأخطاء وإصلاحها ، راجع تعقب القضية
--prompt
(مطلوب ، str
): وصف النص للصورة لإنشاء.
--model
أو -m
(مطلوب ، str
): نموذج لاستخدامه في الجيل ( "schnell"
أو "dev"
).
--output
(اختياري ، str
، الافتراضي: "image.png"
): إخراج اسم ملف صورة.
--seed
(اختياري ، int
، الافتراضي: None
): بذرة لتوليد العدد العشوائي. الافتراضي يعتمد على الوقت.
--height
(اختياري ، int
، الافتراضي: 1024
): ارتفاع صورة الإخراج بالبكسل.
--width
(اختياري ، int
، الافتراضي: 1024
): عرض صورة الإخراج بالبكسل.
--steps
(اختياري ، int
، الافتراضي: 4
): عدد خطوات الاستدلال.
--guidance
(اختياري ، float
، افتراضي: 3.5
): مقياس التوجيه (يستخدم فقط لنموذج "dev"
).
--path
(اختياري ، str
، الافتراضي: None
): مسار إلى نموذج محلي على القرص.
--quantize
أو -q
(اختياري ، int
، الافتراضي: None
): الكمية (اختر ما بين 4
أو 8
).
--lora-paths
(اختياري ، [str]
، الافتراضي: None
): المسارات إلى أوزان Lora.
--lora-scales
(اختياري ، [float]
، افتراضي: None
): مقياس لكل LORA المعني (سوف يتخلف عن 1.0
إذا لم يتم تحديده وتم تحميل وزن Lora واحد فقط.)
--metadata
(اختياري): صادرات ملف .json
يحتوي على البيانات الوصفية للصورة بنفس الاسم. (حتى بدون هذا العلم ، يتم حفظ بيانات تعريف الصورة ويمكن عرضها باستخدام exiftool image.png
)
--controlnet-image-path
(مطلوب ، str
): المسار إلى الصورة المحلية المستخدمة بواسطة ControlNet لتوجيه توليد الإخراج.
--controlnet-strength
(اختياري ، float
، افتراضي: 0.4
): درجة التأثير على صورة التحكم على الإخراج. يتراوح من 0.0
(لا تأثير) إلى 1.0
(التأثير الكامل).
--controlnet-save-canny
(اختياري ، منطقي ، افتراضي: خطأ): إذا تم تعيينه ، يحفظ صورة مرجع الكشف عن حافة Canny المستخدمة بواسطة ControlNet.
--init-image-path
(اختياري ، str
، الافتراضي: None
): المسار المحلي إلى الصورة الأولية لتوليد صورة إلى صورة.
--init-image-strength
(اختياري ، float
، افتراضي: 0.4
): يتحكم في مدى قوة الصورة الأولية تؤثر على صورة الإخراج. قيمة 0.0
لا تعني أي تأثير. (الافتراضي هو 0.4
)
--config-from-metadata
أو -C
(اختياري ، str
): [تجريبي] مسار إلى ملف مسبق تم حفظه عبر- --metadata
، أو ملف التكوين المتوافق يدويًا يلتزم بمخطط args المتوقع.
{
"$schema" : " http://json-schema.org/draft-07/schema# " ,
"type" : " object " ,
"properties" : {
"seed" : {
"type" : [ " integer " , " null " ]
},
"steps" : {
"type" : [ " integer " , " null " ]
},
"guidance" : {
"type" : [ " number " , " null " ]
},
"quantize" : {
"type" : [ " null " , " string " ]
},
"lora_paths" : {
"type" : [ " array " , " null " ],
"items" : {
"type" : " string "
}
},
"lora_scales" : {
"type" : [ " array " , " null " ],
"items" : {
"type" : " number "
}
},
"prompt" : {
"type" : [ " string " , " null " ]
}
}
}
{
"model" : " dev " ,
"seed" : 42 ,
"steps" : 8 ,
"guidance" : 3.0 ,
"quantize" : 4 ,
"lora_paths" : [
" /some/path1/to/subject.safetensors " ,
" /some/path2/to/style.safetensors "
],
"lora_scales" : [
0.8 ,
0.4
],
"prompt" : " award winning modern art, MOMA "
}
أو ، مع نشطة بيئة Python الصحيحة ، قم بإنشاء وتشغيل برنامج نصي منفصل مثل ما يلي:
from mflux import Flux1 , Config
# Load the model
flux = Flux1 . from_alias (
alias = "schnell" , # "schnell" or "dev"
quantize = 8 , # 4 or 8
)
# Generate an image
image = flux . generate_image (
seed = 2 ,
prompt = "Luxury food photograph" ,
config = Config (
num_inference_steps = 2 , # "schnell" works well with 2-4 steps, "dev" works well with 20-25 steps
height = 1024 ,
width = 1024 ,
)
)
image . save ( path = "image.png" )
لمزيد من الخيارات حول كيفية تكوين MFLUX ، يرجى الاطلاع على cenerate.py.
تعتمد هذه الأرقام على نموذج schnell
غير المقتطف ، مع التكوين المقدم في مقتطف الرمز أدناه. لوقت جهازك ، قم بتشغيل ما يلي:
time mflux-generate
--prompt " Luxury food photograph "
--model schnell
--steps 2
--seed 2
--height 1024
--width 1024
لمعرفة مواصفات جهازك (بما في ذلك عدد نوى وحدة المعالجة المركزية ، ونوى GPU ، والذاكرة ، قم بتشغيل الأمر التالي:
system_profiler SPHardwareDataType SPDisplaysDataType
جهاز | M-Series | مستخدم | وقت الإبلاغ | ملحوظات |
---|---|---|---|---|
Mac Studio | 2023 M2 Ultra | @، | <15s | |
MacBook Pro | 2024 M4 MAX (128GB) | ivanfioravanti | ~ 19s | |
MacBook Pro | 2023 M3 كحد أقصى | karpathy | ~ 20s | |
- | 2023 م 2 كحد أقصى (96 جيجابايت) | explorigin | ~ 25s | |
ماك ميني | 2024 M4 Pro (64 جيجابايت) | stoobs | ~ 34s | |
ماك ميني | 2023 M2 Pro (32 جيجابايت) | leekichko | ~ 54s | |
- | 2022 M1 كحد أقصى (64 جيجابايت) | bosseparra | ~ 55s | |
MacBook Pro | 2023 م 2 كحد أقصى (32 جيجابايت) | filipsstrand | ~ 70s | |
- | 2023 M3 Pro (36 جيجابايت) | @Kush-gupt | ~ 80s | |
MacBook Pro | 2021 M1 Pro (32GB) | filipsstrand | ~ 160s | |
- | 2021 M1 Pro (16 جيجابايت) | @QW-in | ~ 175s | قد تجمد جهاز Mac الخاص بك |
ماك بوك الجوي | 2020 M1 (8GB) | mbvillaverde | ~ 335s | مع القرار 512 × 512 |
لاحظ أن هذه الأرقام تتضمن بدء تشغيل التطبيق من نقطة الصفر ، مما يعني القيام بنموذج الإدخال/الإخراج ، وضع/تحديد الأوزان وما exiftool image.png
ذلك. مدة حلقة تقليل الوفرة (باستثناء تضمين النص).
هذه المعايير ليست علمية للغاية ولا تهدف فقط إلى إعطاء أرقام الملعب. تم تنفيذها خلال أوقات مختلفة مع مواد MFLUX و MLX المختلفة ، إلخ
لا يوجد سوى مصدر واحد للعشوائية عند إنشاء صورة: الصفيف الكامن الأولي. في هذا التنفيذ ، يتم التحكم في هذا الكامنة الأولي بشكل محدد تمامًا بواسطة معلمة seed
الإدخال. ومع ذلك ، إذا أردنا استيراد مثيل ثابت من هذه المجموعة الكامنة المحفوظة من تنفيذ الناشرين ، فإن MFLUX ستنتج صورة متطابقة لتطبيق الناشرين (على افتراض وجود مطالبة ثابتة واستخدام إعدادات المعلمة الافتراضية في إعداد الناشرين).
الصور أدناه توضح هذا التكافؤ. في جميع الحالات ، تم تشغيل نموذج Schnell لخطوتين زمنيتين. تم تشغيل تنفيذ الناشرون في وضع وحدة المعالجة المركزية. يمكن تعيين دقة Mflux في فئة التكوين. عادة ما يكون هناك فرق ملحوظ ولكنه صغير جدًا في الصورة النهائية عند التبديل بين 16 بت و 32 بت.
Luxury food photograph
detailed cinematic dof render of an old dusty detailed CRT monitor on a wooden desk in a dim room with items around, messy dirty room. On the screen are the letters "FLUX" glowing softly. High detail hard surface render
photorealistic, lotr, A tiny red dragon curled up asleep inside a nest, (Soft Focus) , (f_stop 2.8) , (focal_length 50mm) macro lens f/2. 8, medieval wizard table, (pastel) colors, (cozy) morning light filtering through a nearby window, (whimsical) steam shapes, captured with a (Canon EOS R5) , highlighting (serene) comfort, medieval, dnd, rpg, 3d, 16K, 8K
A weathered fisherman in his early 60s stands on the deck of his boat, gazing out at a stormy sea. He has a thick, salt-and-pepper beard, deep-set blue eyes, and skin tanned and creased from years of sun exposure. He's wearing a yellow raincoat and hat, with water droplets clinging to the fabric. Behind him, dark clouds loom ominously, and waves crash against the side of the boat. The overall atmosphere is one of tension and respect for the power of nature.
Luxury food photograph of an italian Linguine pasta alle vongole dish with lots of clams. It has perfect lighting and a cozy background with big bokeh and shallow depth of field. The mood is a sunset balcony in tuscany. The photo is taken from the side of the plate. The pasta is shiny with sprinkled parmesan cheese and basil leaves on top. The scene is complemented by a warm, inviting light that highlights the textures and colors of the ingredients, giving it an appetizing and elegant look.
يدعم MFLUX تشغيل التدفق في الوضع الكمي 4 بت أو 8 بت. يمكن أن يؤدي تشغيل نسخة كمية إلى تسريع عملية التوليد بشكل كبير وتقليل استهلاك الذاكرة بواسطة عدة جيجابت. النماذج الكمية أيضا تأخذ مساحة أقل القرص.
mflux-generate
--model schnell
--steps 2
--seed 2
--quantize 8
--height 1920
--width 1024
--prompt " Tranquil pond in a bamboo forest at dawn, the sun is barely starting to peak over the horizon, panda practices Tai Chi near the edge of the pond, atmospheric perspective through the mist of morning dew, sunbeams, its movements are graceful and fluid — creating a sense of harmony and balance, the pond’s calm waters reflecting the scene, inviting a sense of meditation and connection with nature, style of Howard Terpning and Jessica Rossier "
في هذا المثال ، يتم تحديد الأوزان في وقت التشغيل - هذا مريح إذا كنت لا ترغب في حفظ نسخة كمية من الأوزان على القرص ، ولكن لا تزال ترغب في الاستفادة من كمية التسريع المحتملة وذاكرة RAM التي قد يجلبها.
من خلال اختيار العلم --quantize
أو -q
ليكون 4
أو 8
، أو إزالته تمامًا ، نحصل على جميع الصور الثلاث أعلاه. كما يمكن أن نرى ، هناك فرق ضئيل للغاية بين الصور (خاصة بين النتيجة 8 بت ، والنتيجة غير المخصصة). تعتمد أوقات توليد الصور في هذا المثال على جهاز 2021 M1 Pro (32 جيجابايت). على الرغم من أن الصور متطابقة تقريبًا ، إلا أن هناك تسريعًا ~ 2x عن طريق تشغيل الإصدار الكمي المكون من 8 بت على هذا الجهاز بالذات. على عكس الإصدار غير المريح ، بالنسبة للإصدار 8 بت ، يتم تقليل استخدام ذاكرة المبادلة بشكل كبير واستخدام GPU يقترب من 100 ٪ خلال الجيل بأكمله. النتائج هنا يمكن أن تختلف عبر الآلات المختلفة.
أحجام النماذج لكل من schnell
و dev
في مستويات القياس الكمي المختلفة هي كما يلي:
4 بت | 8 بت | الأصل (16 بت) |
---|---|---|
9.85 جيجابايت | 18.16 جيجابايت | 33.73 جيجابايت |
السبب في أن أحجام الأوزان لا يتم قطعها بالكامل إلى النصف هو أن عددًا صغيرًا من الأوزان لا يتم تحديد كمياتها وتحتفظ بها بدقة كاملة.
لحفظ نسخة محلية من الأوزان الكمية ، قم بتشغيل أمر mflux-save
مثل SO:
mflux-save
--path " /Users/filipstrand/Desktop/schnell_8bit "
--model schnell
--quantize 8
لاحظ أنه عند حفظ نسخة كمية ، ستحتاج إلى أوزان Huggingface الأصلية.
من الممكن أيضًا تحديد محولات Lora عند حفظ النموذج ، على سبيل المثال
mflux-save
--path " /Users/filipstrand/Desktop/schnell_8bit "
--model schnell
--quantize 8
--lora-paths " /path/to/lora.safetensors "
--lora-scales 0.7
عند إنشاء صور مع نموذج مثل هذا ، لا يلزم تحديد محول Lora لأنه يتم بالفعل خبزه في الأوزان الكمية المحفوظة.
لإنشاء صورة جديدة من النموذج الكمي ، قم ببساطة بتوفير --path
إلى حيث تم حفظه:
mflux-generate
--path " /Users/filipstrand/Desktop/schnell_8bit "
--model schnell
--steps 2
--seed 2
--height 1920
--width 1024
--prompt " Tranquil pond in a bamboo forest at dawn, the sun is barely starting to peak over the horizon, panda practices Tai Chi near the edge of the pond, atmospheric perspective through the mist of morning dew, sunbeams, its movements are graceful and fluid — creating a sense of harmony and balance, the pond’s calm waters reflecting the scene, inviting a sense of meditation and connection with nature, style of Howard Terpning and Jessica Rossier "
ملاحظة: عند تحميل نموذج كمي من القرص ، ليست هناك حاجة لتمرير -q
، حيث يمكننا استنتاج هذا من بيانات تعريف الوزن.
ملاحظة أيضًا: بمجرد أن يكون لدينا نموذج محلي (كمي أو لا) محدد عبر الوسيطة --path
، فإن نماذج ذاكرة التخزين المؤقت Huggingface ليست مطلوبة لإطلاق النموذج. بمعنى آخر ، يمكنك استعادة مساحة الأقراص 34 جيجابايت (لكل طراز) عن طريق حذف النموذج الكامل 16 بت من ذاكرة التخزين المؤقت لـ Huggingface إذا اخترت.
إذا كنت لا ترغب في تنزيل النماذج الكاملة وتكميتها بنفسك ، فإن الأوزان 4 بت متوفرة هنا للتنزيل المباشر:
يدعم Mflux أيضًا تشغيل نموذج غير مُجهز مباشرة من موقع مخصص. في المثال أدناه ، يتم وضع النموذج في /Users/filipstrand/Desktop/schnell
:
mflux-generate
--path " /Users/filipstrand/Desktop/schnell "
--model schnell
--steps 2
--seed 2
--prompt " Luxury food photograph "
لاحظ أنه يجب ضبط علامة --model
عند تحميل نموذج من القرص.
لاحظ أيضًا أنه على عكس استخدام طريقة alias
النموذجية لتهيئة النموذج (الذي يتعامل داخليًا التي يتم تنزيل الموارد المطلوبة) ، عند تحميل نموذج مباشرة من القرص ، نطلب من النماذج التي تم تنزيلها لتبدو كما يلي:
.
├── text_encoder
│ └── model.safetensors
├── text_encoder_2
│ ├── model-00001-of-00002.safetensors
│ └── model-00002-of-00002.safetensors
├── tokenizer
│ ├── merges.txt
│ ├── special_tokens_map.json
│ ├── tokenizer_config.json
│ └── vocab.json
├── tokenizer_2
│ ├── special_tokens_map.json
│ ├── spiece.model
│ ├── tokenizer.json
│ └── tokenizer_config.json
├── transformer
│ ├── diffusion_pytorch_model-00001-of-00003.safetensors
│ ├── diffusion_pytorch_model-00002-of-00003.safetensors
│ └── diffusion_pytorch_model-00003-of-00003.safetensors
└── vae
└── diffusion_pytorch_model.safetensors
هذا يعكس كيفية وضع الموارد في repo luggingface للتدفق. يجب معالجة أوزان المعانقة ، على عكس الأوزان الكمية التي تم تصديرها مباشرة من هذا المشروع ، بشكل مختلف بعض الشيء ، وهذا هو السبب في أننا نطلب هذا الهيكل أعلاه.
تتمثل إحدى الطرق لشرط توليد الصور في البدء من صورة موجودة والسماح لـ Mflux بإنتاج اختلافات جديدة. استخدم علامة --init-image-path
لتحديد الصورة المرجعية ، --init-image-strength
للتحكم في مقدار ما يجب أن توجه الصورة المرجعية الجيل. على سبيل المثال ، بالنظر إلى الصورة المرجعية أدناه ، أنتج الأمر التالي الصورة الأولى باستخدام Lora الرسم:
mflux-generate
--prompt " sketching of an Eiffel architecture, masterpiece, best quality. The site is lit by lighting professionals, creating a subtle illumination effect. Ink on paper with very fine touches with colored markers, (shadings:1.1), loose lines, Schematic, Conceptual, Abstract, Gestural. Quick sketches to explore ideas and concepts. "
--init-image-path " reference.png "
--init-image-strength 0.3
--lora-paths Architectural_Sketching.safetensors
--lora-scales 1.0
--model dev
--steps 20
--seed 43
--guidance 4.0
--quantize 8
--height 1024
--width 1024
كما هو الحال مع ControlNet ، تجمع هذه التقنية بشكل جيد مع محولات Lora:
في الأمثلة فوق LORAs التالية ، يتم استخدام الرسم ، يتم استخدام لقطة الرسوم المتحركة وكاميرا FLUX-FILM.
MFLUX دعم تحميل محولات LORA المدربة (دعم التدريب الفعلي قادم).
المثال التالي the_hound lora من thelastben:
mflux-generate --prompt " sandor clegane " --model dev --steps 20 --seed 43 -q 8 --lora-paths " sandor_clegane_single_layer.safetensors "
المثال التالي هو flux_1_dev_lora_paper-cutout-style lora من @norod78:
mflux-generate --prompt " pikachu, Paper Cutout Style " --model schnell --steps 4 --seed 43 -q 8 --lora-paths " Flux_1_Dev_LoRA_Paper-Cutout-Style.safetensors "
لاحظ أن الأوزان المدربة في لورا عادة ما يتم تدريبها بكلمة أو عبارة مشغل . على سبيل المثال ، في الحالة الأخيرة ، يجب أن تتضمن الجملة عبارة "نمط قطع الورق" .
لاحظ أيضًا أن نفس أوزان Lora يمكن أن تعمل بشكل جيد مع كل من طرز schnell
و dev
. ارجع إلى مستودع Lora الأصلي لمعرفة الوضع الذي تم تدريبه عليه.
يمكن إرسال Loras المتعددة في الجمع بين آثار المحولات الفردية. يجمع المثال التالي بين كل من Loras المذكورة أعلاه:
mflux-generate
--prompt " sandor clegane in a forest, Paper Cutout Style "
--model dev
--steps 20
--seed 43
--lora-paths sandor_clegane_single_layer.safetensors Flux_1_Dev_LoRA_Paper-Cutout-Style.safetensors
--lora-scales 1.0 1.0
-q 8
فقط لرؤية الفرق ، تعرض هذه الصورة الحالات الأربع: إحدى المحولات نشطة بالكامل ، نشطة جزئيًا ولا LORA على الإطلاق. يوضح المثال أعلاه أيضًا استخدام العلم- --lora-scales
.
نظرًا لأن خدمات الضبط المختلفة المختلفة يمكن أن تستخدم تطبيقات مختلفة من التدفق ، فإن أوزان Lora المقابلة التي يتم تدريبها على هذه الخدمات يمكن أن تختلف عن بعضها البعض. الهدف من Mflux هو دعم أكثرها شيوعًا. يوضح الجدول التالي التنسيقات الحالية المدعومة:
مدعوم | اسم | مثال | ملحوظات |
---|---|---|---|
✅ | BFL | Civitai - الانطباعية | يبدو أن أشياء كثيرة في سيفيتاي تعمل |
✅ | الناشرون | flux_1_dev_lora_paper-cutout | |
XLABS-AI | التدفق الوعي |
للإبلاغ عن تنسيقات أو أمثلة أو أي اقتراحات أخرى تتعلق بدعم تنسيق Lora ، يرجى الاطلاع على العدد رقم 47.
لدى Mflux دعم ControlNet لتحكم أكثر حبيبات في توليد الصور. من خلال توفير صورة مرجعية عبر --controlnet-image-path
ومعلمة قوة عبر --controlnet-strength
يمكنك توجيه الجيل نحو الصورة المرجعية.
mflux-generate-controlnet
--prompt " A comic strip with a joker in a purple suit "
--model dev
--steps 20
--seed 1727047657
--height 1066
--width 692
-q 8
--lora-paths " Dark Comic - s0_8 g4.safetensors "
--controlnet-image-path " reference.png "
--controlnet-strength 0.5
--controlnet-save-canny
يجمع هذا المثال بين صورة ControlNet المرجعية مع Flux Lora Dark Comic .
generate-controlnet
. في الوقت الحالي ، يكون ControlNet المستخدم هو Instantx/Flux.1-dev-controlnet-canny ، والذي تم تدريبه على نموذج dev
. يمكن أن تعمل بشكل جيد مع schnell
، لكن الأداء غير مضمون.
يمكن أن تعمل ControlNet أيضًا بشكل جيد مع محولات Lora. في المثال أدناه ، يتم استخدام الصورة المرجعية نفسها كإدخال ControlNet مع مطالبات مختلفة ومحولات LORA نشطة.
export HF_HUB_DISABLE_PROGRESS_BARS=1
--args
alias mflux-dev='mflux-generate --model dev'
alias mflux-schnell='mflux-generate --model schnell --metadata'
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.