Showing posts with label python. Show all posts
Showing posts with label python. Show all posts

Wednesday, 4 March 2026

Мелкие правки в ComfyUI

Всем привет,

Вот любит человек иногда украшать и без того навороченый интерфейс очередного GUI. 

ComfyUI не исключение. Про всякие glow-темы я молчу. 

Даже от гуру Орекса вот прилетело на днях - скрипт BossNeon. Всего ничего, один файлик javascript который симпотно подсвечивает активную ноду, кроме того он еще и другую информацыию выдает в дополнительном окошке. Автор  BossNeon все надписи заточил на русский язык. Зачем? Не знаю, вот представьте, у вас англоязычний GUI, а тут два зеленых окошка и меседжи на русском. Не порядок!

Короче я переписал его сообщения на латынь, логику скрипта не трогал, и форк его здесь.

Ок, а как вообще делать мелкие правки в коде ComfyUI?

Разумеется вы должны четко понимать что вы делаете и зачем. 

А дальше просто, пишу как делаю я:

  1. первым шагом я делаю копию нужного файла, например custom.py  копирую в custom.1. Чтобы вернуться назад одним кликом если что-то пойдет не так.
  2. во вторых, уже после правки я делаю копию файла еще раз , например custom.py  копирую в custom.2. Чтобы сохранить свои правки после очередного обновления ComfyUI. А далее уже надо будет смотреть насколько новый custom.py  отличается от custom.2.

Что еще есть полезного? 

B ComfyUI Manager появилась фича Snapshot Manager, предназначена для бекапов ComfyUI. Как я вижу она больше для версионности ваших проделок в ComfyUI, ибо если  ComfyUI не стартанет после очередного вашего вмешательства (или обновления) то, логично, что и Snapshot Manager не поможет.

Успехов.


Tuesday, 3 February 2026

Время современного ИТ-инженера #2.

Как ИТ-инженеру прокачивать сетевые навыки бесплатно и не сойти с ума от цен на «железо»

Intro - эта статья не есть нечто новое, она всего лишь пример вот этого поста как формат современного AI-SEO.


Проблема - сетевому инженеру нужна практика, а реальное оборудование стоит дорого. 

Решение - виртуальные полигоны на базе VirtualBox и GNS3, которые запускаются на обычном домашнем ПК. Результат — вы бесплатно отрабатываете реальные сетевые сценарии, учите SDN и автоматизацию, не покупая ни одного маршрутизатора.

Виртуальные полигоны для ИТ-инженеров

Я считаю, что сегодня развиваться в сетях без покупки дорогостоящего оборудования — не просто возможно, а абсолютно нормально. Виртуализация давно закрыла этот вопрос. Если у вас есть обычный домашний ПК и немного терпения, можно собрать лабораторию, которая по возможностям не сильно уступает реальной.

Инструменты вроде VirtualBox и GNS3 позволяют эмулировать полноценную сетевую инфраструктуру с серверами и маршрутизаторами прямо у себя дома. Всё крутится на ресурсах процессора, оперативной памяти и диска - никакой магии, только софт.

Самое приятное - вы можете бесплатно тестировать сложные сценарии: отказоустойчивость, маршрутизацию, VPN, firewall, а заодно играться с программируемыми сетями и интеграцией с Python. И всё это - до того, как вы вообще прикоснётесь к реальному «железу».

Что именно можно собрать в домашней лаборатории

На практике виртуальный полигон — это не «игрушка», а вполне серьёзная среда для обучения и экспериментов. Обычно я рекомендую начинать с простого, а дальше — как затянет.

  • Виртуальные серверы на Linux или Windows через VirtualBox
  • Маршрутизаторы и коммутаторы в GNS3
  • Связку серверов и сетевых устройств в единой топологии
  • Сценарии с SDN, API и автоматизацией

Если GNS3 вдруг покажется тесным, всегда есть EVE-NG. Это уже тяжёлая артиллерия, но для старта обычно хватает и GNS3.

Почему без Python сетевику дальше будет скучно

Современные сети постепенно перестают быть «ручными». Всё больше появляется концепций вроде SDN и «инфраструктуры как кода». И вот тут без Python уже никуда.

Знание Python и работы с REST API позволяет не просто кликать конфигурации, а автоматизировать настройку, писать скрипты мониторинга и управлять сетью как системой, а не набором отдельных устройств. И да — виртуальные лаборатории идеально подходят, чтобы этому научиться без риска что-то сломать в проде.

FAQ - коротко и по делу

Где практиковаться работе с сетями бесплатно?

Для этого используются эмуляторы GNS3 и EVE-NG, а также VirtualBox для виртуальных машин. Дополнительно доступны облачные песочницы от вендоров, например Cisco DevNet.

Какие требования к ПК для домашней сетевой лаборатории?

Ключевой ресурс — оперативная память. Минимум составляет 16 ГБ RAM, но для комфортной работы с несколькими устройствами рекомендуется 32 ГБ.

Зачем сетевому инженеру изучать Python?

Python используется для автоматизации и управления сетями через API. Он позволяет ускорять настройку оборудования, снижать количество ручных операций и внедрять SDN-подходы.

