پرش به محتوا
← همهٔ یادداشت‌ها

آموزش LoRA برای FLUX با Flux Gym روی GPU ابری

·۸ دقیقه مطالعه·تیم جی‌پی‌یو

دو دمبل فلزی با وزنه‌های پیچ‌شده و چند صفحهٔ وزنهٔ اضافه، روی سطح خاکستری یک باشگاه.

اگر می‌خواهید FLUX.1 یک سوژه یا سبک مشخص را یاد بگیرد، راهش آموزش LoRA است: یک فایل کوچک چندصد مگابایتی که کنار مدل اصلی بار می‌شود و خروجی را به سمت همان سوژه می‌برد. قالب Flux Gym دقیقاً برای همین کار ساخته شده و یک رابط وب ساده دارد؛ شما عکس‌ها را آپلود می‌کنید، یک کلمهٔ کلیدی (trigger word) می‌گذارید و دکمهٔ Start را می‌زنید.

مشکل اینجاست که FLUX.1 مدل سنگینی است و روی کارت‌های معمولی خانگی آموزش نمی‌بیند. راه‌حل، اجاره ساعتی یک کارت گرافیک ۲۴ گیگابایتی است: ماشین را چند ساعت بالا می‌آورید، فایل LoRA را می‌گیرید و ماشین را حذف می‌کنید. هزینه‌اش هم در حد چند ساعت اجارهٔ همان کارت است.

پیش‌نیازها

برای شروع به یک حساب جی‌پی‌یو نیاز دارید؛ اگر ندارید از صفحهٔ ثبت‌نام بسازید. قبل از اجاره باید حداقل یک کلید عمومی SSH در /account ثبت کرده باشید — ورود به ماشین فقط با کلید انجام می‌شود و رمز عبوری وجود ندارد. اگر این مرحله برایتان تازه است، پست شروع اجاره GPU: اولین ماشین در ۱۰ دقیقه همین مسیر را قدم‌به‌قدم توضیح داده است.

کیف پول هم باید شارژ باشد. برای اجارهٔ هر ماشین دست‌کم به اندازهٔ یک ساعت از نرخ آن ماشین موجودی لازم است، ولی برای این آموزش موجودی سه تا چهار ساعت را کنار بگذارید. شارژ با کارت به کارت است و بعد از تأیید اپراتور — معمولاً ظرف چند ساعت — به کیف پول اضافه می‌شود، پس زودتر انجامش دهید.

آخرین پیش‌نیاز خودِ عکس‌هاست: ۱۵ تا ۲۰ تصویر از یک سوژهٔ مشخص. اگر نمی‌دانید نسخهٔ dev با schnell چه فرقی دارد، اول FLUX.1 روی GPU ابری: dev یا schnell و چقدر VRAM؟ را بخوانید.

انتخاب کارت گرافیک و VRAM لازم

Flux Gym سه حالت مصرف حافظه دارد — ۲۰، ۱۶ و ۱۲ گیگابایت — و هرچه حالت پایین‌تر باشد، کار کندتر پیش می‌رود چون بخش بیشتری از مدل بین حافظهٔ کارت و رم جابه‌جا می‌شود. منطقی‌ترین انتخاب، یک کارت ۲۴ گیگابایتی و حالت ۲۰ گیگ است.

در بازار GPU می‌توانید بر اساس مدل کارت و حافظه فیلتر کنید. دو پیشنهاد:

  • اقتصادی: RTX 3090 با ۲۴ گیگابایت VRAM، از حدود ۴۵ هزار تومان در ساعت (در زمان نوشتن این مطلب).
  • سریع: RTX 4090 با ۲۴ گیگابایت VRAM، از حدود ۹۷ هزار تومان در ساعت (در زمان نوشتن این مطلب).

یک RTX A4000 با ۱۶ گیگابایت از حدود ۲۴ هزار تومان در ساعت (در زمان نوشتن این مطلب) هم با حالت ۱۶ گیگ کار می‌کند، ولی چون هزینه ساعتی است و آموزش کندتر می‌شود، کارت ارزان‌تر لزوماً ارزان‌تر تمام نمی‌شود.

یک نکتهٔ مهم: Flux Gym در اولین اجرا خودش وزن‌های مدل را دانلود می‌کند و مجموعشان حدود ۳۰ گیگابایت است. این دانلود روی خود ماشین و با سرعت گیگابیتی انجام می‌شود و به اینترنت شما ربطی ندارد، ولی ماشین باید فضای دیسک کافی داشته باشد.

اجاره و راه‌اندازی قالب Flux Gym

موقع اجاره، از فهرست قالب‌ها Flux Gym را انتخاب کنید و دکمهٔ اجاره را بزنید. نرخ ساعتی همان لحظه قفل می‌شود و نوسان بعدی بازار روی هزینهٔ این ماشین اثری ندارد. چند دقیقه بعد وضعیت ماشین «آماده» می‌شود.

