ComfyUI چیست؟ آموزش نصب و ساخت تصویر با هوش مصنوعی از صفر

ComfyUI یک ابزار متن‌باز و نودمحور برای تولید و ویرایش تصویر، ویدئو، صوت و محتوای سه‌بعدی با مدل‌های هوش مصنوعی است. در این راهنما، نصب ComfyUI، ساخت اولین Workflow، کار با Checkpoint، LoRA و ControlNet و اتصال آن به API درواره برای تولید حرفه‌ای پرامپت را یاد می‌گیرید.

Share
ComfyUI چیست؟ آموزش نصب و ساخت تصویر با هوش مصنوعی از صفر

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 ساده تولید تصویر می‌تواند شامل نودهای زیر باشد:

  1. بارگذاری مدل
  2. دریافت پرامپت مثبت
  3. دریافت پرامپت منفی
  4. ایجاد فضای Latent
  5. اجرای Sampling
  6. تبدیل Latent به تصویر
  7. ذخیره تصویر

بر اساس مخزن رسمی 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 را دریافت کنید.

سپس:

  1. فایل نصب را اجرا کنید.
  2. پوشه نصب را انتخاب کنید.
  3. اجازه دهید وابستگی‌های موردنیاز نصب شوند.
  4. برنامه را اجرا کنید.
  5. Workflow پیش‌فرض را باز کنید.

طبق راهنمای رسمی، نسخه Desktop ساده‌ترین روش شروع برای کاربران ویندوز و macOS است.

روش دوم: نسخه Portable ویندوز

نسخه Portable برای کاربرانی مناسب است که می‌خواهند ساختار فایل‌ها، نسخه Python و اجرای برنامه را مستقیماً مدیریت کنند.

پس از دریافت فایل Portable:

  1. فایل فشرده را استخراج کنید.
  2. پوشه برنامه را باز کنید.
  3. فایل اجرای مناسب کارت گرافیک را اجرا کنید.
  4. صبر کنید تا پنجره فرمان آدرس محلی را نمایش دهد.
  5. آدرس معمول ComfyUI را در مرورگر باز کنید:
http://127.0.0.1:8188

برای نصب عادی، نسخه Desktop پیشنهاد می‌شود. نسخه Portable بیشتر برای عیب‌یابی، توسعه Custom Node و مدیریت دستی فایل‌ها مناسب است.

آموزش نصب ComfyUI در macOS

نسخه رسمی Comfy Desktop برای macOS نیز ارائه می‌شود.

پس از دریافت برنامه:

  1. فایل نصب را باز کنید.
  2. برنامه را به Applications منتقل کنید.
  3. ComfyUI را اجرا کنید.
  4. محل نگهداری مدل‌ها را مشخص کنید.
  5. 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 Checkpointmodel در KSampler
CLIP از Load Checkpointclip در هر دو CLIP Text Encode
Positive Conditioningpositive در KSampler
Negative Conditioningnegative در KSampler
Empty Latentlatent_image در KSampler
Samples از KSamplersamples در VAE Decode
VAE از Load Checkpointvae در VAE Decode
Image از VAE Decodeimages در 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 برای تغییر بخش محدودی از تصویر استفاده می‌شود.

فرایند کلی:

  1. تصویر اصلی را وارد کنید.
  2. روی بخش موردنظر Mask بسازید.
  3. پرامپت تغییر را بنویسید.
  4. تصویر و Mask را به Workflow Inpainting بدهید.
  5. مقدار Denoise را تنظیم کنید.
  6. چند Seed مختلف را آزمایش کنید.

مثال کاربردی:

تغییر رنگ مبل بدون تغییر معماری اتاق

یا:

حذف یک شیء از تصویر و بازسازی پس‌زمینه

Outpainting چیست؟

Outpainting برای گسترش تصویر خارج از کادر فعلی استفاده می‌شود. برای مثال می‌توان یک تصویر مربعی محصول را به تصویر افقی تبلیغاتی تبدیل کرد.

در این فرایند:

  1. فضای خالی در اطراف تصویر ایجاد می‌شود.
  2. بخش جدید Mask می‌شود.
  3. مدل با توجه به تصویر و پرامپت، فضای خالی را تکمیل می‌کند.

آموزش نصب 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

فرض کنید می‌خواهید سایتی بسازید که کاربر توضیح فارسی وارد کند و تصویر دریافت کند.

فرایند مناسب می‌تواند چنین باشد:

  1. کاربر توضیح فارسی را وارد می‌کند.
  2. سرور توضیح را برای مدل متنی درواره می‌فرستد.
  3. مدل، پرامپت تصویری دقیق تولید می‌کند.
  4. سرور پرامپت را داخل Workflow ComfyUI قرار می‌دهد.
  5. Workflow در صف پردازش قرار می‌گیرد.
  6. ComfyUI تصویر را تولید می‌کند.
  7. نتیجه در فضای ذخیره‌سازی قرار می‌گیرد.
  8. آدرس تصویر به کاربر نمایش داده می‌شود.

در این معماری، 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 می‌توانید:

  1. مدل‌های تصویری متن‌باز را اجرا کنید.
  2. مراحل تولید تصویر را دقیق کنترل کنید.
  3. از LoRA، ControlNet و Inpainting استفاده کنید.
  4. Workflowهای تکرارپذیر بسازید.
  5. فرایند تولید را با API خودکار کنید.
  6. سایت یا اپلیکیشن تولید تصویر راه‌اندازی کنید.
  7. توضیح فارسی کاربر را با API درواره به پرامپت حرفه‌ای تبدیل کنید.

برای شروع، نسخه Desktop و یک Workflow ساده بهترین انتخاب است. پس از یادگیری نودهای پایه می‌توانید به سراغ LoRA، ControlNet، ویرایش تصویر، Upscaling، ویدئو و Custom Nodeها بروید.

اگر می‌خواهید توضیحات فارسی کاربران را به پرامپت حرفه‌ای تبدیل کنید یا از مدل‌های زبانی مختلف داخل Workflow خود استفاده کنید، API سازگار با OpenAI درواره امکان اتصال با آدرس پایه زیر را فراهم می‌کند:

https://api.darvareh.ir/v1

برای دریافت کلید API، مشاهده شناسه مدل‌ها و بررسی نمونه درخواست‌ها به مستندات API درواره مراجعه کنید.

مقالات مرتبط

منابع

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

Read more