-
Публікації
1 885 -
З нами
-
Відвідування
Про kJlukOo
- Активність loc_index
Інформація
-
Стать
Чоловік
-
Місто:
Харьков
-
Інтереси
Реактивная поддержка в рабочие дни
Відвідувачі профілю
63 914 перегляди профілю
kJlukOo's Achievements
-
Когда нужно сгенерировать большую партию графики (например, десятки баннеров под разные ниши и соотношения сторон), ручной запуск каждого промта это трата времени. Гораздо эффективнее построить мини-конвейер: выгрузить все запросы в JSON-файл и запустить самоочищающуюся очередь на PHP, которая будет последовательно отправлять задачи в модель gemini-3.1-flash-image, сохранять результат на диск и обновлять страницу до тех пор, пока работа не завершится. В этой статье разберем, как спроектировать и запустить такую систему. Архитектура решения Наша система состоит из трех основных компонентов: prompts.json - локальная база данных (очередь), содержащая список текстовых заданий для генерации. PHP-скрипт управления (index.php) - мозг системы, который забирает первый элемент из массива, удаляет его из файла и управляет автообновлением страницы через заголовок header(). API-клиент модели gemini-3.1-flash-image - обработчик, который принимает строку промта, генерирует картинку и сохраняет её в локальную папку. Шаг 1. Подготовка файла очереди (prompts.json) Создадим файл, в котором хранятся наши текстовые запросы в виде простого массива строк: JSON [ "абстрактный минималистичный веб-баннер, современные плавные геометрические формы, мягкие пастельные градиентные цвета, без текста, без логотипов, без кнопок, профессиональный дизайн", "широкий рекламный баннер с абстрактным технологичным фоном, глубокие современные оттенки, легкое свечение, без надписей и логотипов, высокое качество", "квадратный рекламный постер в стиле минимализм, стильные абстрактные элементы, мягкое студийное освещение, без текста, без кнопок и логотипов" ] Шаг 2. Разработка PHP-скрипта с очередью и автообновлением Основная идея автоматизации - использовать функцию array_shift(). Она извлекает первый элемент из массива и автоматически сдвигает весь массив, удаляя этот элемент. После этого мы перезаписываем JSON-файл обновленным списком. Для того чтобы скрипт переходил к следующему промту без участия человека, используется стандартный PHP-заголовок header("Refresh: 5"), перезагружающий страницу каждые 5 секунд. Шаг 3. Запуск и контроль процесса Поместите скрипт index.php и файл prompts.json в корень вашего локального или удаленного сервера (например, OpenServer или Docker-контейнер). Откройте страницу в браузере. Как это работает на практике: Скрипт считывает файл Берет строку номер один, отправляет её в gemini-3.1-flash-image Получает картинку, сохраняет её в папку generated_banners/ Удаляет этот промт из prompts.json Перезагружает страницу через 5 секунд, беря в работу следующий элемент Как только массив в JSON опустеет, скрипт автоматически прекратит обновление и выведет сообщение об успешном завершении пакетной генерации. Преимущества такого подхода Отказоустойчивость: Если на каком-то промте произойдет сбой сети или таймаут API, обработанные элементы уже удалены из JSON, а необработанные ждут своей очереди — процесс можно просто возобновить с того же места. Минимум кода: Никаких сложных очередей на Redis или RabbitMQ - чистый PHP и файловая система, разворачиваемые за две минуты. кстати, пока я тестировал этот конвейер, под руку подвернулся старый проект, и я решил "воскресить" свой старый модуль qBanner Constructor https://opencartforum.com/files/file/3707-qbanner-konstruktor/
-
@shurc1скачайте по ссылке с письма, которая на емайл после покупки прилетает. там свежая должна быть
-
на днях выпущу обновление, которое значительно улучшит производительность модуля в категории код уже написан. нужно немного потестить и отшлифовать
-
переработан интерфейс настроек серии: появился отдельный блок SEO блок в PRO-версии можно автоматически скрывать группы товаров, если их нет в наличии. Если из всей группы на складе остался только один доступный вариант, система оставит его в каталоге как одиночный товар
-
- 8 відповідей
-
- наборы товаров
- набор
- (і ще 1)
-
custom1 и custom2 это заглушки как раз под такие доработки в контроллере catalog\controller\extension\module\hpmrr.php ищите else if($column['key'] == 'custom1') в этом блоке и нужно писать реализацию можете взять логику с блока image и приклеить размер попросите клод. я думаю он справится (строку выше ему тоже добавьте, чтобы он контекст понимал)