Что делать если нужно поставить какую-то Python-библиотеку а root-прав нет? То есть в систему библиотеку никак и ничего не поставить.
Есть как минимум два способа это решить правильно!
🔸 Сделать виртуальное окружение и ставить там что угодно.
Это позволит создать полностью независимое исполняемое окружение для ваших приложений.
Все библиотеки будут храниться в домашней директории юзера а значит доступ на запись имеется.
Создать очень просто:
python3 -m venv ~/venvs/myenvname
Теперь активируем окружение
# Linux
source ~/venvs/myenvname/bin/activate
# Windows
%userprofile%\venvs\myenvname\Scripts\activate.bat
Можно ставить любые библиотеки и запускать приложение.
Это стандартный метод работы с любым проектом. Если еще не используете его, то пора начинать. Даже при наличии root доступа!
🔸 Бывает, что нет возможности запустить приложение из своего виртуального окружения. Например, его запускает какой-то сервис от вашего юзера и вставить активацию окружения вы не можете.
В этом случае можно установить библиотеки для Python не глобально в систему, а только для юзера.
Выполните этот код в консоли:
python3 -m site
Вы получите что-то такое:
sys.path = [
'/home/user',
'/usr/lib/python37.zip',
'/usr/lib/python3.7',
'/usr/lib/python3.7/lib-dynload',
'/home/user/.local/lib/python3.7/site-packages',
...
]
USER_BASE: '/home/user/.local'
USER_SITE: '/home/user/.local/lib/python3.7/site-packages'
ENABLE_USER_SITE: True
Нас интересует параметр USER_SITE. Это путь к пользовательским библиотекам, которые доступны по умолчанию, если они есть.
Именно сюда будут устанавливаться модули если добавить флаг --user при установке чего-либо через pip
pip install --user requests
Для этой команды не нужны root-права.
После неё можно запускать системный интерпретатор без виртуальных окружений и установленная библиотека будет доступна для текущего юзера.
Параметр USER_BASE показывает корневую директорию для хранения user-библиотек. Её можно изменить с помощью переменной окружения PYTHONUSERBASE
export PYTHONUSERBASE=~/pylibs
python3 -m site
...
USER_BASE: '/home/user/pylibs'
USER_SITE: '/home/user/pylibs/lib/python3.7/site-packages'
Получается некоторое подобие виртуального окружения для бедных 😁 которое можно менять через эту переменную (не делайте так!Лучше venv!)
🔸 Дописывание пути в PYTHONPATH
Этот способ не входит в список "двух правильных", но тоже рабочий. Здесь придётся сделать всё несколько сложней.
Сначала ставим библиотеку в любое место указывая путь установки
pip3 install -t ~/mylibs modulename
Библиотека установится без привязки к какому-либо интерпретатору. То есть по умолчанию не будет видна. Теперь в нужный момент добавляем этот путь в sys.path или в PYTHONPATH.
Не буду советовать так делать. Единственный раз когда этот способ мне пригодился и решил поставленную задачу, это при создании общей библиотеки для кластера компьютеров.
Модули лежат в сети и подгружаются для всех из одного и того же места. То есть обновлять файлы требуется только один раз а не на всех хосты отдельно.
Минусы такого подхода:
▫️Нужно всем хостам пробить нужный путь в .bashrc или ещё куда-то чтобы он сетапился на старте.
▫️Чем больше хостов тем больше нагрузка на сеть. Иногда такой способ не подходит именно по этой причине. Тогда Ansible вам в помощь.
▫️Не очень подходит если хосты с разными операционками. Некоторые библиотеки различаются для Linux и Windows (там, где есть бинарники) и приходится мудрить более сложные схемы.
#tricks#basic
Midjourney + SD Video
Делимся подробным пайплайном, который позволит вам создать красивую анимацию в три несложных шага 🪄
🟣 Заполните этот базовый промпт описанием любого персонажа
Photo of [character description with one element in color], shot with an analog camera, motion blur, grainy, low resolution, high contrast, soft light, black & white film photography, in the style of Hasselblad H6D400C MultiShot
🟣Сгенерируйте картинку: лучше всего этот промпт работает с Midjourney
🟣Анимируйте с помощью SD Video наилучший результат при работе с этим промптом вы получите при выборе Motion bucket ID ~70
🙊В комментариях прикрепили скриншоты всех шагов и настроек, чтобы вы могли с точностью повторить этот пайплайн!
#pipeline
Переносим стиль на любую картинку за 5 простых шагов 🪄
1️⃣ Загружаем на воркспейс изображение, которое хотим изменить
2️⃣ Добавляем второе изображение как референс стиля
3️⃣ Подключаем наше исходное изображение как Start Image к ноде IP-Adapter XL, а референс стиля – к Style (IP Image)
4️⃣Включаем в настройках ControlNet и выбираем режим Canny или Depth
5️⃣Запускаем ноду и получаем магию за 2 минуты
Попробуйте поэкспериментировать и повыбирать разные Models, подобавлять в промпт релевантные слова, чтобы получить наилучшее воплощение вашей идеи✨
Больше примеров и пайплайн – в нашем темплейте Transfer Style
P.S. также сегодня напоминаем о докладе в 16 по мск
#pipeline
Deepfake генерирующие 1340$ / час
Пример как в Китае Generative AI и виртуальные инфлюенсеры уже сегодня генерируют колоссальную выручку
1. Съемка видео человека
2. Обучение модели на изображениях другого
3. Deepfake на видео для преобразования
4. Написание продающих скриптов за счет GPT-моделей
5. LipSync
6. HeyGen
Профит
#pipeline
Прототип внутриигрового значка с помощью AI
Представьте, что вы делаете игру про зоопарк, в которой хотите сделать достижение с иконкой или медалькой тигра. Вам нужно сделать этот ассет без привязки к определенной стилистике, нужна детализация и несколько вариантов этой медальки по уровням (например, золотой, серебряный, бронзовый). Создавайте его вместе с ИИ!
1. Создайте прототип в SD XL (в нашем примере, a badge of a zoo)
2. Подключите получившееся изображение к ControlNet XL, скопируйте ваш промпт и перед ним поставьте gold, silver или bronze
Ваши вариации готовы :) Вы всегда можете их дальше доработать в нашем продукте, убрать фон или улучшить качество детализации
#pipeline
Пайплайн создания простой анимации смены дня и ночи: SD + Day2Night + Morph
В примере на основе SD было сгенерировано изображение, с помощью Day2Night сгенерированы предрассветные/ночные состояния и с помощью Morph сделана простая анимация
Ждем вашу красоту в P+)
#pipeline
3D Crowd Generation
Для создания толпы в 3D можно использовать уже сегодня AI, и конкретно все из этого кейса для подготовки ассетов в Blender можно сделать в Phygital+
В ролях
- SD
- ControlNet
- ICON (или более старый PiFu HD)
- Blender
#pipeline
http://pybit.es/codechallenge11.html
Inspired by David Beazley's #Generator Tricks for Systems Programmers we ask you to turn the following unix #pipeline into Python code using generators. To get a bunch of .py files you can use our challenges repo you cloned. Or use a project of your own.
Note that in our experience one subprocess is not necessarily one generator, for example 'sort|uniq|sort' can be easily combined into one, as well as 'grep|sed'. See our template if you need guidance.
🌿LoRA: обучение на персоне с Phygital+
Продолжаем делиться советами по обучению LoRA.
🔹Обучение на лице
Для качественного результата нужно 15-30 фото с крупным планом лица (1/3-1/2 кадра). Будут получаться аватары и портреты.
Требования:
- Высокое разрешение: минимум 1024px по малой стороне.
- Хорошее освещение, без резких теней.
- Разнообразные эмоции (без перебора и гримас), углы съёмки и фоны.
- Избегайте селфи, широкоугольных объективов, фотофильтров и яркого макияжа.
- Лицо должно быть чётко видно, без посторонних объектов в кадре; если вы в очках – то нужно быть в одинаковых очках на всех кадрах.
- Разный угол камеры (но без сложных ракурсов).
🔹Обучение на лице и фигуре
Здесь нужен датасет как для обучения только на лице, но с добавлением 10-20 фото в средний и полный рост.
Требования:
- Фото в полный рост и по пояс.
- Разные позы и одежда, но без логотипов и текста.
- Разнообразные фоны, но без текста.
- Без лишних людей в кадре.
❤️Попробуйте сами этот пайплайн и делитесь в комментах, что у вас вышло :)
#pipeline#tips
📈LoRA: обучение на стиле в Phygital+: основные шаги
1️⃣ Поиск стиля: Для эффективной генерации стиля используйте GPT для анализа и поиска уникальных художников и направлений. Это обеспечит высокую вариативность данных.
2️⃣ Сбор датасета: Важно собрать объемный и качественный датасет с изображениями не менее 1024px по малой стороне. Репрезентативные данные — ключ к успешной модели.
3️⃣ Обучение: Используйте LoRA Train с параметрами Default или RealVis для оптимального обучения модели на вашем наборе данных.
4️⃣ Генерация: После обучения можно использовать текстовые промпты для генерации изображений или интегрировать модель через ControlNet и IP Adapter (Face ID) для кастомных задач.
📄 Попробуйте сами обучить модель по этому пайплайну и делитесь вашими результатами в комментариях.
Подробнее про обучение LoRA на стилях в записи вебинара.
#pipeline#tips
Бесшовные AI текстуры
Собрали для вас 3 юзкейса по созданию текстур в одной статье:
• Создание простых текстур для наложения в 3D
• Создание текстур в уникальной стилистике игры
• Создание новых текстур по UV-развертке
Читайте нашу статью с подробными пайплайнами на русском и на английском➡️
#pipeline#tips
Outpainting для SD генераций в один клик в Phygital+
Наведите на любую генерацию в SD 1.5 и нажмите Zoom out, чтобы получить продолжение вашего концепта. Не забудьте заапскейлить ваш финальный результат и повысить детализацию
#tips#pipeline
Внутриигровые объекты с ИИ
Хотите сделать прототип объекта в нескольких вариантах? Например, для вашей RPG игры нужно отрисовать 4 разных вида зелий — для восстановления здоровья, маны, лечения отравления и лечения болезней? Измените цвет жидкости внутри бутылочек через простую связку SD + ControlNet
Ели вам привычнее работать с SD 1.5, то сгенерируйте ассет в SD 1.5 ноде (рекомендуем стиль Assets 3D, и добавьте в промпт "game asset 3d, octane render"), наведите на вашу генерацию в ноде и нажмите Recolor :)
А для более высокого качества рекомендуем использовать SD XL, подробные настройки в комментариях 👀
Готовые изображения можно использовать в UI в инвентаре предметов, например, или как референс для создания 3D моделей
#tips#pipeline