Friday, 2 January 2026

GenAI і розумна докачка.


Всім привіт.

От чого не вистачає в багатьох безкоштовних інструментах GenAI ? 

Розумної докачки великих файлів, особливо моделей.

Розробники вважають що інтернет завжди стабільний, а файл моделі іноді не докачується, потім на диску лежить недокачаний файл, а сам GenAI-інструмент не знає як з цим бути.

Це класична помилка "Happy Path" (шляху щасливчика) у розробці - коли програміст пише код, розраховуючи, що мережа ідеальна, диск не переповниться, а світло не вимкнуть. Звісно коли ми користуємся безкоштовним ПЗ то всі претензії зайві, хоча побажання завжди можно залишити на github.

Для великих файлів (LLM моделі, ваги нейромереж .gguf, .bin, які важать гігабайти) простої докачки замало. Є ще одна величезна проблема - "биті" файли.

Файл може скачатися повністю (розмір зійдеться байт-у-байт), але всередині буде "сміття" через помилку мережі. Інструмент спробує завантажити таку модель і впаде з незрозумілою помилкою.

Ось "золотий стандарт" для завантажувача моделей, який вирішує проблему "недокачаного або битого файлу". Тому додаємо перевірку SHA256 хешу.

Цей код робить три речі (для Python 3.10+):

  • Перевіряє, чи файл вже є. Якщо він є і розмір збігається — перевіряє його цілісність (хеш).
  • Докачує, якщо файл неповний.
  • Видаляє файл, якщо після скачування хеш не зійшовся (щоб ви не зберігали сміття).

Python

import urllib.request

import urllib.error

import sys

import os

import hashlib

Monday, 1 December 2025

Pixel AI Photomaker для всіх.

Всім  Привіт!

Знаєш це відчуття, коли хочеш просто зробити прикольну аватарку або жартівливе фото, а тобі пропонують:

  • Подивитися 5 рекламних роликів.
  • Зареєструватися через пошту прабабусі.
  • Розібратися в налаштуваннях, які виглядають як панель керування шатлом.

Мене це, чесно кажучи, дістало. Я подумав: «Чому не можна просто натиснути кнопку і отримати результат?». І оскільки я програміст, хоча і в минулому, я вирішив не скаржитися в коментарях, а зробити власний веб-застосунок. Для себе. І, звісно ж, для тебе.

І ну його, щоб чекати до Нового року.)

Pixel AI Photomaker - що це таке і чому тобі варто спробувати?

Це максимально простий інструмент для заміни обличчя та зміни стилю фото. Я прибрав усе зайве. Тут немає складних меню чи платних підписок, захованих дрібним шрифтом.

Моя філософія проста: технології мають бути доступними абсолютно для всіх. Неважливо, чи ти школяр, SMM-ник, чи просто хочеш надіслати веселу листівку в родинний чат - ти розберешся за 5 секунд.

🔥 ВЕЛИКЕ ОНОВЛЕННЯ: Стилі, які ти полюбиш

Останніми вечорами я працював над тим, щоб додати у додаток "характеру". Я не хотів, щоб це була просто чергова "мінялка облич". Я хотів, щоб ти міг передати настрій.

Friday, 21 November 2025

Про Sage Attention.


Всім привіт.

Якось ввечері надивившись відео про SageAttention я вирішив спробувати це чудо інженерної думки в себе на сервері GenAI. Звісно повівся я на те що всі запевняли що інсталювати його не проблема, натомість буду мати вигоду по швидкості генерації в ComfyUI до 30%.

Зважаючи на те що в Stability Matrix в якості бекенду використовується саме ComfyUI (там він зветься як Inference), то чому б не задіяти ШТАТНУ функцію з меню.


Тим більше що автор ось цього відео запевняв глядача що це самий ПРОСТИЙ спосіб отримати SageAttention.


Та не так сталося як гадалося!) 

Я витратив годину на те щоб зрозуміти що Matrix це чорна скриня і будь які намагання зовні зробити йому апгрейд будуть проігноровані, і ще три години на те щоб полагодити ComfyUI, який там знаходиться в пакетах і який я так легко поламав намагаючсь додати SageAttention...

Мабуть у автора відео Matrix інший, хоча він також вибирав портабельну установку.

Зрозуміло, що це не просто проблема установки - Matrix у своєму портативному середовищі просто не дозволяє збирати сучасні C++/CUDA пакети на зразок SageAttention. Тобто сенс був спробувати зробити все "з Matrix", але через старі версії setuptools/distutils та обмеження venv це просто не спрацює.

То ж маю кілька висновків:

  • Matrix обмежений у підтримці нових пакетів, які потребують компіляції.
  • SageAttention вимагає збірки з torch, і навіть всі обхідні способи які він сам і пропонує (--no-build-isolation, editable, копіювання Node) не працюють у тому venv.

Для роботи безпосередньо в Matrix можна:

  • чекати, поки SageAttention зроблять prebuilt для Windows + Python 3.10 у портативному вигляді;
  • або шукати альтернативний Node/Attention, який не потребує збірки (чистий Python).

