Files
wow-design-wiki/research/self-hosted-logo-generation.md
neo 76c4c5b4fe design-systems: add 74 brand DESIGN.md files (VoltAgent/awesome-design-md)
- 74 brands: airbnb, stripe, apple, figma, linear, vercel, etc.
- 147 files: DESIGN.md + README.md per brand (~2.1 MB)
- Each DESIGN.md contains structured brand analysis (colors, typography, components)
- Updated 00-overview.md with new design-systems directory
2026-06-21 20:40:35 +05:00

30 KiB
Raw Permalink Blame History

Self-Hosted: Профессиональная генерация логотипов с помощью LLM/AI

Дата: 19 июня 2026
Контекст: Россия, без внешних сервисов, без оплаты, полностью self-hosted
Железо: RTX A2000 12GB + RTX 3080 Ti 12GB = 24GB VRAM суммарно


ОБЗОР АРХИТЕКТУРЫ

┌──────────────────────────────────────────────────────────────┐
│  SELF-HOSTED LOGO PIPELINE                                  │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│  LLM (локально)          →   Промпт-инжиниринг              │
│     Ollama + Open WebUI   →   Анализ brief, генерация      │
│                              промптов, референсный поиск    │
│                                                              │
│  ↓                                                         │
│                                                              │
│  Image Gen (локально)      →   Генерация концептов         │
│     ComfyUI + FLUX.1-dev   →   Основной генератор          │
│     + LoRA Logo-Design     →   Специализация на логотипах  │
│                                                              │
│  ↓                                                         │
│                                                              │
│  Vectorization (локально)   →   Растер → SVG               │
│     VTracer (Rust)         →   Цветной трассинг            │
│     или potracer (Python)  →   Ч/Б трассинг (Potrace)     │
│                                                              │
│  ↓                                                         │
│                                                              │
│  Post-process (локально)    →   Финализация               │
│     Inkscape CLI / Python  →   Очистка SVG, типографика   │
│                              SVG-edit, ручная доводка      │
│                                                              │
└──────────────────────────────────────────────────────────────┘

ЧАСТЬ 1: LLM ДЛЯ ПРОМПТ-ИНЖИНИРИНГА (полностью локально)

1.1 Стек

Ollama (runner) + Open WebUI (интерфейс) + локальная модель

Модели для промпт-инжиниринга:

Модель Размер VRAM Качество для задачи
Qwen2.5-32B-Instruct ~20GB (Q4) ~20GB Отличная, лучшая
Llama-3.3-70B ~40GB (Q4) ~40GB Слишком большая
Qwen2.5-7B-Instruct ~5GB ~6GB Хорошая, быстрая
Gemma-2-27B ~16GB (Q4) ~18GB Хорошая

Рекомендация: Qwen2.5-7B или 32B (Q4_K_M) для промпт-инжиниринга. Не нужна огромная модель — задача: структурировать brief и генерировать технические промпты.

1.2 Система промпт для генерации промптов логотипов

System prompt для Ollama/Open WebUI:

Ты — эксперт по логотип-дизайну и AI-генерации изображений.
Пользователь предоставит brief компании. Твоя задача:

1. Проанализировать brief и выделить:
   - Название компании
   - Отрасль и сегмент (B2B/B2C)
   - Ключевые ценности (2-4)
   - Целевая аудитория
   - Цветовые предпочтения или анти-цвета
   - Стиль (минимализм, геометрический, эмблема, etc.)
   - Конкуренты/референсы (если указаны)

2. Сгенерировать 5 детальных промптов на английском для
   генерации логотипов через Stable Diffusion / FLUX.1:

   Формат промпта:
   "A [style] logo for [company], featuring [visual element],
   [color description], clean lines, flat design, professional,
   vector style, isolated on white background"

   Дополнительно к каждому промпту:
   - Negative prompt: "text, watermark, signature, blurry,
     complex background, 3D, realistic, photograph"
   - Параметры: steps=24, cfg=3.5-5.0, sampler=DPM++ 2M Karras
   - Seed для воспроизводимости

