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

Fooocus روی GPU ابری: ساخت تصویر بدون تنظیمات پیچیده

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

یک دوربین جمع‌وجور نقره‌ای با لنز بیرون‌آمده، از روبه‌رو روی پس‌زمینهٔ سفید ساده.

اگر می‌خواهید با هوش مصنوعی تصویر بسازید ولی حوصلهٔ گره زدن نودها و تنظیم ده‌ها پارامتر را ندارید، Fooocus دقیقاً برای شماست: یک کادر متن می‌نویسید، دکمه را می‌زنید و تصویر می‌آید. بقیهٔ کار — انتخاب sampler، scheduler، refiner و بهبود خودکار پرامپت — پشت پرده انجام می‌شود.

در این آموزش یک ماشین با قالب آمادهٔ Fooocus روی GPU ابری اجاره می‌کنیم، اولین تصویر را می‌سازیم، سبک‌ها و نسبت‌های تصویر را تغییر می‌دهیم و یاد می‌گیریم مدل یا LoRA دلخواهمان را روی همان ماشین دانلود کنیم. کل کار حدود ۳۰ تا ۴۵ دقیقه طول می‌کشد و با ارزان‌ترین کارت مناسب، هزینه‌اش زیر ۱۵ هزار تومان درمی‌آید.

پیش‌نیازها

سه چیز لازم دارید و هر سه یک‌بار انجام می‌شوند:

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

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

انتخاب کارت گرافیک برای Fooocus

Fooocus خودش را با VRAM موجود تطبیق می‌دهد و طبق مستندات رسمی پروژه روی کارت‌های انویدیا از ۴ گیگابایت VRAM هم بالا می‌آید. اما «بالا می‌آید» با «راحت کار می‌کند» فرق دارد: مدل پایهٔ Fooocus از خانوادهٔ SDXL است و اگر VRAM کم باشد، بخشی از مدل مدام بین حافظهٔ کارت و رم جابه‌جا می‌شود و هر تصویر چند برابر طول می‌کشد.

پیشنهاد عملی ما:

  • اقتصادی: RTX 3060 با ۱۲ گیگابایت VRAM. برای ساخت تصویر تکی با Fooocus کاملاً کافی است. در زمان نوشتن این مطلب از حدود ۱۴ هزار تومان در ساعت شروع می‌شود.
  • میانه: RTX A4000 با ۱۶ گیگابایت VRAM. وقتی می‌خواهید هم‌زمان چند LoRA سوار کنید یا خروجی‌های بزرگ‌تر بگیرید. در زمان نوشتن این مطلب از حدود ۲۲ هزار تومان در ساعت.
  • سریع: RTX 3090 با ۲۴ گیگابایت VRAM. اگر می‌خواهید ده‌ها تصویر پشت‌سرهم بسازید یا وقتتان ارزش‌مندتر از تفاوت قیمت است. در زمان نوشتن این مطلب از حدود ۳۸ هزار تومان در ساعت.

قیمت‌ها ساعتی و تومانی‌اند و لحظهٔ اجاره قفل می‌شوند؛ بعد از آن نوسان بازار روی هزینهٔ آن ماشین اثری ندارد. فهرست کامل و فیلتر روی حافظه و قیمت در بازار GPU است. اگر می‌خواهید منطق انتخاب VRAM را دقیق‌تر بدانید، پست انتخاب کارت گرافیک هوش مصنوعی: راهنمای VRAM هر کار همین را موشکافی کرده است.

اجاره و بالا آوردن ماشین

در بازار، کارت مورد نظرتان را فیلتر کنید و روی یکی از ماشین‌ها بزنید. موقع اجاره، در فهرست قالب‌ها Fooocus را انتخاب کنید تا ماشین با همان نرم‌افزار — و مدل پایه‌اش — بالا بیاید؛ چیزی نصب نمی‌کنید.

بعد از زدن دکمهٔ اجاره، ماشین چند دقیقه در حالت آماده‌سازی است. در صفحهٔ ماشین این‌ها را می‌بینید و همه یک‌کلیک کپی می‌شوند: دستور SSH آماده، لینک مستقیم Jupyter و توکنش، دستور «تونل امن»، دکمهٔ «پنل ماشین» و فهرست پورت‌های منتشرشده.

وقتی وضعیت به «در حال اجرا» رسید، دکمهٔ پنل ماشین رابط وب Fooocus را باز می‌کند. اگر ترجیح می‌دهید رابط را از روی دستگاه خودتان و از داخل تونل SSH باز کنید، همان دستور تونل امن صفحهٔ ماشین را بزنید؛ شکل کلی‌اش این است:

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

