Главная

Saturday, 29 July 2023

Притча о Stable Diffusion.

Всем привет.

Сегодня для вас шуточный пост про Stable Diffusion по мотивам поэмы Леонида Филатова "Про Федота-стрельца", изд: Л.Филатов "Любовь к трем апельсинам", 1998.

Для тех кто не знаком, Stable Diffusion - программное обеспечение, создающее изображения по текстовым описаниям (промт), с открытым исходным кодом. Ну а если вы не читали "Про Федота-стрельца" то обязательно прочтите само произведение или еще лучше прослушайте его в авторском исполнении талантливого поэта. Все таки великий был провидец!

А теперь представьте себе ИТ-фирму где есть Project Manager (шеф), DevOps (исполнитель прихотей шефа и не только), Designer (коллега DevOps-а), Task Manager (постановщик задач, который все усложняет). А кого забыл, так тому персонажа на хватило).

Итак, где-то на прошлой неделе...

Project Manager:

Намалюй к утру ковер —

Шитый золотом узор!..

Государственное дело,--

Расшибись, а будь добер!

Чтоб на ем была видна,

Как на карте, вся страна,

Потому как мне в Zoom-е

Нет обзору ни хрена!

Не найдешь, чаво хочу,--

На бонус тебя укорочу,

Передам тебя с рассветом

Прямо в лапы HR-у!


DevOps:

Да какая там еда!

Шеф лютует — прям беда!

Нет на энтого злодея

Ни управы, ни суда!

Намалюй, кричит, ковер,

Шитый золотом узор,

Шириной во всю краину,

В сто лесов и в сто озер!..


Designer:

Не кручинься и не хнычь!

Пусть лютует старый хрыч!

Ну-ко станьте предо мною,

Промт Кузьмич и Скрипт Фомич!

Designer хлопает в ладоши и нажимает "Generate":

Коли поняли приказ — выполняйте сей же час!


Stable Diffusion: Не извольте сумлеваться, чай, оно не в первый раз!


Wednesday, 26 July 2023

Інструменти для створення prompts.


Всім привіт.

Цей пост містить перелік інструментів, що не належать до IDE, але які можуть бути корисними для підказок(prompts) для ChatGPT і не тільки.

Prompt Development, Testing, and Chaining (розробка підказок, тестування та створення ланцюжків)

LangChain

Великі мовні моделі (LLM) стають трансформаційною технологією, що дозволяє розробникам створювати додатки, які раніше були неможливі. Але використання цих LLM ізольовано часто недостатньо для створення дійсно потужного додатку - справжня сила з'являється, коли ви можете об'єднати їх з іншими джерелами обчислень або знань.

Ця бібліотека спрямована на допомогу у розробці таких типів додатків.

PromptAppGPT

PromptAppGPT - це низькокодовий фреймворк для швидкої розробки додатків на основі підказок. PromptAppGPT містить такі функції, як малокодова розробка на основі підказок, генерація тексту GPT, генерація зображень DALLE, онлайн-редактор підказок +компілятор +виконавець, автоматична генерація користувацького інтерфейсу, підтримка розширень плагінів тощо. PromptAppGPT має на меті уможливити розробку природномовних додатків на основі GPT.

PromptAppGPT забезпечує багатозадачний умовний запуск, перевірку результатів і повторні спроби, що дозволяє автоматизувати завдання ручної генерації, які в іншому випадку вимагали б багато кроків. У той же час, користувачам більше не потрібно запам'ятовувати і вводити нудну мантру підказки самостійно, і вони можуть легко виконувати завдання, вводячи лише основну необхідну інформацію для виконання завдання.

PromptAppGPT значно знижує бар'єр для розробки GPT-додатків, дозволяючи будь-кому розробляти AutoGPT-подібні додатки за допомогою декількох рядків низькорівневого коду.

Prompt-generator-for-ChatGPT

Додаток "Генератор підказок для ChatGPT" - це десктопний інструмент, призначений для допомоги користувачам у створенні специфічних підказок для ChatGPT, моделі чат-бота, розробленої OpenAI.

Monday, 24 July 2023

Создаем голосовой помощник c GPT.