3. Сгенерировать 3 варианта названия для слогана (если brief не содержит)

Все ответы на русском, промпты на английском.

1.3 Пример вывода

Ввод:

Компания: "ВекторПей"
Отрасль: платёжный шлюз для e-commerce
ЦА: владельцы интернет-магазинов
Ценности: скорость, надёжность, безопасность
Цвета: тёмно-синий, бирюзовый
Стиль: минималистичный геометрический

Вывод LLM:

Prompt 1 (пикторил-марк):
"A minimalist geometric logo for VektorPay, featuring an abstract
payment arrow merging into a shield shape, dark blue and teal
gradient, clean sharp lines, flat design, professional fintech
branding, isolated on white background"

Negative: "text, watermark, signature, blurry, complex background,
3D, realistic, photograph, ornate, decorative"
Parameters: steps=24, cfg=4.0, sampler=DPM++ 2M Karras

ЧАСТЬ 2: ГЕНЕРАЦИЯ ИЗОБРАЖЕНИЙ (локально)

2.1 Основной движок: FLUX.1-dev + ComfyUI

Почему FLUX, а не SDXL:

  • Лучше рендерит текст (критично для wordmark)
  • Точнее следует промпту
  • Более чистые линии и геометрия (идеально для логотипов)
  • Сообщество активно создаёт Logo-специализированные LoRA
  • Open-weight, можно запускать локально

VRAM требования:

Режим VRAM Модель
FP8 ~8GB FLUX.1-dev fp8
TF32/bf16 ~16GB FLUX.1-dev полный
+ LoRA +2-4GB Зависит от LoRA

На твоём железе (3080 Ti 12GB):

  • FP8-квантованный FLUX.1-dev: работает ✅
  • С LoRA: работает с --medvram или --max_split_size ✅
  • SDXL: работает легко ✅ (fallback)

2.2 Установка ComfyUI

# Клонирование
cd ~/projects
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Установка дополнительных node-пакетов
./install.sh
pip install ComfyUI-Manager  # менеджер кастомных нод

2.3 Установка FLUX.1-dev

# Скачивание модели через huggingface-cli (нужен access token от HF)
pip install huggingface-hub
huggingface-cli download black-forest-labs/FLUX.1-dev \
  --local-dir ~/models/FLUX.1-dev \
  --local-dir-use-symlinks False

Положить в: ComfyUI/models/unet/ или ComfyUI/models/diffusion_models/

2.4 Установка LoRA для логотипов

Shakker-Labs/FLUX.1-dev-LoRA-Logo-Design:

# Скачать LoRA-файл
huggingface-cli download Shakker-Labs/FLUX.1-dev-LoRA-Logo-Design \
  FLUX-dev-lora-Logo-Design.safetensors \
  --local-dir ~/models/loras/

# Положить в: ComfyUI/models/loras/

Использование в промпте/ноде:

pipe.load_lora_weights(
    "Shakker-Labs/FLUX.1-dev-Logo-Design",
    weight_name="FLUX-dev-lora-Logo-Design.safetensors"
)
pipe.fuse_lora(lora_scale=0.8)  # 0.3-0.8: от слабого к сильному

2.5 Кастомные ноды для ComfyUI

# Через ComfyUI Manager (встроен)
# Или вручную:

cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
git clone https://github.com/Gourieff/ComfyUI-Rebatch.git
git clone https://github.com/cubiq/ComfyUI_IPPlus_plus.git  # для text/overlay

# Для SVG-вывода:
git clone https://github.com/ImagineerNL/ComfyUI-ToSVG-Potracer.git

