Перейти к основному контенту

n8n и NSFW AI: создание и сохранение серии персонажа

Настройте NSFW-процесс n8n: шесть сцен персонажа, лимит расходов, сохранение файлов и восстановление созданных задач без повторной оплаты.

Автор
Lydia
Опубликовано
Время чтения
20 мин чтения
Обновлено
Вымышленная взрослая женщина в зелёном атласном вечернем платье в тёплом бордовом свете квартиры и прохладном ночном контровом свете.

Чтобы создать процесс генерации NSFW-изображений в n8n, соедините список сцен со взрослой text-to-image-моделью и сохраняйте каждую готовую картинку до следующей. В self-hosted n8n community node SpicyAPI выполняет расчёт цены, отправку, ожидание и скачивание. В n8n Cloud используйте встроенный шаблон HTTP Request: пакет пока не verified для прямой установки Cloud.

Для первой серии вымышленного взрослого используйте Z-Image Spicy 1024 × 1536 без расширения промпта. Базовая цена $0.01235 за картинку; шесть успешных запросов — $0.07410 за генерацию изображений. Задайте предел стоимости элемента, первый запуск оставьте ручным, храните реальные файлы в проектной папке. Хостинг n8n и хранение оплачиваются отдельно.

Процесс ниже создаёт вечерние портреты одного вымышленного взрослого. Вы задаёте героя и шесть сцен; n8n повторяет подготовку и доставку. Письменное задание будет постоянным, но text-to-image не гарантирует одинаковое лицо. n8n также не меняет content policy: автоматизация ограниченного image API не делает его uncensored.

Это урок настройки по текущему коду плагина, каталогу и документации n8n. Пример — предложенный процесс, не отчёт о новом тесте шести картинок. Публичные иллюстрации объясняют настройку, не доказывают работу моделей.

Что вы соберёте

Последовательность:

Manual Trigger → Build scene list → Split Out → Build prompts → Loop Over Items → SpicyAPI Generate → Google Drive Upload → возврат в цикл.

Цикл идёт по одной сцене. Узел генерации заканчивает и скачивает картинку, Drive сохраняет её, лишь затем начинается следующая. Выход Done завершает серию.

Порядок важен для набора. Если четвёртая сцена не сработает, первые три уже должны быть в папке. Можно восстановить четвёртую и продолжить оставшиеся вместо повторного начала всей серии. Также каждой картинке назначается узнаваемое имя, пока сведения сцены доступны.

Узел SpicyAPI уже обрабатывает несколько входных items. Здесь цикл нужен именно для сохранения каждого результата до следующего, а не просто отправки нескольких промптов. Большая multi-item генерация полезна позже, но один файл за раз яснее при изучении execution, task и скачанного файла.

Для первой версии не нужны AI Agent, frontend, Telegram или LLM написания промптов. Добавляйте их для реальной задачи. Пока их отсутствие оставляет одно место правки героя, одно место смены сцены и одну папку результатов.

Выберите image-модель до шаблона

Для взрослого персонажа модель важнее автоматизации. У шаблона может быть удобная форма и красивое демо, но endpoint отклоняет ваш материал. Некоторые общие примеры n8n также намеренно добавляют свой NSFW blocklist. Неизменённый импорт сохранит его.

Для руководства релевантны такие text-to-image SpicyAPI:

МодельЦена без расширенияРазмерыКогда подходит
Z-Image Spicy$0.01235 за картинкуШирина и высота 256–1536 пикселей каждая; по умолчанию 1024 × 1536Начало взрослой портретной серии с умеренной стоимостью
Z-Image Spicy Pro$0.019 за картинкуШирина и высота 256–2560 каждая; по умолчанию 1024 × 1024Нужна сторона больше 1536 пикселей
Z-Image Turbo$0.010 за картинкуПоддерживаемое соотношение сторон; по умолчанию 1:1Более дешёвый пилот или концепты со своими параметрами

Два Spicy-семейства указаны как взрослые unrestricted endpoints. Это предоставленная область продукта, не новая измеренная доля принятия любых промптов. Выберите поддерживающий задачу endpoint, затем небольшой пилот своего задания до расширения серии.

Pro практичен для большего холста; имя не доказывает более точное лицо. Если портрету нужны лишь 1024 × 1536, обычный Spicy уже принимает. Оплачивайте Pro под конкретное требование, а не надежду вылечить дрейф дорогим именем.