Всем привет.

Мы уже пробовали использовать OpenAI для ответов на вопросы и извлечения текста из речи с помощью Whisper. Что, если мы теперь объединим эти и другие компоненты для создания голосового помощника на основе ИИ?  Т.е. в отличие от предыдущего проекта будем ответы GPT не только читать, но и слушать.

Теперь наша цель – использовать базу знаний GPT, чтобы получить ответы на вопросы, которые мы можем задать. Создадим некое подобие голосового помощника Alexa. Но наш интеллектуальный голосовой помощник сможет ответить на более сложные вопросы и предоставить больше полезной информации.

Наш помощник будет работать по такому алгоритму:

• пользователь задает свой вопрос с помощью микрофона. Мы будем использовать Python SpeechRecognition (https://github.com/Uberi/speech_recognition);

• Whisper автоматически преобразует вопрос в текст;

• текст передается в конечные точки GPT;

• API OpenAI возвращает ответ;

• ответ сохраняется в файле mp3 и передается в Google Text to Speech (gTTS) для создания голосового ответа. Помощник проигрывает нам ответ в виде mp3.


Для голосового помощника на понадобяться три функции:

1. Запрос пользователя и запись его голоса - функция def record_audio для записи звука.

2. Расшифровка аудио з записью голоса пользователя - функция def transcribe_forever, которая использует OpenAI Whisper для расшифровки аудио.

3. Голосовой ответ на запрос пользователя - для ответа на запрос пользователя мы будем использовать функцию def reply дл ягенерации голосового ответа от GPT.

Saturday, 22 July 2023

Invalid arithmetic operator в Zabbix.


Всем привет.

SSL (TLS) сертификаты стали важным компонентом современной инфраструктуры, поэтому администратору нужно следить за тем, чтобы они не истекали и вовремя их обновлять. Удобно отслеживать срок действия SSL сертификатов на ваших сайтах с помощью системы мониторинга Zabbix.

В ранних версиях Zabbix для мониторинга SSL сертификатов приходилось использовать консольные скрипты, которые передают значения в Zabbix через UserParameter. В Zabbix Agent 2 появись возможность получения информации о сертификате с помощью встроенного плагина WebCertificate. 

Вот здесь рассмотрены оба способа мониторинга срока действия SSL.

По второму способу скажу сразу что скрипт автора /usr/lib/zabbix/externalscripts/sslcert_expiration.sh однозначно рабочий:

#!/bin/bash

data=`echo | openssl s_client -servername $1 -connect $1:${2:-443} 2>/dev/null | openssl x509 -noout -enddate | sed -e 's#notAfter=##'`

ssldate=`date -d "${data}" '+%s'`

nowdate=`date '+%s'`

diffdate="$((${ssldate}-${nowdate}))"

echo $((${diffdate}/86400))

Кстати им же можно проверять сертификаты и на сереверах в локальной сети предприятия.

Но есть нюас.) В Linux без них никуда. При его тестировании на моем сервере Zabbix выскочил глюк на определении diffdate, что ему не делал скрипт тут падал в ошибку: «syntax error: invalid arithmetic operator (error token is «.

Решил я прибегнуть к помощи ChatGPT, сейчас это модно. Далее приведу варианты его решения которые он мне предлагал вчера вечером. Показываю только то те строки где он предлагал изменить в исходном коде для устранения ошибки:

1)

data=$(echo | openssl s_client -servername "$1" -connect "$1":${2:-443} 2>/dev/null | openssl x509 -noout -enddate | awk -F '=' '{print $2}')

2)

diffdate=$((`date -d "$ssldate" '+%s'`- `date -d "$nowdate" '+%s'`))

3)

# Using Python to calculate the difference in seconds

diffdate=$(python -c "from datetime import datetime; print(int((datetime.strptime('$data', '%b %d %H:%M:%S %Y %Z') - datetime.now()).total_seconds()))")

4)

# Retrieve the SSL certificate end date

data=$(echo | openssl s_client -servername "$1" -connect "$1":${2:-443} 2>/dev/null | openssl x509 -noout -dates | grep 'notAfter' | cut -d '=' -f 2)

5)