بعد در مرورگر خودتان http://localhost:7865 را باز کنید. اولین بار که Fooocus بالا می‌آید، مدل پایه را دانلود می‌کند؛ این دانلود روی خود ماشین و با سرعت گیگابیتی انجام می‌شود و چند گیگابایت است، پس معمولاً کمتر از دو سه دقیقه طول می‌کشد و به سرعت اینترنت شما ربطی ندارد. قبل از هر چیز هم می‌توانید با SSH وصل شوید و مطمئن شوید کارت گرافیک دیده می‌شود:

nvidia-smi

اولین تصویر

رابط Fooocus عمداً خلوت است: یک کادر پرامپت و یک دکمهٔ Generate. پرامپت انگلیسی بنویسید — مدل‌های SDXL فارسی را نمی‌فهمند. مثلاً:

a cozy bookshop interior at night, warm lamp light, rain on the window, highly detailed

دکمهٔ Generate را بزنید. پیش‌فرض، دو تصویر ساخته می‌شود و روی یک کارت ۱۲ گیگابایتی هر کدام حدود ۲۰ تا ۴۰ ثانیه وقت می‌برد. تیک Advanced کنار دکمه، ستون تنظیمات را باز می‌کند؛ سه چیزش را بیشتر از همه لازم دارید:

  • Performance: حالت Speed برای کار روزمره خوب است؛ Quality زمان بیشتری می‌گیرد و جزئیات بهتری می‌دهد.
  • Aspect Ratios: نسبت و اندازهٔ تصویر. برای پست اینستاگرام مربع و برای کاور بلاگ نسبت‌های افقی مناسب‌اند.
  • Image Number: چند تصویر در هر بار ساخته شود.

در تب Style ده‌ها سبک آماده هست و می‌توانید چندتا را با هم فعال کنید. این ساده‌ترین راه برای تغییر حال‌وهوای خروجی است، بدون این‌که پرامپت را شلوغ کنید. تب Input Image هم امکان ساخت تصویر از روی تصویر و رتوش موضعی را می‌دهد.

سبک realistic و anime

Fooocus سه پرِست رسمی دارد که هرکدام مدل پایهٔ خودشان را می‌آورند: پیش‌فرض (juggernautXL_v8Rundiffusion)، واقع‌گرا (realisticStockPhoto_v20) و انیمه (animaPencilXL_v500). پرِست موقع اجرای Fooocus انتخاب می‌شود. راحت‌ترین کار این است که نسخهٔ دومی را روی پورتی دیگر بالا بیاورید تا نسخهٔ فعلی دست‌نخورده بماند. با SSH وصل شوید و:

cd $(find / -maxdepth 6 -type d -name Fooocus 2>/dev/null | head -n 1)
python entry_with_update.py --preset realistic --listen --port 7866

برای انیمه هم --preset anime را جایگزین کنید. بار اول مدل پایهٔ آن پرِست دانلود می‌شود. سپس یک تونل دیگر به پورت ۷۸۶۶ بزنید:

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

افزودن مدل یا LoRA دلخواه

مدل‌های Hugging Face و Civitai را مستقیم روی ماشین دانلود کنید، نه روی لپ‌تاپ. اول مسیر Fooocus را پیدا کنید:

cd $(find / -maxdepth 6 -type d -name Fooocus 2>/dev/null | head -n 1)
ls models

چک‌پوینت‌ها در models/checkpoints و لوراها در models/loras می‌نشینند. لینک مستقیم فایل .safetensors را بردارید و:

wget -c -O models/checkpoints/my-model.safetensors "<لینک-مستقیم-فایل>"
wget -c -O models/loras/my-lora.safetensors "<لینک-مستقیم-فایل>"

سوییچ -c یعنی اگر دانلود نصفه ماند، با اجرای دوبارهٔ همان دستور ادامه پیدا می‌کند. بعد از دانلود، در رابط Fooocus تب Advanced و سپس Model را باز کنید و دکمهٔ Refresh را بزنید تا فایل تازه در فهرست ظاهر شود.

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

  • خطای CUDA out of memory: در تب Advanced، Aspect Ratio را کوچک‌تر و Image Number را روی ۱ بگذارید؛ اگر باز تکرار شد، LoRAهای فعال را کم کنید یا ماشینی با VRAM بیشتر بگیرید.
  • پنل ماشین باز نمی‌شود: چند دقیقه صبر کنید؛ اولین اجرا شامل دانلود مدل پایه است و تا تمام نشود پورت جواب نمی‌دهد. در SSH با nvidia-smi ببینید پردازشی روی کارت در حال اجراست یا نه.
  • دانلود نیمه‌کاره: همان دستور wget -c را دوباره اجرا کنید. اگر حجم فایل با اندازهٔ اعلام‌شده در صفحهٔ مدل نمی‌خواند، فایل را پاک کنید و از نو بگیرید.
  • مدل تازه در فهرست نیست: احتمالاً در پوشهٔ اشتباهی نشسته؛ با ls -lh models/checkpoints مطمئن شوید و بعد Refresh را بزنید.
  • تصویرها بی‌کیفیت‌اند: Performance را روی Quality بگذارید و به‌جای پرامپت‌های خیلی کوتاه، چند صفت دربارهٔ نور، جنس و سبک اضافه کنید.

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