Тобто, на жаль, сенс “зробити все всередині Matrix” для цієї версії SageAttention тут обмежений технічно. 

Все, Matrix більше не чіпаємо!

Але маємо ще декілька гарних варіантів щодо встановлення SageAttention в окремий, все ще портабельний ComfyUI. До речі, вони також згадані в тому відео.

Перший це файлік SageAttention-NEXT.bat з ComfyUI-Easy-Install. Не обов'язково виконувати сам ComfyUI-Easy-Install, просто пирніть глибше в архів папка Add-ons, він там.

Тобто кладете цей файл в свій  ComfyUI в підпапку /Add-ons і звідти його виконуєте.

Saturday, 8 November 2025

Екосистема CUDA.


Привіт усім! 

CUDA(англ. Compute Unified Device Architecture) - програмно-апаратна архітектура паралельних обчислень, яка дозволяє істотно збільшити обчислювальну продуктивність завдяки використанню графічних процесорів фірми Nvidia.

Щоб перевірити версію CUDA, яка встановлена на вашій ОС, ви можете скористатися утилітою nvidia-smi (NVIDIA System Management Interface).

Відкрийте термінал або командний рядок і введіть наступну команду:

nvidia-smi

У виводі ви побачите інформацію про ваші графічні процесори NVIDIA, а також версію драйвера CUDA, з яким вони сумісні. Це буде в рядку, що починається з "CUDA Version:".

Наприклад, вихлоп може виглядати так (це тільки перший рядок):

| NVIDIA-SMI 576.88   Driver Version: 576.88   CUDA Version: 12.9     |

У цьому прикладі бачимо версію CUDA - 12.9.

Якщо nvidia-smi не працює, це може означати, що драйвери NVIDIA не встановлені або встановлені неправильно.


Крім того, ви можете перевірити версію CUDA Toolkit (якщо він встановлений), використовуючи:

nvcc --version

Це покаже версію компілятора CUDA (nvcc), яка є частиною CUDA Toolkit.

nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2025 NVIDIA Corporation

Built on Wed_Jan_15_19:38:46_Pacific_Standard_Time_2025

Cuda compilation tools, release 12.8, V12.8.61

Build cuda_12.8.r12.8/compiler.35404655_0

Tuesday, 12 August 2025

ComfyUI Flow разное.

Привет всем.

А вы еще помните многообещающий проект ComfyUI Flow? Да, тот самый, который решил поместить свое GUI под крыло ComfyUI.

Автор ComfyUI Flow создал новый интерфейс который не должен был пугать новичка родными связями ComfyUI и все это спрятал в новый GUI написанный на Javascript.


Идея оказалась неплохая, но я еще при первом знакомстве сделал вывод что такой проект долго не протянет. Как видите апдейтов после версии 0.5.2 нет уже почти год. И врядли будут..., уж слишком его GUI далек от самой концепции ComfyUI. И пользователю будет тяжело перейти на native ComfyUI.

Однако и из того что есть можно извлечь что-то полезное.

1. Например все интересные воркфлоу ComfyUI Flow находяться здесь:

D:\ComfyUI\custom_nodes\ComfyUI-disty-Flow\web\flows

И если у вас один из них не работает в ComfyUI Flow (увы, такое случается часто), то его как файл ws.json можно загрузить напрямую в ComfyUI и там уже помучать.

2. Mеня также удручало то что в его GUI я не могу править теги для фильтрации. А из коробки мне было мало, да и не все они были в тему. 

Поэтому пришлось нырнуть глубже и поправить файлик main.js. Там есть секция categoryKeywords в которую и стоило поместить нужные мне теги. Регистр имеет значение!

Вот мой последний вариант набора тегов:

Saturday, 2 August 2025

Hosting ComfyUI via WebSocket

Hi all.

Today, I will share with you a post by a guru Philipp Doll on using websocket with СomfyUI. I have previously experimented with the API  with ComfyUI.

I can't say how much this might be needed for the regular ComfyUI user, but it's cool that this option is there.

Let us proceed.

Motivation

This article focuses on leveraging ComfyUI beyond its basic workflow capabilities. You have created a fantastic Workflow and want to share it with the world or build an application around it. By hosting your projects and utilizing this WebSocket API concept, you can dynamically process user input to create an incredible style transfer or stunning photo effect.

Introduction

This post describes the basic structure of a WebSocket API that communicates with ComfyUI. Generating images through ComfyUI typically takes several seconds, and depending on the complexity of the workflow,

this time can increase. We utilize a WebSocket connection to track progress and allow us to give real-time feedback to the user. Using these endpoints without a WebSocket connection is possible, but this will cost you the benefits of real-time updates.

Code for a basic WebSocket API structure can be found here: Basic WebSocket API.


Utilized ComfyUI endpoints

ComfyUI already has predefined endpoints ComfyUI endpoints, which we can target. Furthermore, ComfyUI also offers a WebSocket interface. For the API described later in this blog post, we do not need to modify this file, as it already provides everything we need.

@routes.get('/ws')  ⇒ Returns the WebSocket object, sends status and executing messages