# Calculate the difference in seconds using 'bc' command

diffdate=$(echo "$ssldate - $nowdate" | bc)


Проверка решений своим поиском по Google привела к тем же вариантам, так что ChatGPT не соврал. Но увы, ни один из способов к успеху не привел. Видно хорошо был сформатирован код моего Zabbix appliance.

Надеюсь вам повезет больше. Удачи.

Friday, 21 July 2023

Пробуем DALL·E через API.

Всем привет.

Благодаря современным методам глубокого обучения модель GPT может научиться создавать изображения на основе текстового запроса или сущест- вующего изображения.

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

В целом API изображений предоставляет три способа взаимодействия с конечной точкой images:

• создание изображения с нуля на основе текстовой подсказки;

• внесение изменений в существующее изображение на основе текстового запроса;

• создание различных вариантов существующего исходного изображения.

За последние годы в OpenAI обучили нейронную сеть под названием DALL·E, основанную на GPT-3. DALL·E – это уменьшенная версия GPT-3 с 12 млрд параметров вместо 175 млрд. Она специально разработана для создания изображений из текстовых описаний с использованием набора данных пар текст–изображение вместо очень широкого набора данных, который применяли для обучения GPT-3.

Чтобы увидеть модель в действии, вы можете использовать код для предварительного просмотра результатов работы DALL·E. Но фокус в том что даже для пробы в web-интерфейсе DALL·E вам нужно покупать кредиты, минимум на 15 баксов. Однако через API (ключик у вас уже есть?) будет возможность испытать ее бесплатно. Однако и тут в настоящее время ограничение скорости генерации установлено на уровне 10 изображений в минуту. Уверен что вам хватит!

Tuesday, 11 July 2023

AIDA64 з використанням MS Access.

Всім привіт.

AIDA64 Business – це інструмент керування ІТ-активами та віддаленого моніторингу для Windows. За допомогою програми ви можете збирати дуже детальну інвентаризацію обладнання та програмного забезпечення з клієнтських комп’ютерів Windows у мережі вашої компанії та відстежувати зміни як апаратного, так і програмного забезпечення. Він дає змогу віддалено контролювати і керувати своїми комп’ютерами Windows, а також пропонує функції діагностики обладнання та порівняльного аналізу.

Але для цього  AIDA64 потребує попередніх налаштувань.

Ми плануємо зберігати звіти в базі даних, тоді нам потрібно налаштувати базу даних у меню "Параметри". Спочатку ми повинні вибрати Provider, а потім усі інші налаштування залежать від вибраного формату. Ми повинні вибрати тип бази даних, який ми використовуємо в нашій системі! У підпапці «SQL Schema» папки AIDA64 Business ми можемо знайти 8 файлів схеми бази даних (дев’ятий підтримуваний формат, ODBC, не потребує файлу схеми).

Схеми постачальника та бази даних

Макети таблиці бази даних SQL потрібно ініціалізувати за допомогою одного з файлів «DB - *.*», знайдених у папці SQL_Schema:

DB - Access.mdb – файл бази даних для MS Access 2000/XP/2003/2007

DB - Access97.mdb – файл бази даних для MS Access 97

DB - InterBase. sql – Схема для Borland InterBase та Firebird

DB - MySQL.sql – Схема для MySQL

DB - Oracle.sql – Схема для Oracle

DB - PostgreSQL .sql – Схема для PostgreSQL

DB - SQLServer.sql – Схема для MS SQL Server

DB - Sybase.sql – Схема для Sybase

Якщо ви такої папки не маєте, або загубили, то структура DB-Access.mdb виглядає так як на малюнку, і ви можете самостійно її створити. 



Friday, 7 July 2023

Правка состояния MS VMM.

Привет всем.

В последнее время были случаи когда в MS VMM по одному из серверов Hyper V показало что все его ВМ дружно находяться в нерабочем состоянии. Но поскольку жалоб от пользователей сервиса не поступало я понял что проблема скорее в самом отображении состояния  ВМ в VMM.

Итак первое что следовало проверить запущена ли служба "System Center Virtual Machine Manager Agent" на наблюдаемом сервере Hyper V. Если не запущена, то стартуем ее, если запущена то перезапускаем ее.