Не переносите настройки между строками как один API. Spicy и Pro используют width и height. Turbo — aspect_ratio, с пределом промпта 1000 символов. У Spicy нет принудительного лимита символов. Они принимают текст, не референсы; картинка в графе не создаёт отсутствующую возможность входа.

Первую серию делайте без расширения. Вы пишете осознанные характер и сцену. Expander добавляет преобразование между инструкцией и запросом, усложняя понимание полезной формулировки. Также меняет цены обычного Spicy и Turbo: $0.0133 и $0.016 соответственно. Pro имеет один тариф.

Сначала выберите обычный Spicy, явно 1024 × 1536 и стандартное выключенное расширение. Это даёт единый кадр и простой расчёт. После просмотра файлов решите необходимость широкой композиции, холста или edit-модели для более сильной идентичности.

Установите узел и подключите аккаунт

Пакет, ключ и HTTP-шаблоны Cloud описаны в официальном руководстве узла SpicyAPI n8n. Затем следуйте сценам или референсам конкретного процесса ниже.

Прямому community node нужен self-hosted n8n, разрешающий community-пакеты. Откройте Settings, Community Nodes, установите @spicyapi/n8n-nodes-spicyapi. Опубликованная версия 0.1.1. Если администратор отключил установку, попросите включить или установить; повторный поиск picker не добавит узел.

Публикация пакета не означает verified n8n. Cloud допускает verified community nodes, а этот пакет пока не такой. Пользователям Cloud нужен раздел HTTP ниже. Различие следует документации установки community nodes n8n, не ограничению image API.

После установки добавьте SpicyAPI и credential. Получите ключ в консоли ключей, вставьте в API Key, оставьте Base URL https://api.spicyapi.ai. Сохраните и проверьте соединение. Ключ хранится в credential, не промпте, Edit Fields или общем экспорте графа.

Успешная проверка подтверждает доступность аккаунта. Это не созданная картинка, не доступность модели для всех входов и не достаточный баланс большого пакета. Проверьте баланс до пилота, оставьте schedule неактивным до рабочего ручного пути.

Если узел виден, а список моделей не загружается, начните с credential и соединения, не промпта. Ошибка model-list — настройка. Можно выбрать ID mode Model и точный публичный идентификатор, но ID не исправляет неверный ключ и не обходит параметры.

В примере идентификатор alibaba/z-image-spicy/text-to-image. Название страницы семейства объясняет продукт; полный API identifier выбирает точную задачу. Используйте полный ID, не короткий slug сайта.

Сначала создайте и сохраните одну картинку

До шести сцен соедините Manual Trigger с одним SpicyAPI. Resource Image, Operation Generate. Выберите Z-Image Spicy или ID mode с указанным ID. Media Inputs оставьте пустым для text-to-image.

Полный начальный промпт:

Журнальная фотография Мары, вымышленной женщины 34 лет с тёмными кудрями до плеч, карими глазами, мягко угловатым лицом и маленьким золотым кулоном. Непрозрачное тёмно-зелёное атласное вечернее платье на тонких бретелях. Она стоит у высокого окна квартиры в сумерках, слегка держит занавеску одной рукой и смотрит в камеру со спокойной уверенностью. Поясной портрет, тёплый свет интерьера с холодным голубым вечерним, естественная кожа, реалистичные складки, сдержанная романтика, никого другого в кадре.

Промпт задаёт конкретного взрослого и один видимый момент. Даёт положение камере, важную одежду и разные световые источники. Не требует реконструкции сложной истории в неподвижной картинке.

Задайте Model Parameters: width 1024, height 1536, expansion false. Seed для пилота не задавайте. Additional Parameters — пустой {}. Поле переопределяет видимый промпт и параметры, поэтому забытое значение отправляет другое, чем форма.

Max Cost per Item (USD) — 0.015, выше текущих $0.01235, но намного ниже стандартных $2 за item. Wait for Completion и Download Output включите. Имя binary property — data. Max Wait Time сначала стандартный; узел использует deadline задачи, не ждёт бесконечно.

Выполните один раз. До создания узел получает quote и сравнивает с пределом. После успеха и готовности вывода скачивает binary. Откройте Binary вывода и просмотрите или скачайте data.