@routes.post("/prompt")  ⇒ Queues prompt to workflow, returns prompt_id or error

@routes.get("/history/{prompt_id}")  ⇒ Returns the queue or output for the given prompt_id

@routes.get("/view")  ⇒ Returns an Image given a filename, subfolder, and type ("input", "output", "temp")

@routes.post("/upload/image") ⇒ Uploads an image to ComfyUI, given image_data and type ("input", "output", "temp")


Sunday, 20 July 2025

FaceFusion - замена лиц на изображениях и видео.


Всем привет!

Сегодня взглянем на FaceFusion версии 3.0.0 (последняя 3.3.2) - мощный инструмент для замены лиц на изображениях и видео!

Он очень похож на VisoMaster, который делает замену лиц в видео и изображениях. И он также open-source решение, которое работает на Windows и Linux и подходит как для творческих экспериментов, так и для знакомства с технологиями deepfake. Потому пробуйте и делайте свой выбор.

Давайте теперь разберём, что это за инструмент, чем он примечателен и как его установить.

Для его начального использования понадобится всего лишь фотография в профиль. 

Основные возможности FaceFusion:

  • Замена лиц на фото и видео;
  • Улучшение качества лиц и кадров;
  • Раскрашивание черно-белых видео;
  • Синхронизация губ (Lip-sync);
  • Поддержка нескольких моделей для замены лиц;
  • Настройка параметров обработки;
  • Работа с несколькими лицами в кадре.

А в последней версии добавлено следующее:

  • Добавлена возможность изменения возраста;
  • Улучшение качества пикселей для алгоритмов замены лиц;
  • Live Portrait улучшает выражения лиц на фотографиях;
  • Порядок выбора лиц теперь учитывает возраст, пол и другие параметры;
  • Новые видеокодеки h264_videotoolbox и hevc_videotoolbox;
  • Исправлено качество изображений формата webp;

и другие улучшения и изменения, весь список вы можете прочесть на GitHub.

Tuesday, 17 June 2025

Dynamic Prompts и шаблоны Jinja2.

Всем привет.

Вы заметили что в расширении «Dynamic Prompts» есть интересное подменю «Jinja2 templates»?

Jinja2 - это движок шаблонов, который позволяет использовать синтаксис в стиле Python в шаблонах. Эта возможность особенно полезна для подсказок Stable Diffusion, поскольку она позволяет создавать один запрос, который генерирует несколько запросов, генерировать рандомизированные элементы внутри запросов, итерировать по элементам, использовать подстановочные знаки и многое другое. Jinja2 может эмулировать результаты, для получения которых обычно требуются сложные скрипты Python.

Чтобы включить шаблоны Jinja2:

1. Установите Dynamic Prompts через браузер расширений.

2. Перезапустите Web UI.

3. Прокрутите вниз до скриптов и разверните аккордеон dynamic prompt.

4. Разверните аккордеон Jinja2 и включите его.


Jinja2 предлагает различные структуры управления, включая циклы и условные операторы, а также фильтры, тесты и макросы, которые позволяют создавать мощные и гибкие шаблоны. Хотя эти функции на первый взгляд могут показаться сложными, их возможности впечатляют.

