Зачем генерировать арт локально
SillyTavern исторически полагается на внешние API для изображений: NovelAI, Stability, DALL·E. Это удобно, но упирается в цену за генерацию, лимиты и прива…
- comfyui
- image-generation
- local-llm
- character-cards
- sillytavern
Связка «SillyTavern + ComfyUI» через расширение позволяет генерировать портреты для character cards и сцены по ходу ролевой сессии, не покидая интерфейс.
Что понадобится
- ComfyUI — установленный и запущенный локально (по умолчанию порт 8188).
- SillyTavern — свежая версия, расширение
ComfyUIиз встроенного менеджера расширений. - Модель — SDXL или Flux для портретов; для пиксель-арта отдельный чекпойнт (например, Pixel Art XL).
- VRAM — 8 ГБ хватает для SDXL с
--lowvram; 12+ ГБ комфортно для Flux. - Character card — ваша или скачанная, с заполненными полями описания и внешности.
Шаг 1: настройка ComfyUI
Запустите ComfyUI с флагами под вашу видеокарту. Для слабых GPU:
python main.py --lowvram --preview-method auto
Соберите базовый граф: CheckpointLoader → CLIPTextEncode (positive/negative) → KSampler → VAEDecode → SaveImage. Не усложняйте на первом этапе — сначала убедитесь, что API отвечает.
Проверьте доступность:
curl http://127.0.0.1:8188/system_stats
Если ответ JSON — всё готово к интеграции.
Экспорт workflow в API-формат
SillyTavern отправляет запросы в /prompt, а не в UI. Включите в ComfyUI режим «Enable Dev mode Options» и нажмите «Save (API Format)». Полученный JSON — это то, что нужно расширению. Обычный Save не подойдёт.
Шаг 2: подключение к SillyTavern
- Откройте Extensions → ComfyUI.
- Укажите URL:
http://127.0.0.1:8188. - Загрузите API-JSON workflow.
- Свяжите плейсхолдеры: в промпте используйте
%prompt%и%negative_prompt%— расширение подставит их из настроек персонажа. - Задайте размеры: 832×1216 для портретов SDXL, 1024×1024 для сцен.
Сохраните конфигурацию. Теперь кнопка генерации появляется в меню сообщения.
Шаг 3: промпты для character cards
Качество портрета определяется не моделью, а описанием. Держите структуру:
- Субъект:
1girl, solo, portrait, upper body - Внешность: цвет волос, глаз, одежда — по полям карточки
- Стиль:
digital painting,pixel art,anime screencap - Качество:
masterpiece, best quality, detailed face - Негатив:
lowres, bad anatomy, extra fingers, watermark, text
Для Iris the Pixel Painter рабочий промпт выглядит так:
pixel art, 1girl, artist, paint-stained apron, short teal hair,
goggles on forehead, holding brush, warm studio lighting,
limited palette, 16-bit aesthetic, sharp pixels
Ключевой момент: тег pixel art в SDXL без LoRA даёт грязный результат. Подключите специализированный чекпойнт или LoRA — иначе получите размытые «псевдопиксели».
Согласованность между генерациями
Чтобы персонаж не менялся от сцены к сцене:
- Фиксируйте seed в настройках расширения.
- Используйте один чекпойнт и одну LoRA для всех изображений карточки.
- Держите неизменным блок внешности в промпте — меняйте только окружение и позу.
- Для продвинутых сценариев — IPAdapter или Reference-only ControlNet по первому удачному портрету.
Шаг 4: сцены по ходу сессии
Сцены генерируются иначе, чем портреты. Здесь важен контекст: локация, время суток, действие.
Подход — два режима в расширении:
| Режим | Когда использовать | Промпт |
|---|---|---|
| Character | Портрет, эмоция, крупный план | Из полей карточки |
| Scene | Иллюстрация к сообщению | Из последнего ответа модели + шаблон |
Для сцен удобно держать шаблон вида %scene_description%, cinematic lighting, wide shot, detailed background. Расширение подставит описание из текста, а вы не будете переписывать промпт вручную.
Оптимизация скорости
- Снижайте steps до 20–25 для SDXL — разница с 40 незаметна.
- DPM++ 2M Karras — баланс скорости и качества.
- Кэшируйте модель в VRAM: не перезагружайте чекпойнт между запросами.
- Для Flux ставьте
--fastи уменьшайте разрешение до 768 px по короткой стороне.
Типичные проблемы
Пустое изображение или таймаут. Увеличьте timeout в настройках расширения до 120 секунд. Первый запуск грузит модель в VRAM — это долго.
Ошибка «node not found». Ваш workflow использует кастомные ноды, которых нет в API-режиме. Либо установите их, либо упростите граф до встроенных.
Промпт игнорируется. Проверьте, что плейсхолдеры %prompt% стоят именно в CLIPTextEncode, а не в KSampler. Расширение подменяет строки по имени ноды.
Персонаж «плывёт». Зафиксируйте seed и не меняйте порядок тегов — CLIP чувствителен к позиции.
Итог
Локальная генерация через ComfyUI снимает зависимость от платных API и даёт полный контроль над стилем карточки. Связка с SillyTavern превращает character cards из текстовых описаний в визуальные — портреты и сцены появляются по ходу сессии без переключения окон.
Если не хочется возиться с нодами и флагами запуска, посмотрите готовые решения в каталоге карточек MiniTavern — там же доступны мобильные приложения для iOS и Android и расширение для Chrome, которые работают с теми же character cards.
Читайте дальше
Другие статьи, которые могут вам понравиться
Как писать приветствия для карточек персонажей SillyTavern: примеры и лучшие практики
Создание убедительного приветствия — это первый шаг к тому, чтобы ваш персонаж ожил в SillyTavern. Приветствие задаёт тон, характер и контекст для всего ди…
- greetings
- character-cards
- sillytavern
- writing-guide
Зачем разбирать анатомию карточки
Карточка персонажа — это не просто «имя и описание». Это структурированный объект, который движок подставляет в контекст модели по строгим правилам. Понима…
- sillytavern
- character-cards
- card-anatomy
- beginners
Решаем проблемы с карточками персонажей в SillyTavern: от ошибок до идеального ответа
Вы создали потрясающую карточку персонажа, загрузили её в SillyTavern, но вместо увлекательного диалога получили бессвязный текст или сообщение об ошибке?…
- sillytavern
- character-cards
- troubleshooting
- ai-roleplay