TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #241 · 5 мај

Можно ли в Python создавать бинарные файлы? Конечно можно. Для этого в Python есть следующие инструменты: ▫️ тип данных bytes и bytearray ▫️ открытие файла в режиме wb (write binary) или rb (read binary) ▫️ модуль struct Про модуль struct поговорим в первую очередь. Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных. В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла. Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла. Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид. Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки). Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение. При этом следует помнить что мы говорим о типах языка С а не Python. Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще. Вот какие токены формата у нас есть. Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы. В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты. Запакуем в байты простое число, токен "i". >>> import struct >>> struct.pack('=i', 10) b'\n\x00\x00\x00' Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов. >>> struct.pack('=fff', 1.0, 2.5, 4.1) b'\x00\x00\x80?\x00\x00 @33\x83@' Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же. >>> struct.pack('=3f', 1.0, 2.5, 4.1) b'\x00\x00\x80?\x00\x00 @33\x83@' Теперь запакуем разные типы >>> data = struct.pack('=fiQ', 1.0, 4, 100500) я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт) b'\x00\x00\x80?\x04\x00\x00...' Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа. >>> struct.unpack('=fiQ', data) (1.0, 4, 100500) Как видите, ничего страшного! #lib#basic

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #ffbb00

当前筛选 #ffbb00清除筛选

Бесплатный конкурент Nano Banana, который работает локально, и редактирует картинки без ограничений — Flux 2 Klein. Плюсы: ● Генерация картинок и редактирование внутри одной модели! ● В режиме редактирования очень хорошее сохранение деталей исходника. ● Klein 9b Запускается на сравнительно слабом железе. У некоторых даже работает при 8 гб vram + 64 RAM, но медленно. На маках тоже работает! Есть более шустрая и мелкая версия: Klein 4b, она работает вообще на тостерах с GPU, но качество субъективно похуже на 5-10% ● Для своего размера модель очень хорошо понимает запрос, работает с цветами в формате HEX #ffbb00, понимает структурированные JSON запросы, делает хороший реализм и свет. ● Base версии модели можно дообучать. Прямо сейчас сотни людей нагружают сервера, чтобы научить Klien новым трюкам или поправить косяки. Моделька правда очень мощная. По моим ощущениям, дает результат чуть лучше первой нано-бананы. Местами конкурирует с PRO. Главный секрет — в хорошем сжатии модели (distillation) и в запчасти нейронки которая называется VAE. Для линейки FLUX 2 разработчики специально запарились, чтобы изменения при редактировании были минимальными. В моих тестах локальный Klein на высоком разрешении сохраняет мелкий текст даже лучше, чем 2k API запрос в Nano Banana Pro! На видосе на 0:11 Минусы [–]Текстовый запрос на генерацию передается как есть. Нужно быть красноречивым нейтивом. Ну или использовать мой системный промпт для LLM, чтобы она писала детальные тексты для более тонких изменений. Я отправляю картинку, коротко объясняю задачу, и если Klein выдаёт плохой результат — прошу у LLM улучшить промпт. Обычно всё получается с первой или второй попытки. [–] Проблемы с анатомией. Да-да в 2026 году! Возможно из за сжатия, но иногда получаются длиннющие пальцы, или лишние ноги. Лечится перегенерацией заново. Благо моделька быстрая: у меня на ноуте 4 варианта выдает на пару секунд дольше чем одну генерацию Nanobanana Pro в облаке. [–] Хитрожопая «некоммерческая» лицензия. Текст лицензии Klein 9b написан так, что её можно по разному трактовать. Они ясно пишут, что не претендуют на "Outputs" т.е. результаты генерации, и «не ограничивают их использование, даже в коммерческих целях, кроме случаев, явно запрещенных в этой лицензии». В этой оговорке самое хитрое противоречие Дальше в тексте запрещен реверс-инженеринг и хостинг модели как сервиса в коммерческих целях. То есть можно трактовать широко: «не продавайте модель как платный сервис, но используйте локально и можете делать с картинками что хотите» А можно узко: «любое коммерческое использование запрещено, хотя на результаты мы не претендуем». Типа на территорию сада проход запрещен, но яблоки можно есть. Но если сунетесь — засудим. Но на яблоки не претендуем. Я потратил вечер сталкивая лбами две самые умные модели в мире (по состоянию на прошлую неделю), гоняя их по тексту этой лицензии 🙉 ChatGPT 5.2 Pro Extended после 30 минут размышлений пришел к выводу, что если бы он был «сотрудником по правовым вопросам», в крупной студии или компании Fortune 500, то он не рекомендовал бы использовать в коммерческих целях. Ну и вообще, мало ли что — посоветовал использовать более слабую модель Klein 4b, там в лицензии чистый Apache 2.0 без булшита. Gemini 3 Pro в режиме Deep Think сказал, что если дойдет до суда в юрисдикции Делавера, то юристы будут трактовать в вашу пользу из-за механизма Эстоппель 😑 😑 В общем решайте сами для своих сценариев с учетом рисков ↑ Gemini 3 конечно жесочайше лебезит в ответах по сравнению с ЖПТ! «Вы совершенно правы...» 🐱 Тут писал как настроить для жпт. Для Gemini только создавать Gem. Gemini недавно добавили свои инструкции Если начинаете совсем с нуля в ComfyUI, рекомендую вот этот туториал https://youtu.be/HkoRkNLWQzY?list=PL-pohOSaL8P-FhSw1Iwf0pBGzXdtv4DZC&t=428 А конкретно по Klein от этого же автора свежий урок с примерами и воркфлоу. https://youtu.be/kNap0VWP1xs?t=830 В комменты закинул еще сравнений до/после 🎤Ссылки на утро — второй канал ⏲Устойчивый VPN за звезду #ToolReview@cogload#text2image@cogload