برای یک جلسهٔ تمرین — اجاره، بالا آمدن، ساخت بیست‌سی تصویر و دانلود خروجی — حدود یک ساعت کافی است. روی RTX 3060 با نرخ در زمان نوشتن این مطلب، این یعنی حدود ۱۴ هزار تومان.

سه عادت هزینه را پایین نگه می‌دارد. اول، هزینه دقیقه‌ای از کیف پول کم می‌شود و ماشین متوقف‌شده هزینه‌ای ندارد؛ وقتی رفتید ناهار، متوقفش کنید. دوم، پرامپت‌ها را از قبل آماده کنید تا وقت ماشین صرف فکر کردن شما نشود. سوم — و مهم‌ترین — دیسک ماشین با حذف ماشین پاک می‌شود؛ فضای ذخیره‌سازی دائمی وجود ندارد. خروجی‌ها در پوشهٔ outputs داخل مسیر Fooocus جمع می‌شوند. قبل از حذف، از دستگاه خودتان بگیریدشان:

scp -P <PORT> -r root@<HOST>:/path/to/Fooocus/outputs ./fooocus-outputs

قدم بعدی

اگر از Fooocus شروع کردید و بعد خواستید روی هر مرحله کنترل دقیق داشته باشید، سراغ ComfyUI بروید؛ در پست آموزش ComfyUI روی GPU ابری: اولین تصویر با SDXL از صفر تا اولین خروجی را نوشته‌ایم. اگر هم هدفتان استایل ثابت و شخصی است، قدم بعدی آموزش یک LoRA اختصاصی با قالب Kohya's GUI است.

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

آیا برای Fooocus به کارت گرافیک نیاز است؟

بله، Fooocus برای ساخت تصویر به GPU نیاز دارد و روی کارت‌های انویدیا از ۴ گیگابایت VRAM به بالا اجرا می‌شود. اگر کارت مناسبی ندارید، ساده‌ترین راه اجارهٔ ساعتی یک کارت ابری است؛ کل محاسبات روی همان ماشین انجام می‌شود و دستگاه شما فقط مرورگر را باز نگه می‌دارد.

فرق Fooocus با ComfyUI چیست؟

هر دو روی موتور Stable Diffusion کار می‌کنند، اما Fooocus تقریباً همهٔ تنظیمات را خودش انتخاب می‌کند و شما فقط پرامپت می‌نویسید. ComfyUI در عوض هر مرحله را به شکل نود در اختیارتان می‌گذارد و برای ورک‌فلوهای پیچیده و تکرارپذیر ساخته شده است.

چقدر طول می‌کشد تا اولین تصویر ساخته شود؟

از لحظهٔ اجاره تا اولین تصویر معمولاً کمتر از ۱۵ دقیقه: چند دقیقه آماده شدن ماشین، چند دقیقه دانلود مدل پایه روی خود ماشین، و بعد هر تصویر حدود ۲۰ تا ۴۰ ثانیه روی یک کارت ۱۲ گیگابایتی.

آیا می‌توانم پرامپت را فارسی بنویسم؟

نه. مدل‌های SDXL که Fooocus استفاده می‌کند با متن انگلیسی آموزش دیده‌اند و پرامپت فارسی نتیجهٔ درستی نمی‌دهد. پرامپت را انگلیسی بنویسید؛ برای شروع، چند کلمه دربارهٔ موضوع، نور و سبک کافی است.

خروجی‌ها بعد از حذف ماشین باقی می‌مانند؟

نه. دیسک ماشین با حذف آن پاک می‌شود و فضای ذخیره‌سازی دائمی یا مشترک وجود ندارد. قبل از حذف، پوشهٔ outputs را با scp روی دستگاه خودتان بیاورید یا به فضای ابری خودتان بفرستید.

تصویر کاور: «Point and Shoot Camera 6100» اثر Td hydzu، از ویکی‌مدیا کامنز، لایسنس CC0.