В C# есть модификатор доступа internal, который закрывает свойство или метод для всего, кроме текущей сборки (сборка это по сути группа пространств имён). И это чертовски удобно для построения правильной архитектуры по DDD — ты делаешь домен отдельной сборкой без внешних зависимостей, у сущностей закрываешь сеттеры и другие поля модификатором internal, а бизнес-правила с открытыми методами уже пишешь в агрегатах, которые содержат эти сущности. Агрегаты объявлены в той же сборке, так что они могут с сущностями делать что угодно, но слой приложения уже сможет вызвать только метод агрегата.
Пример. Есть бизнес-процесс, который включает в себя две сущности: письмо и прикреплённый к нему документ. У каждой из этих сущностей разные жизненные циклы, но письмо можно отправить только в том случае, если статус документа "Согласован". Мы делаем агрегат "письмо с документом" и там public-метод отправки письма сначала проверяет статус документа, а потом вызывает internal-метод отправки в сущности письма. Снаружи (вне домена) вызвать сразу отправку письма невозможно.
Но как эту задачу решают разработчики на других языках? Я совершенно не понимаю, как сделать хорошую архитектуру без internal. Окей, в некоторых языках вообще нет вменяемого ОПП и системы типов, но и к таким ребятам я бы не подходил с вопросами об энтерпрайз-архитектуре. Однако, многие серьёзные проекты пишутся на Java или, скажем, Go, что делают разработчики там? Может, кто-нибудь знает, и расскажет мне в комментариях?
#dev
Rerender a video теперь можно запустить в колабе. Работает пока не очень, можно ожидать что в официальном релизе будет лучше.
Много красивых примеров на официальной страничке
colab
@тоже_моушн
#text2video#video2video
Wan стал условно бесплатным
Китайская модель для генерации картинок и видео Wan.Video стала условно бесплатной.
Теперь сама генерация бесплатна, а кредиты (которые, как и раньше, дают немного бесплатно) тратятся на приоритезацию в очереди. Т.е. плата только за время выдачи результата.
Соответственно, если можете подождать, то бесплатно).
Качество генерации вполне на высоте, как картинки, так и видео.
Можно подкладывать свой аватар (лицо), на примере:
Educational Content with a Cozy Cafe Ambiance: A young man, dressed in a stylish dark polo shirt, stands against a warm, wooden cafe backdrop. His short, neatly-groomed hair frames his face as he passionately discusses recent advancements in neural networks. Holding a smoking ceramic cup of cappuccino, his eyes meet the camera with engaging confidence. The ambient lighting from table lamps softly illuminates his features, enhancing the intimate educational atmosphere. In the background, cozy cafe tables and a hint of bustling activity create a lively yet focused setting. The camera smoothly moves in for a mid-shot, capturing the essence of trustworthy knowledge-sharing.
А главное, доступен в России без VPN, общаться можно на русском.
Из минусов:
1. Время ожидания в очереди не указывает, невозможно понять, секунды остались до выдачи или часы. Это прям огромный минус, надеюсь скоро исправят.
2. Текст на картинке пытается выдать на китайском. Тут просто это надо знать, тем более не многие модели вообще могут нормально текст на картинке сделать, и особенно на русском.
https://t.me/semasci
#wan#text2image#text2video#image2video
#python#deep_learning#diffusion#flax#flux#hacktoberfest#image_generation#image2image#image2video#jax#latent_diffusion_models#pytorch#score_based_generative_modeling#stable_diffusion#stable_diffusion_diffusers#text2image#text2video#video2video
The Hugging Face Diffusers library is a powerful and easy-to-use tool for generating images, audio, and 3D molecular structures using advanced diffusion models. It offers ready-to-use pretrained models and flexible components like pipelines, schedulers, and model building blocks, allowing you to quickly create or customize your own diffusion-based projects. Installation is simple via pip or conda, and you can generate high-quality outputs with just a few lines of code. This library benefits you by making cutting-edge AI generation accessible, customizable, and efficient, whether you want to run models or train your own[1][2][5].
https://github.com/huggingface/diffusers