Однако вчера и это не помогло.

Тогда смотрим следующее - нередко после обновлений и ребута ОС сервера сетевой профиль падает в состояние "Общедоступный" и значок сетевого соединнеия  показывает его как "Неопознанная сеть".  Лечиться такое быстро - следует перестартовать службу "Служба сведений о подключенных сетях", она же "Network Lоcation Awareness".

После следует перестартовать службу "System Center Virtual Machine Manager Agent"  еще разок.

Если служба работает и сеть определяется правильно следует подождать пару минут пока  VMM обновит свою картинку. 

Контроль за состоянием критических служб можно возложить на Zabbix или на MS SCOM.

Удачи.

Tuesday, 4 July 2023

Ключевые запросы для создания изображений #2.


Всем привет.

Как и обещал сегодня вторая часть относительно ключевых запросов для создания изображений. Первая часть находиться здесь.

6. Углы и положения

Можете настроить вид сцены. Например, если вы хотите смотреть на пейзаж сверху вниз:

prompt = "beautiful landscape from above" # красивый пейзаж вид сверху 

или вид на пейзаж от первого лица:

prompt = "beautiful landscape from a first person view" # красивый пейзаж вид от первого лица

или широкоугольный вид пейзажа:

prompt = "beautiful landscape with a wide-angle view" # красивый пейзаж с широкоугольным обзором

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

Extreme close-up,close-up,medium shot,long shot,extreme long shot,high angle,overhead view,aerial view,tilted frame,dutch angle,over-the-shoulder shot,drone view,panning shot,tracking shot,dolly shot,zoom shot,handheld shot,crane shot,low angle,reverse angle,point-of-view shot,split screen,freeze frame,flashback,flash forward,jump cut,fade in,fade out.


7. Типы объективов

Вы можете использовать ключевые слова, описывающие различные типы объективов или приемы работы с камерой. Например, использовать ключевое слово knolling (метод организации пространства путем группировки схожих предметов и их выравнивания параллельно или под углом в 90°) , чтобы получить чистую и организованную сцену:

prompt = "beautiful landscape knolling" # красивый пейзаж ноллинг

или telephoto lens (телеобъектив), чтобы получить увеличенное изображение:

prompt = "beautiful landscape with a telephoto lens" # красивый пейзаж через телеобъектив

или fisheye lens (рыбий глаз), чтобы получить чрезвычайно широкоугольный вид:

prompt = "beautiful landscape with a fisheye lens" # красивый пейзаж через объектив рыбий глаз

или tilt-shift lens (объектив с наклоном и сдвигом оптической оси), чтобы получить уменьшенное изображение:

prompt = "beautiful landscape with a tilt-shift lens" # красивый пейзаж с управлением перспективой

или 360 panorama (панорама 360°), чтобы получить круговой обзор:

prompt = "beautiful landscape with a 360 panorama" # красивый пейзаж с круговым обзором

Вы также можете использовать drone view (вид с дрона), чтобы получить вид с воздуха:

prompt = "beautiful landscape from a drone view" # красивый пейзаж вид с дрона или satellite imagery (спутниковые снимки), чтобы получить вид со спутника:

prompt = "beautiful landscape from satellite imagery" # красивый пейзаж снимок со спутника

Вот другие ключевые слова, которые вы можете попробовать:

high-resolution microscopy,microscopy,macro lens,pinhole lens,knolling,first person view,wide angle lens,lens distortion,ultra-wide angle lens,fisheye lens,telephoto lens,panorama,360 panorama,tilt-shift lens,telescope lens,lens flare.

Если вы знакомы с фотографией и различными настройками фотооборудования, вы также можете их использовать. Вот несколько случайных примеров:

Aperture: f/5.6, Shutter Speed: 1/250s, ISO: 400, Landscape photography, high-quality DSLR

Aperture: f/8, Shutter Speed: 1/60s, ISO: 800, Street photography, low light conditions

Aperture: f/11, Shutter Speed: 1/1000s, ISO: 1600, Sports photography, fast shutter speed

Aperture: f/16, Shutter Speed: 2s, ISO: 100, Night photography, long exposure

