ComfyUI چیست؟ آموزش نصب و ساخت تصویر با هوش مصنوعی از صفر
ComfyUI یک ابزار متنباز و نودمحور برای تولید و ویرایش تصویر، ویدئو، صوت و محتوای سهبعدی با مدلهای هوش مصنوعی است. در این راهنما، نصب ComfyUI، ساخت اولین Workflow، کار با Checkpoint، LoRA و ControlNet و اتصال آن به API درواره برای تولید حرفهای پرامپت را یاد میگیرید.
ComfyUI یکی از قدرتمندترین ابزارهای متنباز برای تولید تصویر با هوش مصنوعی است. برخلاف برنامههایی که فقط یک کادر پرامپت و دکمه Generate دارند، در ComfyUI تمام مراحل تولید تصویر بهصورت گرافی از نودهای قابلاتصال نمایش داده میشوند.
این ساختار نودمحور به شما اجازه میدهد مدل، پرامپت، ابعاد تصویر، Seed، Sampler، تعداد مراحل تولید، LoRA، ControlNet، مرجع تصویری، بزرگنمایی و خروجی نهایی را با دقت کنترل کنید.
ComfyUI فقط برای تولید عکس نیست. نسخههای جدید آن میتوانند در Workflowهای مختلف برای ساخت ویدئو، ویرایش تصویر، تولید صوت، ساخت مدل سهبعدی، حذف پسزمینه، افزایش کیفیت و خودکارسازی فرایندهای تولید محتوا استفاده شوند.
در این آموزش یاد میگیرید:
- ComfyUI چیست و چگونه کار میکند؟
- تفاوت ComfyUI با رابطهای ساده تولید تصویر چیست؟
- چگونه ComfyUI را در ویندوز، macOS و لینوکس نصب کنیم؟
- Node و Workflow در ComfyUI چه معنایی دارند؟
- چگونه اولین تصویر را تولید کنیم؟
- Checkpoint، VAE، LoRA و ControlNet چیست؟
- چگونه Workflow را ذخیره و دوباره استفاده کنیم؟
- چگونه ComfyUI را با API کنترل کنیم؟
- چگونه با API درواره یک تولیدکننده حرفهای پرامپت برای ComfyUI بسازیم؟
- خطاهای رایج ComfyUI را چگونه برطرف کنیم؟
ComfyUI چیست؟
ComfyUI یک موتور متنباز و ماژولار برای اجرای مدلهای مولد است که از رابط گرافی مبتنی بر Node استفاده میکند.
در این برنامه هر مرحله از تولید محتوا یک نود مستقل است. خروجی یک نود میتواند به ورودی نود دیگری متصل شود و مجموعه این اتصالها یک Workflow را تشکیل میدهد.
برای مثال، یک Workflow ساده تولید تصویر میتواند شامل نودهای زیر باشد:
- بارگذاری مدل
- دریافت پرامپت مثبت
- دریافت پرامپت منفی
- ایجاد فضای Latent
- اجرای Sampling
- تبدیل Latent به تصویر
- ذخیره تصویر
بر اساس مخزن رسمی ComfyUI، این نرمافزار از Workflowهای تولید تصویر، ویدئو، صوت، مدل سهبعدی و متن پشتیبانی میکند و میتواند مدلها، LoRAها، ControlNetها، VAEها و ابزارهای پردازش مختلف را در یک گراف ترکیب کند.
چرا ComfyUI محبوب شده است؟
ComfyUI به چند دلیل میان طراحان، تولیدکنندگان محتوا و توسعهدهندگان محبوب شده است.
کنترل دقیق روی تولید تصویر
کاربر میتواند تقریباً تمام پارامترهای فرایند تولید را مشاهده و تغییر دهد. این قابلیت برای تکرارپذیری، آزمون مدلها و ساخت خروجی حرفهای اهمیت زیادی دارد.
Workflowهای قابل ذخیره
Workflow را میتوان بهصورت فایل JSON ذخیره کرد و برای پروژههای دیگر بهکار برد. اطلاعات Workflow در بعضی تصاویر خروجی نیز ذخیره میشود و با واردکردن تصویر به ComfyUI میتوان گراف آن را بازیابی کرد.
اجرای فقط بخشهای تغییرکرده
اگر تنها یک قسمت Workflow تغییر کند، ComfyUI میتواند بخشهای لازم را دوباره اجرا کند و از پردازش مجدد همه مراحل جلوگیری کند.
مدیریت حافظه
ComfyUI برای استفاده بهینه از RAM و VRAM طراحی شده است و میتواند مدلها را متناسب با منابع سیستم بارگذاری یا جابهجا کند.
پشتیبانی از Custom Node
توسعهدهندگان میتوانند نودهای جدیدی برای اتصال API، پردازش تصویر، ویرایش ویدئو یا اجرای ابزارهای دیگر ایجاد کنند.
قابلیت استفاده در نرمافزارهای دیگر
Workflowهای ComfyUI را میتوان از طریق API اجرا کرد. بنابراین توسعهدهنده میتواند یک رابط کاربری ساده برای مشتری طراحی کند و پردازش اصلی را به ComfyUI بسپارد.
ComfyUI چه کاربردهایی دارد؟
کاربردهای رایج ComfyUI عبارتاند از:
- تبدیل متن به تصویر
- تبدیل تصویر به تصویر
- ویرایش بخشی از عکس با Inpainting
- گسترش کادر تصویر با Outpainting
- تغییر سبک تصویر
- استفاده از تصویر مرجع
- حفظ حالت یا ترکیببندی با ControlNet
- استفاده از چند LoRA در یک Workflow
- افزایش وضوح و اندازه تصویر
- حذف پسزمینه
- تولید تصاویر محصول
- ساخت کاراکتر ثابت
- تولید فریمهای ویدئو
- ساخت ویدئو با مدلهای متنباز
- پردازش دستهای صدها تصویر
- اتصال فرایند تولید محتوا به سایت یا اپلیکیشن
تفاوت ComfyUI با ابزارهای ساده تولید تصویر
| ویژگی | ابزارهای ساده | ComfyUI |
|---|---|---|
| نوشتن پرامپت و تولید تصویر | بله | بله |
| کنترل کامل مراحل تولید | محدود | بله |
| رابط نودمحور | خیر | بله |
| ذخیره Workflow | معمولاً محدود | بله |
| استفاده از Custom Node | معمولاً خیر | بله |
| اجرای مدلهای محلی | در برخی ابزارها | بله |
| ترکیب چند مدل و LoRA | محدود | بله |
| ساخت فرایند خودکار | محدود | بله |
| اتصال به برنامه با API | متغیر | بله |
| مناسب کاربر کاملاً مبتدی | سادهتر | نیازمند یادگیری |
| مناسب فرایند حرفهای | محدودتر | بسیار مناسب |
اگر فقط گاهی یک تصویر ساده میسازید، رابطهای آماده احتمالاً سریعتر هستند. اگر میخواهید نتیجه قابلکنترل و تکرارپذیر داشته باشید یا یک خط تولید محتوا بسازید، ComfyUI انتخاب مناسبتری است.
مفاهیم اصلی ComfyUI
Node چیست؟
Node یک واحد پردازشی در Workflow است. هر نود ورودیهایی دریافت میکند، عملی انجام میدهد و خروجی مشخصی میسازد.
برای مثال، نود Load Checkpoint مدل را بارگذاری میکند و چند خروجی در اختیار نودهای دیگر قرار میدهد.
Workflow چیست؟
Workflow مجموعهای از نودها و اتصال میان آنها است. Workflow مشخص میکند اطلاعات از چه مسیری عبور کنند و تصویر چگونه ساخته شود.
Checkpoint چیست؟
Checkpoint فایل اصلی مدل تولید تصویر است. این فایل معمولاً پسوندهایی مانند زیر دارد:
.safetensors
.ckpt
مدلهای مختلف از نظر سبک، کیفیت، معماری و منابع سختافزاری موردنیاز متفاوتاند.
Prompt مثبت چیست؟
پرامپت مثبت ویژگیهایی را توضیح میدهد که میخواهید در تصویر دیده شوند.
مثال:
professional product photography of a luxury wristwatch,
black background, soft studio lighting, metallic reflections,
high detail, commercial advertising style
Prompt منفی چیست؟
پرامپت منفی ویژگیهایی را مشخص میکند که نمیخواهید در تصویر ظاهر شوند.
مثال:
blurry, low quality, distorted, duplicate objects,
bad proportions, text, watermark
همه معماریهای جدید دقیقاً مانند Stable Diffusion 1.5 یا SDXL از پرامپت منفی استفاده نمیکنند. بنابراین تنظیمات را باید با مدل انتخابشده تطبیق دهید.
Latent چیست؟
مدلهای Diffusion معمولاً تصویر را مستقیماً در فضای پیکسلی ایجاد نمیکنند. ابتدا نمایش فشردهای به نام Latent ساخته و پردازش میشود و سپس VAE آن را به تصویر قابلمشاهده تبدیل میکند.
Sampler چیست؟
Sampler الگوریتمی است که فرایند حذف تدریجی نویز و شکلگیری تصویر را کنترل میکند.
Steps چیست؟
Steps تعداد مراحل Sampling است. افزایش آن همیشه به معنای کیفیت بهتر نیست. هر مدل و Sampler بازه مناسب خود را دارد.
CFG چیست؟
CFG یا Classifier-Free Guidance میزان پیروی مدل از پرامپت را کنترل میکند. مقدار بسیار بالا میتواند رنگها و جزئیات را غیرطبیعی کند.
Seed چیست؟
Seed عدد اولیه تولید است. اگر مدل، Workflow، پرامپت و تنظیمات یکسان باشند، Seed ثابت به بازتولید خروجی نزدیک کمک میکند.
پیشنیازهای اجرای ComfyUI
ComfyUI میتواند روی سختافزارهای مختلف اجرا شود، اما سرعت آن به مدل و کارت گرافیک بستگی دارد.
سختافزار پیشنهادی
| نوع استفاده | حافظه گرافیکی پیشنهادی |
|---|---|
| مدلهای سبک و تصاویر کوچک | حدود ۴ تا ۶ گیگابایت |
| Stable Diffusion 1.5 | حدود ۶ گیگابایت یا بیشتر |
| SDXL و Workflowهای متوسط | حدود ۸ تا ۱۲ گیگابایت |
| FLUX و مدلهای سنگین | معمولاً ۱۲ گیگابایت یا بیشتر |
| ویدئو و Workflowهای پیچیده | ۱۶ تا ۲۴ گیگابایت یا بیشتر |
این اعداد قطعی نیستند. Quantization، Offloading، ابعاد تصویر، Batch Size و نوع Workflow میتوانند مصرف حافظه را تغییر دهند.
اجرای ComfyUI با CPU نیز امکانپذیر است، اما تولید تصویر معمولاً بسیار کندتر خواهد بود.
آموزش نصب ComfyUI در ویندوز
برای کاربران تازهکار، نسخه Comfy Desktop سادهترین گزینه است.
روش اول: نصب Comfy Desktop
وارد صفحه رسمی دریافت ComfyUI شوید و نسخه Windows را دریافت کنید.
سپس:
- فایل نصب را اجرا کنید.
- پوشه نصب را انتخاب کنید.
- اجازه دهید وابستگیهای موردنیاز نصب شوند.
- برنامه را اجرا کنید.
- Workflow پیشفرض را باز کنید.
طبق راهنمای رسمی، نسخه Desktop سادهترین روش شروع برای کاربران ویندوز و macOS است.
روش دوم: نسخه Portable ویندوز
نسخه Portable برای کاربرانی مناسب است که میخواهند ساختار فایلها، نسخه Python و اجرای برنامه را مستقیماً مدیریت کنند.
پس از دریافت فایل Portable:
- فایل فشرده را استخراج کنید.
- پوشه برنامه را باز کنید.
- فایل اجرای مناسب کارت گرافیک را اجرا کنید.
- صبر کنید تا پنجره فرمان آدرس محلی را نمایش دهد.
- آدرس معمول ComfyUI را در مرورگر باز کنید:
http://127.0.0.1:8188
برای نصب عادی، نسخه Desktop پیشنهاد میشود. نسخه Portable بیشتر برای عیبیابی، توسعه Custom Node و مدیریت دستی فایلها مناسب است.
آموزش نصب ComfyUI در macOS
نسخه رسمی Comfy Desktop برای macOS نیز ارائه میشود.
پس از دریافت برنامه:
- فایل نصب را باز کنید.
- برنامه را به Applications منتقل کنید.
- ComfyUI را اجرا کنید.
- محل نگهداری مدلها را مشخص کنید.
- Workflow اولیه را باز کنید.
سیستمهای Apple Silicon میتوانند از شتابدهی سختافزاری Metal استفاده کنند. سرعت و سازگاری هر مدل باید جداگانه بررسی شود.
آموزش نصب دستی ComfyUI در لینوکس
برای نصب دستی ابتدا Git و Python را نصب کنید. سپس مخزن رسمی را دریافت کنید:
git clone https://github.com/Comfy-Org/ComfyUI.git
cd ComfyUI
یک محیط مجازی بسازید:
python3 -m venv .venv
source .venv/bin/activate
نسخه مناسب PyTorch را بر اساس کارت گرافیک و راهنمای رسمی PyTorch نصب کنید. سپس وابستگیهای ComfyUI را نصب کنید:
pip install -r requirements.txt
برای اجرا:
python main.py
پس از راهاندازی، این آدرس را باز کنید:
http://127.0.0.1:8188
دستورهای نصب PyTorch برای NVIDIA، AMD و Intel با یکدیگر متفاوتاند. جدیدترین دستور را از مخزن رسمی ComfyUI و مستندات PyTorch دریافت کنید.
مدلها را در کدام پوشه قرار دهیم؟
مدلها باید در پوشه مناسب قرار گیرند.
ساختار رایج به این شکل است:
ComfyUI/
└── models/
├── checkpoints/
├── vae/
├── loras/
├── controlnet/
├── clip/
├── clip_vision/
├── upscale_models/
└── diffusion_models/
کاربرد پوشهها:
| پوشه | نوع فایل |
|---|---|
checkpoints | مدلهای کامل Stable Diffusion و SDXL |
vae | مدلهای VAE |
loras | فایلهای LoRA |
controlnet | مدلهای ControlNet |
clip | مدلهای Text Encoder |
clip_vision | مدلهای تحلیل تصویر |
upscale_models | مدلهای افزایش کیفیت |
diffusion_models | مدلهای Diffusion جداشده |
مدلهای جدید ممکن است از چند فایل مستقل تشکیل شده باشند. همیشه راهنمای همان مدل را بخوانید و فایلها را در پوشه پیشنهادی قرار دهید.
آموزش ساخت اولین تصویر در ComfyUI
یک Workflow پایه تولید تصویر معمولاً از نودهای زیر تشکیل میشود:
Load Checkpoint
CLIP Text Encode (Positive)
CLIP Text Encode (Negative)
Empty Latent Image
KSampler
VAE Decode
Save Image
مرحله اول: بارگذاری مدل
در نود Load Checkpoint مدل موردنظر را انتخاب کنید.
این نود معمولاً سه خروجی میدهد:
- MODEL
- CLIP
- VAE
خروجی MODEL به KSampler متصل میشود. خروجی CLIP برای پردازش پرامپت و خروجی VAE برای تبدیل Latent به تصویر استفاده میشود.
مرحله دوم: نوشتن پرامپت مثبت
در نود CLIP Text Encode مثبت، توضیح تصویر را وارد کنید:
a modern Iranian coffee shop interior,
warm natural lighting, wooden furniture,
green plants, realistic architectural photography,
wide angle, highly detailed
مرحله سوم: نوشتن پرامپت منفی
در نود پرامپت منفی بنویسید:
low quality, blurry, distorted furniture,
bad perspective, oversaturated, text, watermark
مرحله چهارم: تعیین ابعاد تصویر
در نود Empty Latent Image عرض و ارتفاع را تعیین کنید.
برای آزمایش اولیه میتوانید از ابعاد سازگار با مدل استفاده کنید. برای مثال، مدلهای SDXL معمولاً برای ابعاد نزدیک به ۱۰۲۴ پیکسل طراحی شدهاند، درحالیکه مدلهای قدیمیتر ممکن است در ابعاد پایینتر بهتر عمل کنند.
مرحله پنجم: تنظیم KSampler
در نود KSampler پارامترهای زیر را مشاهده میکنید:
- Seed
- Steps
- CFG
- Sampler
- Scheduler
- Denoise
برای شروع میتوانید از تنظیمات پیشفرض Workflow مدل استفاده کنید. تنظیمات مناسب میان مدلها متفاوت است و یک مقدار ثابت برای همه مدلها وجود ندارد.
مرحله ششم: تبدیل Latent به تصویر
خروجی Latent نود KSampler را به ورودی VAE Decode متصل کنید. سپس خروجی تصویر را به Save Image بدهید.
مرحله هفتم: اجرای Workflow
برای اجرای گراف روی گزینه Queue Prompt کلیک کنید یا از میانبر زیر استفاده کنید:
Ctrl + Enter
تصویر تولیدشده در نود Save Image نمایش داده و در پوشه خروجی ذخیره میشود.
مسیر اتصال نودهای Workflow پایه
اتصال اصلی باید تقریباً به این شکل باشد:
| خروجی | ورودی مقصد |
|---|---|
| MODEL از Load Checkpoint | model در KSampler |
| CLIP از Load Checkpoint | clip در هر دو CLIP Text Encode |
| Positive Conditioning | positive در KSampler |
| Negative Conditioning | negative در KSampler |
| Empty Latent | latent_image در KSampler |
| Samples از KSampler | samples در VAE Decode |
| VAE از Load Checkpoint | vae در VAE Decode |
| Image از VAE Decode | images در Save Image |
اگر نوع خروجی و ورودی سازگار باشد، رنگ اتصالها معمولاً یکسان یا نزدیک خواهد بود.
LoRA در ComfyUI چیست؟
LoRA فایل کوچکی است که رفتار یا سبک یک مدل پایه را تغییر میدهد. از LoRA میتوان برای موارد زیر استفاده کرد:
- ایجاد یک سبک تصویری
- تولید کاراکتر مشخص
- بازسازی نوع خاصی از لباس
- ساخت محصولات با ویژگی ثابت
- افزودن یک مفهوم جدید به مدل
فایل LoRA را در مسیر زیر قرار دهید:
ComfyUI/models/loras/
سپس نود Load LoRA را به Workflow اضافه کنید.
اتصال معمول:
Load Checkpoint → Load LoRA → KSampler
خروجی CLIP نود LoRA نیز باید به نودهای پردازش پرامپت متصل شود.
پارامترهای قدرت LoRA را بهآرامی تغییر دهید. مقدار بسیار بالا ممکن است جزئیات تصویر را غیرطبیعی کند.
ControlNet چیست؟
ControlNet برای کنترل ساختار تصویر استفاده میشود. بهجای اینکه فقط با متن ترکیببندی را توضیح دهید، میتوانید یک نقشه ساختاری به مدل بدهید.
کاربردهای رایج ControlNet:
- حفظ حالت بدن
- کنترل لبهها
- حفظ عمق صحنه
- بازسازی ترکیببندی تصویر
- تبدیل طرح دستی به تصویر
- کنترل معماری و پرسپکتیو
انواع ورودی رایج عبارتاند از:
- Canny
- Depth
- OpenPose
- Line Art
- Scribble
- Normal Map
برای مثال، OpenPose میتواند حالت بدن یک شخص در تصویر مرجع را استخراج کند و به تولید تصویر جدید با همان حالت کمک کند.
Inpainting در ComfyUI
Inpainting برای تغییر بخش محدودی از تصویر استفاده میشود.
فرایند کلی:
- تصویر اصلی را وارد کنید.
- روی بخش موردنظر Mask بسازید.
- پرامپت تغییر را بنویسید.
- تصویر و Mask را به Workflow Inpainting بدهید.
- مقدار Denoise را تنظیم کنید.
- چند Seed مختلف را آزمایش کنید.
مثال کاربردی:
تغییر رنگ مبل بدون تغییر معماری اتاق
یا:
حذف یک شیء از تصویر و بازسازی پسزمینه
Outpainting چیست؟
Outpainting برای گسترش تصویر خارج از کادر فعلی استفاده میشود. برای مثال میتوان یک تصویر مربعی محصول را به تصویر افقی تبلیغاتی تبدیل کرد.
در این فرایند:
- فضای خالی در اطراف تصویر ایجاد میشود.
- بخش جدید Mask میشود.
- مدل با توجه به تصویر و پرامپت، فضای خالی را تکمیل میکند.
آموزش نصب ComfyUI Manager
ComfyUI Manager نصب، بهروزرسانی و مدیریت Custom Nodeها را سادهتر میکند.
در نسخههای جدید، Manager میتواند با فلگ زیر فعال شود:
python main.py --enable-manager
اگر از نسخهای استفاده میکنید که Manager در آن فعال نیست، راهنمای همان نسخه را بررسی کنید. روش نصب Manager در طول زمان تغییر کرده است و نباید صرفاً از آموزشهای قدیمی استفاده کرد.
پس از فعالشدن Manager میتوانید:
- Custom Node نصب کنید.
- نودهای گمشده Workflow را پیدا کنید.
- افزونهها را بهروزرسانی کنید.
- بعضی مدلهای موردنیاز را شناسایی کنید.
- نسخه افزونهها را مدیریت کنید.
Workflow آماده چیست؟
Workflow آماده یک فایل JSON یا تصویر حاوی اطلاعات گراف است که میتوانید آن را وارد ComfyUI کنید.
برای بارگذاری Workflow:
- فایل JSON را داخل محیط ComfyUI بکشید.
- یا از گزینه Load استفاده کنید.
- یا تصویر تولیدشدهای را که Metadata آن حذف نشده است، داخل صفحه بکشید.
قبل از اجرای Workflow دانلودشده بررسی کنید:
- چه مدلهایی نیاز دارد؟
- چه Custom Nodeهایی استفاده میکند؟
- رزولوشن خروجی چقدر است؟
- مقدار VRAM موردنیاز چقدر است؟
- آیا نودهای API پولی دارد؟
- مدلها باید در کدام پوشه قرار گیرند؟
ذخیره Workflow
برای ذخیره Workflow از گزینه Save یا میانبر زیر استفاده کنید:
Ctrl + S
بهتر است برای پروژهها نامگذاری مشخص داشته باشید:
product-photo-v1.json
product-photo-v2-lora.json
product-photo-upscale-final.json
در پروژههای حرفهای، نسخه Workflow، مدل، Seed و پرامپت را همراه خروجی نگهداری کنید.
اتصال ComfyUI به API درواره چه کاربردی دارد؟
ComfyUI عمدتاً موتور اجرای Workflowهای تصویری است. API درواره نیز دسترسی یکپارچه به مدلهای مختلف هوش مصنوعی را فراهم میکند.
یکی از کاربردهای عملی ترکیب این دو، استفاده از یک مدل زبانی از طریق API درواره برای تبدیل توضیح ساده فارسی به پرامپت دقیق تصویری است.
برای مثال، کاربر مینویسد:
یک عکس تبلیغاتی از ساعت لوکس روی میز مشکی بساز
مدل زبانی آن را به پرامپتی ساختاریافته تبدیل میکند:
luxury wristwatch on a matte black marble pedestal,
dramatic rim lighting, controlled metallic reflections,
premium commercial product photography,
dark studio background, shallow depth of field,
high detail, symmetrical composition
سپس این خروجی مستقیماً به نود Text Encode در ComfyUI فرستاده میشود.
این روش برای کاربران فارسیزبان مفید است؛ زیرا لازم نیست تمام جزئیات نورپردازی، لنز، ترکیببندی و سبک را به انگلیسی بنویسند.
ساخت Custom Node درواره برای ComfyUI
در این مثال، یک نود ساده میسازیم که متن فارسی را از طریق API درواره به پرامپت تصویری تبدیل میکند.
مرحله اول: ساخت پوشه Custom Node
در مسیر زیر یک پوشه جدید بسازید:
ComfyUI/custom_nodes/darvareh_prompt/
داخل آن فایل زیر را ایجاد کنید:
__init__.py
مرحله دوم: قراردادن کد نود
کد زیر را داخل فایل __init__.py قرار دهید:
import os
import requests
class DarvarehPromptGenerator:
CATEGORY = "Darvareh"
FUNCTION = "generate_prompt"
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("image_prompt",)
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"user_description": (
"STRING",
{
"multiline": True,
"default": "یک تصویر تبلیغاتی حرفهای از محصول",
},
),
"model_id": (
"STRING",
{
"default": "YOUR_MODEL_ID",
},
),
"instruction": (
"STRING",
{
"multiline": True,
"default": (
"توضیح کاربر را به یک پرامپت دقیق انگلیسی "
"برای تولید تصویر تبدیل کن. عناصر صحنه، "
"ترکیببندی، نورپردازی، زاویه دوربین، سبک و "
"جزئیات بصری را مشخص کن. فقط پرامپت نهایی "
"را برگردان و هیچ توضیح اضافه ننویس."
),
},
),
}
}
def generate_prompt(
self,
user_description,
model_id,
instruction,
):
api_key = os.environ.get("DARVAREH_API_KEY")
if not api_key:
raise ValueError(
"متغیر محیطی DARVAREH_API_KEY تنظیم نشده است."
)
response = requests.post(
"https://api.darvareh.ir/v1/chat/completions",
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
},
json={
"model": model_id,
"temperature": 0.4,
"messages": [
{
"role": "system",
"content": instruction,
},
{
"role": "user",
"content": user_description,
},
],
},
timeout=90,
)
response.raise_for_status()
data = response.json()
content = data["choices"][0]["message"]["content"]
if not content:
raise ValueError("پرامپتی از مدل دریافت نشد.")
return (content.strip(),)
NODE_CLASS_MAPPINGS = {
"DarvarehPromptGenerator": DarvarehPromptGenerator,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"DarvarehPromptGenerator": (
"Darvareh AI Prompt Generator"
),
}
مرحله سوم: تنظیم کلید API
کلید API را بهصورت متغیر محیطی تعریف کنید.
در Linux یا macOS:
export DARVAREH_API_KEY="YOUR_API_KEY"
python main.py
در PowerShell ویندوز:
$env:DARVAREH_API_KEY="YOUR_API_KEY"
python main.py
اگر از Python داخلی نسخه Portable استفاده میکنید، برنامه را با همان فایل اجرایی بسته Portable راهاندازی کنید.
کلید API را مستقیماً داخل کد یا فایل Workflow قرار ندهید؛ زیرا ممکن است هنگام اشتراکگذاری Workflow منتشر شود.
مرحله چهارم: راهاندازی مجدد ComfyUI
ComfyUI را کاملاً ببندید و دوباره اجرا کنید. سپس در جستوجوی Node عبارت زیر را وارد کنید:
Darvareh AI Prompt Generator
مرحله پنجم: اتصال نود به Workflow
خروجی image_prompt را به ورودی متن نود مثبت CLIP Text Encode متصل کنید.
ساختار کلی:
توضیح فارسی کاربر
↓
Darvareh AI Prompt Generator
↓
CLIP Text Encode
↓
KSampler
↓
VAE Decode
↓
Save Image
مرحله ششم: انتخاب مدل
در فیلد model_id شناسه دقیق یکی از مدلهای متنی موجود در درواره را وارد کنید.
شناسه مدل را از فهرست فعلی مدلها یا مستندات API درواره دریافت کنید.
برای این کاربرد، مدل باید در موارد زیر عملکرد مناسبی داشته باشد:
- درک توضیح فارسی
- پیروی دقیق از دستور
- تولید متن انگلیسی روان
- شناخت اصطلاحات عکاسی
- شناخت سبکهای تصویرسازی
- تولید خروجی کوتاه و بدون توضیح اضافه
نمونه عملی تولید پرامپت محصول
ورودی فارسی:
یک تصویر تبلیغاتی از یک عطر شیشهای بنفش میخواهم.
پسزمینه تاریک باشد و نور از پشت شیشه عبور کند.
تصویر باید برای تبلیغ در اینستاگرام مناسب باشد.
خروجی احتمالی نود:
premium commercial product photography of an elegant
purple glass perfume bottle, centered composition,
dark luxury studio background, dramatic backlighting
passing through the translucent glass, subtle purple
reflections, glossy black surface, soft atmospheric haze,
high contrast, sophisticated cosmetic advertising,
sharp product details, vertical social media composition
این متن به نود CLIP Text Encode منتقل و در Workflow تولید تصویر استفاده میشود.
پرامپت سیستمی بهتر برای تولید تصویر محصول
میتوانید Instruction نود درواره را با متن زیر جایگزین کنید:
شما متخصص Prompt Engineering برای تولید تصویر تبلیغاتی هستید.
توضیح فارسی کاربر را به یک پرامپت انگلیسی دقیق تبدیل کن.
در صورت مرتبطبودن، موارد زیر را مشخص کن:
- سوژه اصلی
- محیط و پسزمینه
- ترکیببندی
- زاویه دوربین
- نوع لنز
- نورپردازی
- پالت رنگ
- جنس و بافت
- سبک تصویری
- میزان واقعگرایی
- کاربرد تجاری تصویر
اطلاعاتی را که با خواسته کاربر تعارض دارند اضافه نکن.
فقط پرامپت نهایی را برگردان.
از Markdown، عنوان و توضیح اضافه استفاده نکن.
آیا میتوان تصویر را مستقیماً با API درواره در ComfyUI ساخت؟
این موضوع به Endpointها و مدلهای تصویری فعال در درواره و همچنین نود مورد استفاده در ComfyUI بستگی دارد.
دو معماری متفاوت وجود دارد:
اجرای محلی
مدل تصویر روی همان سیستم ComfyUI اجرا میشود:
ComfyUI → مدل محلی → تصویر
در این حالت به کارت گرافیک مناسب و فایل مدل نیاز دارید.
اجرای API
ComfyUI درخواست را به یک سرویس خارجی میفرستد:
ComfyUI → API مدل تصویری → دریافت تصویر
در این حالت به Custom Node سازگار با Endpoint مدل نیاز دارید و پردازش روی زیرساخت ارائهدهنده انجام میشود.
قبل از اتصال یک مدل تصویری درواره، مستندات همان مدل را بررسی کنید؛ زیرا ساختار درخواست تولید تصویر، ویرایش تصویر و ویدئو میتواند با Chat Completions متفاوت باشد.
استفاده از API محلی ComfyUI
ComfyUI میتواند Workflow را از طریق API دریافت و اجرا کند. این قابلیت برای ساخت سایت یا اپلیکیشن تولید تصویر بسیار مهم است.
معماری پیشنهادی:
کاربر
↓
رابط سایت یا اپلیکیشن
↓
سرور نرمافزار
↓
آمادهسازی Workflow JSON
↓
API محلی ComfyUI
↓
صف پردازش
↓
تولید و ذخیره تصویر
↓
نمایش نتیجه به کاربر
Workflow رابط گرافیکی با نسخه API یکسان نیست. برای ارسال آن باید Workflow را در قالب API ذخیره کنید.
در ComfyUI گزینهای مانند زیر را پیدا کنید:
Save (API Format)
در برخی نسخهها ابتدا باید حالت Developer یا گزینههای توسعهدهنده فعال شوند.
نمونه ارسال Workflow به API محلی ComfyUI
نمونه ساده پایتون:
import json
import uuid
from pathlib import Path
import requests
COMFY_URL = "http://127.0.0.1:8188"
CLIENT_ID = str(uuid.uuid4())
def queue_workflow(workflow_path: str) -> dict:
workflow = json.loads(
Path(workflow_path).read_text(encoding="utf-8")
)
response = requests.post(
f"{COMFY_URL}/prompt",
json={
"prompt": workflow,
"client_id": CLIENT_ID,
},
timeout=30,
)
response.raise_for_status()
return response.json()
result = queue_workflow("workflow_api.json")
print(result)
خروجی معمولاً شامل شناسه Prompt است که میتوان با آن وضعیت اجرا و نتیجه را پیگیری کرد.
برای استفاده عملی باید موارد زیر نیز پیادهسازی شوند:
- تغییر پرامپت داخل JSON
- تعیین Seed
- مدیریت صف
- پیگیری وضعیت با WebSocket
- دریافت خروجی
- مدیریت خطا
- محدودکردن تعداد Job همزمان
- ثبت زمان پردازش
- تحویل فایل به کاربر
ساخت سایت تولید تصویر با ComfyUI
فرض کنید میخواهید سایتی بسازید که کاربر توضیح فارسی وارد کند و تصویر دریافت کند.
فرایند مناسب میتواند چنین باشد:
- کاربر توضیح فارسی را وارد میکند.
- سرور توضیح را برای مدل متنی درواره میفرستد.
- مدل، پرامپت تصویری دقیق تولید میکند.
- سرور پرامپت را داخل Workflow ComfyUI قرار میدهد.
- Workflow در صف پردازش قرار میگیرد.
- ComfyUI تصویر را تولید میکند.
- نتیجه در فضای ذخیرهسازی قرار میگیرد.
- آدرس تصویر به کاربر نمایش داده میشود.
در این معماری، API درواره نقش تولید و بهینهسازی پرامپت را دارد و ComfyUI وظیفه اجرای مدل تصویری را بر عهده میگیرد.
خطاهای رایج ComfyUI
مدل در فهرست نمایش داده نمیشود
موارد زیر را بررسی کنید:
- فایل در پوشه صحیح قرار گرفته است.
- پسوند فایل پشتیبانی میشود.
- دانلود فایل کامل شده است.
- برنامه پس از افزودن مدل Refresh یا Restart شده است.
- مدل چندبخشی در پوشههای درست قرار گرفته است.
خطای CUDA Out of Memory
این خطا یعنی حافظه گرافیکی کافی نیست.
راهحلهای احتمالی:
- ابعاد تصویر را کاهش دهید.
- Batch Size را روی ۱ قرار دهید.
- از مدل یا نسخه Quantized سبکتر استفاده کنید.
- Workflowهای اضافی را حذف کنید.
- برنامههای مصرفکننده GPU را ببندید.
- از گزینههای Low VRAM استفاده کنید.
- تولید و Upscale را در دو مرحله انجام دهید.
نود قرمز یا Missing نمایش داده میشود
Workflow از Custom Nodeای استفاده میکند که روی سیستم نصب نیست. نام نود را پیدا کرده و افزونه رسمی یا مخزن معتبر آن را از طریق Manager نصب کنید.
تصویر کاملاً سیاه است
علتهای احتمالی:
- VAE ناسازگار است.
- مدل ناقص دانلود شده است.
- اتصال VAE Decode اشتباه است.
- نوع داده میان نودها سازگار نیست.
- مدل به Text Encoder یا VAE جداگانه نیاز دارد.
خروجی نویزی باقی میماند
موارد زیر را بررسی کنید:
- Steps بسیار پایین نباشد.
- Denoise با Workflow متناسب باشد.
- Sampler با مدل سازگار باشد.
- VAE و Text Encoder درست انتخاب شده باشند.
- Scheduler مطابق پیشنهاد مدل باشد.
Custom Node درواره نمایش داده نمیشود
پنجره فرمان ComfyUI را بررسی کنید. خطای Python معمولاً هنگام شروع برنامه نمایش داده میشود.
مطمئن شوید:
- فایل
__init__.pyنام درست دارد. - کتابخانه
requestsنصب است. - پوشه در مسیر
custom_nodesقرار دارد. - ComfyUI بعد از افزودن نود دوباره اجرا شده است.
در صورت نبود کتابخانه Requests:
pip install requests
این دستور را در همان محیط Python مربوط به ComfyUI اجرا کنید.
خطای 401 در API درواره
کلید API معتبر نیست یا به برنامه منتقل نشده است. مقدار متغیر محیطی را بررسی کنید:
import os
print(bool(os.environ.get("DARVAREH_API_KEY")))
برای جلوگیری از نمایش کلید، فقط وجود آن را بررسی کنید.
خطای Model Not Found
شناسه مدل را دقیقاً مطابق فهرست مدلهای درواره وارد کنید. نام نمایشی مدل الزاماً با Model ID یکسان نیست.
اجرای Workflow بسیار کند است
دلایل احتمالی:
- مدل برای سختافزار سنگین است.
- تصویر با ابعاد بسیار بزرگ تولید میشود.
- تولید با CPU انجام میشود.
- چند مرحله Upscale همزمان اجرا میشوند.
- مدلها مرتب میان RAM و VRAM جابهجا میشوند.
- تعداد Steps بیشتر از مقدار ضروری است.
نکات بهینهسازی Workflow
ابتدا در ابعاد کوچک آزمایش کنید
پرامپت و ترکیببندی را در ابعاد پایینتر بررسی و سپس تصویر منتخب را بزرگ کنید.
Seed خروجیهای خوب را نگه دارید
وقتی ترکیببندی مناسبی پیدا کردید، Seed را ثابت نگه دارید و فقط پارامترهای محدود را تغییر دهید.
Workflow را بخشبندی کنید
نودهای مربوط به مدل، پرامپت، Sampling و Post-processing را در گروههای جدا قرار دهید.
نام نودها را مشخص کنید
اگر Workflow پیچیده است، عنوان نودها را تغییر دهید تا نقش آنها مشخص باشد.
از Bypass استفاده کنید
بهجای حذف شاخههای آزمایشی، موقتاً آنها را Bypass کنید تا مقایسه آسانتر شود.
خروجی میانی ذخیره کنید
در Workflowهای طولانی، خروجی مراحل مهم را ذخیره کنید. این کار عیبیابی را سادهتر میکند.
نسخه مدل را ثبت کنید
تغییر نسخه Checkpoint، LoRA یا Custom Node میتواند نتیجه را تغییر دهد. اطلاعات نسخه را همراه Workflow نگه دارید.
کلیدهای میانبر کاربردی ComfyUI
| میانبر | کاربرد |
|---|---|
Ctrl + Enter | افزودن Workflow به صف |
Ctrl + S | ذخیره Workflow |
Ctrl + O | بازکردن Workflow |
Ctrl + Z | بازگشت تغییر |
Ctrl + Y | اجرای دوباره تغییر |
Ctrl + A | انتخاب همه نودها |
Ctrl + G | گروهبندی نودها |
Delete | حذف نود انتخابشده |
Space + Drag | جابهجایی صفحه |
Ctrl + C | کپی نود |
Ctrl + V | چسباندن نود |
Q | نمایش یا مخفیکردن صف |
H | نمایش تاریخچه |
R | تازهسازی گراف |
برخی میانبرها در سیستمعاملهای مختلف ممکن است متفاوت باشند.
پرسشهای متداول
آیا ComfyUI رایگان است؟
هسته ComfyUI متنباز است و میتوان آن را روی سیستم شخصی نصب کرد. بعضی مدلها، API Nodeها یا سرویسهای ابری ممکن است هزینه جداگانه داشته باشند.
آیا ComfyUI بدون کارت گرافیک اجرا میشود؟
امکان اجرای برخی Workflowها با CPU وجود دارد، اما سرعت معمولاً بسیار پایینتر است. برای تولید منظم تصویر، کارت گرافیک مناسب توصیه میشود.
ComfyUI بهتر است یا Stable Diffusion WebUI؟
ComfyUI برای کنترل دقیق، ساخت Workflow و خودکارسازی مناسبتر است. رابطهای WebUI کلاسیک برای شروع سریع و تولید سادهتر ممکن است راحتتر باشند.
آیا ComfyUI از FLUX پشتیبانی میکند؟
بله، ComfyUI از مدلهای مختلف خانواده FLUX و بسیاری از مدلهای جدید پشتیبانی میکند. فایلها و Workflow باید متناسب با نسخه دقیق مدل انتخاب شوند.
آیا ComfyUI برای ساخت ویدئو مناسب است؟
بله، Workflowهای تولید و پردازش ویدئو در ComfyUI وجود دارند؛ اما مدلهای ویدئویی معمولاً به حافظه گرافیکی، فضای ذخیرهسازی و زمان بیشتری نیاز دارند.
آیا میتوان با ComfyUI سایت تولید تصویر ساخت؟
بله. میتوانید Workflow را از طریق API اجرا کنید و رابط سایت را جداگانه بسازید. برای استفاده چندکاربره باید صف، محدودیت پردازش، وضعیت Job و ذخیره خروجی را نیز مدیریت کنید.
آیا میتوان پرامپت فارسی در ComfyUI نوشت؟
این موضوع به Text Encoder و مدل بستگی دارد. بسیاری از مدلهای تصویری در پرامپت انگلیسی عملکرد باثباتتری دارند. میتوانید از API درواره برای تبدیل توضیح فارسی به پرامپت انگلیسی استفاده کنید.
تفاوت Checkpoint و LoRA چیست؟
Checkpoint مدل اصلی است، اما LoRA تغییر کوچکتر و تخصصیتری روی رفتار یا سبک مدل ایجاد میکند و معمولاً باید همراه یک مدل پایه سازگار استفاده شود.
آیا Workflowهای دانلودشده همیشه اجرا میشوند؟
خیر. ممکن است Workflow به مدلها، نسخهها یا Custom Nodeهایی وابسته باشد که روی سیستم شما نصب نیستند.
آیا میتوان چند LoRA را همزمان استفاده کرد؟
بله، در صورت سازگاری میتوان چند LoRA را زنجیره کرد؛ اما ترکیب بیشازحد یا قدرت بالا میتواند کیفیت را کاهش دهد.
جمعبندی
ComfyUI یک رابط ساده تولید تصویر نیست؛ بلکه یک موتور نودمحور برای طراحی و اجرای فرایندهای حرفهای هوش مصنوعی است.
با ComfyUI میتوانید:
- مدلهای تصویری متنباز را اجرا کنید.
- مراحل تولید تصویر را دقیق کنترل کنید.
- از LoRA، ControlNet و Inpainting استفاده کنید.
- Workflowهای تکرارپذیر بسازید.
- فرایند تولید را با API خودکار کنید.
- سایت یا اپلیکیشن تولید تصویر راهاندازی کنید.
- توضیح فارسی کاربر را با API درواره به پرامپت حرفهای تبدیل کنید.
برای شروع، نسخه Desktop و یک Workflow ساده بهترین انتخاب است. پس از یادگیری نودهای پایه میتوانید به سراغ LoRA، ControlNet، ویرایش تصویر، Upscaling، ویدئو و Custom Nodeها بروید.
اگر میخواهید توضیحات فارسی کاربران را به پرامپت حرفهای تبدیل کنید یا از مدلهای زبانی مختلف داخل Workflow خود استفاده کنید، API سازگار با OpenAI درواره امکان اتصال با آدرس پایه زیر را فراهم میکند:
https://api.darvareh.ir/v1
برای دریافت کلید API، مشاهده شناسه مدلها و بررسی نمونه درخواستها به مستندات API درواره مراجعه کنید.
مقالات مرتبط
- راهنمای کامل تولید تصویر با هوش مصنوعی
- آموزش API تولید تصویر درواره
- پرامپتنویسی چیست؟
- تبدیل تصویر به پرامپت با هوش مصنوعی
- افزایش کیفیت عکس با هوش مصنوعی
منابع
- وبسایت رسمی ComfyUI
- دریافت Comfy Desktop
- مخزن رسمی ComfyUI در GitHub
- مستندات رسمی ComfyUI
- مستندات API درواره
این مقاله صرفاً با هدف آموزش و اطلاعرسانی تهیه شده است. پیش از استفاده عملی، مستندات رسمی سرویسها و صفحه سلب مسئولیت را مطالعه کنید.