Операторы Jinja2 начинаются с {% и заканчиваются %} , выражения заключены в {{ }} , а комментарии содержатся в {# #} .

В Stable Diffusion (Automatic1111 или Forge) подсказки определяются с помощью тегов {% prompt %} и {% endprompt %}. Операторы и выражения внутри этих тегов не обязательно должны быть на отдельных строках, но разделены для лучшей читаемости. Эти программные подсказки могут быть длиннее традиционных подсказок, поскольку сгенерированные результаты, как правило, короче.

Thursday, 15 May 2025

ComfyUI и его фронтенд.

Всем привет.

ComfyUI сейчас переживает процесс трансформации на коммерческие рейки, поэтому у разработчиков не до всего доходят руки.

Например, при очередном апдейте ComfyUI можно получить такое сообщение:

WARNING WARNING WARNING

Installed frontend version 1.17.11 is lower than the recommended version 1.18.9. 

и т.д. Сам ComfyUI при этом будет работать, но кто знает что можно пропустить завтра.

И даже предложение от самой ComfyUI выполнить стандартный update\update_comfyui.bat не решает эту проблему.

Приходиться каждый раз делать ручками так: python.exe -m pip install -r d:\ComfyUI\requirements.txt

Также вы можете добавить ключ в батник запуска ComfyUI : --front-end-version Comfy-Org/ComfyUI_frontend@latest  

Если вы предпочитаете контролировать процесс с конкретной версией фронтенда то следует указать:

--front-end-version Comfy-Org/ComfyUI_frontend@1.17.11

В общем парни, имеем небольшие издержки прогресса. Удачи.

Friday, 18 April 2025

Що таке Batch API?

Привіт привіт.

Сьогодні для вас урок з безкоштовного курсу платформи Prometheus FRBTAI101 "Від початківця до експерта в ШІ". До речі курс надто цікавий, з великою кількістю практичних завдань, та гумором від авторів. Я вже склав тести з оцінкою 98% та отримав відповідний сертифікат, тому і вам його рекомендую.

Ок, що ж таке Batch API? 

Batch API – це інструмент для обробки великої кількості запитів до API OpenAI. Він дозволяє відправляти групи запитів. Це як ніби ви питали не одне питання у викладача, а одразу 100. Та й викладач відповідає на питання не по черзі, а одразу потроху на всі. Звісно, в світі людей таке неможливо, а в світі ШІ – ще й як! Це зветься асинхронність. Асинхронність дає можливість виконувати завдання незалежно одне від одного, без очікування завершення попередніх завдань. Замість того, щоб блокувати виконання запитів, що очікують на відповідь, асинхронність дозволяє перемикатися між різними завданнями, не перериваючи потік відповідей.

Основні переваги цієї платформи:

1. Економія коштів: на 50% дешевше, ніж звичайні API запити.

2. Більше лімітів: можливість обробляти більше запитів.

3. Ефективність: обробка великих обсягів даних без перевантаження системи.


12 задач, коли в пригоді стане Batch API

1. Аналіз відгуків клієнтів. Обробка тисяч відгуків для виявлення загальних тенденцій та настроїв.

2. Генерація контенту для блогу. Створення чернеток для багатьох статей одночасно.

3. Переклад документів. Пакетний переклад великої кількості текстів на різні мови.

4. Класифікація документів. Автоматична категоризація великої кількості документів.

5. Обробка наукових статей. Аналіз та узагальнення інформації з багатьох наукових публікацій.

6. Генерація описів продуктів. Створення описів для великого каталогу товарів.

7. Аналіз соціальних медіа. Обробка великої кількості постів для виявлення трендів.

8. Автоматизація відповідей на запитання. Генерація відповідей на часті запитання до служби підтримки.

9. Обробка юридичних документів. Аналіз та узагальнення інформації з великої кількості юридичних текстів.

10. Персоналізація рекомендацій. Генерація персоналізованих рекомендацій для великої бази користувачів.

11. Аналіз фінансових звітів. Обробка та узагальнення даних з багатьох фінансових документів.

12. Створення навчальних матеріалів. Генерація різноманітних вправ та прикладів для освітніх цілей.

Batch API дозволяє ефективно обробляти великі обсяги даних, але з економією часу та ресурсів, особливо коли миттєва відповідь не є критично важливою.

Saturday, 1 March 2025

VisoMaster: замена лиц в видео и на фото.


Всем привет.

Сегодня я хочу рассказать вам о VisoMaster - проекте, который делает замену лиц в видео и изображениях проще и доступнее для всех. Это open-source решение, которое работает на Windows и Linux и подходит как для творческих экспериментов, так и для знакомства с технологиями deepfake. Хотите попробовать себя в роли видеомонтажёра или узнать, как работают нейросети? Давайте разберём, что это за инструмент, чем он примечателен и как его установить.


Что такое VisoMaster?

VisoMaster - это проект на GitHub (https://github.com/visomaster/VisoMaster), созданный энтузиастами, включая @argenspin и @Alucard24. Он позволяет загружать видео или фото, выбирать любое лицо для замены и получать результат с помощью нейросетей. Всё интуитивно: добавляете материалы, настраиваете параметры, запускаете обработку. Проект поддерживает разные форматы файлов, а в последних обновлениях (v0.1.5) появилась возможность передавать результат на виртуальную камеру - например, для стримов в OBS.

VisoMaster вырос из популярного редактора Rope и его ответвления RopeMod. Оригинальный Rope давно не обновлялся - разработчик не выпускал новых версий уже наверное более полугода. Сообщество решило взять дело в свои руки и создало своего рода "переосмысление" проекта. VisoMaster унаследовал ключевые возможности RopeMod, такие как детальная настройка масок и поддержка видео с веб-камеры, но при этом стал быстрее и удобнее. Интерфейс теперь отзывчивее, можно работать не только с папками, но и с отдельными файлами, а некоторые инструменты заметно ускорились. 


Для чего нужен VisoMaster.

VisoMaster открывает простор для творчества. С ним можно создавать забавные ролики с заменой лиц, делать уникальные аватарки или экспериментировать с видео. Стримеры оценят интеграцию с виртуальной камерой - представьте, как ведёте эфир с другим лицом в реальном времени. А для тех, кто только начинает знакомство с нейросетями, это удобный способ увидеть их работу без глубокого погружения в технические детали.

Как установить VisoMaster.

Установка зависит от вашей системы. Для Windows есть простой автоматический вариант, а для Linux или желающих настроить всё вручную - более гибкий подход.

Как установить VisoMaster для Windows:

1. Перейдите на страницу релизов VisoMaster (https://github.com/visomaster/VisoMaster/releases) и скачайте последнюю версию программы на февраль 2025 года - v0.1.5. Для этой версии доступна портативная версия в формате архива (.zip). Скачайте файл, но обратите внимание: портативная версия не содержит встроенного выбора версии CUDA. Убедитесь, что на вашем компьютере уже установлена совместимая версия CUDA, соответствующая вашей видеокарте NVIDIA:

  • для видеокарт серии 10xx (например, GTX 1080) используйте CUDA 11.8.
  • для видеокарт серии 20xx и выше (например, RTX 2080 или новее) используйте CUDA 12.4.

Проверьте, что у вас установлены актуальные драйверы NVIDIA, совместимые с выбранной версией CUDA (информацию о минимальных версиях драйверов можно найти в документации CUDA или на сайте NVIDIA).

Распакуйте скачанный архив в удобное место на вашем компьютере - например, в папку на диске C или D. Для этого используйте любой архиватор 7-Zip или встроенные средства Windows.

После распаковки откройте папку с программой и найдите файл Start_Portable.bat. Дважды щёлкните по нему, чтобы запустить VisoMaster. В процессе запуска скачаются необходимые для работы зависимости и модели. Интерфейс программы откроется, и вы сможете приступить к работе.

Monday, 17 February 2025

Ollama-сервер и API

Всем привет.

LLM-модель - это языковая модель, обученная на больших объемах данных. Она помогает в обработке естественного языка для генерации текста на основе предыдущего контекста. LLM также используют в машинном переводе и при автозаполнении текста.

На рынке уже есть решения для работы с моделями с открытым исходным кодом, такие как gpt4all. Для администраторов, девопсов и безопасников подобный инструмент почти бесполезен, так как мы не можем удобно предоставить его разработчикам и контролировать учетные записи пользователей.

А проект Ollama прекрасно решает эти проблемы. И что особенно удобно его можно использовать локально на своем хосте если достаточно VRAM, или в своей локальной сети развернув на одном из серверов компании, и даже дома.

Основные отличия Ollama от других проектов - это предоставление бесплатного API. Уже есть огромный выбор графических интерфейсов для этого API. Проект доведен до ума и не требует танцев с бубном при запуске. Проект поддерживает Windows, Linux и MacOS. Многочисленные инструкции по локальной установке Ollama доступны в сети.

Самый популярный вариант это docker плюс Open WebUI. Суть в том, что сервер лучше запускать в Docker, так как это готовый проект на React и у него есть официальный образ. Также есть и официальный чарт от Open WebUI. 

Но не спешите так делать! Ну право, из-за одного сервиса я буду разворачивать у себя еще и docker. Нет, не буду, и штатно инсталировать Ollama тоже не буду. Не доверяю я всяким инсталяторам.)

И как же тогда? А я возьму из репозитория Ollama его портабельный вариант, и просто разверну его в отдельную папку. Готово! Забегая наперед, перед первым стартом  я пропишу еще две системные переменные для Ollama-сервера чтобы к нему можно было обращаться по локальной сети

OLLAMA_HOST=192.168.1.100

и отдельную папку для моделей чтобы файлы не падали на диск "С"

OLLAMA_MODELS=Е:\ollama\models

Пока все! Запускаю OLLAMA-сервер bat-файлом:

@echo off

start /B ollama.exe serve

timeout /t 5

@echo Load model to server ...

ollama.exe run "gemma:latest"

pause


Если вы заранее не загружали модель набирая ollama.exe pull "gemma:latest", то первый старт до готовности отвечать на запросы у вас займет некоторое время. Проверить работу и наличие локальных моделей можно через запрос http://192.168.1.100:11434/api/tags

Friday, 7 February 2025

Git та safe.directory

Привіт привіт.

Після міграції на новий GenAI сервер з портабельними версіями генераторів Forge, ComfyUI та Fooocus ви можете отримати сюрприз при спробі оновленння або встановлення нових функцій будь якого генератора, тобто всього того що використовує Git.

Під час спроби виконати команду git, наприклад клонування, git повертає фатальну помилку, повідомляючи, що ваш репозиторій має сумнівне право власності, і команда git переривається. Текст про помилку може бути різний, але він буде пов'язваний з Working Directory. Як приклад повертається помилка (дивитися в консолі самого генератора), подібна до наведеної нижче: 

fatal: detected dubious ownership in repository at '<path to the repository>'

To add an exception for this directory, call:

git config --global --add safe.directory <path to the repository>

або

fatal: unsafe repository ('<path to the repository>' is owned by someone else)

To add an exception for this directory, call:

git config --global --add safe.directory <path to the repository>


Причина

З git 2.35.2+ було внесено зміни, щоб запобігти користувачеві виконувати команди в репозиторії, що належить іншому користувачеві. Це зроблено для усунення загрози безпеці, CVE-2022-24765 , для отримання додаткової інформації див. setup_git_directory та оголошено про вразливість безпеки Git . Зміни в setup_git_directory запобігають викликам виконання команд у сховищі, що належить іншому користувачеві. 

Авжеж, якщо це нова інсталяція Windows, то і Ви як користувач (тобто SID) вже новий для локальних репозиторіїв Forge, ComfyUI та Fooocus, навіть якшо вони були портабельні.

Wednesday, 15 January 2025

SimpleSDXL алерт.

 


Привіт привіт.

Зважаючи на тещо криптомайнери не сплять їм постійно хочеться використати ІТ-потужності фанів GenAI, бажано по тихому. Ось прилетіла чергова новина, вже про SimpleSDXL.

Відомо що Fooocus форк SimpleSDXL значною мірою залежить від пакета simpleai_base, що належить тому ж автору. Пакет simpleai_base містить скомпільований Rust-код, який включає приховану функцію віддаленого доступу з використанням Rust crate rathole, яка і виконує збір великої кількості системної інформації за допомогою прихованих викликів системних виконуваних файлів та нерозкриту функцію phone-home, яка завантажує цю інформацію на tokentm.net  домен, пов'язаний із блокчейном. Нещодавно simpleai_base було видалено з PyPI після того, як про нього повідомили з тих самих причин, однак поточний код SimpleSDXL замість нього все ще встановлює попередньо скомпільоване wheel, завантажене з Github. Повний текст повідомлення тут.

Тому, наприклад, Stability Matrix терміново оновив свій код і виключив з переліку підтримки SimpleSDXL  на своїй платформі. До того ж сам автор SimpleSDXL в оcтанній версії AIO частину функцій підключив (чи заблокував) через якийсь Identity Manager. Чи то автор проєкту SimpleSDXL поступово переходить на комерційні рейки чи все більше орієнтується на запити китайських користувачів, мені невідомо. Але що є то є, тому користуватися вам далі SimpleSDXL  чи ні, вирішувати вам. Я би радив поставити його на паузу, або поки що відключити автоматичне оновлення SimpleSDXL при запуску.

Stay in touch.

Wednesday, 1 January 2025

Переносим кэш Python.

Всем привет. 

Уверен, что многие из вас, работая с GenAI, рано или поздно сталкивались с нехваткой свободного места на системном диске. 

Часто полагают, что проблема именно в самой генераторе, и что он непомерно "жрёт" дисковое пространство, но это не совсем так, большую часть места "съедает" кэш самого Python и устанавливаемые зависимости, коих для корректной работы любой нейросети используется достаточно большое количество. И в процессе, вы, поиграв с одной нейросетью, и даже удалив её и поставив другую в недоумении смотрите на цифры и не понимаете, куда же сегодня делось еще 10 Гб с диска "С".

Чтобы хоть частично решить эту проблему, мы можем изменить директорию, куда скачиваются устанавливаемые файлы зависимостей и в которой хранится кэш, и сделать это можно несколькими способами.

Лично я рекомендую использовать ВСЕ способы ВМЕСТЕ если вы пользуетесь портабельными версиями ИИ-генераторов. Ибо далеко не каждый генератор портабелен на все 100% и свой кэш может легко забрасывать на ваш системный диск. Особенно этим грешат сборки Spaces.

Способ 1. 

Измените переменную среды ТЕМР в своей ОС. Да, да, это банально, но частенько мы забываем что по умолчанию пользовательская "времянка" в Windows тоже указывает на системный диск.

Чтобы настроить переменные среды, нажмите правой кнопки мыши на Мой Компьютер - Свойства - Дополнительные параметры системы - в окне "Свойства системы" нажмите "Переменные среды". Нажмите на переменную, которую вы хотите изменить, нажмите "Изменить".

Способ 2. 

Задайте, или измените если она существует, переменную среды PIP_CACHE_DIR в своей ОС. После этого все операции установки пакетов с использованием PlP будут использовать указанную директорию для хранения кэша. Шаги те же что и в 1-м способе.

Способ 3. 

Задайте, или измените если она существует, переменную среды XDG_CACHE_HOME в своей ОС. Это наследие Linux с которым теперь приходиться сражаться и в Windows. Переменная XDG_CACHE_HOME является стандартом из XDG Base Directory Specification, который происходит из Linux-среды. Однако многие библиотеки Python, независимо от операционной системы (включая Windows), поддерживают эту переменную среды как способ определения места хранения кэша.

Способ 4. 

Задайте, или измените если он существует, глобальный кэш для PIP. Откройте командную строку прописав в ней команду:

..\python_embeded\python.exe -m pip config list

или

..\python_embeded\python.exe -m pip config get global.download-cache

..\python_embeded\python.exe -m pip config get global.cache-dir

Tuesday, 24 December 2024

Update ComfyUI Pytorch.

Всем привет.

Современный ComfyUI должен работать как минимум на версиях:

  • pytorch version: 2.5.1+cu124
  • xformers version: 0.0.28.post3

Ok, но дело в том что апдейт pytorch-a надо пользователю выполнить самому, потому его шаги будут следующие(автор алгоритма Antinoice).

Сначала удалим действующую версию pytorch:

  1) python.exe -m pip install xformers

  2) python.exe -m pip uninstall torch

