Monday 27 November 2023

Функціональні клавіши.

Всім привіт.

Корисна фішка в ноутбуках це функціональні клавіши. Звісно вони є на усіх клавіатурах, але в ноутбуках вони працюють особливо, в тому сенсі що потребують попередніх установок в BIOS.

Наприклад, в ноутбуках НР для їх логічного, як на мене, функційонування потрібно "вгадати" установки трьох параметрів:


Тільки в цьому випадку функціональні клавіші виконують свої прямі функції та нормально реагують на головну Fn. Звичайно ви повинні мати відповідний драйвер до самої клавіатури.

Хай щастить.

Saturday 25 November 2023

Зачем нам LoRA LCM?

Всем привет.

Сегодня на слуху у всех AI-дизайнеров использующих Stable Diffusion латентные модели согласованности (LCM) которые позволяют формировать качественные изображения обычно за 2-4 шага против 20-ти обычных, что делает возможным использование диффузионных моделей практически в режиме реального времени.

Информация с официального сайта:

LCM могут быть получены из любой предварительно обученной модели стабильной диффузии (SD) всего за 4 000 шагов обучения (~32 часа работы A100 GPU) для генерации высококачественных изображений с разрешением 768 x 768 за 2~4 шага или даже за один шаг, что значительно ускоряет генерацию текста в изображение. Мы используем LCM для дистиллирования версии SD для Dreamshaper-V7 всего за 4 000 итераций обучения.

Обычно такая задача решается с помощью LoRA LCM, которая существует как для версии SD 1.5 так и для SDXL. 

Практически генерация с LCM LoRA требует следующие значения:

СFG = 1,3..1,5

Sampler = LCM

Scheduler = sgm_uniform

Steps = 4..7

LCM LoRA weight = 0.62

Разумеется вы можете экспериментировать сами. И действительно, LCM LoRA неплохо и быстро отрабатывает в ComfyUI и в Fooocus. А вот в А1111 лагает, может из-за того что в А1111 до сих пор нет семплера LCM. 

В ComfyUI workflow собирается стандартный как для любой другой LoRA, а в  Fooocus достаточно выбрать опцию "Extreme Speed" из секции Advanced. 

Thursday 16 November 2023

Про AnimateDiff.

Всем привет.

Как я говорил ранее, расширение AnimateDiff делает революцию в анимации Stable Diffusion благодаря своему алгоритму который буквально с первого прохода показывает поразительную плавность переходов между кадрами.

Каюсь, сперва я решил что оно не может на выходе дать больше чем просто GIF, однако при более тесном знакомстве оно меня приятно удивило. Что приятно его форки есть и для ComfyUI  и для Automatic1111. Даже в ComfyUI его работа понравилась больше, там весь процесс генерации происходит нагляднее. Разумеется есть некоторе особенности, но в сети так много туториалов на эту тему что буду повторяться.

Допустим вы написали простой описательный промпт и решили дать на откуп Stable Diffusion создание самого движения по кадрам анимации. Тогда модель самого AnimateDiff вы можете выбирать любую из трех возможных: mm-Stabilized_high.pth, mm_sd_v15_v2.ckpt, temporaldiff-v1-animatediff.safetensors. Анимация получится неторопливой. Ну а если вам нужен заметный движ в кадре тогда надо соблюсти ряд условий:

- модель AnimateDiff только mm_sd_v15_v2.ckpt

- motion_scale больше 1.

Если вам нужен контролируемый движ в кадре, тогда лучше нацепить парочку motion_lora из того же AnimateDiff. Что важно во всех случаях - движение объектов будет заметно только при генерации кадров от 32 штук и более и это справедливо и для ComfyUI и для Automatic1111.

Приятно что и ComfyUI и Automatic1111 позволяют сделать в AnimateDiff closed loop. Т.е. закончить анимацию на том же кадре на котором начали. Но помните что чем больше кадров тем легче AnimateDiff это выполнить для вас.

Wednesday 15 November 2023

Microsoft Copilot и Windows11.


Всем привет.

Одной из главных фишек Windows11 есть наличие доступа к AI-сервису Microsoft Copilot без web-браузера Edge. Но для этого необходимо соблюсти ряд условий:

1) убедиться, что Copilot не выключен в Параметрах -> Персонализация -> Панель задач.

2) убедиться, что установлено обновление, которое активирует все возможности ОС Windows11 23Н2 - КВ5327597

3) включить с помощью утилиты ViVeTool, которая включает дополнительные возможности ОС Windows11:

- для включения используем команду: 

vivetool /enable /id:44774629,44850061,44776738,42105254,41655236

- для выключения используем команду: 

vivetool /disable /id:44774629,44850061,44776738,42105254,41655236

Утилита живет тут: 

