Алгоритмическое искусство в большом формате: создание через сплайны и CMYK | 2026-05-24T22:40:31

Играюсь с алгоритмической обработкой изображений. Картинки интересно выглядят только будучи распечатанными на большом формате — потому что все эти тонкие линии при масштабировании на экран телефона сливаются. Приложу в комменты приближение.

Работает так: на вход дается изображение, оно разбивается на квадраты разных размеров. Каждый квадрат — одно число: насколько он тёмный. Чем темнее — тем больше линий рисуется внутри. Линии не прямые — это сплайны Безье. Они плавно перетекают из одного квадрата в соседний, потому что точки на границах — общие. Получается не сетка, а единая непрерывная нить. Цвет — изображение раскладывается на каналы CMYK (как в типографии). Каждый канал обрабатывается отдельно: своя сетка, свои линии. Потом слои накладываются друг на друга — и из трёх или четырёх чёрно-белых пластин появляется цветная картинка.

Изображение не выглядит блочным из-за того, что сплайны из квадратов плавно перетекают друг в друга, но есть проблема: разбиение картинки на квадраты 10×10 по сути понижает разрешение в 10 раз. Для коррекции производится несколько проходов с разными размерами квадратов и сдвинутыми

сетками. Первый проход — крупные клетки, второй — мельче и сдвинуты на 10 пикселей вправо, третий — ещё мельче и сдвинуты по диагонали.

Весь процесс управляется JSON-конфигом — для каждого канала свои параметры, для каждого прохода внутри канала свои. На выходе — SVG, который можно масштабировать до размера стены без потери качества, и PNG, в котором CMYK слои накладываются с полупрозрачностью.

Автоматизация кросс-постинга: боремся с трудностями API Facebook | 2026-05-23T14:28:22

Доделал в лучшем виде кросс-постинг из фейсбука на два моих сайта-блога [на которые почти никто не заходит] — beinginamerica точка com и raufaliev точка com. При публикации нового поста в фейсбуке по расписанию стартует механизм перевода поста на английский, разбор приложенных картинок, генерация описаний к ним, создание заголовка на основе текста поста и описания картинок, создание тегов на их же основе, запись поста в turso db — это облачная база, бесплатная до определенных лимитов, создание эмбеддингов через openai, запись в qdrant cloud — это тоже облачная база, но уже векторная, ну и загрузка изображений в wordpress по API, и публикация поста на английском и на русском по API.

Все бы хорошо, но из всех API самый дурацкий — у фейсбука. Во-первых, для страниц как у меня, переведенных в New Experience, нет возможности использовать почти все из этого API. Точнее, есть, но нужно долго доказывать фейсбуку, что это реально надо, показывая документы на стартап, демонстрируя приложение и т.д. Очевидно, им не хочется иметь дело с чем-то уносящим контент из их системы во вне. Кроме этого, токен, который дает доступ к последним сообщениям, относительно короткоживущий (возможно, несколько недель), и получать его заново нужно через браузер только. То есть, любая автоматика требует регулярного внимания, иначе она ломается.

Если протупил и вовремя не выгрузил последние посты через этот Facebook Graph API, они просто исчезают из списка последних и все, больше по API к ним не обратиться. Единственный способ — запросить выгрузку архива у фейсбука. Эта выгрузка тоже довольно дурацкая — там нужно много трансформаций делать и убирать лишнее. Например, в файле с постами, который я обрабатываю, там почему-то хранятся ссылки, которые я отправлял в комментариях без сопроводительного текста. А комментарии там идут в отдельном файле!

Чтобы назначить теги, пришлось решить отдельный челендж. Вот есть около 10000 постов за все время. Это большой кусок, и по нему теги построить нельзя, потому что он в контекстное окно LLM не помещается. А надо. Поэтому я делал так: скрипт берет случайные посты из 10000 в таком объеме, чтобы их суммарный размер был чуть меньше указанного лимита в токенах, и в конец этого блока добавляется промпт «сгенери мне наиболее частые теги, 30 штук» (промпт привожу упрощенно). В итоге я запустил это 10 раз и получил 10 наборов тегов по 30 штук, сгенерированных для разных срезов базы. Получилось 300 тегов, из которых конечно есть полные дубликаты, а есть синонимы и близкие по смыслу. Это все скармливается LLM, и получаем список тегов и иерархию тегов. Теперь у нас есть ограниченный набор тегов, которые максимально отражают 10000 постов. Так получилось, что за почти 20 лет на фейсбуке у меня расклад такой:

Тег Постов

==================================================

#Russia 3412

#Thoughts 3146

#Tech 3105

#Culture 2765

#Hobbies 2726

#AI 1603

#Science 1367

#Software 1358

#Travel 1298

#Learning 1138

#Society 1050

#Nature 958

#Education 915

#Business 902

