Регулярно приходится писать и ревьюить код, где используется PySide2-6.
Заметил, что в подавляющем большинстве случаев настройка создаваемых базовых виджетов происходит через методы. Думаю, всем знаком такой способ.
Простой пример с кнопкой:
button = QPushButton("Click Me")
button.setMinimumWidth(300)
button.setFlat(True)
button.setStyleSheet("font-size: 20pt")
button.setToolTip("Super Button")
button.clicked.connect(lambda: print("Button clicked"))
Но есть и альтернативный способ - настройка через свойства. Это просто ключевые аргументы конструктора класса. Хоть они и не указаны в документации как аргументы, но они есть)
Этот код делает тоже самое но с помощью Property
button = QPushButton(
"Click Me",
minimumWidth=300,
flat=True,
styleSheet="font-size: 20pt",
toolTip="Super Button",
clicked=lambda: print("Button clicked"),
)
Где это может быть полезно
▫️ Это выглядит более аккуратно и коротко, уже повод использовать
▫️ Может использоваться в заполнении лейаута, когда нам не нужно никакое другое взаимодействие с виджетом и поэтому сохранять его в переменную не требуется. Например, лейбл или кнопка.
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
layout.addWidget(QLabel("Button >", alignment=Qt.AlignRight))
layout.addWidget(QPushButton("Click Me", clicked=lambda: print("Button clicked")))
widget.show()
Либо так
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
for wd in (
QLabel("Button >", alignment=Qt.AlignRight),
QPushButton("Click Me", clicked=lambda: ...)
):
layout.addWidget(wd)
widget.show()
▫️ Можно хранить настройки в каком-то конфиге или генерировать на лету, после чего передавать как kwargs.
kwargs = {"text": "Hello " * 30, "wordWrap": True}
my_label = QLabel(**kwargs)
Как получить полный список доступных свойств?
Эта функция распечатает в терминал все свойства виджета и их текущие значения
def print_widget_properties(widget):
meta_object = widget.metaObject()
for i in range(meta_object.propertyCount()):
property_ = meta_object.property(i)
property_name = property_.name()
property_value = property_.read(widget)
print(f"{property_name}: {property_value}")
#tricks#qt
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