https://github.com/thebookicsclosed/ViVe/releases/download/v0.3.3/ViVeTool-v0.3.3.zip

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

Ок, если у вас с панелько задач не сложилось можете попробовать создать отдельный ярлык на столе куда вписать такую строку вызова:
microsoft-edge:///?ux=copilot&tcp=1&source=taskbar

И может быть вам повезет. Удачи.

Monday 13 November 2023

Обхід обмеження токенів в ChatGPT.

Всім привіт.

Як обійти обмеження токенів та проблеми зберігання історії чатів користувача в ChatGPT? 

ChatGPT автоматично реєструє кожен ваш запит. Ці записи використовуються для подальшого вдосконалення моделі та, можливо, для навчання майбутніх моделей OpenAI. Користувач не може отримати доступ до всіх цих записів. Однак, як обговорювалося раніше, обмежена кількість чатів (запитань і відповідей) зберігається в робочому списку лівої частини інтерфейсу користувача ChatGPT. Щоб найкращим чином використовувати обмежене доступне простір, ви можете видаляти чати, які вам не потрібні для зберігання, копіювати або експортувати дані для зберігання в іншому місці або попросити ChatGPT узагальнити діалог.

ChatGPT пам'ятає, що ви раніше запитували в тому ж чаті, і оперує цим під час спілкування, але тільки до певного моменту. Зокрема, модель пам'ятає до 3000 слів або 4000 токенів діалогу. Вона не може посилатися на інші діалоги, незалежно від того, чи це були раніше діалоги декілька хвилин чи тижнів тому.

Як вже зазначалося, ChatGPT розбиває ваш запит на токени. Проте токени не обов'язково складаються з цілого слова, оскільки пропуски та інша інформація також можуть міститися в токені. OpenAI радить розробникам розглядати токени як "фрагменти слів". Англійська мова більш лаконічна, ніж багато інших мов, і зазвичай вимагає менше токенів для обробки запитань англійською мовою. Нижче подано кілька способів представлення вимірювання токенів в англійській мові:

  • 1 токен приблизно дорівнює 4 символам.
  • 100 токенів приблизно перетворюються в 75 слів.
  • два речення складають приблизно 30 токенів.
  • типовий абзац становить близько 100 токенів.
  • стаття з 1500 слів коштує приблизно 2048 токенів.

Токени використовуються в розрахунках вартості, а також в обмеженнях вхідних і вихідних даних в ChatGPT. Залежно від моделі штучного інтелекту, весь діалог (чат) від введення до виведення обмежений 4097 токенами. Таким чином, якщо ваш запит дуже довгий, скажімо, 4000 токенів, відповідь, яку ви отримаєте, буде обрізана на 97 токенах, навіть якщо це середина речення.

Sunday 12 November 2023

Расширения для face swap в Automatic1111.

Всем привет.

Для выполнения операции по замене лиц (face swap) в Automatic1111 популярными плагинами на сегодня являются три:

  1. ROOP
  2. FaceSwapLab
  3. ReActor.

ROOP был пионером, но автор его развитие забросил, FaceSwapLab очень функционален, а ReActor молод, развивается и весьма прост в общении.

А теперь про детали. 

Говорить что кто-то из них лучше или хуже можно только в плане интерфейса для пользователя ибо для обнаружения лиц они все используют одну и ту же библиотеку inswapper_128.onnx.

Сегодня на слуху у всех ReActor. Ну что ж, ReActor устанавливается аналогично Roop и FaceSwapLab:

git clone https://github.com/Gourieff/sd-webui-reactor

или штатно из Automatic1111. После настоятельно рекомендую перегрузить сервер Automatic1111, а не просто его GUI.

При первой загрузке ReActor может написать нам что-то врoде "RELOAD SERVER...", но тем менее будет загружаться дальше и даже откроет GUI Automatic1111. Сами понимаете что нормально работать ReActor после этого точно не будет. Хотя автор ReActor-а и утверждает что ReActor все ему необходимое доинсталлирует сам, на практике этого не происходит.

Дело в том что если мы ранее использовали что-то на тему faceswap в Automatic1111 (а мы активно пользуемся расширениями RООР и FaceSwapLab), то ReActor требует onnxruntime библиотеку версии 1.14.0 и выше. Вполне вероятно что наша версия ниже.

Поэтому активируем venv и деинсталлируем ее:

..\python\python.exe -m pip uninstall -y onnxruntime onnxruntime-gpu

После опять запускаем Automatic1111 в процессе которого ReActor (или FaceSwapLab) доинсталлирует более свежую версию onnxruntime.

Saturday 11 November 2023

Мышление цепочками.


Всем привет.

