Wednesday, 2 October 2024

Как использовать Flux, SD3 и KOLORS в Fooocus.

Всем привет.

Как использoвать Flux, SD3 и KOLORS в Fooocus (по материалам Дзен.ру).

Многие пользователи Fooocus на форумах уже задавались вопросом:  можем ли мы использовать новую модель Flux в нашем любимом интерфейсе? Официальной информации от разработчика на этот счёт пока нет. Но то, что писал mashb1t на своём Github, говорит о том, что по крайней мере пока нам не светит работа с Flux в Fooocus. Его право.

Однако, благодаря неугомонным энтузиастам нашелся выход. Если вы пользуетесь только Fooocus и не хотите(и напрасно!) осваивать другие интерфейсы, такие как Forge, Automatic1111 и SwarmUI, то можно попробовать установить SimpleSDXL2. Это тот же Fooocus только "по китайски" с поддержкой работы моделей Flux, SD3 и KOLORS. Да, пока местами сыровато и непривычно, но Оно работает! И тем кто привык к удобству Fooocus может пригодиться. 

Неужели  mashb1t не смог, а какой-то студент из Шанхая смог, подумаете вы? Вовсе нет. Ответ прост - все что связано с Flux, SD3 и KOLORS  в SimpleSDXL2  реализуется через бекенд ComfyUI. Вот такой вот вышел комбайн с интерфейсом Fooocus-a.

Начнем как обычно с того, откуда и как скачать, и что с этим всем делать. Переходим по ссылке на Hugging Face и скачиваем вот этот файл (SimpleSDXL2_win_dev.exe.7z0912). После загрузки нужно создать папку, где будет лежать ваш SimpleSDXL2. Скачанный файл нужно переименовать, то есть удалить цифры в конце имени файла. В итоге у вас получится имя файла с расширением .exe - SimpleSDXL2_win2.exe. Это обычный zip-архив, который распаковывается автоматически. Для этого нужно просто нажать на него, указать путь для распаковки и немного подождать. После того как вы распакуете архив, перейдите в папку и запустите пакетный файл run_SImpleSDXL.bat.

Подождите, пока загрузятся необходимые зависимости. Если вы уже используете Fooocus, то перед запуском файла рекомендуется скопировать ваш уже настроенный файл конфигурации Fooocus (config.txt) в папку SimpleSDXL. Наличие готового файла конфигурации упростит процесс запуска и избавит вас от скачивания кучи ненужных моделей которыми вы вполне возможно и не воспользуетесь никогда.

Внимание: многие пользователи пишут, что для использования интерфейса необходимо скачать огромное количество дополнительных файлов. Для чего мне не совсем понятно, потому что достаточно скачать и распаковать указанный выше архив, а затем загрузить модели Flux, которые вам нужны для работы. Все! Дополнительно не нужно скачивать 30-40 гигабайт архивов которые внутри содержат только модели. Кстати размер общего файла в репозитории под 50 Гб многих отпугивает от использования SimpleSDXL, что вполне не заслуженно. Но если Flux-модели весят уже по 20 Гб то пора бы и привыкнуть.

После того, как скачаются и пропишутся все зависимости, загрузится уже привычный интерфейс Fooocus но с некоторыми отличиями. Их тут будет поболее чем в форке типа DeFooocus.


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

Чтобы начать работать с Flux, необходимо выбрать preset Flux+ это Flux[schnell] или Fluxdev, режим для [DEV] моделей (верхняя панелька). Автоматически начнет загружаться модель Flux NF4. Поэтому лучше заранее прописать в config.txt путь с расположением вашей модели (если вы ее скачали заранее).

Tuesday, 1 October 2024

Запуск PowerShell из Python.

Всем привет.

Рассмотрим простой метод интеграции Python и PowerShell.

Самое простое выглядит так что если бы мы смогли исполнять CmdLet PowerShell из Python и перехватывать результаты. Так как PowerShell является неким исполняемым процессом, тем самым мы можем применять стандартную библиотеку Python, предоставляющую возможность запуска поцессов. Это делается с применением стандартной библиотеки subprocess. В Python для применения любой стандартной или сторонней библиотеки вам следует импортировать её. В данном случае это просто:

import subprocess 

Это предоставляет доступ к методам и свойствам, содержащимся в данной библиотеке subprocess. Доступно монжество вариантов - наиболее популярным является применение метода check.output, который исполняет предписанный процесс и возвращает полученный результат. Вот некий пример:

runningProcesses = subprocess.check_output("powershell -Executionpolicy ByPass -Command Get-Process") 

Существует также аналог асинхронного варианта вызова подчинённого процесса, вызов метода await asyncio.create_subprocess_shell()), подробнее в книгах Asyncio в Python 3 Цалеба Хаттингха и Полном руководстве параллельного программирования на Python Куан Нгуена:

import asyncio

async def run(cmd):

    proc = await asyncio.create_subprocess_shell(cmd, stdout=asyncio.subprocess.PIPE,      stderr=asyncio.subprocess.PIPE

    )

    stdout, stderr = await proc.communicate()

    print(f'[{cmd!r} exited with {proc.returncode}]')

    if stdout:

        print(f'[stdout]\n{stdout.decode()}')

    if stderr:

        print(f'[stderr]\n{stderr.decode()}')

asyncio.run(run('powershell -Executionpolicy ByPass -Command Get-Process'))

Saturday, 28 September 2024

Про DNS Client Cache.


Всем привет.

Одной из сильнейших сторон PowerShell является наличие возможности получение удалённых действий при возникновении ситуации отклика в процессе происшествия. Предоставляемая самыми последними версиями PowerShell инфраструктура значительно снижает необходимые сетевые настройки и предлагает значительную безопасность.

В какой-то мере в инструкциях по forensics стороной обходится крайне полезный для локальных и удалённых расследований командлет PowerShell - Get-DNSClientCache.

Кэш клиента DNS, или иначе DNS преобразователь (resolver) является локальной базой данных, сопровождаемой самой операционной системой. Он содержит свидетельчтва последних посещений на веб сайты и прочие местоположения в Интернете. Проще говоря, кэш DNS Клиента это просто некая запись последних запросов DNS, которые ускоряют доступ к уже определённым IP- адресам вебсайтов. Имейте в виду, что очистка истории вашего веб браузера для сокрытия вашей активности не включает кэш преобразователя DNS самих oперационных систем. Многие программы очистки будут очищать этот кэш, однако пользователи могут его пропускать, а он может служить важным свидетельством недавней активности. Кто про такое помнит?

Сам DNS (сервис доменных имён), предоставляет некую трансляцию из дружественных пользователю имён, таких как microsoft.com, google.com и python-forensic.org в IP- адреса, по которым они располагаются. Всякий раз когда вы вводите в своём браузере нечто подобное www.amazon.com, осуществляется поиск DNS для трансляции читаемого человеком адреса в некий IP адрес, по которому можно выполнить доступ.

Запуск процесса Get-DNSClientCache после очистки (ipconfig /flushdns) имеющегося кэша приводит к следующим результатам (альтернатива просмотра ipconfig /displaydns):

PS C:\WINDOWS\system32> Get-DnsClientCache | Select-Object -Property Entry 

Пусто! Естественно, CmdLet ничего не возвращает, поскольку DNS кэш пустой.

Tuesday, 24 September 2024

Управление настройками сети с PowerShell, часть 2.


Всем привет.

Продолжим дергать сетевые настройки с помощью Powershell. Начинал я это делать еще здесь. 

А сегодня продолжим работу вместе с другим гуру ИТ-администрирования. Сегодня мы рассмотрим основные командлеты, которые позволяют узнать текущий адрес сетевого адаптера, назначить статический IP адрес, DNS сервера, или настроить сетевой интерфейс на получение конфигурации IP от DHCP сервера. Вы можете использовать эти командлеты для настройки сети как в Windows 10/11, так и в Windows Server (или версии Sever Core), в Hyper-V Server, для изменения настроек IP сетевых адаптеров на удаленных компьютерах, и в PowerShell скриптах.


Содержание:

  • Управление сетевыми адаптерами в Windows из PowerShell
  • Вывести настройки IP сетевого подключения с PowerShell
  • PowerShell: задать статический IP адрес в Windows
  • Set-DnsClientServerAddress: настроить адреса DNS серверов
  • Управление таблицей маршрутизации с помощью PowerShell
  • PowerShell: получить IP адрес в Windows от DHCP сервера
  • Изменить параметры IP и DNS на удаленном компьютере Windows