Ключевые ноды для воркфлоу:

  1. FluxGILongStack — эффективная генерация FLUX
  2. Impact Pack — контроль над генерацией, seed, batch
  3. ComfyUI-ToSVG-Potracer — автоматическая трассировка в SVG
  4. IPPlus_plus — наложение текста на генерации (для тестирования wordmark)

2.6 Воркфлоу ComfyUI для логотипов

Text Prompt → CLIP Text Encode (positive)
                                    │
                                    ▼
Seed ──► KSampler ──► [FLUX.1-dev + LoRA Logo] ──► Image
                                    │                        │
                                    │                   CLIP Vision
                                    │                        │
                                    ▼                        ▼
                          VAE Decode              VTracer / Potrace node
                                    │                        │
                                    └────────► Image → [SVG Encode]
                                                         │
                                                         ▼
                                                   Save SVG

Параметры генерации:

Параметр Значение Почему
Steps 20-30 Логотипу не нужно много steps
CFG Scale 3.0-5.0 Ниже чем для фотореализма
Sampler DPM++ 2M Karras Быстро и чисто для линий
Resolution 512x512 или 768x768 Квадрат = стандарт логотипа
LoRA Scale 0.6-0.8 Не перебарщивать
Batch Size 4-8 Генерить пачками

Промпт-формула для FLUX:

positive: "minimalist logo, [descriptive icon], [style keywords],
          [colors], flat design, clean lines, geometric,
          vector style, isolated on white background,
          professional branding, no text"

negative: "text, watermark, signature, letters, words, blurry,
          gradient, 3D, realistic, photograph, complex,
          ornate, shadow, background, frame, border"

2.7 Fallback: SDXL + VectorStudio

Если FLUX не влезает или не работает:

# SDXL base
huggingface-cli download stablediffusion-xl-base-1.0 \
  --local-dir ~/models/SDXL/

# VectorStudio extension для WebUI
git clone https://github.com/GeorgLegato/stable-diffusion-webui-vectorstudio.git

VectorStudio добавляет вкладку SVG-редактора прямо в WebUI. Можно рисовать векторы руками и передавать в Stable Diffusion для инпейнтинга.


ЧАСТЬ 3: ВЕКТОРИЗАЦИЯ (локально)

3.1 VTracer (рекомендуется)

VTracer — современный raster-to-SVG конвертер на Rust:

  • O(n) сложность (vs O(n²) у Potrace)
  • Цветной трассинг (Potrace только ч/б)
  • Python-библиотека: pip install vtracer
  • CLI: vtracer -i input.png -o output.svg

Установка:

# Из исходников (Rust)
git clone https://github.com/visioncortex/vtracer.git
cd vtracer
cargo build --release

# Или через Python
pip install vtracer

# Или через Docker
docker pull visioncortex/vtracer
docker run -v $(pwd):/data visioncortex/vtracer \
  -i /data/input.png -o /data/output.svg

CLI примеры:

# Авто-режим (определение цвета и пресета)
vtracer -i logo.png -o logo.svg

# Пресет "bw" — для ч/б логотипов
vtracer -i logo.png -o logo.svg -m spline -p bw

# Пресет "poster" — для графических элементов
vtracer -i logo.png -o logo.svg -m polygon -p poster

# Пресет "photo" — для фото с градиентами
vtracer -i logo.png -o logo.svg -m spline -p photo

# Ручной контроль
vtracer -i logo.png -o logo.svg \
  -m spline \
  --path_precision 4 \
  -s 15 \
  -l 0.5

3.2 Potrace (fallback)

# Установка
sudo apt install potrace
pip install potracer  # Python binding

# CLI
potrace input.png -s -o output.svg

# Python
from potracer import potrace
svg = potrace("input.png", algorithm="optical")

3.3 Сравнение

Критерий VTracer Potrace AutoTrace
Цветной трассинг ✅ ❌ (только ч/б) ❌
Скорость O(n), быстрый O(n²), медленнее O(n²)
Качество линий Отличное Лучше для сканов Среднее
Python API ✅ ✅ ❌
Rust-native ✅ ❌ ❌
Установка Cargo / pip apt / pip apt