Три вещи должны согласоваться: успех task, открываемая binary-картинка и разумное соответствие заданию. Успех с неверным нарядом — творчество. Неверный credential — настройка. Успех без сохранения — доставка. Разделение предотвращает новую оплату генерации, когда исходная картинка лишь не дошла до места.

Смотрите в размере использования. Companion-профилю нужно читаемое лицо в маленькой обрезке; главе важнее поза и комната. Если кулон отвлекает, упростите до серии. Если выражение нейтрально, меняйте взгляд или позу вместо десятков общих качественных прилагательных.

Затем после Generate добавьте Google Drive. Resource File, Operation Upload, Input Data Field Name data. Выберите Drive credential и проектную папку, выполните upload успешного вывода. Откройте файл в Drive. Сделайте это до пакета, иначе шесть успешных генераций дадут шестикратную диагностику отсутствующего файла.

Подготовьте одного героя и шесть разных сцен

Для связного набора храните внешность и фотографический стиль в двух повторяемых полях. Сцену меняйте отдельно. Это управляемее нового LLM-промпта для каждого портрета: видно постоянное и переменное.

После Manual Trigger добавьте Edit Fields, назовите Build scene list. В Manual Mapping создайте:

ПолеТипЗначение примера
seriesIdStringmara-evening-v1
characterBaseStringВозраст, лицо, волосы, кулон и непрозрачное зелёное атласное платье вымышленного взрослого
styleBaseStringЖурнальная фотография, естественная фактура, реалистичная ткань, сдержанная романтика
scenesArrayШесть объектов сцен ниже

Для characterBase полное предложение: «Мара — вымышленная женщина 34 лет, тёмные кудри до плеч, карие глаза, мягко угловатое лицо, маленький золотой кулон; непрозрачное тёмно-зелёное атласное вечернее платье на тонких бретелях». Для styleBase: «Журнальная фотография, естественная кожа, реалистичные складки ткани, сдержанная романтическая атмосфера, один взрослый персонаж».

Не помещайте всё в поле героя. «Улыбается», «сидит», «у окна», «голубой свет» — выбор сцены. Постоянная база противоречит позднему стоячему портрету в тёплом свете. База описывает человека, сцена — видимый момент.

Вставьте это значением Array scenes:

json
[
  {"sceneId":"01","scene":"Waist-up beside an apartment window at dusk, hand on the curtain, cool evening light and warm interior light, looking toward the camera."},
  {"sceneId":"02","scene":"Seated sideways on a velvet armchair in the same apartment, relaxed shoulders, hands resting separately, warm floor-lamp light, medium portrait."},
  {"sceneId":"03","scene":"Standing in the apartment doorway, one hand on the doorframe, softly playful expression, three-quarter portrait, warm light behind her."},
  {"sceneId":"04","scene":"Close portrait beside the window, curls tucked behind one ear, pendant visible, steady direct gaze, soft side light."},
  {"sceneId":"05","scene":"Standing on a quiet balcony at blue hour, dress moving slightly in the breeze, looking back toward the apartment, medium portrait."},
  {"sceneId":"06","scene":"Seated on the armchair near the window, looking down with a small smile, hands resting in her lap, gentle mixed evening light, waist-up portrait."}
]

Шесть промптов составляют маленькую съёмку, не отдельные запросы. Комната, одежда и герой стабильны, расстояние, поза и внимание меняются. Вариаций достаточно истории или профилю без одновременной смены всего.

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

Не начинайте шестью сложными full-body позами. Широким композициям нужно больше расстановки, а различия лиц труднее оценить. Крупный портрет четвёртой сцены позволяет сравнить черты без занимающей кадр комнаты.

Близкая иллюстрация у зеркала показывает тёмные кудри Мары, карие глаза, золотой кулон и зелёное атласное платье.

Иллюстрация: крупный портрет подчёркивает внешность из повторяемого описания героя.

Разделите сцены и соберите промпты

После Build scene list добавьте Split Out. Field to Split Out — scenes, Include — All Other Fields, Destination Field Name — scene. Вывод содержит шесть items; каждый сохраняет seriesId, characterBase, styleBase и свой scene. Настройки следуют документации Split Out.

