Негізгі мазмұнға өту

Кескінді үлкейткіш — тегін

Фотосуретті өз құрылғыңызда жұмыс істейтін ЖИ моделімен 4 есе үлкейтіңіз — жай ғана ірі пиксельдер емес, анық шеттер мен оқылатын мәтін. Ештеңе жүктелмейді, тіркелгі де, су таңбасы да жоқ.

Файлдарды осында тастаңыз немесе шолу үшін басыңыз

PNG, JPG, WebP, AVIF, GIF, BMP, HEIC, HEIF · құрылғыңызда өңделеді

немесе алмасу буферінен қою үшін Ctrl+V басыңыз

Бір уақытта бірнеше файл тастауға болады

Файлдарды шолу
Real-ESRGAN пиксельдерді созудың орнына егжей-тегжейді 4× етіп қайта сызады. 4.6 MB модель бір рет жүктеліп алынады, содан кейін толығымен осы құрылғыда жұмыс істейді — фотоңыз ешқашан серверге жүктелмейді.

Қалай жұмыс істейді

Масштаб-арттырушы Real-ESRGAN general-x4v3 — 4.6 МБ конволюциялық асқын-ажыратымдылық желісін — onnxruntime-web арқылы Web Worker-де өз машинаңызда іске қосады. Модель біздің серверден бір рет алынады, кэштеледі, содан кейін офлайн пайдаланылады; фотоңыз жергілікті түрде canvas-қа декодталады және ешқашан жүктелмейді. Масштаб коэффициенті 4×-те бекітілген, себебі ол графикке екі жерде қатты пісірілген.

  1. 1
    Кескін қабаттасатын тақтайшаларға кесіледі
    4× нәтиже пикселдердің он алтысы, сондықтан 4000×3000 фото 192 мегапиксель болар еді — браузер қойындысын тек баяулатудың орнына толығымен өлтіру үшін жеткілікті. Оның орнына сурет оны дәл тақтайшалайтын ядроларға бөлінеді, әр ядро конволюция стегінің (қабылдаушы өрісі 34 пиксель) жұмыс істеуі үшін нақты көрші пикселдер болу үшін әр жағында контекстің қосымша шегімен оқылады. Жиектер шет-қайталанады, ешқашан нөл-толтырылмайды, бұл әйтпесе модельге жақтау айналасында қара жиекті өткірлетер еді.
  2. 2
    Әр тақтайша жазықтық RGB тензоры ретінде оралады
    Тақтайша [1, 3, H, W] пішінді float32 тензорға айналады, қызыл, жасыл және көк арналары бөлек жазықтықтар ретінде сақталады, мәндер жай 255-ке бөлінеді — ешбір орта/стандартты-ауытқу қалыпқа келтіруі жоқ. Әр тақтайша дәл бірдей шаршы өлшемге толтырылады, себебі WebGPU бэкенді әр жаңа кіріс пішіні үшін шейдерлерін қайта құрастырады, ал үш түрлі тақтайша өлшемі бар жоспар осы шығынды үш есе төлер еді.
  3. 3
    Қорытынды бар жерде WebGPU-де, әйтпесе CPU-де жүреді
    Сессия алдымен WebGPU-мен жасалады және кез келген сәтсіздікте бір-тізбекті WebAssembly-ге резервпен ауысады — графикалық драйверлер жиі қолдауды жариялап, содан кейін графикті құрудың ортасында сәтсіз болады, ал баяу — бұзылғаннан жақсырақ. Резерв шынайы өлшем шегі мен жұмыс уақытын үлкен коэффициентпен өзгертетіндіктен, құрал бірінші тақтайша жұмыс істемес бұрын тапсырманы шынымен алған провайдерге қарсы қайта тексереді, содан кейін қайсысын пайдаланғанын сізге айтады.
  4. 4
    Тақтайшалар кросс-фейдпен қайта біріктіріледі және қыспаланады
    Тақтайшаларды тікелей біріктіру көрінетін тор қалдырады, сондықтан әр тақтайшаның үлесі ортақ жолақ бойынша сызықтық рампамен салмақталады. Екі рампа дәл толықтауыштар, сондықтан салмақтар әр шығыс пикселде дәл 1-ге жиналады және жапсарда жарық немесе қара сызық пайда болмайды. Модельдің шикі шығысы график ішінде кесілмейді — өлшенген мәндер шамамен −0.18-ден +1.19-ға дейін жүреді — сондықтан әр сампл 8-биттік аударудан бұрын 0–255 ауқымына қыспаланады, бұл жоғары-контрастты жиектердегі дақтарды болдырмайды. Альфа бөлек және билинеарлы қайта дискреттеледі, себебі желінің өзінде альфа жолы жоқ.
  5. 5
    Нәтиже worker-де кодталады
    Жинақталған пикселдер OffscreenCanvas-қа сызылады және дереу PNG-ке кодталады, сондықтан "Жүктеп алуды" басу оның алдында асинхронды кідіріссіз болады. JPG-ке ауысу модельді қайта іске қосудың орнына worker әлі ұстап тұрған canvas-тан қайта кодтайды. Кіші орталық кесінді сондай-ақ браузер қайта дискреттеген дәл сол аймақпен қатар 100%-де өңделеді, бұл 4× айырмашылық шынымен көрінетін жалғыз салыстыру.

Модель салмақтары біздің серверден бір рет жүктеледі және кэштеледі; кескініңіз толығымен браузеріңіздің ішінде декодталады, тақтайшаланады, масштабы арттырылады және кодталады, оның ешбір бөлігі ешқашан ешқайда жіберілмейді.

Байланысты құралдар

Жиі қойылатын сұрақтар