Хотите добавить на свой сервер Discord немного интерактивности? ChatGPT может добавить новое измерение во взаимодействие с сообществом, будь то развлекательные, информационные или творческие дискуссии.
2. Выберите сервер в вашей учетной записи, куда хотите его добавить и нажмите «Продолжить».
3. Предоставьте боту необходимые права и нажмите кнопку «Авторизировать».
В списке участников появится только что добавленный бот. Чтобы использовать его, воспользуйтесь командой «/ask <ваш_запрос>» в чате. Запрос будет переадресован напрямую к ChatGPT. Для взаимодействия не требуется VPN или API ключ.
Всем привет, давно занимаюсь программированием, но вот нейросетями увлёкся недавно. Начал было копать библиотеку tensorflow и даже сделал свою первую простенькую нейросеть по классификации одежды. Но потом я решил поизучать модели, генерирующие хоть что-то(фото, текст и т.д.). Вычитал, что для этого лучше всего подходят GAN модели. Но достаточного количества информации по их созданию(по крайней мере на современной версии tensorflow). Просьба объяснить, как вытворять подобное.
Уже давно настала эра WYSIWYG - редакторов текстов, и при написании наших веб проектов мы конечно же стараемся их использовать по максимуму.
Один из таких редакторов ну просто с сумасшедше-огромной функциональностью - это небезызвестный CKEditor, который недавно (шучу, давно уже) зарелизился замечательной 5-й версией.
Ее мы сегодня и будем импортировать в наш проект на Laravel 10. Скриншотик (и пасхалочка, кто знает тот поймет) внизу.
И активировать его на textarea через ClassicEditor.create().
Но есть нюанс.... что если авторы решат уйти из РФ и ограничит доступ? Или же РКН решит что "ты не пройдешь!" и ... ты не пройдешь. Нужно любить всех своих пользователей, а не заставлять их расчехлять VPN потому что на сайте не работает редактор.
Да и мы ведь серьезный проект пишем! Нам нужно свое! Да еще и желательно с кастомным билдом под наши задачи!
По этому мы пойдем по второму пути - сложному, который делится еще на два.
Назовем их "следовать инструкциям" и "догадаться самим".
Но перед тем как начать - нам нужно собрать кастомный билд с нужными нами модулями и настройками. Что можно спокойно сделать на сайте. Я использовал билд на базе ClassicEditor, выбрал нужные мне модули в том числе и модуль watchdog на будущее (сейчас активировать его в коде я его конечно-же не буду). В общем, качаем билд и распаковываем его в "Новая папка (3)" на рабочке. Он нам понадобится, но несколько позже.
Распакованный архив с кастомным билдом
Следуем инструкциям.
По инструкции на сайте мы берем скачанный билд, копируем его в папку с проектом в директорию public\assets\ckeditor5, импортируем .js файл в blade шаблон и так-же активируем его через EditorWatchdog() или CreateEditor(). Легко и просто, и в принципе все гайды в интернете по интеграции в Laravel пишут нам что так делать правильно.
Но нас то не обманешь! У нас серьезный проект! И ведь действительно, вдруг нам потом понадобится модуль, который мы не добавили в наш билд? Пересобирать заново? Да ну его! По этому мы пойдем своим путем! Поехали!
Догадываемся сами
К нашему счастью в Laravel встроен замечательнейший инструмент под названием Node.js, который мы и будем использовать. И не только его.
Установка
Идем консолькой в папку с нашим проектом и запускаем (не забудь включить vpn)
Сразу нам устанавливается множество зависимостей, однако наш любимый Laravel 10 этот модуль сразу не увидит. Для того чтобы это исправить нам нужно сделать еще кое-что. Поехали интегрировать.
Интеграция
Нам нужно чтобы наш Laravel увидел CKEditor, да собирал его под наши нужды "на лету". Для этого мы будем использовать vite, благо он идет в составе Laravel. У авторов CKEditor для него есть отдельный модуль с названием @ckeditor/vite-plugin-ckeditor5, его и будем использовать. Также нам понадобится модуль @ckeditor/ckeditor5-theme-lark.
Далее ищем в корне нашего проекта файл vite.config.js и вносим в него следующие строки как показано на скриншоте (слева - старый файл, справа - внесенные изменения)
Помните ту конфигурацию, что мы делали на сайте CKE? Она то нам сейчас и понадобится.
Открываем Новую папку (3) и в подпапке src находим файл ckeditor.ts. Это файл с настройками нашего билда. Копируем его в папку с проектом, в директорию resources/js. Также из папки samples копируем style.css в resources/css. И дополнительно создаем файлик editor.js - его мы и будем встраивать в наш шаблон.
Содержимое editor.js
import ClassicEditor from './ckeditor';
ClassicEditor.Editor // Note that you do not have to specify the plugin and toolbar configuration — using defaults from the build. .create( document.querySelector( '#editor' ), { language: 'ru', removePlugins: [ 'MediaEmbedToolbar' ] }) .then( editor => { console.log( 'Editor was initialized', editor ); } ) .catch( error => { console.error( error.stack ); } );
Для наблюдательных - я специально не использовал watchdog здесь. Импортировать его я планирую потом.
Дальше нам нужно загрузить недостающие модули.
Открываем редактором ckeditor.ts и видим вверху множество импортов.
Открываем папку "node_modules/@ckeditor" внутри проекта и ищем недостающие модули. Если такие есть - устанавливаем их через npm install --save %имя_модуля%.
В дальнейшем есть шанс получить следующую ошибку от TailWindCSS (при запуске npm run dev)
[vite:css] Nested CSS was detected, but CSS nesting has not been configured correctly.Please enable a CSS nesting plugin *before* Tailwind in your configuration.
Она вызывается из-за того, что мы используем кастомный css для ckeditor
Чтобы этого не происходило, нам необходимо в файле postcss.config.js в корне нашего проекта добавить следующие строки:
'postcss-import': {}, 'tailwindcss/nesting': {},
как на скриншоте
postcss.config.js
Почти все
Нам осталось только в нашем шаблоне между тегов <head> добавить
И теперь любой <div> или <textarea> с указанием id="editor" будет вызван с редактором CKEditor5.
Запускаем проект через npm run dev и радуемся полученному результату!
Результат
Результат
А Вы заметили пасхалочку на скриншоте?
Все что вам осталось - это настроить дизайн редактора в css файле.
Ну и как-же без ложки дегтя - почему-то конфигурация "language: ru" не срабатывает и редактор остается английским. Возможно не хватает какого-то модуля или же что-то необходимо донастроить. Пока еще не разобрался, но в целом на данном этапе разработки это не сильно критично. Если у Вас есть идеи - welcome!
Update: С языком разобрался. Действительно его необходимо было имортировать. Для этого в ckeditor.ts необходимо вставить строку после импорта { ClassicEditor }
Update2: Также нашел проблему при вставке видео с внешнего источника, например Youtube. В редакторе оно вставляется, а вот в пост не переносится. Лечится доп конфигом там-же в ckeditor.ts в секцию defaultConfig
mediaEmbed: { previewsInData: true }
Исправленная локализация
Надеюсь что данный гайд поможет Вам в проектах.
Если вы хотите немного потрындеть, или быть может знаете Laravel или например умеете верстать, ну или просто у вас есть желание как-нибудь помочь с разработкой проекта, милости прошу в мою потрынделку.
В кратце - да, старый добрый, с блекджеком и шлюпками.
Устали от бесконечного ожидания при загрузке огромных файлов? Игра «Copy Dialog Lunar Lander (https://github.com/Sanakan8472/copy-dialog-lunar-lander)» – веселый и увлекательный способ скоротать время в эти томительные минуты. Играйте на лунном корабле на этих привлекательных холмах, созданных в диалоговом окне прогресса.
Во время работы приложение обнаруживает все диалоговые окна копирования Windows и добавляет поверх них игровой оверлей, когда они находятся в фокусе. Чтобы начать игру, щелкните на графике прогресса. Клавиши со стрелками используются для управления, пробел – для перезапуска игры.
Доступно несколько настроек сложности:
1. Легкий – копирование файлов между локальными SSD-накопителями.
2. Средний – проверьте свои навыки, копируя файлы на более медленный накопитель USB 2.0.
3. Трудный – испытайте себя на прочность, выполнив передачу файлов по рабочей VPN-сети. У вас будет больше времени на прохождение уровня, но это будет нелегко!
Еще больше интересных и полезных советов вы найдете в моем телеграмм канале : https://t.me/TechLiveHack
Решил написать псевдо-скриптовый язык для игры Arena Unlimited. Скриптовый язык я решил использовать для разных мелочей чтобы не лезть в код лишний раз а все делать или прямо во время игры или же использовать их на картах разных. В первую очень нужно было сделать обработчик скриптов, я не стал заморачиваться и написал это за один вечер
Вот и весь код, в нем используются разные микро функции которые делать операции и ищут переменные в игре по их названию, можно складывать переменные, проверять их, циклы есть, есть условия и запуск других скриптов по условию, есть поиск сущностей на карте, операции с игроками, с игровыми настройками и параметрами и всяким таким, начну скоро документацию на этот ArenaScript писать. Есть и ограничения в этом языке но самое хорошее что он работает и мне его пока что хватает и его можно расширять при помощи аддонов для игры. Чем больше дополнений к этому языку тем больше он умеет, для Arena Unlimited это прям прекрасно.
Кстати у него есть особенность операция 5 = 9 работает и 5 потом по всему коду воспринимается как 9 и решается это одной функцией которая удаляет указатель на девятку из адреса по которому находится пятерка. А еще он может сам сгенерировать строку кода и выполнить её. Тоесть через код можно генерировать код и выполнять его. И да язык безопасный, дальше игры не выходит!
Как думаете, что попробовать написать на нем?) Для чего использовать?)
Одна из ключевых фишек Stable Diffusion - умение преобразовывать различные изображения в соответствии с подсказкой. Нейросеть не может читать наши мысли и даже по подробному текстовому запросу не всегда выдает желаемое.
Например, я решил сделать персонажей для будущего проекта схожими с механикой Madness Combat - когда тело персонажа в основном находится под углом, а вместо рук и ног только кисти и ступни. Но саму стилистику более близкую к Battle Brothers.
● Первые проблемы
Помимо бокового ракурса я хотел добавить вид со спины и тем самым вставил себе в колеса еще больше палок. Дело в том, что нейросеть не понимает каким образом рисованы персонажи в Madness Combat и когда ты даешь ей схожие промты - получается сущий кошмар.
● Как подсказать задумку для нейронки
Именно тут на помощь приходит базовое умение рисовать. Используя любой графический редактор можно нарисовать корявую подсказку для нейросети. Я сделал набросок одежды с переднего и заднего ракурса, а дальше Stable Diffusion сделала мне готовые спрайты.
Взял голову с одного из старых промтов, сам нарисовал корявую версию затылка - нейросеть сделала адекватный вариант
Пробный вариант собранный из разных сгенерированных частей
Конечно - результат не идеален, но это куда лучше изначальных вариантов, который я рисовал самостоятельно. Остается собрать побольше частей и отредактировать их под общую стилистику, а дальше - анимация! К слову, именно для облегчения работы с анимацией я выбрал механику отдельных друг от друга частей тела.
Подписывайся на мой гоблинский блог, впереди еще больше интересного!
«Чат на чат» — новое развлекательное шоу RUTUBE. В нем два известных гостя соревнуются, у кого смешнее друзья. Звезды создают групповые чаты с близкими людьми и в каждом раунде присылают им забавные челленджи и задания. Команда, которая окажется креативнее, побеждает.
Приветсвую вас, читатели! Сегодня я расскажу о такой нейросети, как SadTalker.
Небольшое предисловие. Это моя первая статья на пикабу, так что обратная связь приветствуется.
Установка данной нейросети на Google Colab:
Переходим на Colab и видим блокнот. Подключаемся к нему и обязательно выбираем видеокарту Т4 во так: наверху есть вкладка "Среда выполнения", нажмите на неё. После этого нажмите на "Сменить среду выполнения" и выбираете "T4 GPU"
Теперь запускаете первый код блок, если вам выдало вот это, то продолжаем работу:
Tesla T4, 15360 MiB, 15101 MiB
Запускаем теперь код блок ниже и ждём пока не напишет это под ним:
Готово!
Запускаем третий код блок, он скачает нам модели для нашей нейросети. Если всё успешно, то выдаст следующее сообщение:
Готово!
Теперь этап загрузки картинки.
В левой части вашего экрана есть эмодзи папки, нажимаете на него и видите папку SadTalker. Заходите в папку examples, а в ней в папку source_image. Нажимаете на эту папку правой кнопкой мыши и загружаете файл, пока синий кружочек не перестанет крутиться. Если ваш файл на русском языке, переименуйте его на английский.
Работа с загрузкой аудио.
Всё то же самое как в прошлом разделе, только папка driven_audio. В этот раз копируем путь к нашему аудио. Нажимаем на него ПКМ и копируете к нему путь. Теперь вставляете этот путь после --driven_audio в вашем кодблоке. Если что, это был предпоследний код блок.
Ну и выводим наш результат.
Просто нажимаете на последний кодблок и он выдаст вам ваше видео, которые вы можете скачать.