Aperture: f/2.8, Shutter Speed: 1/500s, ISO: 1600, Wildlife photography, high sensitivity, high ISO

Aperture: f/4, Shutter Speed: 1/60s, ISO: 100, Portrait photography, shallow depth of field

Aperture: f/5.6, Shutter Speed: 1/60s, ISO: 100, Macro photography, close-up shots

Aperture: f/8, Shutter Speed: 1/15s, ISO: 100, Fine art photography, Kodak Gold 200 14 film color, 35mm

Aperture: f/11, Shutter Speed: 4s, ISO: 200, Architectural photography, slow shutter speed, long exposure.


8. Осветительные приборы

Вы можете использовать ключевые слова, чтобы лучше управлять светом, что является важным аспектом в фотографии и искусстве в целом. Вот несколько примеров:

Warm lighting,Side lighting,High-key lighting,fluorescent lighting,Harsh flash lighting,Low-key lighting,Flat lighting,Even lighting,Ambient lighting,Colorful lighting,Soft light,Hard light,Diffused light,Direct light,Indirect light,Studio lighting,Red and green lighting,Flash photography,Natural lighting,Backlighting,Edge lighting,Cold,Backlit,Glow,Neutral white,High-contrast,Lamp light,Fireworks,2700K light,4800K light,6500K light.


9. Типы пленок и фильтры

Вы также можете указать тип «фотопленки», под которую надо стилизовать изображение. Например, для эффекта cyanotype (цианотипия) можно добавить ключевое слово:

prompt = "beautiful landscape with a cyanotype look" # красивый пейзаж с эффектом цианотипии

Для эффекта «черно-белой фотопленки» вы можете использовать такой запрос:

prompt = "beautiful landscape with a black and white look" # красивый пейзаж с эффектом черно-белой фотопленки

А для эффекта пленки «Kodak tri-X 400TX» вы можете использовать следующий запрос:

prompt = "beautiful landscape with a tri-X 400TX look" # красивый пейзаж с эффектом пленки tri-X 400TX

Попробуйте больше примеров, таких как solarized (соларизованный), sepia (сепия) и monochrome (монохромный).

Kodachrome,Autochrome,Lomography,Polaroid,Instax,Cameraphone,CCTV,Disposable camera,Daguerrotype,Camera obscura,Double exposure,Cyanotype,Black and white,Tri-X 400TX,Infrared photography,Bleach bypass,Contact sheet,Colour splash,Solarised,Anaglyph.

Вы также можете попробовать добавить названия фильтров Instagram:

Instagram Clarendon filter,Instagram Juno filter,Instagram Ludwig filter,Instagram Lark filter,Instagram Gingham filter,Instagram Lo-fi filter,Instagram X-Pro II filter,Instagram Aden filter,Instagram Perpetua filter,Instagram Reyes filter,Instagram Slumber filter.

Творческих вам успехов!

Monday, 3 July 2023

Ключевые запросы для создания изображений #1.

Всем привет.

Разработка запросов для создание изображений (txt2img) – это способ использовать искусственный интеллект для понимания естественного языка. Он работает, превращая задачи в запросы и обучая языковую модель распознавать такие запросы. Языковая модель, которая должна обработать такой запрос, может быть уже предварительно обученной моделью на миллионах изображений и фотографий и нужно лишь научиться делать правильные запросы. В 2022 г. три платформы искусственного интеллекта – DALL·E, Stable Diffusion и Midjourney – стали доступны для всех желающих. Правда через год бесплатный доступ  сохранила лишь Stable Diffusion. Тем не менее эти платформы работают аналогично - они получают текстовые запросы в качестве входных данных и создают изображения, что открыло новую грань в разработке запросов, которая фокусируется на превращении слов в изображения.

Сегодня мы рассмотрим некоторые из них, но я предлагаю вам самостоятельно изучить множество других ресурсов, доступных в интернете и связанных с этой темой, включая бесплатную книгу DALL·E 2 Prompt Book.


1. Подражание художникам

Между этими двумя подсказками есть разница в сгенерированном изображении:

prompt = "beautiful landscape" #красивый пейзаж