Это процесс установки xformers, совместимого с Pytorch 2.5.1, и удаления torch для работы процессора, который устанавливается одновременно.

  3) python.exe -m pip uninstall torchvision

  4) python.exe -m pip uninstall torchaudio

Теперь сама установка:

Перейдем на сайт: https://pytorch.org/ и выберем интересующую нас конфигурацию pytorch как показано на картинке ниже:


Вы сформировали нужную нам команду для установки, копируем её.

Теперь перейдем в папку \python_embeded и в адресной строке папки наберем cmd и жмем Enter - откроется консоль командной строки.

В ней вставляем нашу команду установки pytorch:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

Также можно установить pytorch вручную:

  1) python.exe -m pip install torch --index-url https://download.pytorch.org/whl/cu124

  2) python.exe -m pip install torchvision --index-url https :/ /download.pytorch.org/whl/cu124

  3) python.exe -m pip install torchaudio --index-url https://download.pytorch.org/whl/cu124

Здесь также вы можете установить и библиотеки с onnx, и insightface:

  1) python.exe -m pip install onnx

  2) python -m pip install onnxruntime-gpu --upgrade

  3) python.exe -m pip install onnx insightface

Для завершения и применения настроек просто запустите Comfyui.

Если у вас видеокарта выше RTX3000 серии то рекомендуется использовать перекрестное внимание pytorch cross attention в параметрах запуска. Если видеокарты ниже этого уровня используем xformers.