Проверьте вывод до продолжения. У первого scene.sceneId равно 01, второго 02. Один item со всеми сценами — неверное split-поле. Пропавший герой — неверный Include. Исправление здесь без image-fees.

Добавьте Edit Fields Build prompts, сохраняя входные поля. String sceneId в Expression: {{ $json.scene.sceneId }}. String prompt: {{ $json.characterBase + '. ' + $json.styleBase + '. ' + $json.scene.scene }}. Документация Edit Fields объясняет поля и выражения.

Выражение соединяет три обычных текста, не просит LLM переосмыслить героя или сцену. Проверьте все шесть: базы героя и стиля одинаковы, меняется лишь конец сцены.

Убедитесь в вычислении, не сохранении выражения буквами. Превью показывает описание фото, не скобки и $json. undefined означает различное имя поля. Точное написание characterBase, styleBase, scene важно.

При будущей таблице сохраните структуру. Строка хранит seriesId, sceneId и переменную сцену; постоянные герой и стиль прикрепляются до Build prompts. Первым шести таблица не нужна, но постоянные ID упрощают перенос.

Не вставляйте AI Agent лишь ради сложного вида. Он добавляет text-fees, задержку и отказы другого этапа. Image endpoint может поддерживать взрослое задание, а необязательная модель промпта отказывается писать. Отказ тогда до генерации изображения. Отправляйте подготовленный промпт прямо выбранной задаче.

Сохраняйте картинку до следующей сцены

После Build prompts добавьте Loop Over Items, Batch Size 1. Loop соедините с SpicyAPI Generate, Generate с Google Drive Upload, Upload обратно с Loop Over Items. Done завершает серию. Reset выключен: список конечных шести, не бесконечное воспроизводство входа. См. документацию Loop Over Items.

Замените фиксированный пилотный промпт выражением {{ $json.prompt }}. Сохраните успешные модель, размеры, предел и скачивание. Цикл передаёт один item, узел на каждом проходе показывает один полный промпт сцены.

Важно возвращаться от Upload. Возврат от Generate начинает следующую сцену до хранения. Подключение Done вместо Loop пропускает нужный поэтапный путь. Проследите граф: одна сцена в Generate, файл в Upload, готовая загрузка возвращается за следующей.

В Drive Upload Input Data Field Name — data. File Name: {{ $('Build prompts').item.json.seriesId + '-' + $('Build prompts').item.json.sceneId + '-' + $binary.data.fileName }}. Это добавляет series/scene к реальному имени с правильным расширением. Выберите пилотную папку. Поля описаны в операции upload Google Drive.

Зачем ссылаться назад на Build prompts? Generate выводит task и binary, не копирует scene-поля в JSON автоматически. Item linking n8n достаёт соответствующие прежние seriesId и sceneId. Текущий $json.sceneId после Generate может дать пустое имя: JSON теперь описывает task.

Для одного изображения нужен лишь binary data. При нескольких assets узел называет дополнительные data_1, data_2 и дальше. Один Upload data не отправляет все остальные. Учитывайте при смене задачи; первый файл не обязательно весь ответ.

Ещё раз выполните только сцену 01. Подтвердите имя с серией и сценой и открытие из папки. Затем верните шесть объектов и запустите серию. Дополнительная одиночная проверка проверяет цикл и имена до зависимости шести платных запросов.

Финальная папка должна содержать узнаваемую последовательность, не шесть безымянных загрузок. Сохранённый файл — полезный итог. API output URL и preview execution полезны при генерации, но не заменяют проектную папку.

Диаграмма отправляет одну сцену на генерацию и хранение до перехода к следующей.

Иллюстрация: сохраните текущую картинку до следующего прохода цикла.

Задайте реальный бюджет серии

Image fee — успешные оплачиваемые запросы, умноженные на тариф. Просто записанная сцена не оплачивается. Новая успешная замена непонравившегося изображения оплачивается.

Для шести сцен без расширения:

ПланSpicy по $0.01235Spicy Pro по $0.019Turbo по $0.010
Один проход шести сцен$0.07410$0.11400$0.06000
Первый проход и шесть замен$0.14820$0.22800$0.12000
Три кандидата каждой из шести сцен$0.22230$0.34200$0.18000

Это генерация, не обещание пригодности всех. Восемнадцать кандидатов с шестью выбранными оплачиваются как восемнадцать успешных. Надёжная доставка предотвращает потерю готовой задачи, не делает отброшенных бесплатными.