Вывод: VTracer — лучший выбор для AI-генерированных логотипов (цветные, растровые изображения от FLUX/SDXL).


ЧАСТЬ 4: ПОСТПРОЦЕССИНГ И ФИНАЛИЗАЦИЯ

4.1 SVG-редактирование (CLI)

# Inkscape (бесплатный векторный редактор)
sudo apt install inkscape

# Очистка SVG (удаление дубликатов, упрощение путей)
inkscape --actions="select-all;object-unpath;paths-combine;object-unpath" \
  input.svg -o cleaned.svg

# Упрощение путей (reduce nodes)
inkscape input.svg --verb=EditSelectAll --verb=EditGroup \
  --verb=PathSimplify --verb=FileSave --verb=FileClose

# Конвертация в EPS/PDF
inkscape input.svg -o output.pdf
inkscape input.svg -o output.eps

# Извлечение отдельных путей
inkscape input.svg --verb=SelectAll --verb=EditUnGroupAll

4.2 Python-обработка SVG

#!/usr/bin/env python3
"""Логотип-постпроцессор: очистка SVG, нормализация"""
import os
import re
import sys

try:
    import svgelements as svg  # pip install svgelements
except ImportError:
    print("pip install svgelements")
    sys.exit(1)


def clean_svg(input_path, output_path, max_nodes=500):
    """Удаление лишнего, упрощение"""
    # Чтение
    svg_doc = svg.read(input_path)

    # Группировка
    svg_doc.group()

    # Упрощение (если svg-elements поддерживает)
    svg_doc.write(output_path)
    print(f"Cleaned: {output_path}")


def extract_colors(svg_path):
    """Извлечь цветовую палитру из SVG"""
    with open(svg_path) as f:
        content = f.read()

    colors = re.findall(r'#[A-Fa-f0-9]{6}', content)
    # Уникальные
    palette = list(dict.fromkeys(colors))  # сохранить порядок
    print(f"Palette: {palette[:5]}")
    return palette[:5]


def normalize_size(svg_path, output_path, target=512):
    """Нормализовать размер SVG"""
    svg_doc = svg.read(svg_path)
    svg_doc.size = (target, target)
    svg_doc.write(output_path)

4.3 Ручная доводка: когда AI не справился

AI-логотипы почти всегда требуют ручной доводки. На твоём железе:

  1. Inkscape — бесплатный векторный редактор с GUI
  2. SVG-Edit — веб-редактор (встроен в VectorStudio extension)
  3. Rozys — лёгкий векторный редактор для Linux

Типичные ручные операции:

  • Выравнивание и симметрия
  • Корректировка узлов (node editing)
  • Замена AI-текста на настоящий шрифт
  • Создание вариаций (inverted, single-color, favicon)
  • Определение clear space и минимальных размеров

ЧАСТЬ 5: ПОЛНЫЙ РАБОЧИЙ ПРОЦЕСС

5.1 Пошаговый алгоритм

ШАГ 1: Brief → Промпты (Ollama + Open WebUI)
  $ ollama run qwen2.5:7b
  # Загрузить систему промпт (см. секцию 1.2)
  # Получить 5-10 промптов

ШАГ 2: Генерация концептов (ComfyUI + FLUX.1-dev)
  $ cd ~/projects/ComfyUI
  $ source venv/bin/activate
  $ python main.py --port 8188 --lowvram  # или --medvram
  # Открыть http://localhost:8188
  # Загрузить workflow (см. секцию 2.6)
  # Загрузить LoRA Logo-Design
  # Сгенерировать 50-100 концептов (batch x 4-8)
  # Выбрать лучшие 5-10

ШАГ 3: Векторизация (VTracer)
  $ for img in best_logo_*.png; do
      vtracer -i "$img" -o "${img%.png}.svg" -m spline -p bw
    done