#Art 894

#Programming 889

#Humor 840

#History 807

#Gadgets 750

#Moscow 713

#USA 614

#Cinema 567

#Webdev 493

#Music 476

#Sports 473

#Mindset 443

#Auto 400

#Books 386

…

ну и так далее. Этот список включает как теги из ограниченного списка, так и теги, которые LLM поставила материалу просто потому, что не нашла в ограниченном ничего подходящего.

Теги из ограниченного списка стали категориями на сайте. Остальные теги + эти стали просто тегами wordpress.

Поиск по картинкам. У меня было две идеи как его сделать. Первая — OpenCLIP. Это довольно просто, но требует хостинга модели где-нибудь. На своей машине легко, но каждый раз ее запускать неудобно, плюс я планировал переносить мигратор на дешевый сервер в амазон. В облачных моделях тоже нормально считать, но хоть немного за это надо платить, а это еще одна dependency. Но главное — что и без этого неплохо работает. Я с помощью OpenAI , который и так используется для перевода на английский, генерю описания к картинкам, и дальше по этим описаниям делаю embeddings с помощью large модели. Пока что все тесты на поиск проходят на ура. Особенно, когда на картинке есть текст, и большой вопрос разобрал бы ли его OpenCLIP.

В итоге:

1) вордпресс raufaliev точка com — бесплатный

2) вордпресс beinginamerica точка com — бесплатный

3) turso db где хранятся все посты — бесплатный

4) qdrant cloud где хранятся эмбеддинги — бесплатный

5) openai для перевода и описания картинок — не бесплатный, но недорогой (обработка постов за год потребовала 30 баксов).

Прикладываю два скриншота — как работает поиск по изображениям, и по текстам, а также дашборд мигратора.

Странности в окне: когда бездна засматривается в ответ | 2026-05-01T12:56:16

Нарисовалось. Изначально Юка ждал в окне дерево. Как там у Ницше, «Если ты долго смотришь в бездну, то бездна начинает смотреть на тебя»

Ирония дизайна: двойные стандарты в символике туалетов | 2026-03-29T20:17:23

Продублировано для тех, кто не понимает в искусстве

Надежда Шульга | 2026-03-12T18:55:57

За последнюю неделю Nadezhda Shulga нарисовала в первый раз в жизни картину маслом и в первый раз в жизни села играть на пианино одной рукой Умку! Надя, ты молодец!!! Она столько раз меня просила рисовать природу, что в итоге взяла и нарисовала сама

Илья Репин | 2026-03-01T23:59:08

Оказывается в первой версии картины «Не ждали» главной героиней была женщина, народоволка-революционерка! Это малая версия, потом Репин написал большую и уже с мужчиной — ту которую все знают.

А первая версия хранится в Третьяковке но ее не выставляют.

Ну как все знают. Вообще русских и украинских художников вне своих стран почти не знают. Вроде одна картина Репина есть в metropolitan NY и несколько в Орсе, но это почти ничего, и я не удивлюсь, что все в запасниках.

Тут знают Рублева, знают русский авангард (Малевич, Кандинский, Шагал), го никто (кроме профессионалов) не знает Шишкина, Левитана, Васнецова, Сурикова, Саврасова. При том, что довольно многие учились в Европе, работали оттуда. Того же Иванова с его Христом народу вспомнить.

Сейчас гуглю почему. Пишут, что французы считали русское искусство той поры чем-то типа публицистики маслом. Мол, используют холст как трибуну, чтобы читать мораль, рассказывать истории, обличать соц несправедливость. Социальная драма, страдающие крестьяне, суровые зимние пейзажи и сцены казней — всё это казалось тем же американцам пугающим. Такой вот Достоевский маслом. Как это можно вешать над камином.

Закатная мелодия: портрет первой лошади-блондинки | 2026-02-27T15:00:15

Ну вот, моя первая лошадь-блондинка //

My first blonde horse

Astor Piazzolla | 2026-02-23T06:31:00

Пару дней назад решил погуглить будет ли исполняться Astor Piazzolla где-нибудь в округе, и увидел, что буквально в эти выходные неподалёку в Strathmore гастролирует Tango After Dark под музыку Piazzolla в, сопровождении аргентинского оркестра и аргентинских же танцоров танго. Очень круто, но не принёс ни одной записи сюда.

Пока гуглил что это за диковинный инструмент у тамошнего солиста был — бандонеон — наткнулся на очень очень очень крутой концерт Mario Pietrodarchi в сопровождении Минского оркестра. Это концерт занимает пять первых мест в наиболее популярных записях ютьюба Belarusian State Chamber Orchestra — прямо идите в popular и слушайте все, там все классное. Просто либертанго и обвилион вы наверняка и без меня слышали, они заезженные, поэтому в комментарий прикладываю Танец ангела (Milonga del angel).