Skip to content

API — Генерация изображений

Сервис развёрнут на https://sd.evosensestagging.ru. Базируется на ComfyUI с моделью FLUX.1-dev (GGUF Q4_K_S) и двумя LoRA:

  • flux-anime-comfy — аниме/манга стиль (XLabs)
  • flux-uncensored — без ограничений контента

Быстрый старт

POST /prompt — поставить задание в очередь

Тело запроса — ComfyUI workflow JSON. Используй готовый шаблон:

bash
# Скачай шаблон
curl -O https://sd.evosensestagging.ru/workflow-template

# Или отправь сразу с заменой промпта
curl -s -X POST https://sd.evosensestagging.ru/prompt \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": {
      "6": {"class_type": "CLIPTextEncode", "inputs": {"text": "твой промпт здесь", "clip": ["5",1]}},
      ...
    }
  }'

Ответ:

json
{
  "prompt_id": "4305ccbd-7b00-4523-872e-f2a243567f76",
  "number": 1
}

GET /history/{prompt_id} — получить результат

bash
curl https://sd.evosensestagging.ru/history/4305ccbd-7b00-4523-872e-f2a243567f76

Пока задание выполняется — возвращает {}. После завершения:

json
{
  "4305ccbd-...": {
    "outputs": {
      "11": {
        "images": [
          {
            "filename": "anime_nsfw_00001_.png",
            "subfolder": "",
            "type": "output"
          }
        ]
      }
    },
    "status": { "status_str": "success", "completed": true }
  }
}

GET /view — скачать изображение

bash
curl "https://sd.evosensestagging.ru/view?filename=anime_nsfw_00001_.png&type=output" \
  --output image.png

GET /queue — состояние очереди

bash
curl https://sd.evosensestagging.ru/queue
json
{
  "queue_running": [],
  "queue_pending": []
}

Python-хелпер

Готовый скрипт /home/rexxnorilsk/generate.py на сервере:

python
# Использование:
python3 generate.py "anime girl, moonlight, detailed linework"

# Произвольные параметры:
from generate import generate
generate(
    prompt="anime woman, cherry blossom, moonlit night, manga style",
    negative="ugly, blurry, low quality",
    width=832,
    height=1216,
    steps=20,
    seed=42
)

Параметры workflow

НодаПараметрЗначение по умолчаниюОписание
KSamplersteps20Количество шагов (15-30 оптимально)
KSamplercfg3.5Сила следования промпту (1.0-7.0)
KSamplerseed-1 (случайный)Фиксированный сид для воспроизводимости
EmptyLatentImagewidth832Ширина в пикселях
EmptyLatentImageheight1216Высота в пикселях
LoraLoader (anime)strength_model0.85Сила аниме-стиля (0-1)
LoraLoader (uncensored)strength_model0.75Сила uncensored LoRA

Рекомендуемые размеры для FLUX

FLUX обучен на соотношениях 1:1, 4:3, 3:4, 16:9. Лучшие результаты:

  • Портрет: 832×1216 или 768×1344
  • Квадрат: 1024×1024
  • Горизонт: 1216×832

Прокси и защита Ollama

Запросы идут через прослойку на порту 8189. Перед каждой генерацией (POST /prompt) прокси автоматически:

  1. Проверяет GET /api/ps — есть ли загруженные модели Ollama
  2. Если есть — отправляет keep_alive: 0 для выгрузки из VRAM
  3. Ждёт освобождения памяти (до 30 секунд)
  4. Форвардит запрос в ComfyUI

Это предотвращает OOM-ошибки при одновременном использовании SD и Ollama.

Примеры промптов

# Аниме портрет
anime girl, long silver hair, detailed eyes, night sky background,
soft lighting, manga art style, masterpiece quality

# Боевая сцена
anime warrior woman, katana, cherry blossom petals flying,
dynamic pose, detailed armor, high contrast shadows

# Пейзаж
traditional japanese village, torii gate, moonlit night,
anime scenery style, atmospheric fog, ultra detailed

WARNING

Сервис развёрнут на RTX 3060 (12GB VRAM). Одновременная работа SD и Ollama не поддерживается — прокси автоматически управляет этим. Время генерации: ~30-60 секунд на изображение.

Неофициальная документация. n8n — продукт n8n GmbH.