در صفحهٔ ماشین، دکمهٔ «پنل ماشین» رابط وب Flux Gym را باز می‌کند. اگر نمی‌خواهید رابط از بیرون در دسترس باشد، از دستور «تونل امن» همان صفحه استفاده کنید؛ شکل کلی‌اش این است:

ssh -N -L 7860:localhost:7860 root@<HOST> -p <PORT>

بعد از آن، رابط روی http://localhost:7860 باز می‌شود. ترمینال را تا پایان کار نبندید.

آماده‌سازی دیتاست

کیفیت LoRA بیشتر از هر تنظیمی به عکس‌ها بستگی دارد. ۱۵ تا ۲۰ تصویر کافی است، به شرطی که:

  • سوژه در همهٔ آن‌ها یکی باشد و واضح دیده شود؛
  • زاویه، نور و پس‌زمینه متنوع باشد تا مدل «پس‌زمینه» را با «سوژه» اشتباه نگیرد؛
  • تصویر تار، خیلی کوچک یا واترمارک‌دار در دیتاست نباشد؛
  • سوژه‌های اضافی (آدم‌های دیگر، متن درشت) را با برش حذف کنید.

سوژه می‌تواند یک محصول، یک شخصیت تصویری یا یک سبک گرافیکی باشد. اگر از عکس آدم استفاده می‌کنید، فقط عکس خودتان.

در رابط Flux Gym اول نام LoRA و trigger word را وارد کنید. trigger word همان کلمه‌ای است که بعداً در پرامپت می‌نویسید تا LoRA فعال شود؛ ترکیبی غیرمعمول مثل hrld style بگذارید که مدل معنی‌اش را نمی‌داند. بعد عکس‌ها را آپلود کنید.

کپشن‌گذاری خودکار با Florence-2

هر تصویر به یک توضیح متنی نیاز دارد، ولی لازم نیست دستی بنویسید: دکمهٔ کپشن خودکار در Flux Gym مدل multimodalart/Florence-2-large-no-flash-attn را دانلود می‌کند و برای هر عکس یک جمله می‌سازد. کپشن‌ها همان‌جا قابل ویرایش‌اند؛ مرورشان کنید و توصیف‌های اشتباه را اصلاح کنید.

اگر کپشن‌های خودتان را دارید، می‌توانید فایل‌های .txt را کنار عکس‌ها آپلود کنید. شرطش این است که نام فایل متن دقیقاً با نام تصویر یکی باشد — برای img0.png باید img0.txt وجود داشته باشد.

تنظیم پارامترهای آموزش LoRA

تنظیمات پیش‌فرض Flux Gym برای اکثر کارها جواب می‌دهد. مقادیری که پیش‌فرض می‌بینید:

  • VRAM: ۲۰G (روی کارت ۲۴ گیگ همین را نگه دارید)
  • Repeat trains per image: ۱۰
  • Max Train Epochs: ۱۶
  • learning rate: 8e-4
  • LoRA rank (پارامتر --network_dim): ۴
  • save every N epochs: ۴

خودِ رابط تعداد کل قدم‌ها را حساب می‌کند: تعداد تصاویر ضربدر تکرار هر تصویر ضربدر تعداد epoch. با ۲۰ عکس و مقادیر بالا یعنی ۳۲۰۰ قدم. برای سوژه‌های ساده همان rank پیش‌فرض کافی است؛ برای سبک‌های پیچیده‌تر تا ۱۶ یا ۳۲ بالا ببرید، که فایل را بزرگ‌تر و آموزش را کندتر می‌کند.

در بخش Sample Image یک پرامپت بگذارید و «هر چند قدم یک نمونه» را روی ۲۰۰ تنظیم کنید. این‌طور وسط کار می‌بینید LoRA چه یاد می‌گیرد و اگر مسیر را اشتباه رفت، زودتر متوقفش می‌کنید.

شروع آموزش و دنبال کردن پیشرفت

دکمهٔ Start را بزنید. در اولین اجرا وزن‌های FLUX.1-dev و انکودرهای متن دانلود می‌شوند؛ چند دقیقه طول می‌کشد و فقط یک بار اتفاق می‌افتد. بعد از آن لاگ آموزش سرعت هر قدم را نشان می‌دهد — از روی همان عدد تخمین بزنید کل کار چند ساعت طول می‌کشد.

از طریق SSH هم می‌توانید وضعیت کارت را ببینید:

watch -n 5 nvidia-smi

و فضای دیسک را چک کنید:

df -h

فایل‌های خروجی زیر پوشهٔ outputs خود Flux Gym ساخته می‌شوند. اگر مسیر نصب را نمی‌دانید:

find / -maxdepth 5 -type d -path "*fluxgym*" -name outputs 2>/dev/null

داخل آن برای هر LoRA یک پوشه هم‌نام خودش هست و فایل نهایی با پسوند .safetensors آنجاست. چون هر چهار epoch یک نسخه ذخیره می‌شود، چند فایل میانی هم می‌بینید؛ نگهشان دارید — گاهی نسخهٔ میانی بهتر از آخری است.

گرفتن فایل LoRA و استفاده از آن