Max Cost имеет другую цель: сравнивается с quote каждого item до создания его task. Это не бюджет всей серии. Стандартные $2 за item намного выше цены примера. Ноль отключает предел, не означает бесплатность.

При шести items и потолке $0.015 сумма $0.09. Это полезный верхний предел этих шести отправок, если нет новых items, повторов цикла, смены задач и дополнительных executions. Текущая ожидаемая базовая стоимость Spicy ниже: $0.07410.

Для Pro предел $0.015 остановит до создания, поскольку quote $0.019 выше. Осознанно повысьте, например $0.025 допускает текущую цену. Шесть потолков — $0.15. Вы меняете модель и допустимые расходы вместо молчаливого другого тарифа.

При конфликте смены цены плагин получает новый quote и вновь проверяет предел. Community route не требует отдельного quote-узла для защиты. HTTP fallback ниже реализован отдельно, не предполагает всё автоматическое поведение.

До schedule умножьте пакет на исполнения. Ежедневные шесть Spicy за тридцать дней — $2.223 генерации по базе. Три кандидата каждой ежедневно — $6.669. Удвоение частоты удвоит суммы. n8n-сервер или подписка, хранение и LLM отдельно.

Оставьте вручную до понимания числа нужных кандидатов. Ежедневное воспроизводство уже готовой серии — регулярный заказ генерации. Давайте новым запускам другой проект или только недостающие сцены. Дешёвый запрос дорог при беспричинных повторах.

Таймаут не означает, что нужно снова создавать картинку

Ожидание и генерация — разные действия. Max Wait Time задаёт время ожидания узла. Истечение не отменяет image task: она может завершиться позже, и успешная генерация оплачивается.

Допустим, сцена 04 получила таймаут. Не нажимайте сразу Execute Workflow для всех шести. Откройте неудачное execution, найдите созданный ID задачи в доступном выводе или ошибке и сначала получите её. Не каждая ошибка имеет отдельное JSON-поле taskId; читайте и текст, и таблицу вывода.

Для community node сделайте небольшой recovery: Manual Trigger → SpicyAPI Resource Task, Operation Get → хранение. Укажите существующий ID. Если задача queued/running, включите Wait for Completion: Task Get по умолчанию не ждёт. Download Output включён, binary имя data, чтобы восстановленная картинка прошла тот же upload.

В отдельном recovery дайте Drive имя известных серии и сцены: для четвёртой {{ 'mara-evening-v1-04-' + $binary.data.fileName }}. Не копируйте прежнее выражение Build prompts: узла здесь нет. Input Data Field Name — data, папка та же.

Читайте реальный статус. Running нужно время. Succeeded нужно сохранить файл. Failed/expired требуют исправить указанную ошибку до нового запроса. Отказ модели не сетевой таймаут; долгое ожидание и частые повторы его не решат.

Failed/expired обычно освобождают зарезервированную сумму. Content-rejected обычно не оплачивается, если страница модели не говорит иное. Проверяйте settlement и cost реальной задачи вместо вывода по одному красному узлу. Остановленное ожидание и неудачная генерация — разные исходы оплаты.

Восстановив и сохранив 04, уберите 01–04 из списка, запустите 05 и 06. Если 04 действительно failed и нужна новая генерация, после исправления входа оставьте 04 среди оставшихся. ID стабильны при сокращении массива, имена сохраняют принадлежность.

Поэтому полезен одноэлементный цикл: ранние сцены сохранены до прерывания поздней. Он не удаляет внешнюю задачу при остановке n8n, но сокращает восстановление.

Что повторы могут и не могут устранить

Плагин добавляет внутренний idempotency key создания. В пределах одного execution, запуска узла и item одинаковый вход восстанавливает тот же запрос вместо слепого дубликата. Это полезно при потере сетевого ответа после принятия задачи API.

Защита не постоянная проверка «этот промпт уже создан». Новое execution имеет другую область, поздний проход — другой run index. Смена промпта или параметров меняет запрос. Возникает новая платная задача, даже если видимая сцена знакома.

Для трёх проблем нужны три реакции. Неясная связь при отправке — восстановить task до новой. Готовая картинка не загрузилась — повторить upload или получить существующий output. Файл сохранён, но поза неверна — изменить сцену и намеренно заказать замену.