prompt = "beautiful landscape by Van Gogh" #красивый пейзаж в стиле Ван Гога

Очевидно, что второе изображение будет больше похоже на картину Ван Гога. Сгенерированное изображение может быть картиной Ван Гога, изображением в мультяшном стиле или абстрактным произведением искусства. Обратите внимание, что вы можете просто использовать ключевые слова, разделенные запятыми:

prompt = "beautiful landscape, Van Gogh" #красивый пейзаж, Ван Гог

Мы можем, например, использовать модернистский стиль живописи Агнес Лоуренс Пелтон.

prompt = "beautiful landscape by Agnes Lawrence Pelton" #красивый пейзаж в стиле Агнес Лоуренс Пелтон

Или в стиле Масаси Кисимото, автора манги Наруто:

prompt = "A teenager by Masashi Kishimoto" #подросток в стиле Масаси Кисимото

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

prompt = "A teenager. Naruto manga style" # Подросток. Стиль манги Наруто

Вот список некоторых популярных художников и фотографов, стилем которых владеет модель:

Mohammed Amin,Dorothea Lange,Yousuf Karsh,Helmut Newton,Diane Arbus,Eric Lafforgue,Annie Leibovitz,Lee Jeffries,Steve McCurry,Dmitry Ageev,Rosie Matheson,Nancy Goldin,David Lachapelle,Peter Lindbergh,Robert Mapplethorpe,David Bailey,Terry Richardson,Martin Schoeller,Julia Margaret Cameron,George Hurrell,Ansel Adams,Dorothea Lange,Edward Weston,Elliott Erwitt,Henri Cartier-Bresson,Robert Capa,W. Eugene Smith,Garry Winogrand,Diane Arbus,Robert Frank,Walker Evans,Robert Mapplethorpe,Pablo Picasso,Vincent Van Gogh,Claude Monet,Edvard Munch,Salvador Dali,Edgar Degas,Paul Cezanne,Rene Magritte,Sonia Delaunay,Zeng Fanzhi,Vitto Ngai,Yoji Shinkawa,J.M.W. Turner,Gerald Brom,Jack Kirby,Pre-Raphaelite,Alphonse Mucha,Caspar David Friedrich,William Blake,William Morris,Albrecht Durer,Raphael Sanzio,Michelangelo Buonarroti,Leonardo Da Vinci,Rene Magritte

В также можете заставить Stable Diffusion смешивать стили двух художников в одном изображении. Если модель окажется незнакома с вашим любимым художником (что сомнительно) или незнакома с вашими работами (что вполне реально), то можно дообучить модель на ваших работах с помощью DreamBoot или LoRA. А после опубликовать новую модель для всеобщего обозрения вашего таланта или стиля.

Saturday, 1 July 2023

EXIF и Stable Diffusion.


Всем привет.

Заметно что дизайнеры, художники, иллюстраторы и даже web-фрики плотно подсели на ИИ в виде генератора картинок из текста (txt2img).  И это, конечно, повысит в интернете уровень графического шума  и количество охочих подзаработать на халяву. Пока те кто платят за такое художество не сообразят что подобное можно легко делать и самим. Ну да ладно, коммерческий аспект свободного применения ИИ оставим на потом.

Сегодня пару слов про использование метаданных в таких картинках которые выходят в результате из под, например,  Stable Diffusion. Итак, насколько нам известно для генерации картинки 1 в 1 как у выбранного популярного автора, надо соблюсти ряд условий, т.е. правильно указать: модель, семплер, количество шагов, CFG и seed. Размер картинки или хотя бы соотношение сторон тоже имеет значение. Но самое главное это промт! Как позитивный так и негативный. И вот все это богатство надо запомнить на будущее. Но где?

Чтобы было удобно не копировать или менять за картинкой еще и файл условий ее генерации (все перечисленное выше) разработчики GUI для Stable Diffusion решили их писать в блок метаданных самой картинки. Да да, в тот самый EXIF.

Но тут случился казус присущий всему бесплатному - каждый решил что он будет писать промт и прочее туда куда он посчитает удобным. Например AUTOMATIC1111 пишет все в секцию EXIF-комментариев.