ШАГ 4: Постпроцессинг (Inkscape CLI + Python)
  $ python3 svg_postprocess.py best_logo_1.svg --clean --normalize

ШАГ 5: Ручная доводка (Inkscape GUI)
  $ inkscape best_logo_1_cleaned.svg
  # - Выравнивание, узлы
  # - Замена текста на шрифт (Google Fonts: local install)
  # - Создание вариаций
  # - Экспорт: SVG, PDF, EPS, PNG (16px → 2048px)

ШАГ 6: Тестирование
  # Проверить на разных размерах: 16px, 32px, 64px, 256px, 512px
  # Инверсия: белое на чёрном, чёрное на белом
  # Один цвет: чёрный на белом (для гравировки)

5.2 Готовый bash-скрипт-оркестратор

#!/bin/bash
# generate-logos.sh — Полный self-hosted воркфлоу
set -euo pipefail

BRIEF="$1"
OUTDIR="${2:-./logo-output}"
MODEL="${3:-qwen2.5:7b}"

mkdir -p "$OUTDIR"/{prompts,generations,vectors,final}

echo "=== Step 1: Generate prompts via Ollama ==="
python3 << PYEOF
import subprocess, json

brief = "$BRIEF"
result = subprocess.run([
    "ollama", "run", "$MODEL",
], input=f"""System prompt:
Ты — эксперт по логотип-дизайну. Проанализируй brief и сгенерируй
5 детальных промптов на английском для генерации логотипов.

Формат каждого промпта:
Prompt N: [промпт]
Negative: [негативный промпт]
Steps: N | CFG: N.N | Sampler: DPM++ 2M Karras

Brief: {brief}

Верни результат в формате JSON:
[{{"prompt": "...", "negative": "...", "steps": 24, "cfg": 4.0}}, ...]
""", capture_output=True, text=True)

parsed = json.loads(result.stdout)
with open("$OUTDIR/prompts/prompts.json", "w") as f:
    json.dump(parsed, f, indent=2)
for p in parsed:
    print(f"✓ {p['prompt'][:80]}...")
PYEOF

echo "=== Step 2: Launch ComfyUI ==="
cd ~/projects/ComfyUI
source venv/bin/activate
python main.py --port 8188 --lowvram &
COMFY_PID=$!
sleep 3
echo "ComfyUI запущен на http://localhost:8188"
echo "Открой веб-интерфейс и загрузи workflow"
echo "Нажми Enter после завершения генерации..."
read
kill $COMFY_PID 2>/dev/null || true

echo "=== Step 3: Vectorize best generations ==="
for img in "$OUTDIR/generations"/best_*.png; do
    [ -f "$img" ] || continue
    base=$(basename "$img" .png)
    vtracer -i "$img" -o "$OUTDIR/vectors/${base}.svg" -m spline -p bw
    echo "✓ Vectorized: $base"
done