Добавляйте умеренные автоматические retries. Они полезны временным ошибкам транспорта, не творческому отбору. Неверные размер, binary или несовместимый вход останутся неверными. Сначала исправьте. Retry внутри execution отличается от ручного нового запуска.

Для регулярной серии добавьте небольшую таблицу статусов, когда ручное восстановление неудобно. Поля: seriesId, sceneId, status, task ID, file link. Генерируйте лишь ready; после upload отмечайте saved. Retry получает существующий ID, не угадывает, дошёл ли прошлый запрос.

Не добавляйте учёт в первый пилот без нужды. Шесть проверяемых сцен управляются массивом. Таблица оправдана unattended schedule или совместной правкой. Она предотвращает новый заказ готовой сцены, а не просто добавляет документы.

Храните файлы, а не временные ссылки

Подписанные API-ссылки живут примерно двадцать минут. Это окно конкретной ссылки, не обещание одновременного удаления задачи и asset. Получите существующий task для актуального доступа, пока asset хранится, затем скачайте и сохраните.

Завтрашняя старая ссылка в таблице выглядит потерянной генерацией. Не оплачивайте повтор лишь из-за истечения URL. Сначала снова получите task. Регулярный процесс хранит устойчивую Drive-ссылку после upload, не временный API URL как готовый asset.

С Download Output плагин даёт binary следующему узлу. Без него есть task и ссылки, но нет data для Drive. Строка URL — не файл. При «не найден binary» проверьте Download Output и совпадение имени поля с generation binary property.

Это важно и будущему frontend. В уроке no-code генератора Леона ван Зейла transcript показывает успешный n8n и ошибку frontend из-за ожидания другого ответа вместо image binary. Проверяйте получателя картинки до обвинения генерации.

Drive ждёт binary. Веб-странице нужен постоянный storage URL. Локальная папка записывается на машине n8n, возможно сервере, не ноутбуке. Выберите место и откройте там один файл до новых сцен.

При неудаче upload после генерации сохраните ID и повторите хранение. Проверьте Drive credential, права папки и data. Уже существующий файл не дублируйте из-за неясного подтверждения узла. Task idempotency защищает создание в своей области, не автоматически все последующие uploads.

HTTP-шаблон для n8n Cloud

Cloud использует встроенные узлы API без unverified-пакета. Скачайте пример из официального репозитория SpicyAPI n8n, импортируйте в n8n. Начните одиночной структурой, не всеми возможностями community node.

Шаблон содержит Settings, quote, budget check, создание, проверки статуса с Wait-циклом и скачивание. Settings начинает Z-Image Turbo с aspect ratio. Поменяйте промпт на взрослый пилот, сохранив поддерживаемые поля модели.

Создайте HTTP Bearer Auth credential API-узлов, выберите на GetQuote, CreateTask, GetTask. Ключ в credential. DownloadImage получает signed asset URL; SpicyAPI credential этому storage-запросу не нужен.

Raw HTTP имеет обёртку data, поэтому выражения могут использовать data.taskId, data.output. Community node отдаёт task без обёртки. Его выражение в raw HTTP без учёта wrapper делает верный ответ будто пустым.

Download должен считать ответ файлом. HTTP Request n8n описывает Response Format File и выходное поле. Проверьте реальный binary, затем укажите его Drive Upload. Шаблон скачивает первый asset, не все автоматически.

При смене Turbo на Spicy измените input и ID. Используйте ширину/высоту вместо aspect_ratio. Обновите quote и create для одной картинки. Смена лишь Settings.model при старом body неверна между схемами.

Первый Cloud-запуск — одна картинка на execution. Creation key шаблона основан на execution и item index, не богатом ключе input/loop run community-плагина. Не оборачивайте неизменённый шаблон циклом с предположением одинаковых retries. Cloud-пакету нужны отдельные идентичности scene-запросов и совпадающие quote/create.

Polling требует осознанной остановки unattended. Пример повторяет wait/status до terminal и не даёт Max Wait Time community node. До schedule задайте workflow execution timeout. Остановка всё ещё не отменяет API-task. Восстановите GetTask до новой генерации.

