مهندسی معکوس Prompt | قسمت اول
چطور از روی یک خروجی، Prompt پشتش رو حدس بزنیم؟ تا حالا یک خروجی فوقالعاده از ChatGPT، Midjourney، Nano Banana یا هر مدل دیگهای دیدی و با خودت گفتی پرامپتش چی بوده که همچین چیزی ساخته؟ اینجا دقیقاً وارد دنیای Prompt Reverse Engineering میشیم.
اما یک نکته مهم قرار نیست Prompt اصلی رو با جادو پیدا کنیم ما از روی خروجی، ویژگیهای مهمی که احتمالاً در Prompt وجود داشته رو شناسایی میکنیم و بعد یک Prompt جدید میسازیم که بتونه نتیجهای مشابه ایجاد کنه.
قدم اول: خروجی رو تکهتکه کن
بزرگترین اشتباه اینه که یک تصویر یا متن رو یکجا نگاه کنیم و بگیم خب، پرامپتش رو بنویس اول باید خروجی رو به اجزای مختلف تقسیم کنیم.
مثلاً برای یک تصویر:
Subject
سوژه اصلی چیه؟
Environment
کجا قرار داره؟
Style
چه سبک بصریای داره؟
Lighting
نور از کجاست و چه حالتی داره؟
Composition
سوژه کجای کادره؟
Camera
زاویه دوربین، فاصله، عمق میدان و نوع لنز چطوره؟
Color
رنگها گرم هستن یا سرد؟ کنتراست چطوره؟
Atmosphere
فضا چه حسی داره؟
یک مثال ساده فرض کن این تصویر رو داریم یک زن با لباس مشکی، کنار پنجره یک اتاق تاریک ایستاده؛ نور گرم غروب از پنجره وارد شده و بخش کوچکی از صورتش رو روشن کرده. بهجای اینکه مستقیم بنویسیم پرامپت این عکس رو بنویس. اول مشاهداتمون رو استخراج میکنیم:
Subject:
Woman wearing black dress
Environment:
Dark minimalist interior, large window
Lighting:
Warm sunset light, side lighting
Composition:
Subject positioned near the window, cinematic framing
Mood:
Melancholic, intimate, contemplative
Style:
Cinematic realistic photography
حالا این اطلاعات رو تبدیل میکنیم به یک Prompt:
Cinematic realistic portrait of a woman wearing a black dress, standing beside a large window in a dark minimalist interior, warm sunset light entering from the side and illuminating part of her face, intimate composition, shallow depth of field, soft shadows, muted colors, melancholic and contemplative atmosphere, natural skin texture, high dynamic range
این یعنی Reverse Engineering. ما از:
Output → Observation → Components → Prompt
رسیدیم. اما یک نکته خیلی مهم هر چیزی که در خروجی میبینی الزاماً داخل Prompt نبوده. مثلاً اگر تصویر سینمایی شده، ممکنه Prompt شامل کلمه "cinematic" بوده باشه... اما ممکنه اصلاً این کلمه وجود نداشته باشه و مدل خودش از ترکیب بقیه دستورها به این نتیجه رسیده باشه. پس همیشه بین این دو تفاوت بذار:
What we see ≠ What was written
چیزی که میبینیم Evidence هست، نه لزوماً متن اصلی Prompt.
وقتی یک خروجی خوب دیدی، قبل از نوشتن Prompt از خودت این ۷ سؤال رو بپرس:
چی میبینم؟
سوژه اصلی چیه؟
چه محیطی داره؟
چه سبک و حسی داره؟
نور چطوره؟
ترکیببندی چطوره؟
چه جزئیاتی باعث شده این خروجی خاص بشه؟
بعد جوابها رو تبدیل کن به Prompt.
@ITSecurityComputer