echo "=== Step 4: Post-process SVGs ==="
for svg in "$OUTDIR/vectors"/*.svg; do
    base=$(basename "$svg")
    python3 svg_postprocess.py "$svg" -o "$OUTDIR/final/${base}"
done

echo "=== Done! ==="
echo "Results in: $OUTDIR/final/"
echo "Open with: inkscape $OUTDIR/final/filename.svg"

ЧАСТЬ 6: ДОПОЛНИТЕЛЬНЫЕ ИНСТРУМЕНТЫ

6.1 Локальная база референсов

# Загрузка референсных логотипов (для промпт-инжиниринга)
# Скачивание логотипов конкурентов и анализ стиля

# Создание каталога стилей
mkdir -p ~/models/logo-styles/
# Каждый подкаталог: минимализм, эмблема, wordmark, пикторил, герб

6.2 Локальные шрифты

# Google Fonts — бесплатные, можно скачать локально
# Рекомендуемые для финтех/SaaS:
# - Inter (googlefonts.github.io/inter)
# - SF Pro Alternative: Inter, Plus Jakarta Sans
# - Геометрический: Montserrat, Poppins
# - Моноширинный: JetBrains Mono (для dev-инструментов)

mkdir -p ~/.local/share/fonts/google
unzip -j Inter-*.zip "fonts/ttf/Inter-Regular.ttf" "fonts/ttf/Inter-Bold.ttf"
fc-cache -fv

6.3 Batch-генерация стилей

# Генерация логотипов в разных стилях параллельно
for style in minimalist geometric emblem wordmark modern; do
    (
        python3 generate_style.py \
            --style "$style" \
            --company "VektorPay" \
            --output "styling/$style/" \
            --model flux1-dev \
            --lora logo-design \
            --count 20
    ) &
done
wait

ЧАСТЬ 7: ТРЮКИ И СЕКРЕТЫ

7.1 Как получить чистый минималистичный логотип

# Ключевые слова в positive prompt:
"flat design, solid color, no shading, no gradient, no 3D,
no shadow, no highlight, clean geometry, simple shapes,
minimal detail, bold lines, high contrast, white background"

# Ключевые слова в negative prompt:
"gradient, shadow, 3D, realistic, photograph, text, watermark,
blurry, complex, ornate, decorative, frame, border, background,
noise, grain, texture"

7.2 Улучшение качества векторизации

# Предварительная обработка: увеличить контраст
convert input.png -contrast-stretch 5% -negate -threshold 10% preprocessed.png

# Векторизация с оптимальными параметрами
vtracer -i preprocessed.png -o output.svg \
  -m spline \
  -p bw \
  --path_precision 4 \
  -s 20 \
  -l 0.3

# Упрощение (если много узлов)
vtracer -i input.png -o output.svg \
  -m pixel \
  -p bw \
  -l 1.0  # грубый, меньше узлов

7.3 Обход проблемы текста в FLUX

# FLUX.1-dev генерирует текст, но он нечитаем. Решение:

1. Генерировать БЕЗ текста (--no text в промпте)
2. Создать чистый графический знак (pictorial mark)
3. Wordmark добавить вручную в Inkscape:
   - Импортировать SVG-икону
   - Добавить текст шрифтом (Inter, JetBrains Mono)
   - Настроить трекинг/виржинг
   - Группировать и экспортировать

# Это профессиональный подход: AI делает иконку, человек — типографику

7.4 Работа с ограниченным VRAM

# Командная строка ComfyUI для 12GB VRAM:
python main.py --port 8188 --lowvram --force.fp16

# Параметры для экономии VRAM:
# --force.fp16        → float16 (экономит ~30% VRAM)
# --lowvram           → агрессивное выгружение в CPU
# --medvram           → баланс между CPU и GPU
# --cpu               → CPU mode (очень медленно, fallback)

# FLUX.1-dev fp8 — квантованная версия (меньше качество, но меньше VRAM)
huggingface-cli download black-forest-labs/FLUX.1-dev \
  --include "flux-v1-fp8.safetensors" \
  --local-dir ~/models/FLUX.1-dev-fp8/

7.5 Оптимизация LoRA для логотипов

# В воркфлоу ComfyUI, при использовании LoRA:
# - lora_scale=0.3 для тонкой настройки стиля
# - lora_scale=0.6 для среднего влияния
# - lora_scale=0.8 для сильного влияния (может переборщить)
#
# Для чистых минималистичных логотипов лучше 0.3-0.5
# Для более "художественных" — 0.6-0.8

ЧАСТЬ 8: АЛЬТЕРНАТИВНЫЕ ПОДХОДЫ

8.1 OmniSVG (NeurIPS 2025)

OmniSVG — первый end-to-end генератор SVG, который НЕ генерирует растр:

  • Генерирует непосредственно SVG-код через VLM
  • Параметризует команды SVG как дискретные токены
  • Может генерировать сложные векторы напрямую

Плюсы: Настоящий SVG на выходе, нет стадии трассировки Минусы: Требует VLM (большая модель, ~7B+), экспериментальный, может быть нестабильным для простых логотипов

Установка:

git clone https://github.com/OmniSVG/OmniSVG.git
cd OmniSVG
pip install -e .
# Требуется PyTorch + transformers

8.2 SDXL + SVGStud.io fine-tune

SVGStud.io — SDXL, дообученный на генерацию изображений, оптимизированных для последующей векторизации.

Подход: Генерируем с прицелом на чистую векторизацию:

  • Минимум деталей
  • Чёткие границы
  • Ограниченная палитра (3-5 цветов)
  • Высокий контраст

8.3 Полный Python-пайплайн (без GUI)

#!/usr/bin/env python3
"""Self-hosted logo generation pipeline"""

from pathlib import Path
import subprocess
import json
import torch
import os

# 1. LLM prompt generation
def generate_prompts(brief: str, model_name: str = "qwen2.5:7b") -> list:
    result = subprocess.run(
        ["ollama", "run", model_name],
        input=f"""Ты — эксперт по логотипам. Сгенерируй 5 промптов:
Brief: {brief}
Формат JSON: [{{"prompt": "...", "negative": "..."}}, ...]""",
        capture_output=True, text=True
    )
    return json.loads(result.stdout)

# 2. Image generation via ComfyUI API
def generate_with_comfyui(prompt: str, output_path: str, cfg: float = 4.0):
    import requests
    # Отправить промпт через ComfyUI API
    # Загрузить workflow JSON с FLUX + LoRA
    # Запустить генерацию
    # Скачать результат
    pass

# 3. Vectorization
def vectorize(input_path: Path, output_path: Path, mode="spline"):
    subprocess.run([
        "vtracer", "-i", str(input_path),
        "-o", str(output_path), "-m", mode, "-p", "bw"
    ])

# 4. Post-process
def postprocess_svg(svg_path: Path, output_path: Path):
    subprocess.run([
        "inkscape", "--actions",
        "select-all;object-unpath;paths-combine;path-simplify",
        str(svg_path), "-o", str(output_path)
    ])

СВОДНАЯ ТАБЛИЦА СТЕКА

Компонент Инструмент Установка VRAM Лицензия
LLM Ollama + Qwen2.5-7B curl -fsSL https://ollama.com/install.sh | sh 6GB Apache 2.0
LLM UI Open WebUI Docker / pip 0 AGPL-3.0
Image Gen ComfyUI + FLUX.1-dev pip + huggingface-cli 8-16GB FLUX dev license
Logo LoRA Shakker-Labs Logo-Design huggingface-cli +2GB FLUX dev license
Vectorize VTracer cargo / pip / docker 0 Apache 2.0
Editor Inkscape apt / flatpak 1GB (RAM) GPL-3.0
Fonts Google Fonts (local) ручная загрузка 0 SIL OFL
SVG Process Python svgelements pip 0 MIT

ЗАКЛЮЧЕНИЕ

Идеальный self-hosted стек для России (2026):

1. Ollama (Qwen2.5-7B) → промпты для логотипов
2. ComfyUI + FLUX.1-dev-fp8 + Logo-Design LoRA → генерация
3. VTracer → векторизация
4. Inkscape → финальная доводка
5. Google Fonts (локально) → профессиональная типографика

Ожидаемый результат:

  • 50-100 AI-концептов за 1-2 часа на 3080 Ti
  • 5-10 лучших в векторе (SVG)
  • 2-3 финальных варианта после ручной доводки (1-2 часа)
  • Полная палитра: SVG, PDF, EPS, PNG (16px → 2048px), чёрная версия

Итого время: 1 день на полный цикл (brief → финальный логотип) Стоимость: 0₽ (все инструменты open source)