Explore your skin conditions with Skinive AI!

Your Everyday Skin Symptom Checker

It quickly analyzes your photo to provide personalized guidance and helpful information. Just send photo of your skin to Skinive via favourite messenger. TRY NOW IT FOR FREE!

Let Skinive take the worries out of your next rash, redness, itch, or other skin problem. It’s just that easy.

3 EASY STEPS

to make skin Self-Examination

NO APPS NEEDED!
Skinive in your messenger

Secure & Instant results

Don’t be shy! No picture of your entire face is required – just send a skin area.

Health & Beauty

Make regular Skincare monitoring easier than ever! No apps needed!

Approved by MD

Skinive AI technology was made and approved by professional dermatologists and cosmetologists

Power of AI

Technology is based on the experience of 10K MD’s and more than million skin conditions, to be your trusted skin advisor.

Skinive is there For You
whenever and wherever you need
make Skin Health Self-Examination

SEE THE RESULTS

and take action!

When you want to stop worrying and start taking action, Skinive provides guidance and peace of mind right from your smartphone.

TRY NOW IT FOR FREE!

Skinive provides following skin-checks

– 10 types of Acne
– Benign formations (moles, angioma, dermatofirbroma etc.)
– Skin virus (warts, papiloma, molluscum)
– Pre-cancer formations (blue&dysplastic nevus, keratosis, bouen, etc.)
– Skin cancer (Melanoma&lentigo, bcc, scc, etc. )

    <?php // Включаем отображение ошибок ini_set(‘display_errors’, 1); ini_set(‘display_startup_errors’, 1); ini_set(‘max_execution_time’, 300); error_reporting(E_ALL); // Константы const API_URL = ‘https://api.skiniver.com/’; const API_END_POINT_VALIDATE = ‘validate’; const API_END_POINT_SEGMENT = ‘segment’; const API_END_POINT_MASK = ‘mask’; const API_END_POINT_PREDICT = ‘predict’; const API_USER_ID = -1; const API_LANG = ‘ru’; const API_BOT_SOURCE = ‘dev’; const UPLOADS_DIR = ‘uploads’; // Если отправлена форма и в ней есть файл if (!empty($_FILES)) { // Получаем файл пользователя $target_file = UPLOADS_DIR . ‘/’ . basename($_FILES[“img”][“name”]); $result = ”; // Сохраняем файл в папке if (move_uploaded_file($_FILES[“img”][“tmp_name”], $target_file)) { // Запускаем метод валидации файла $validateApiUrl = API_URL . API_END_POINT_VALIDATE; try { $validateResult = postMethod($validateApiUrl, $target_file); } catch (Exception $e) { exit(json_encode([‘error’ => true, ‘rsp’ => $e->getMessage()])); } // Если валидация без ошибок и файл isGood if (!empty($validateResult) && $validateResult[‘isgood’] != ‘False’) { // Запускаем метод сегментации файла $segmentApiUrl = API_URL . API_END_POINT_SEGMENT; try { $segmentResult = postMethod($segmentApiUrl, $target_file); } catch (Exception $e) { exit(json_encode([‘error’ => true, ‘rsp’ => $e->getMessage()])); } // Если сегмантация без ошибок if (!empty($segmentResult)) { // Получаем файл маски try { $maskResult = mask($segmentResult[‘mask_id’]); } catch (Exception $e) { exit(json_encode([‘error’ => true, ‘rsp’ => $e->getMessage()])); } // Получаем файл маски Colored try { $coloredResult = mask($segmentResult[‘colored’]); } catch (Exception $e) { exit(json_encode([‘error’ => true, ‘rsp’ => $e->getMessage()])); } } // Запускаем метод предикт try { $predictApiUrl = API_URL . API_END_POINT_PREDICT . ‘?user_id=’ . API_USER_ID . ‘&lang=’ . API_LANG . ‘&bot_source=’ . API_BOT_SOURCE; $predictResult = postMethod($predictApiUrl, $target_file); } catch (Exception $e) { exit(json_encode([‘error’ => true, ‘rsp’ => $e->getMessage()])); } // Если файл не прошел валидацию – показываем ошибку } else { $result .= ‘Изображение не подходит’; } // Собираем результаты для вывода на странице if (!empty($maskResult)) { $result .= ‘<img src=”‘ . $maskResult . ‘” />’; } if (!empty($coloredResult)) { $result .= ‘<img src=”‘ . $coloredResult . ‘” />’; } if (!empty($predictResult)) { $result .= ‘<h3>Predict</h3>’; $result .= ‘<table class=”table”>’; foreach ($predictResult as $responseKey => $responseValue) { $result .= ‘<tr>’; $result .= ‘<td>’ . $responseKey . ‘</td>’; $result .= ‘<td>’ . nl2br($responseValue) . ‘</td>’; $result .= ‘</tr>’; } $result .= ‘</table>’; } } // Отдаем результат if (!empty($result)) { exit(json_encode([‘error’ => false, ‘rsp’ => $result])); } // Или отдаем ошибку exit(json_encode([‘error’ => true, ‘rsp’ => ‘API ERROR!’])); } // Функция для запросов к АПИ через POST function postMethod($url, $file) { // initialise the curl request $request = curl_init(); curl_setopt($request, CURLOPT_URL, $url); // send a file curl_setopt($request, CURLOPT_POST, true); curl_setopt($request, CURLOPT_POSTFIELDS, [‘img’ => new \CurlFile(realpath($file))]); // output the response curl_setopt($request, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($request); // exception if we have error from api if (curl_error($request)) { // close the session curl_close($request); throw new Exception(“API ERROR FROM $url METHOD”); } // close the session curl_close($request); return json_decode($response, true); } // Получаем содержимое файла маски и сораняем файл, в ответе ссылка на полученное изоюражение. function mask($uid) { // initialise the curl request $request = curl_init(); curl_setopt($request, CURLOPT_URL, API_URL . API_END_POINT_MASK . ‘?mask_id=’ . $uid); curl_setopt($request, CURLOPT_FOLLOWLOCATION, true); // output the response curl_setopt($request, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($request); // exception if we have error from api if (curl_error($request)) { // close the session curl_close($request); throw new Exception(“API ERROR FROM $url METHOD”); } // close the session curl_close($request); $fileUrl = saveFile($uid, $response); return $fileUrl; } // Функция сохранения файла маски в папке изображений. Имя файла = UID. function saveFile($uid, $fileContent) { $fp = fopen(UPLOADS_DIR . ‘/’ . “$uid.jpg”, “wb”); fwrite($fp, $fileContent); fclose($fp); return UPLOADS_DIR . ‘/’ . “$uid.jpg”; } // Primeo – Design & Technology ?> <html lang=”en”> <head> <title>Skiniver</title> <link rel=”stylesheet” type=”text/css” href=”https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css”> <link rel=”shortcut icon” href=”favicon.ico” type=”image/x-icon”> <link href=”https://fonts.googleapis.com/css?family=Open+Sans” rel=”stylesheet”> <link rel=”stylesheet” type=”text/css” href=”css/styles.css” /> <script src=”https://code.jquery.com/jquery-1.12.4.min.js”></script> <script src=”https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js”></script> <script src=”js/jquery.form.js”></script> <script src=”js/scripts.js”></script> </head> <body> <div class=”gap”></div> <div class=”container”> <form method=”post” enctype=”multipart/form-data”> <div class=”form-group text-center”> <input class=”form-control” type=”file” name=”img” required /> <div class=”gap”></div> <button type=”submit” class=”btn btn-lg btn-primary”> Отправить Фотографию </button> </div> </form> <div class=”gap”></div> <div id=”loading” class=”d-none”> <div class=”spinner”> &nbsp; </div> </div> <div id=”result”></div> </div> </body> </html>
    Privacy Preferences

    When you visit our website, it may store information through your browser from specific services, usually in the form of cookies. Here you can change your Privacy preferences. It is worth noting that blocking some types of cookies may impact your experience on our website and the services we are able to offer.

    Click to enable/disable Google Analytics tracking code.
    Click to enable/disable Google Fonts.
    Click to enable/disable Google Maps.
    Click to enable/disable video embeds.
    Our website uses cookies, mainly from 3rd party services. Define your Privacy Preferences and/or agree to our use of cookies.