ControlNet لوکال؛ کنترل Pose، Depth و ترکیببندی در تولید تصویر
ControlNet لوکال زمانی وارد بازی میشود که prompt برای کنترل دقیق ساختار کافی نیست. Pose، Depth، Edge و Line Art هرکدام نوع متفاوتی از اطلاعات را قفل میکنند و انتخاب control اشتباه میتواند تصویر را خشک یا بیش از حد وابسته به reference کند.

ControlNet لوکال برای زمانی است که جمله «یک نفر کنار پنجره ایستاده» کافی نیست و دقیقاً میخواهید بدانید دست کجاست، خط افق چگونه است یا عمق صحنه چه ساختاری دارد.
Prompt درباره معنا خوب است؛ ControlNet درباره ساختار صحبت میکند.
ControlNet لوکال چه مسئلهای را حل میکند؟
مدل diffusion ممکن است prompt را بفهمد اما composition را هر بار عوض کند. ControlNet یک condition اضافی میدهد که از تصویر مرجع استخراج شده است.
نوع condition میتواند باشد:
- Pose؛
- Depth؛
- Canny Edge؛
- Line Art؛
- Scribble؛
- Segmentation؛
- Normal Map.
هرکدام چیز متفاوتی را قفل میکنند.
مرجع اصلی پروژه: ControlNet در GitHub
Pose برای چه چیزی مناسب است؟
Pose وقتی مهم است که مکان مفاصل و حالت بدن باید حفظ شود.
مثال:
- مدل لباس؛
- storyboard؛
- کاراکتر تکرارشونده؛
- تبلیغ ورزشی؛
- shot matching.
Pose معمولاً geometry دقیق لباس یا محیط را حفظ نمیکند؛ فقط skeleton/landmark را میدهد.
اگر identity هم مهم است، Pose را با reference یا LoRA ترکیب کنید.
Depth چه چیزی را قفل میکند؟
Depth نقشه فاصله نسبی اشیا از دوربین است.
مناسب برای:
- interior؛
- architecture؛
- بازطراحی صحنه؛
- حفظ perspective؛
- تغییر style بدون فروپاشی حجم.
Depth ممکن است جزئیات لبه را حفظ نکند، ولی فضای سهبعدی کلی را بهتر نگه میدارد.
Canny و Edge؛ کنترل سختتر
Canny لبهها را استخراج میکند. اگر وزن بالا باشد، مدل خیلی به contour میچسبد.
این برای:
- محصول؛
- لوگوی هندسی؛
- طراحی صنعتی؛
- فرم دقیق
میتواند مفید باشد، ولی برای portrait خلاق شاید بیش از حد خشک شود.
Line Art برای Illustration
در workflow illustration، line art اجازه میدهد sketch یا طراحی دستی را به تصویر نهایی تبدیل کنید.
مزیت: آرتدایرکتور composition را دستی تعیین میکند و AI فقط render را انجام میدهد.
این مدل همکاری برای تیمهای خلاق بهتر از prompt-only است.
Preprocessor را جدا از Control Model ببینید
یک اشتباه رایج این است که فکر کنیم ControlNet خودش pose/depth را استخراج میکند.
عملاً معمولاً یک preprocessor نقشه control را میسازد و مدل control از آن استفاده میکند.
پس دو منبع خطا دارید:
- preprocessor بد؛
- control model نامناسب.
همیشه نقشه خروجی preprocessor را preview کنید.
Weight چه معنایی دارد؟
Control Weight شدت پیروی از ساختار را تعیین میکند.
وزن بالا:
- consistency بیشتر؛
- آزادی کمتر.
وزن پایین:
- آزادی بیشتر؛
- احتمال فاصله از reference.
برای تست seed را ثابت نگه دارید و weight را مرحلهای تغییر دهید.
Start و End کنترل
در بسیاری از workflowها میتوانید تعیین کنید control در چه بخشی از diffusion فعال باشد.
اگر control فقط ابتدای sampling قوی باشد، composition را شکل میدهد ولی در مراحل آخر آزادی بیشتری برای جزئیات میدهد.
این ابزار ظریفتر از بالا/پایین کردن weight است.
چند ControlNet همزمان
مثلاً:
- Pose برای بدن؛
- Depth برای صحنه؛
- Canny برای محصول.
ممکن است مفید باشد، اما هر کنترل constraint اضافه میکند. سه کنترل قوی میتوانند مدل را در وضعیت غیرممکن قرار دهند.
قاعده: از یک کنترل شروع کنید و فقط وقتی failure مشخص است کنترل دوم را اضافه کنید.
مثال تبلیغ پوشاک
هدف: مدل انسانی با pose مشخص، لباس برند و محیط متفاوت.
Pipeline:
- عکس pose استخراج شود.
- OpenPose map ساخته شود.
- reference لباس/شخص اضافه شود.
- prompt نور و محیط را تعیین کند.
- generation با seed ثابت تست شود.
- weight pose تنظیم شود.
- دست و صورت با inpaint اصلاح شوند.
- upscale نهایی.
این workflow از «همهچیز در prompt» قابلکنترلتر است.
ControlNet در ComfyUI
ComfyUI برای دیدن مسیر condition بسیار مناسب است. preprocessor، map، control model و sampler را به شکل جدا میبینید.
راهنمای ComfyUI حرفهای کمک میکند graph را طوری بسازید که هر control مستقل قابل خاموش/روشن کردن باشد.
آیا مدلهای جدید ControlNet را بیاستفاده میکنند؟
مدلهای جدید editing و reference understanding قویتر شدهاند، اما نیاز به کنترل ساختاری از بین نرفته است.
Reference editing ممکن است برای «شبیه این عکس» عالی باشد؛ ControlNet برای «دقیقاً این pose/depth/edge» هنوز منطق متفاوتی دارد.
ابزارها همپوشانی دارند، جایگزین کامل نیستند.
Artifactها را بشناسید
Pose:
- مفصل اشتباه؛
- دست ناقص؛
- landmark جاافتاده.
Depth:
- مو و شیشه؛
- سطح بازتابی؛
- مرز اجسام.
Canny:
- نویز لبه؛
- texture اضافی؛
- contour بیش از حد.
Preprocessor را با نوع تصویر انتخاب کنید.
کنترل ساختار در ویدئو
در video diffusion، consistency زمانی دشوارتر میشود. control per-frame اگر ناپایدار باشد flicker ایجاد میکند.
بنابراین قبل از feed کردن mapها:
- smoothing؛
- temporal consistency؛
- frame alignment
را در نظر بگیرید.
برای تصویر متحرک، راهنمای ثبات شات در ویدئوی لوکال را بخوانید.
چکلیست
- نقشه control را preview کردهام؟
- یک متغیر را در هر تست تغییر میدهم؟
- weight بیش از حد نیست؟
- start/end تست شده؟
- controlها با هم conflict ندارند؟
- model و preprocessor سازگارند؟
- seed برای مقایسه ثابت است؟
ControlNet خوب زمانی دیده نمیشود؛ فقط حس میکنید تصویر همان ساختاری را دارد که میخواستید.
پرسشهای متداول
ControlNet چه کاری میکند؟
به مدل diffusion یک سیگنال ساختاری اضافه میکند تا خروجی از pose، depth، edge یا نقشه ساختاری مرجع پیروی کند.
برای کنترل ژست از چه نوعی استفاده کنیم؟
OpenPose یا مدلهای pose برای اسکلت بدن مناسباند؛ اگر حجم و فاصله فضایی مهم است Depth کمک بیشتری میکند.
آیا میتوان چند ControlNet را همزمان استفاده کرد؟
بله، اما وزنها و سیگنالها ممکن است با هم رقابت کنند. هر کنترل باید دلیل مشخصی داشته باشد.
چرا خروجی ControlNet خشک میشود؟
وزن کنترل زیاد، start/end نامناسب یا reference بیش از حد محدودکننده میتواند آزادی مدل را کم کند.


