در این متن روندی مرتب و منظم برای ساختن تصویر از پرامپت زبان فارسی ارائه میشود. پیشنیاز این بحث، ساختن مدلی اولیه با Flux است.
مدل کلی مراحل
یک پرامپت فارسی از زمان نگارش توسط کاربر تا زمان نمایش تصویر خروجی به کاربر مراحل زیر را طی میکند:
graph TD
A[پرامپت فارسی] -->|ترجمهٔ توکنها| B[پرامپت فارسی با توکنهای اختصاصی]
B -->|ترجمه به انگلیسی| C[پرامپت انگلیسی]
C -->|فرستادن پرامپت برای مدل| D[تصویر]
D -->|اصلاح تصویر| E[تصویر اصلاحشده]
E -->|آپلود روی سرور| F[تصویر نمایش داده شده به کاربر]
گام صفرم: ترجمهٔ توکنهای خاص [اختیاری]
اگر بناست از مدلهای Fine-Tune شده بر روی شخصیت یا سبکهای خاص استفاده کنیم، بهتر است قبل از ترجمهٔ دستور، توکنهای مخصوص آن را در متن فارسی جاگذاری کنیم. مثلاً کد زیر برای دستورهای فارسی حاوی اسامی شهید چمران، توکن chamran
را جاگذاری میکند. مقدار input_prompt
همان ورودی کاربر است که در ابتدا تبدیل به پرامپتی با توکنهای اختصاصی میشود.
ورودی کد:
مصطفی چمران در حال نگاه به غروب آفتاب در میانهٔ صحرا
خروجی کد:
chamran در حال نگاه به غروب آفتاب در میانهٔ صحرا
گام اول: ترجمهٔ پرامپت به زبان انگلیسی
پس از ترجمهٔ بخشهاش خاص پرامپت، حالا نوبت به ترجمهٔ باقی اجزای آن میرسد. برای ترجمهٔ پرامپت از فارسی به انگلیسی از سرویسِ داخلی one-api استفاده میکنیم. دقت داشته باشید که برای اجرای این کد، باید در سایت one-api ثبتنام کرده و یک توکن برای استفاده از سرویس رایگان ترجمه تهیه کنید. کد پایین مقدار result
را به زبان انگلیسی ترجمه میکند.
ورودی کد:
chamran در حال نگاه به غروب آفتاب در میانهٔ صحرا
خروجی کد:
Chamran looking at the sunset in the middle of the desert
گام دوم: فرستادن پرامپت برای تولید عکس
حالا که پرامپت انگلیسی آماده شده است، در این گام مشابه آنچه در ضمیمهٔ متن مدلسازی با Flux گفتیم، پرامپت را برای سرور Replicate ارسال میکنیم تا تصویر را برای ما بسازد.
ورودی:
Chamran looking at the sunset in the middle of the desert
خروجی:
اگر کد را بر روی رایانهٔ شخصی اجرا میکنید و میخواهید عکسهای خروجی در پوشهای برای شما ذخیره شوند، از کد پایین استفاده کنید. عکسهای تولیدی شما در پوشهای به نام outputs
در محل اجرای کد ذخیره میشوند.
گام سوم: اصلاح تصاویر تولید شده [اختیاری]
تصاویر تولیدی همین حالا آمادهٔ استفاده هستند. اما گاهی از اوقات خروجی مدلهای موجود در چهرهپردازی، رعایت جزئیات یا تولید یک تصویر شفاف ناتوان هستند. برای حل این مشکلات مدلهایی اختصاصی مثل codeformer یا gfpgan یا real-esrgan یا FLUX.1-dev-LoRA-AntiBlur توسعه یافتهاند که کیفیت چهرهها و اندازهٔ عکس را بالا میبرند. میشود پس از دریافت عکسها و محض محکمکاری، یک دور عکس خروجی را برای این مدلها فرستاد تا کیفیت خروجی بالاتر رود. مثلاً تصویر زیر با کمک مدل real-esrgran بهینهسازی شده است.
مقایسهٔ ورودی و خروجی در پایین آمده است. برای مقایسهٔ اندازهها، میتوانید اندازهٔ عکس پیش از عمل را با اندازهٔ عکس بعد از عمل مقایسه کنید.
بهینهسازی خروجیهای Flux
تصاویر تولید شده با مدل Flux اغلب نیازی به بهینهسازی چهره ندارند و تنها افزایش کیفیت عکس برای آنها کفایت میکند. بهینهسازی چهره اغلب برای مدلهای SD استفاده میشود.
گام چهارم: آپلود و نمایش به کاربر [اختیاری]
به دلیل عدم دسترسی کاربران ایرانی به دامنهٔ replicate.delivery
، عکسهای تولید شده بدون فیلترشکن قابل مشاهده یا دانلود نیستند. در این حالت میشود از هاستهای خارجی -یا هاستهای داخلی متصل به DNSهای دورزنندهٔ تحریم- برای دانلود و آپلود دوبارهٔ عکسها استفاده کرد.
با طی کردن هر پنج مرحله، پرامپت کاملاً فارسی از کاربر دریافت میشود و در نهایت ۴ تصویر باکیفیت از خواستهاش به او تحویل داده میشود.