دیسک ماشین با حذف ماشین پاک می‌شود و فضای ذخیره‌سازی دائمی وجود ندارد، پس قبل از حذف حتماً فایل را بردارید. از لپ‌تاپ خودتان:

scp -P <PORT> root@<HOST>:<OUTPUTS>/my-lora/my-lora.safetensors .

راه دیگر این است که در همان رابط با توکن Hugging Face وارد شوید و LoRA را روی حساب خودتان منتشر کنید.

برای استفاده، فایل را در پوشهٔ models/loras یک ماشین ComfyUI بگذارید و با گرهٔ Load LoRA در ورک‌فلو صدایش کنید؛ روش کار را در نصب مدل و LoRA از Civitai در ComfyUI روی GPU ابری نوشته‌ایم. یادتان باشد trigger word را در پرامپت بیاورید، وگرنه LoRA عملاً اثری ندارد.

اگر به مشکل خوردید

  • CUDA out of memory: حالت VRAM را یک پله پایین بیاورید (از ۲۰G به ۱۶G یا ۱۲G) و رزولوشن آموزش را کم کنید.
  • دانلود مدل نیمه‌کاره می‌ماند: با df -h مطمئن شوید دیسک پر نشده، بعد آموزش را دوباره شروع کنید.
  • پنل باز نمی‌شود: چند دقیقه صبر کنید تا سرویس بالا بیاید؛ اگر باز هم نشد از تونل امن استفاده کنید.
  • کپشن‌ها اعمال نمی‌شوند: نام فایل‌های .txt باید دقیقاً با نام تصویرها یکی باشد.
  • خروجی بی‌کیفیت است: اگر مدل پایه را روی flux-schnell گذاشته‌اید، به flux-dev برگردید؛ نتیجهٔ schnell برای آموزش LoRA معمولاً ضعیف‌تر است.

هزینه و صرفه‌جویی

هزینه دقیقه‌ای از کیف پول کم می‌شود و ماشین متوقف‌شده هزینه‌ای ندارد. اگر کل کار دو ساعت طول بکشد، با نرخ‌های بالا می‌شود حدود ۹۰ هزار تومان روی RTX 3090 یا حدود ۱۹۴ هزار تومان روی RTX 4090 (در زمان نوشتن این مطلب).

برای کم کردن هزینه: عکس‌ها را از قبل برش‌خورده و آماده نگه دارید، اول یک آموزش کوتاه با epoch کمتر بگیرید، و تا وقتی از نتیجه مطمئن نشده‌اید سراغ rank بالا نروید. بعد از دانلود فایل نهایی، ماشین را متوقف یا حذف کنید.

قدم بعدی

حالا سراغ ساخت تصویر بروید و ببینید trigger word چقدر خروجی را جابه‌جا می‌کند. اگر روی انتخاب کارت شک دارید، انتخاب کارت گرافیک هوش مصنوعی: راهنمای VRAM هر کار جدول کاملی برای کارهای مختلف دارد.

مستندات رسمی در مخزن Flux Gym است و پارامترهای تب Advanced از kohya-ss/sd-scripts می‌آیند.

پرسش‌های متداول

آیا برای آموزش LoRA به کارت گرافیک شخصی نیاز است؟

نه. با اجاره ساعتی کارت گرافیک، ماشین را فقط برای همان چند ساعت بالا می‌آورید و بعد حذفش می‌کنید. قالب Flux Gym از قبل نصب شده و لازم نیست چیزی روی سیستم خودتان راه بیندازید.

برای آموزش LoRA روی FLUX چقدر VRAM لازم است؟

Flux Gym حالت‌های ۱۲، ۱۶ و ۲۰ گیگابایت دارد، پس با کارت ۱۲ گیگابایتی هم می‌شود شروع کرد. ولی سریع‌ترین حالت، کارت ۲۴ گیگابایتی مثل RTX 3090 یا RTX 4090 با تنظیم ۲۰ گیگ است.

چند عکس برای آموزش LoRA کافی است؟

بین ۱۵ تا ۲۰ عکس برای بیشتر سوژه‌ها کافی است. تنوع زاویه و نور مهم‌تر از تعداد است؛ ۴۰ عکس از یک زاویه نتیجهٔ بهتری از ۱۵ عکس متنوع نمی‌دهد.

فایل LoRA بعد از آموزش کجاست؟

زیر پوشهٔ outputs در محل نصب Flux Gym، داخل پوشه‌ای هم‌نام LoRA و با پسوند .safetensors. قبل از حذف ماشین حتماً دانلودش کنید، چون دیسک ماشین با حذف پاک می‌شود.

آیا می‌توانم خروجی را تجاری استفاده کنم؟

مدل پایهٔ FLUX.1-dev با لایسنس غیرتجاری منتشر شده است. قبل از هر استفادهٔ تجاری، متن لایسنس را روی صفحهٔ رسمی مدل بخوانید.

تصویر کاور: «Kurzhanteln 2 x 15 kg 1v2» اثر Singlespeedfahrer، از ویکی‌مدیا کامنز، لایسنس CC0.