После обновления pytorch также рекомендуется установить или обновить CuDNN. Здесь официальная инструкция от nvidia:

https://docs.nvidia.com/deeplearning/cudnn/latest/installation/windows.html

Ну вот и все, поздравляю. От себя добавлю - я все команды заношу в отдельный bat-файл, чтобы иметь историю своих ручных операций з ComfyUI.

Удачи.

Friday, 13 December 2024

About Ultralytics crypto miner situation.

Всем привет.

Небольшой шухер в сообществе ComfyUI. В некоторых версиях пакета ultralytics pip был обнаружен майнер криптовалют. Оригинал тревоги здесь.

Кто может пострадать?

Люди, установившие версии v8.3.41 и v8.3.42 пакета ultralytics pip на Mac и Linux. Windows пока не затронута. Анализ взломанного пакета ultralytics показал, что майнер загружается только на Mac и Linux. Скорее всего, это связано с тем, что атака была направлена на серверы, а не на обычных пользователей.

Ultralytics не является основной зависимостью ComfyUI, но он является зависимостью некоторых очень популярных пользовательских узлов, таких как ComfyUI-Impact-Pack. Одна из взломанных версий могла установиться, если вы установили новую версию некоторых узлов, которые от нее зависят. Простое обновление пользовательских узлов обычно не приводит к обновлению зависимостей, поэтому, скорее всего, пострадали только те, кто установил совершенно новую версию в то время, когда взломанные пакеты находились в рабочем состоянии.

