Создание кастомной ноды
Создание кастомных нод позволяет обойти ограничения, которые связаны со стандартной библиотекой нод Piper, или же даже просто улучшить функционал текущих нод.
Давайте создадим кастомную ноду Merge text to JSON, которая принимает несколько текстовых строк и объединяет их в один JSON массив.
1. Загрузка ноды из библиотеки нод
Для создания кастомной ноды начните с загрузки существующей ноды, которая наиболее близка к вашим требованиям. Перейдите в библиотеку нод, используя значок плюс (+) в верхнем левом углу рабочего пространства пайплайны и выберите ноду Input Text для модификации, поскольку в ней минимум кода и она работает со строками.
После добавления ноды откройте её настройки.

Панель настроек включает несколько вкладок:
- Inputs - Текущие параметры ноды, их настройка, загрузка изображений
- Design - Создание входных и выходных параметров, определение их свойств
- Script - Редактирование кода JavaScript, логика ноды
- Environment - Настройка переменных окружения
- Catalog - Просмотр метаданных ноды и её публикация
- YAML - Доступ к YAML ноды
2. Настройка ноды
Кастомизация начинается со вкладки Design, где определяется структура ноды.

Основные свойства
- ID - Внутреннее имя, используемое в коде (строчные латинские буквы, без пробелов)
- Title - Отображаемое имя, видимое пользователю
Для нашей ноды прежние значения необходимо заменить на:
- ID:
merge_text_to_json - Title:
Merge text to JSON
Добавление входных параметров
Нашей ноде нужно 4 строковых входа. Чтобы добавить новый вход:
- Раскройте меню-гамбургер Inputs
- Введите имя нового входа:
string1 - Нажмите Add

Настройте параметры входа:
- Type: string (то есть текст)
- Title: String 1 (название, отображаемое на ноде)

Повторите этот процесс для создания входов string2, string3 и string4.
Чтобы удалить прежний входной параметр input_text, снимите галочку с него в меню Inputs.

Если визуально изменения не произошли, нужно временно открыть другую вкладку и потом вернуться в Design.
Расширенные настройки входных параметров
Доступ к детальным настройкам входных параметров открывается через меню-гамбургер.

Доступные опции включают:
- Order (число) - Задаёт порядок расположения входов в ноде
- Description (текст) - Текст всплывающей подсказки для параметра
- Required (boolean) - True делает параметр обязательным
- Group (текст) - Группирует связанные настройки
- Enum (текст) - Создает выпадающие списки с предопределенными значениями
- Multiline (boolean) - Расширяет поля String для длинного текста
- Min, Max (число) - Устанавливает ограничения для полей Integer
- Step (число) - Преобразует поле Integer в ползунок с шагом, равным значению Step
- Default - Устанавливает значения по умолчанию
- Placeholder (текст) - Показывает подсказку в пустых полях String
- Schema - Техническое поле для скриптов
- Extensions (текст) - Добавляет специальную функциональность (например, draw-mask для задания маски на загруженном изображении)

Настройка выходных параметров
Создайте выходной параметр. Для этого удалите прежний выход output_text и добавьте новый json_output со следующими параметрами:
- Type: JSON
- Title: JSON
Итогое окно Design должно выглядеть примерно так:

Отслеживайте ваши изменения во вкладке Inputs, чтобы видеть, как модификации влияют на структуру ноды.
Про следующий шаг - написание логики скрипта ноды, в разделе Вкладка Node Script.