بيانات الموجهات
جُمعت مكتبة موجهات IMGPrompt من مصادر على الإنترنت، ومن promptoMANIA وsd-webui-prompt-all-in-one وawesome-gpt-image-2-prompts (برخصة CC BY 4.0). وبعد إزالة التكرارات والتوحيد القياسي والتوطين إلى 18 لغة، أصبح لدينا 5000+ مدخلة لموجهات الصور والفيديو موزعة على 16 تصنيفًا رئيسيًا ومئات التصنيفات الفرعية.
بنية البيانات
تُخزَّن كل بيانات الموجهات في مجلد المشروع src/app/data بالبنية التالية:
src
└── app
└── data
├── prompt # Prompts in 18 languages
│ ├── prompt-zh.json # Simplified Chinese (source of truth; others derived from it)
│ ├── prompt-en.json # English
│ ├── prompt-ja.json # Japanese
│ └── ...... # 15 other languages
└── prompt-custom.json # User-defined prompts (loaded for all languages)
كل موجه كائن JSON واحد:
{
"displayName": "portrait",
"langName": "بورتريه",
"object": "شكل",
"attribute": "أساسي",
"description": "(اختياري) وصف أو نسبة إلى المؤلف",
"preview": "(اختياري) رابط صورة المعاينة"
}
مرجع الحقول
| الحقل | إلزامي؟ | الوصف |
|---|---|---|
displayName |
✅ نعم | الموجه الإنجليزي (فريد) — النص الذي يُدرج فعليًا في صندوق الموجه |
langName |
✅ نعم | الترجمة باللغة الأم / الهدف، وتظهر على العلامة في الواجهة |
object |
✅ نعم | التصنيف الرئيسي (مثل شكل / بيئة / التصوير / أسلوب الفن) |
attribute |
✅ نعم | التصنيف الفرعي (مثل أساسي / تعبير / تركيز العدسة / ارتفاع المشاهدة) |
description |
❌ لا | شرح إضافي يظهر داخل نافذة المعاينة (نسبة المؤلف، إرشادات الاستخدام…) — يظهر بالتمرير على سطح المكتب / الضغط المطول على اللمس |
preview |
❌ لا | رابط صورة المعاينة — تُعرض داخل النافذة المنبثقة بالتمرير على سطح المكتب أو الضغط المطول نحو 0.5 ثانية على اللمس، والنقر / اللمس يفتحها مكبّرة في lightbox |
💡 حقل
previewهو مصدر بيانات ميزة «المعاينة بالتمرير / الضغط المطول + التكبير بالنقر». يعمل سطح المكتب بالتمرير، والأجهزة اللمسية بالضغط المطول، فتبقى النقرة / اللمسة السريعة للإضافة / الإزالة فقط.
نصائح صيانة البيانات
- يجب أن يكون
displayNameفريدًا — تُتجاهل التكرارات وتُضعف جودة الاقتراحات. - اتفاقية الفاصلة:
", "(فاصلة + مسافة) هي فاصل العلامات في التطبيق؛ أما داخل المدخلات التجميعية فاستخدم","بلا مسافة (مثلsnow,ice). تُرفض الفواصل المتبوعة بمسافة أو كاملة العرض عند البناء (تحققsliceData). - أعد استخدام قيم
object/attributeنفسها عبر اللغات لتبقى تصنيفات الواجهة متسقة. - اجعل
langNameموجزًا قدر الإمكان لتفادي اقتطاع نص العلامة. - يُنصح في
previewبصيغة WebP بحجم ≤ 150 KB وتكوين مربع (1:1) — فهي الأفضل عرضًا داخل نافذة التمرير / الضغط المطول.
إضافة موجهات مخصصة
لتوسيع محتوى الموجهات، استخدم محول بيانات IMGPrompt لتحويل بياناتك المخصصة إلى الصيغة القياسية، ثم احفظ الناتج في src/app/data/prompt-custom.json. يُحمَّل هذا الملف تلقائيًا عند بدء التطبيق ويسري على جميع اللغات.
مثال:
[
{
"displayName": "cyberpunk cityscape",
"langName": "مدينة سايبربانك",
"object": "بيئة",
"attribute": "مدينة"
},
{
"displayName": "cinematic lighting",
"langName": "إضاءة سينمائية",
"object": "تأثيرات الضوء والظل",
"attribute": "تأثيرات الإضاءة",
"description": "ضوء اتجاهي ناعم + إضاءة حافة لتعزيز العمق",
"preview": "https://example.com/preview/cinematic.webp"
}
]
تتبع المدخلات المخصصة قواعد العرض نفسها تمامًا التي تتبعها المدخلات المدمجة: المزودة بـ preview تحصل على المعاينة بالتمرير / الضغط المطول + التكبير بالنقر.