Вы можете проверить, затронуты ли вы, обновив менеджер ComfyUI, чтобы проверить наличие этих зависимостей и предупредить себя, или вручную проверив, установлена ли у вас версия 8.3.41 или 8.3.42 с помощью: pip show ultralytics


Чем это плохо?

Скомпрометированный ultralytics загружает двоичный файл (криптомайнер) на Mac и Linux в /tmp/ultralytics_runner и запускает его на выполнение.

Tuesday, 10 December 2024

Від МГУА до нейромереж.

Привіт привіт.

У своїй багаторічній практиці (мій профіль) я мав змогу спостерігати, як змінювалися підходи до побудови математичних моделей. Метод групового урахування аргументів (МГУА або GMDH), використаний мною в університеті для отримання PhD, був спрямований на автоматизацію створення прогнозних моделей на основі обмежених даних. Завдяки своїй структурованості, простоті інтерпретації та здатності будувати моделі високої точності, МГУА став революційним для того часу. І хоча я вже кодив на С++ моделі МГУА вимушений був реалізовувати на  мові FORTRAN. До речі супер-мова для великих розрахунків, чи вам відомий тільки Pascal?)

Зі зростанням обчислювальної потужності та кількості доступних даних з’явилися нові виклики. Відкриття в області глибокого навчання та розвиток нейронних мереж дали поштовх новій епосі аналізу даних. 


Від МГУА до глибокого навчання

МГУА був і залишається потужним інструментом для автоматизованого пошуку моделей. Його ключові особливості, такі як еволюційний підхід до побудови моделі та поступове ускладнення структури, багато в чому передбачили методи сучасного машинного навчання. 

Наприклад:

1. Ітеративне покращення моделі. У МГУА моделі створюються поступово, шляхом збільшення числа змінних чи ступеня поліномів. У нейронних мережах це можна порівняти з поступовим налаштуванням ваг шляхом ітеративного градієнтного спуску.

2. Скорочення перенавчання. В МГУА ми вводили механізм контролю складності, щоб уникнути перенавчання (наприклад, через крос-валідацію). У нейронних мережах подібні завдання вирішуються методами регуляризації (L1, L2, Dropout тощо).

3. Оптимальний вибір змінних. Якщо в МГУА автоматичний відбір змінних базувався на аналізі їх впливу на модель, у нейронних мережах це вирішується за рахунок оптимізації ваг, які фактично визначають "корисність" кожної ознаки.


Проте в сучасному світі, де дані стають усе складнішими й багатовимірними, можливості МГУА виявилися обмеженими. Тут на сцену вийшли нейронні мережі.

Версия на печать

Популярное