پرامپت JSON: راهنمای پرامپت ساختاریافته
ادعای رایج این است که «پرامپت JSON کیفیت تصویر را بالا میبرد». این جمله در همین شکل ساده درست نیست. اینجا جواب صادقانه، یک اسکیمای کاربردی، روش تبدیل پرامپت متنی به ساختاریافته و شش اشتباه رایج را میبینید.
اگر مدتی پرامپتهای حرفهای را دنبال کرده باشید، حتماً به این شکل برخوردهاید: بهجای یک پاراگراف فارسی یا انگلیسی، یک بلوک JSON با کلیدهایی مثل subject، lighting و composition. در گالری پینکپیکس هم بخش بزرگی از پرامپتها همین شکل را دارند.
سوال درست این نیست که «چطور پرامپت JSON بنویسم؟» — سوال درست این است که آیا اصلاً بهدردم میخورد؟ در این راهنما اول جواب صادقانهٔ این سوال را میدهیم، بعد اگر جواب برای شما مثبت بود، روش درستش را یاد میگیریم.
ادعای رایج، و آنچه واقعاً درست است
ادعایی که در شبکههای اجتماعی زیاد تکرار میشود این است: «پرامپت JSON کیفیت تصویر را بالا میبرد». این جمله در این شکل ساده، درست نیست.
واقعیت دقیقتر سه بخش دارد:
۱. مدلهای تصویری JSON را مثل کد «اجرا» نمیکنند
وقتی JSON را به یک مدل تصویری میدهید، در بیشتر موارد همان متن را میخواند. کلیدها و آکولادها برایش نشانههای ساختاریاند، نه دستور برنامهنویسی. بعضی مدلهای جدیدتر رسماً از ورودی ساختاریافته پشتیبانی میکنند، اما رابطهای وب مثل میدجرنی JSON را بهعنوان JSON نمیپذیرند و آن را مثل متن ساده میخوانند. پس اگر انتظار دارید صرفِ گذاشتن آکولاد، تصویر را بهتر کند، انتظار اشتباهی است.
۲. اما ساختار واقعاً اثر دارد — به دلیلی متفاوت
سود اصلی JSON این است که شما را مجبور میکند کامل بنویسید. وقتی جدولی از کلیدها جلوی شماست و یکی از آنها lighting است، نمیتوانید نورپردازی را فراموش کنید. همانطور که در راهنمای پرامپتنویسی گفتیم، اصلیترین علت خروجی بد، ناقصبودن پرامپت است — و JSON دقیقاً همین را درمان میکند.
اثر دوم این است که ساختار، پراکندگی خروجی را کم میکند. وقتی هر ویژگی در فیلد جدا و صریح تعریف شود، مدل کمتر بین اجزا خلط میکند و «رانش» پرامپت کمتر میشود. برای یکدستی شخصیت و عکاسی محصول، این تفاوت محسوس است.
۳. بزرگترین سود، تولید انبوه و تکرارپذیری است
اینجاست که JSON واقعاً میدرخشد. یک پرامپت ساختاریافته را میشود مثل یک قالب داده استفاده کرد: یک فیلد را عوض کنید و صد نسخه بگیرید. برای کاتالوگ محصول، پروفایل کارمندان یا کمپینی که باید در ده نسبت تصویر تولید شود، این تفاوت میان چند دقیقه و چند ساعت است.
خلاصهٔ صادقانه: یک پرامپت متنیِ خوب از یک JSON بد بهتر است. JSON کیفیت را جادویی بالا نمیبرد؛ کاملبودن، تکرارپذیری و قابلیت استفادهٔ مجدد را بالا میبرد.
کِی از JSON استفاده کنیم و کِی نه
| موقعیت | پیشنهاد |
|---|---|
| یک تصویر تکی، ایدهٔ ساده | متن ساده — JSON فقط کند و اضافه است |
| صحنهٔ چندعنصری با نور و ترکیببندی دقیق | JSON |
| مجموعهای که باید یکدست باشد | JSON |
| عکاسی محصول با مشخصات ثابت برند | JSON |
| تولید انبوه با تغییر یک متغیر | JSON |
| کار اکتشافی و خلاقانه بدون هدف مشخص | متن ساده — ساختار، تصادف مفید را میکُشد |
یک اسکیمای کاربردی
لازم نیست استاندارد رسمیای را رعایت کنید؛ کلیدها را خودتان تعریف میکنید. اما یک ساختار خوب معمولاً همان هفت محور پرامپتنویسی را پوشش میدهد:
{
"subject": {
"description": "مرد سیساله، موی کوتاه تیره، ریش مرتب",
"wardrobe": "ژاکت جیر بژ روی تیشرت سفید",
"expression": "آرام و مطمئن",
"pose": "تکیه به دیوار، یک دست در جیب"
},
"environment": {
"location": "کوچهای با دیوار سنگی بافتدار",
"time_of_day": "ساعت طلایی",
"background_treatment": "محو ملایم"
},
"composition": {
"framing": "نمای متوسط",
"camera_angle": "همسطح چشم",
"subject_position": "یکسوم راست",
"aspect_ratio": "4:5"
},
"lighting": {
"key": "نور گرم کمارتفاع از سمت چپ",
"quality": "سخت، سایههای تیز روی دیوار",
"fill": "کم"
},
"camera": {
"lens": "35mm",
"aperture": "f/1.8",
"depth_of_field": "کم"
},
"style": {
"grade": "تنهای خاکی کدر",
"film_emulation": "دانهٔ ظریف فیلم",
"realism": "فوتورئالیستیک"
},
"identity_lock": {
"use_reference_image": true,
"preserve": ["ساختار چهره", "سن", "رنگ پوست"],
"beautify": false
}
}
چند کلید که ارزش اضافهکردن دارند
identity_lock— وقتی از تصویر مرجع استفاده میکنید، این بلوک مهمترین بخش پرامپت استnegative_space— اگر قرار است بعداً روی تصویر متن بگذارید، جای خالی را از همان اول رزرو کنیدmust_keep— فهرست چیزهایی که در ویرایشهای بعدی نباید عوض شوندoutput— نسبت تصویر و رزولوشن
تبدیل یک پرامپت متنی به JSON
بیایید همین جمله را تبدیل کنیم:
«عکس محصول از یک بطری سرم کهربایی روی سنگ مرمر سفید، نور نرم از بالا، نمای نزدیک، پسزمینهٔ خنثی.»
قدم اول: هر عبارت را به محور خودش نسبت دهید.
| عبارت | کلید |
|---|---|
| بطری سرم کهربایی | subject.description |
| روی سنگ مرمر سفید | environment.surface |
| نور نرم از بالا | lighting.key + lighting.quality |
| نمای نزدیک | composition.framing |
| پسزمینهٔ خنثی | environment.background |
قدم دوم — و مهمترین قدم: ببینید کدام کلیدها خالی ماندهاند. اینجا زاویهٔ دوربین، لنز، نسبت تصویر و سبک پرداخت هیچکدام مشخص نشدهاند. همین خالیها بودند که باعث میشدند خروجی هر بار فرق کند. پرکردنشان، کل سود این تمرین است.
استفادهٔ مجدد: جایی که واقعاً وقت صرفهجویی میشود
وقتی اسکیمای شما ثابت شد، میتوانید یک بلوک را کامل نگه دارید و فقط یک فیلد را عوض کنید. مثلاً برای یک کاتالوگ:
// همهچیز ثابت، فقط این یک خط عوض میشود
"subject": { "product": "سرم ویتامین سی" }
"subject": { "product": "کرم مرطوبکننده" }
"subject": { "product": "روغن آرگان" }
نتیجه، مجموعهای است که نور، زاویه و پسزمینهٔ یکسان دارد — دقیقاً همان چیزی که یک صفحهٔ محصول حرفهای نیاز دارد و با پرامپت متنی بهسختی بهدست میآید. نمونههای زیادی از این الگو را در دستهٔ عکاسی محصول میبینید.
شش اشتباه رایج در پرامپت JSON
- کلیدهای متناقض:
"lighting": "نرم و پخششده"کنار"shadows": "تیز و دراماتیک"— مدل یکی را انتخاب میکند - عمق بیمورد: پنج سطح تودرتو خواندن را برای مدل سختتر میکند، نه آسانتر. دو سطح معمولاً کافی است
- کلیدهای بیمعنا:
"quality": "8k masterpiece"همان انباشت کلمات قدیمی است، فقط داخل آکولاد - ننوشتن نسبت تصویر — چون در ساختار گم میشود، بیشتر از پرامپت متنی فراموش میشود
- ترجمهٔ کورکورانه: کپیکردن اسکیمای یک نفر دیگر بدون فهمیدن اینکه هر کلید چه میکند
- استفاده از JSON برای کار خلاقانه: وقتی دنبال کشف ایده هستید، ساختار مانع میشود
نکتهای دربارهٔ زبان کلیدها
نام کلیدها را انگلیسی بگذارید (lighting نه «نورپردازی») چون مدلها روی همین واژگان آموزش دیدهاند و ساختار را بهتر تشخیص میدهند. اما مقدارها را میتوانید فارسی بنویسید. ترکیب کلید انگلیسی و مقدار فارسی خوب جواب میدهد و خواندنش هم برای خودتان راحتتر است — البته اصطلاحهای فنی مثل f/1.8 یا rim light را همانطور انگلیسی نگه دارید.
پرسشهای پرتکرار
آیا JSON واقعاً تصویر را بهتر میکند؟
مستقیماً نه. غیرمستقیم بله — چون شما را وادار میکند پرامپت کاملتری بنویسید و خروجی را تکرارپذیرتر میکند. یک پرامپت متنی کامل، نتیجهای همتراز یک JSON خوب میدهد.
کدام مدلها ورودی ساختاریافته را بهتر میفهمند؟
مدلهایی که موتور استدلال دارند، مثل نانو بنانا پرو، ساختار را بهتر دنبال میکنند. رابطهای وبی که فقط ورودی متنی ساده میگیرند، JSON را مثل یک پاراگراف معمولی میخوانند — که باز هم بیفایده نیست، ولی سود کمتری دارد.
اگر مدل JSON را نفهمد، خراب میشود؟
نه. بدترین حالت این است که آن را متن ساده در نظر میگیرد و همان محتوا را میخواند. چون محتوای شما مرتب و کامل است، معمولاً نتیجه هنوز خوب است.
حجم JSON چقدر باشد؟
معیار، تعداد کلید نیست؛ این است که هر کلید واقعاً روی خروجی اثر بگذارد. اگر فیلدی را حذف کردید و تصویر عوض نشد، آن فیلد اضافه بود.
میشود از JSON برای ویدیو هم استفاده کرد؟
بله و آنجا حتی مفیدتر است، چون محورهای بیشتری دارید: حرکت دوربین، مدت هر نما، ترتیب صحنهها. همان منطق کلید و مقدار، با کلیدهای متفاوت.
برای مرور اصولی که پشت هر کلید این اسکیما نشسته است، به راهنمای کامل پرامپتنویسی تصویر برگردید. و برای دیدن دهها پرامپت JSON واقعی همراه با تصویر خروجیشان، گالری پینکپیکس را ببینید — متن کامل هرکدام قابل کپی است.