При смене цены между quote/create разрешите конфликт и получите новый quote. Community-плагин автоматизирует это, HTTP-пример не идентичен каждой деталью. Встроенный путь годится Cloud, но self-hosted community проще шестисценному циклу этого урока.

Улучшайте серию, не оплачивая неправильные изменения

Сохранив шесть файлов, сравните набор. Сначала визуальная история: тот же вечер, одежда и взрослый в разных ракурсах. Затем конкретные замены. Не повторяйте хорошие из-за одной плохой.

При дрейфе лица сократите изменения сцен. Сохраните волосы, структуру и кулон, уберите только одной сцене новый макияж или выраженную возрастную черту. Новый угол меняет внешность; письменная последовательность управляет входами, но не блокирует лицо.

Если нужна точная идентичность, не добавляйте ещё абзац прилагательных. Text-only endpoints не принимают портрет как референс. Перенесите выбранное в модель референсов или редактирования. Руководство сохранения лица объясняет иной путь. Здесь text-to-image устанавливает героя и съёмку; edit сохраняет утверждённое лицо, когда оно главное.

Иллюстрация графической новеллы: взрослая Мара в зелёном атласном платье оглядывается с балкона в синий час, за ней тёплая квартира.

Иллюстрация: меняйте позу, угол и место, сохраняя узнаваемую внешность и одежду.

Если настроение слишком простое, меняйте одну видимую черту: взгляд, направление света, расстояние или ткань. «Больше NSFW» не задаёт картинку. Вымышленный взрослый персонаж, оглядывающийся на балконе с мягким освещением, задаёт другую композицию, чем крупный портрет с прямым взглядом, хотя оба могут относиться к проекту взрослой тематики.

Если поза путается, упростите физические инструкции. Во второй сцене руки отдельно вместо сложного взаимодействия предметов. После простой позы добавьте одно взаимодействие. Автоматизация последовательно отправляет подготовленную серию, но модели нужен рисуемый момент.

При обрезанном важном поменяйте кадр или размеры до высокой детали. Обычный Spicy комфортно даёт поясной портрет, full-body требует явного расстояния. Больший Pro даёт пиксели, не автоматически широкий угол или исправление композиции.

Сохраняйте seed, промпт и размеры принятого кадра для управляемого повтора. Seed держит вариацию при тех же настройках; смена сцены/размера меняет задачу. В Spicy нулевой seed запрашивает случайный. Постоянный ненулевой полезен сравнению, не одинаковому лицу всех сцен.

Наконец, различайте технический успех и полезность. Стоимость считает всех успешных оплачиваемых кандидатов; готовая серия — только выбранных. Если шесть требуют двенадцать, бюджет двенадцати; улучшайте слабые инструкции ради меньших замен дальше.

Вопросы до включения расписания

Сам n8n — NSFW-генератор?

Нет. Он соединяет входы, API и файлы. Image endpoint определяет возможности и содержание. Необязательный агент промптов или шаблон может ограничить до вызова изображения.

Можно без скрипта?

Self-hosted использует визуальные узлы, короткий массив и два небольших выражения. Всё равно нужны модель, credentials и верный цикл. HTTP Cloud требует внимания к JSON и task responses; убирает установку, не настройку API.

Бесплатный шаблон делает картинки бесплатными?

Нет. Импорт и плата за image request отдельно. Здесь платный API, хостинг или подписка n8n добавляют стоимость. Полезная сумма — тариф, умноженный на запрошенных успешных кандидатов.

Автоматизировать публикацию после генерации?

Для новой серии остановитесь на сохранении и просмотре. Позднюю доставку добавляйте после определения места и творческих требований. Надёжные шесть файлов уже полезны; автоматическая публичная публикация — другое действие с другими требованиями.

Начните одной ручной генерацией и успешным upload. Затем шесть сцен с cost limit и сохранением до следующей. При сбое получайте task до нового заказа. Так получится практичный взрослый n8n-процесс: понятные входы, предсказуемая стоимость запросов и доступные потом файлы.

Другие языки English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Italiano · Polski

Примените руководство на практике

Открыть рабочий процесс

Планируйте NSFW-галерею в Google Sheets.

Превратите таблицу NSFW-идей для авторского проекта в организованную очередь изображений. Создавайте до четырёх концепций Z-Image Turbo за запуск, затем просматривайте каждое изображение рядом с его промптом, статусом и ссылкой на результат.