это легковесный веб-клиент для civitai.com на JS
-
зачем это и почему?
- оригинальный сайт CivitAI очень тормозной;
- на CivitAI бесконечная прокрутка страницы с моделями, которая только усугубляет тормоза;
- ебанутый поиск на CivitAI который ищет либо только по тегам либо по названиям;
- перегруженный интерфейс CivitAI который мешает делать для чего сайт предназначен: найти модель и получить ссылку.
-
как это?
- JS получает по api данные в json и на их основе формирует страницы;
- сам "сайт" никаких данных не содержит, все получается в реальном времени с CivitAI прямо на стороне браузера пользователя;
- из выдачи удаляются все модели которые нельзя скачать: архивные, удаленные, с ранним платным доступом;
- для удобства на страницу выводится по 10 элементов, а благодаря пагинации все будет работать без тормозов даже если ты решишь просмотреть всё от первой до самой последней модели;
- слева вверху можно выбрать категории: модели, лоры, ликорисы, внедрения, ваэ, гиперсети, контролнет, позы, другое;
- верхнее меню поиска ищет только в текущей выбранной категории;
- при поиске делается запрос сразу на выдачу результатов как по тегам, так и по названию моделей, так и по свободному запросу - все это потом формируется в единый результат на странице;
- если в карточке модели указаны теги, по ним пожно кликать и получать все модели по данному тегу;
- название модели - кликабельно: по умолчанию при клике копируется прямая ссылка на загрузку последней версии в буфер обмена;
- справа стрелочка - скачивание последней версии;
- под названием модели можно выбрать все имеющиеся версии модели и также скопировать прмямую ссылку на загрузки при клике;
- можно включить опцию для копирования ссылок в один список по кнопке в шапке, чтобы потом использовать его для загрузки, например, в колабе или какой-нибудь качалке;
- из выдачи можно удалить элементы с тегом "anime" - достаточно переключить аниме-глаз в шапке на человеческий;
- по умолчанию на страницу подгружаются небольшие картиночки, но по ним можно кликать чтобы открыть максимально возможный размер;
- над превьюшками расположены кнопки-стрелочки: их можно нажимать для перелистывания картинок (я решил ограничить их количество пятью) вместе с их параметрами генерации (если они доступны), а если стрелочек нет, значит картинка только одна;
- внизу есть спойлер "описание и дополнительная информация" - чтобы почитать оригинальное описание, которое оставил автор (из которого я заботливо удаляю все ссылки на донаты и т.п. ерунду);
- здесь не используются кукисы, а только временное локальное хранилище с названием категории при ее переключении (которое потом подставляется в функцию для пагинации);
- комментарии, посты, обзоры и т.п. - удалено за ненадобностью.
-
какие подводные?
- самое главное - зависимость от стабильности самого CivitAI: если он не работает (что не редко и происходит) - будет не работать этот клиент;
- иногда данные по api могут долго подгружаться, или вообще CivitAI при очередном заебе выдаст html-заглушку - в таком случае, чтобы бесконечно не любоваться писюном на экране, нужно перезагрузить страницу, авось апи одуплится;
- иногда полноразмерные картинки ну очень долго подгружаются - тут ничего не поделаешь, придется терпеть, как и на оригинальном сайте.
- на некоторых браузерах все это может вообще не работать из-за политики CORS - клиент находится на одном домене (здесь), а данные запрашиваются с другого домена (цивитаи), что считается чем-то небезопасным, но выход найти можно: использовать нормальный браузер (точнее кастомную сбор_очку), или добавить аргумент для запуска браузера
--disable-web-security
, или установить расширение для браузера чтобы обойти ограничения на кросс-доменные запросы: для хрома или фаерфокса; - поскольку это сделано для личного использования (мной), тут нет оптимизации под мобильные устройства, или, например, быстрого доступа к списку моделей по интересующей тебя теме - но никто не мешает тебе сделать копию и настроить чисто под себя.
-
можно ли использовать локально?
- да, можно открывать просто html-файлик локально, либо отключив политику безопасности CORS в браузере, либо подняв простой http-сервер, например на Python это делается в пару строчек:
import os, webbrowser from http.server import HTTPServer, SimpleHTTPRequestHandler os.chdir(os.path.expanduser('~\Desktop\civitai_client')) # предположим, что index.html в папке civitai_client на рабочем столе Windows httpd = HTTPServer(('localhost', 8000), SimpleHTTPRequestHandler) webbrowser.open(f"http://localhost:8000", new=2) # и автоматически откроем локальный сайт httpd.serve_forever()
-
куда можно написать донос?