Автор книги "ChatGPT for Dummies" Пэм Бейкер призывает нас при общении с ChatGPT мыслить  цепочками. Тогда у нас есть шанс получить в ответ именно то что мы ищем и провести наше время с ChatGPT более эффективно. Что же она имеет ввиду?

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

 Чтобы повысить эффективность работы с ChatGPT, пишите запросы как часть потока, а не как отдельные запросы. Таким образом, вы будете создавать запросы, нацеленные на искомые результаты, надстраивая один результат на другом, чтобы достичь зарфанее определенного результата. Другими словами, вам не нужно вкладывать все в один запрос. Вы можете написать серию запросов, чтобы более точно управлять «мыслительными процессами» ChatGPT. Базовые запросы приводят к ответам, которые могут быть слишком общими или расплывчатыми. Когда вы думаете цепочками, вы не стремитесь создать серию базовых запросов; вы хотите разбить то, что вы ищете, на блоки запросов, которые направляют ответы ChatGPT в том направлении, в котором вы хотите, чтобы шел диалог. По сути, вы используете сериализованные запросы для управления содержанием и направлением ответа ChatGPT. 

Это срабатывает каждый раз? Нет, конечно нет. ChatGPT может выбрать совершенно другой ответ, чем ожидалось, повторить предыдущий ответ или просто галлюцинировать. Но сериализованные запросы срабатывают достаточно часто, чтобы вы могли поддерживать целенаправленность диалога и ответы, направленные к цели, которую вы ищете. Вы можете использовать этот метод для формирования единого запроса, представляя себе, как кто-то просит разъяснить вашу мысль или вопрос. Напишите запрос так, чтобы он включал эту информацию, и модель ИИ получит больше контекста, необходимого для предоставления разумного и точного ответа. 

ChatGPT не будет запрашивать разъяснения по вашему запросу, вместо этого он будет догадываться о его смысле. Как правило, вы получите более качественные ответы, уточнив смысл в самом запросе в самом начале. 

Thursday 2 November 2023

SD модели в одном месте.


Всем привет.

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

Что же для этого можно предпринять? Из тех GUI что есть у меня А1111, ComfyUI, Fooocus и MRE только Automatic1111 не имеет настроек на внешнее расположение файлов моделей (или я плохо искал). Для трех других такие настройки правятся весьма просто. У себя я сделал так что модели для версии 1.5 хранятся в папке Automatic1111, а модели версии SDXL в папке Fooocus. 

Поэтому, например ComfyUI смотрит и туда и туда, файл extra_model_paths.yaml:

a111:

    base_path: D:/SDPortable/

    checkpoints: |

               models/Stable-diffusion

               D:\Fooocus\Fooocus\models\checkpoints

    configs: models/Stable-diffusion

    vae: models/VAE

    loras: |

         models/Lora

         models/LyCORIS

         D:\Fooocus\Fooocus\models\loras

    upscale_models: |

                  models/ESRGAN

                  models/RealESRGAN

                  models/SwinIR

    embeddings: embeddings

    hypernetworks: models/hypernetworks

    controlnet: |

              models/ControlNet

              D:\Fooocus\Fooocus\models\controlnet

Wednesday 1 November 2023

Патчим CuDNN для A1111.

Всем привет.

Тем кто имеет видеокарту Nvidia RTX 30-40 серий и ещё что-то с архитектурой Ada Lovelace например, предлагается относительно быстрый и безболезненный способ пересесть на cudnn 12.1 чтоб всё летало быстро и красиво с А1111.

ВНИМАНИЕ - я копирую здесь рецепт от специалиста, который лично не проверял, так как пока не на чем. Так что вся операция на ваш страх, риск и везение!

Итак:

1. Берем приложенный батник (код ниже), кидаем рядом с тем, с которого обычно запускаем Automatic1111 и запускаем его. Ждём пока оно там отработает и возможно откроет webui. Закрываем webui:

@echo off

set PYTHON=

set GIT=

set VENV_DIR=

set TORCH_COMMAND=pip install --pre torch==2.2.0.dev20231002 torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121

set COMMANDLINE_ARGS=--reinstall-torch

call webui.bat

2. Берем самый свежий CuDNN-установщик zip-архивом, например отсюда:

https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.5/local_installers/12.x/cudnn-windows-x86_64-8.9.5.29_cuda12-archive.zip/

3. Из архива копируем все файлы из папки bin в  *\StableDif\venv\Lib\site-packages\torch\lib с заменой.

4. Берем наш стандартный батник webui.bat, удаляем все COMMANDLINE_ARGS и заменяем на строки

set CUDA_MODULE_LOADING=LAZY

set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.9,max_split_size_mb:512

set COMMANDLINE_ARGS=--update-check --autolaunch --theme=dark --opt-channelslast --opt-sdp-attention --upcast-sampling

5. Запускаем А1111. 

Как утверждает автор рецепта теперь у вас даже ноутбук сумеет отработать 15it/s в тихом режиме.

Удачи.

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

Популярное