Lemonade OmniRouter: объединение локальных AI моделей | AiManual
AiManual Logo Ai / Manual.
28 Апр 2026 Инструмент

Lemonade OmniRouter: Как объединить локальные AI-модели для работы с текстом, изображениями и аудио

Lemonade OmniRouter — инструмент для создания единого API из локальных LLM, генераторов изображений и распознавания речи. Как настроить и кому это нужно.

Когда одной модели мало, а ставить пять разных — лень

Каждый, кто собирал локальный AI-асcистента, знает эту боль: для текста нужен Llama 4, для картинок — Stable Diffusion 3.5 или Flux, для аудио — Whisper v3 и какой-нибудь TTS. В итоге на компе три разных сервера, четыре порта, пять токенов авторизации и головная боль при каждом запуске.

Lemonade OmniRouter — это прослойка, которая превращает этот зоопарк в единый API. Вы кидаете запрос с картинкой или голосом, а роутер сам решает, какой модели его скормить.

Инструмент появился не на пустом месте. Он развивает идеи, заложенные в Lemonade v9.2 — том самом API, который умел запускать Stable Diffusion, Whisper и LLM одной командой. Но OmniRouter идёт дальше: он не просто агрегирует, а маршрутизирует, причём делает это на лету, без перезапуска.

Как это работает (без магии, но с изяществом)

Внутри OmniRouter — простой YAML-файл конфигурации. Вы описываете доступные модели, их тип (текст, изображение, аудио) и условия выбора. Роутер смотрит на запрос: если есть изображение — отправляет его в Flux, если просит транскрибировать — в Whisper, если нужен диалог — в Qwen3 или Llama 4. Можно задать Fallback: например, если текстовую модель загрузили подчистую, отдать запрос второй по списку.

models:
  - name: llama4
    type: text
    endpoint: http://localhost:8080/v1/chat/completions
    priority: 1
  - name: flux
    type: image
    endpoint: http://localhost:4321/generate
    priority: 1
  - name: whisper
    type: audio
    endpoint: http://localhost:9000/asr
    priority: 1
routing:
  image_extensions: ['.png', '.jpg', '.jpeg', '.webp']
  audio_extensions: ['.wav', '.mp3', '.ogg']
  max_image_size_mb: 10

Всё. Запускается одной командой:

lemonade omni-router --config router.yaml

Теперь любой клиент может дергать единый эндпоинт http://localhost:3000/api/process и получать мультимодальный ответ.

Важный нюанс: OmniRouter не запускает сами модели. Он только проксирует запросы. Модели нужно поднимать отдельно. Но для этого отлично подходят родные инструменты Lemonade или сторонние вроде Ollama с текстовыми моделями или ComfyUI для генерации изображений.

Сравнение с альтернативами (кто кого)

ИнструментМультимодальностьАвтомаршрутизацияПростота настройки
Lemonade OmniRouter✓ (текст + картинки + аудио)✓ (по типу данных)Высокая (один YAML)
Open WebUI + Ace Step 1.5✓ (текст + картинки)✗ (ручной выбор модели)Средняя (нужен WebUI)
Aventura✓ (текст + изображения)✗ (заточка под ролевые игры)Средняя
vLLM-Omni✓ (текст + TTS + ASR)✓ (через один API)Низкая (требует Python и сборки)

Как видите, OmniRouter выигрывает в простоте, но проигрывает в интеграции TTS (пока нет встроенного синтеза речи, хотя в планах). Зато легко цепляет любой внешний движок через HTTP. Хотите Qwen3 TTS — пожалуйста, только добавьте в конфиг.

Живой пример: говорим картинку голосом

Допустим, вы хотите показать AI картинку, попросить описать её, а потом зачитать описание вслух. Без роутера пришлось бы писать скрипт с тремя вызовами. С OmniRouter — один POST:

import requests

response = requests.post(
    "http://localhost:3000/api/process",
    files={"image": open("cat.jpg", "rb")},
    data={"instruction": "Опиши эту картинку подробно, а потом прочитай описание вслух"}
)
print(response.text)

Роутер сам догадается: сначала картинку отправит в vision-модель (Qwen3-VL или Llama 4), получит описание, затем передаст его в TTS-движок (например, XTTS) и вернёт аудиофайл. Всё за пару секунд, если модели шустрые.

💡
Кстати, связка Strix Halo с OmniRouter даёт почти полноценную голосовую ассистентку без выхода в интернет. Whisper слушает, Llama думает, Flux рисует — всё через один порт.

Подводные камни (да, они есть)

Первое — память. OmniRouter сам не тормозит, но если вы «скормите» ему пять моделей по 8 ГБ каждая, 40 ГБ ОЗУ улетят мгновенно. Не советую так делать, если не хотите, чтобы компьютер начал торговать свопом. Лучше выставить лимиты в конфиге:

resources:
  max_concurrent: 2
  max_models_per_request: 3

Второе — латентность. При первом запросе к модели (холодный старт) может быть задержка в десятки секунд. Решение — держать модели в памяти постоянно, но это опять же про память. Здесь можно подглядеть, как Whisper запускают в режиме демона.

Третье — нет нативной поддержки эмбеддингов (пока). Если нужно сравнивать векторы, придётся оборачивать ручками. Зато MLX Omni Engine на Mac отлично это компенсирует.

Кому это вообще нужно?

  • Разработчикам умных домов: голосовые команды, распознавание лиц (через картинки), ответы голосом — всё в одном API.
  • Энтузиастам-самохостингерам: вместо того чтобы городить костыли с nginx и несколькими микросервисами, ставите один YAML и радуетесь.
  • Тем, кто устал от облачных провайдеров: «Чемодан без ручки» — это про локальный AI вообще. OmniRouter делает его удобным.

И да, PHP-разработчикам тоже не придётся переучиваться: HTTP API говорят на понятном всем языке.

Если бы я знал это месяц назад

Самая большая ошибка новичков — пытаться впихнуть все модели в один процесс. OmniRouter как раз и создан, чтобы этого избежать. Но есть фишка, о которой молчат документации: роутер можно подключать как промежуточный слой к Open WebUI. Просто укажите в настройках Open WebUI один эндпоинт OmniRouter, и веб-интерфейс сам не будет знать, что за ним целый зоопарк. Получается связка, как собранный локальный хаб, только ещё мощнее.

Альтернативный вариант — использовать Aventura, если вам нужна ролевая игра с генерацией картинок по ходу сюжета. Но для универсального «швейцарского ножа» OmniRouter удобнее.

Совет под занавес: начните с двух моделей — текстовой LLM и Whisper для диктовки. Когда поймёте логику, подключайте генератор изображений. И никогда не ставьте TTS рядом с LLM на одну видеокарту — оба жрут VRAM, и картинки начнут сыпаться.

Инструмент развивается прямо сейчас: на GitHub уже есть road map с поддержкой видео и встроенным эмбеддинг-сервером. Стоит следить.

Подписаться на канал