В предыдущих версиях в Windows для управления сетевыми настройками из cmd использовалась из CLI использовалась команда netsh. В PowerShell 3.0 и выше для управления сетевыми настройками Windows можно использовать встроенный PowerShell модуль NetTCPIP.

Чтобы получить список командлетов в этом модуле, выполните:

get-command -module NetTCPIP

В этот модуль также входит командлет Test-NetConnection, который можно использовать для проверки доступности TCP портов на удаленных компьютерах.


Управление сетевыми адаптерами в Windows из PowerShell

Выведите список доступных сетевых интерфейсов в Windows:

Get-NetAdapter

Командлет возвращает имя интерфейса, состояние (Up/Down), MAC адрес, скорость на порту.


Чтобы вывести только активные физические сетевые интерфейсы:

Get-NetAdapter -Physical | ? {$_.Status -eq "Up"}

Можно вывести только определенные параметры сетевых адаптеров, например: имя, скорость, состояние и MAC адрес:

Get-NetAdapter |Select-Object name,LinkSpeed,InterfaceOperationalStatus,MacAddress


В Windows могут присутствовать скрытые сетевые адаптеры. Чтобы вывести их все, добавьте параметр IncludeHidden:

Get-NetAdapter –IncludeHidden

Команда вернет в том числе все виртуальные WAN Miniport адаптеры, которые используются для различных типов подключений включая VPN. Перезапуск этих адаптеров часто позволяет решить некоторые ошибки VPN подключений с помощью встроенного клиента Windows. Для управления сетевыми подключениями VPN доступны отдельные команды PowerShell.


Вы можете обращаться к сетевым интерфейсам по их именам или индексам (столбец ifIndex). В нашем примере, чтобы выбрать физический LAN адаптер Intel 82574L нужно набрать команду:

Get-NetAdapter -Name Ethernet0

или

Get-NetAdapter -InterfaceIndex 8

Sunday, 22 September 2024

PowerShell и Wi-Fi.

Всем привет.

Обычно все операции по настройке и выводу информации о сигналах Wi-Fi устройств в системе Windows происходят через окна, то есть графический интерфейс. Сегодня же рассмотрим, как можно применить командную строку PowerShell для отображения такой же и другой информации.   И пусть вас не смущает что в большинстве случаев будут использованы вызовы netsh-команд, которые по сути не являются командлетами PowerShell.

По правде говоря материал почти полностью заимствован из журнала "Системный администратор" №11 за 2021-й год у Сергея Болдина. Но подобное я находил и на других ресурсах сети.

Проверка уровня Wi-Fi сигнала 

Определить уровень сигнала сети (SSID) графически легко – посмотреть на иконку с полосками. Выполнив несложные команды в среде PowerShell, можно получить “цифровой” результат. 

Видимость 3-х полосок на иконке Wi-Fi сигнала говорит о хорошем качестве сигнала (уровень 75 до 100%), 2 полоски – качество среднего уровня (между 50 и 75%), 1 – плохой сигнал (ниже 50 %). Здесь не отображаются значения в виде цифр, зато такое точное значение можно получить с помощью команды: 

netsh wlan show interfaces

Если же нужно видеть только значение уровня сигнала, то другую информацию можно не выводить, указав соответствующие параметры:

(netsh wlan show interfaces) -Match '^\s+Signal' -Replace '^\s+Signal\s+:\s+',''

С помощью скрипта PowerShell можно для пользователя выводить всплывающее окно с уведомлением уровня сигнала, например, менее 25%:

$c_level=(netsh wlan show interfaces) -Match '^\s+Signal' -Replace '^\s+Signal\s+:\s+','' | Out-String

If ($c_level.replace('%','') –le 25)

{

Add-Type -AssemblyName System.Windows.Forms

$global:msg = New-Object System.Windows.Forms.NotifyIcon

$path = (Get-Process -id $pid).Path

$msg.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)

$msg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Warning

$msg.BalloonTipText = “Уровень Wi-Fi сигнала менее $c_level,

Рекомендуем вернуться к точке доступа!”

$msg.BalloonTipTitle = "Внимание $Env:USERNAME"

$msg.Visible = $true

$msg.ShowBalloonTip(10000)

}

Замечание: рекомендация пользователю вернуться к точке доступа может прозвучать странно ибо ему не всегда известно где же та АР находится.) Тут на ваше усмотрение.

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

Популярное