Использование Pydantic сегодня стало нормой, и это правильно. Но иногда на ревью вижу, что используют его не всегда корректно.
Например, метод BaseModel.model_dump() по умолчанию не преобразует стандартные типы, такие как datetime, UUID или Decimal, в простой сериализуемый для JSON вид. Тогда пишут кастмоный сериализатор для этих типов чтобы функция json.dump() не падала с ошибкой.
import uuid
from datetime import datetime
from decimal import Decimal
from uuid import UUID
from pydantic import BaseModel
class MyModel(BaseModel):
id: UUID
date: datetime
value: Decimal
obj = MyModel(
id=uuid.uuid4(),
date=datetime.now(),
value='1.23'
)
print(obj.model_dump())
# не подходит для json.dump
# {
# 'id': UUID('4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1'),
# 'date': datetime.datetime(2025, 12, 12, 12, 12, 12, 111111),
# 'value': Decimal('1.23')
# }
# добавляем свой кастомный сериализатор
json.dumps(obj.model_dump(), cls=MySerializer)
# {
# 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1',
# 'date': '2025-12-12T12:12:12.111111',
# 'value': '1.23'
# }
В данном случае класс MySerializer обрабатывает datetime, UUID и Decimal. Например так:
class MySerializer(json.JSONEncoder):
def default(self, o):
if isinstance(o, Decimal):
return str(o)
elif isinstance(o, datetime):
return o.isoformat()
elif isinstance(o, UUID):
return str(o)
return super().default(o)
Специально для тех, кто всё еще так делает - в этом нет необходимости!
Pydantic может это сделать сам, просто нужно добавить параметр mode="json".
json.dumps(obj.model_dump(mode="json"))
# {
# 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1',
# 'date': '2012-12-12T12:12:12.111111',
# 'value': '1.23'
# }
#pydantic#libs
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