<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=200&section=header&text=Toonflow&fontSize=90&fontColor=ffffff&animation=fadeIn&fontAlignY=50" width="100%"/>

<p>
  <a href="https://github.com/HBAI-Ltd/Toonflow-app">
    <img src="https://img.shields.io/badge/GitHub-181717?style=flat-square&logo=github&logoColor=white" alt="GitHub" />
  </a>
  &nbsp;|&nbsp;
  <a href="https://gitee.com/HBAI-Ltd/Toonflow-app">
    <img src="https://img.shields.io/badge/Gitee-C71D23?style=flat-square&logo=gitee&logoColor=white" alt="Gitee" />
  </a>
  &nbsp;|&nbsp;
  <a href="https://gitcode.com/HBAI-Ltd/Toonflow-app">
    <img src="./atomgitLogo.svg" alt="Atomgit" style="height:20px"/>
  </a>
</p>

<p align="center">
  <a href="../README.md">简体中文</a> | 
  <a href="./README.zhtw.md">繁體中文</a> | 
  <a href="./README.en.md">English</a> | 
  <a href="./README.th.md">ไทย</a> | 
  <a href="./README.vi.md">Tiếng Việt</a> | 
  <a href="./README.ja.md">日本語</a> | 
  <strong>Русский</strong>
</p>

<div align="center">
  <p align="center">
    <img src="./logo.png" alt="Toonflow Logo" height="120"/>
  </p>

  <p align="center">
    <a href="https://git.io/typing-svg" target="_blank">
      <picture>
        <source media="(prefers-color-scheme: dark)" srcset="https://readme-typing-svg.demolab.com?font=Fira+Code&size=40&duration=3000&pause=1000&color=FFFFFF&center=true&vCenter=true&width=600&lines=Toonflow;AI-%D1%84%D0%B0%D0%B1%D1%80%D0%B8%D0%BA%D0%B0+%D1%81%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%BE%D0%B2;%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE+%D0%BF%D0%BE%D1%88%D0%B5%D0%B2%D0%B5%D0%BB%D0%B8+%D0%BF%D0%B0%D0%BB%D1%8C%D1%86%D0%B5%D0%BC%2C+%D1%80%D0%BE%D0%BC%D0%B0%D0%BD+%D0%BC%D0%B3%D0%BD%D0%BE%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE+%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%81%D1%8F+%D1%81%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%BE%D0%BC!" />
        <img alt="Typing SVG" src="https://readme-typing-svg.demolab.com?font=Fira+Code&size=40&duration=3000&pause=1000&color=000000&center=true&vCenter=true&width=600&lines=Toonflow;AI-%D1%84%D0%B0%D0%B1%D1%80%D0%B8%D0%BA%D0%B0+%D1%81%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%BE%D0%B2;%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE+%D0%BF%D0%BE%D1%88%D0%B5%D0%B2%D0%B5%D0%BB%D0%B8+%D0%BF%D0%B0%D0%BB%D1%8C%D1%86%D0%B5%D0%BC%2C+%D1%80%D0%BE%D0%BC%D0%B0%D0%BD+%D0%BC%D0%B3%D0%BD%D0%BE%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE+%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%81%D1%8F+%D1%81%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%BE%D0%BC!" />
      </picture>
    </a>
  </p>

  <p align="center">
    <a href="https://github.com/HBAI-Ltd/Toonflow-app/stargazers">
      <img src="https://img.shields.io/github/stars/HBAI-Ltd/Toonflow-app?style=for-the-badge&logo=github" alt="Stars Badge" />
    </a>
    <a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank">
      <img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=for-the-badge" alt="Apache-2.0 License Badge" />
    </a>
    <a href="https://github.com/HBAI-Ltd/Toonflow-app/releases">
      <img alt="release" src="https://img.shields.io/github/v/release/HBAI-Ltd/Toonflow-app?style=for-the-badge" />
    </a>
  </p>
  <p align="center">
    <a href="https://github.com/HBAI-Ltd/Toonflow-app/network/members">
      <img src="https://img.shields.io/github/forks/HBAI-Ltd/Toonflow-app?style=for-the-badge&logo=github&color=orange" alt="Forks Badge" />
    </a>
    <a href="https://atomgit.com/HBAI-Ltd/Toonflow-app">
      <img src="https://img.shields.io/badge/AtomGit-G--Star%20No.540-FF6B35?style=for-the-badge&logo=git&logoColor=white" alt="AtomGit G-Star No.540" />
    </a>
    <a href="https://discord.gg/HEjKmpNpAZ">
      <img src="https://img.shields.io/badge/Discord-Community-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" />
    </a>
  </p>
  <p align="center">
    <a href="https://github.com/HBAI-Ltd/Toonflow-app/issues">
      <img src="https://img.shields.io/github/issues/HBAI-Ltd/Toonflow-app?style=for-the-badge&color=F48D73" alt="Issues" />
    </a>
    <a href="https://github.com/HBAI-Ltd/Toonflow-app/graphs/contributors">
      <img src="https://img.shields.io/github/contributors/HBAI-Ltd/Toonflow-app?style=for-the-badge&color=2088FF" alt="Contributors" />
    </a>
    <a href="https://github.com/HBAI-Ltd/Toonflow-app/commits">
      <img src="https://img.shields.io/github/last-commit/HBAI-Ltd/Toonflow-app?style=for-the-badge&color=blueviolet" alt="Last Commit" />
    </a>
  </p>
  <p align="center">
    <img src="https://ziadoua.github.io/m3-Markdown-Badges/badges/TypeScript/typescript2.svg" alt="TypeScript" />&nbsp;
    <img src="https://ziadoua.github.io/m3-Markdown-Badges/badges/NodeJS/nodejs2.svg" alt="Node.js" />&nbsp;
    <img src="https://ziadoua.github.io/m3-Markdown-Badges/badges/Docker/docker2.svg" alt="Docker" />&nbsp;
    <img src="https://ziadoua.github.io/m3-Markdown-Badges/badges/Electron/electron2.svg" alt="Electron" />
  </p>
  <p align="center">
    <img src="https://mobaicons.com/icons/typescript,nodejs,electron,docker,socket?perline=5" alt="Tech Stack Icons" />
  </p>
  
  > 🚀 **Комплексная платформа для создания сериалов**: от текста до персонажей, от раскадровки до видео — полный AI-конвейер с нулевым порогом входа, повышающий эффективность творчества в 10+ раз!
</div>

<div align="center">
  <table>
    <tr>
      <td width="50%" align="center">
        <a href="./g-star.png" target="_blank">
          <img src="./g-star.png" alt="AtomGit G-Star 认证证书" width="100%"/>
        </a>
      </td>
      <td width="50%" align="center">
        GVP - Gitee Самый ценный проект с открытым исходным кодом
      </td>
    </tr>
  </table>
</div>

---

# 🌐 Многоязычная поддержка

Toonflow поддерживает интерфейс на следующих языках:

| Язык                    | Language              |
| ----------------------- | --------------------- |
| 简体中文                | Chinese (Simplified)  |
| 繁體中文                | Chinese (Traditional) |
| English                 | English               |
| ไทย                     | Thai                  |
| Tiếng Việt              | Vietnamese            |
| 日本語                  | Japanese              |
| Русский                 | Russian               |

> 💡 Скоро будут добавлены другие языки. Приветствуется помощь с переводами!

---

# 🌟 Основные функции

Toonflow — это AI-рабочее место для производства сериалов, выстроенное вокруг полного цикла «планирование → сценарий → раскадровка → вывод», с поддержкой локализации, программируемости и непрерывной итерации.

- ✅ **Бесконечный холст для производства**  
  Организация сценариев, персонажей, раскадровок, материалов и видеоузлов в формате бесконечного холста со свободным редактированием, возможностью отката и параллельным производством, без ограничений линейными шагами.
- ✅ **Трёхуровневая система Agent-взаимодействия**  
  Совместная работа уровня принятия решений, уровня исполнения и уровня контроля, охватывающая декомпозицию задач, генерацию контента, проверку качества и обратную связь для повышения стабильности и согласованности результатов.
- ✅ **Персистентная память Agent**  
  Межсессионная система памяти на основе локального векторного поиска ONNX с поддержкой краткосрочных сообщений, долгосрочных сводок и семантического поиска для обеспечения непрерывности многораундового творчества.
- ✅ **Программируемая система провайдеров**  
  Поддержка написания TypeScript-логики провайдера непосредственно в центре настроек с мгновенным вступлением в силу, без изменения исходного кода или перезапуска, для лёгкой кастомизации и подключения множества моделей.
- ✅ **Адаптация на основе графа событий глав**  
  Автоматическое извлечение и структурированное хранение событий глав оригинального произведения; адаптация сценария с точным вызовом контекста по графу событий для уменьшения потери информации в длинных текстах.
- ✅ **Конфигурация навыков (Skill) в файлах**  
  Ключевые промпты ScriptAgent и ProductionAgent вынесены в Markdown-файлы навыков с поддержкой онлайн-редактирования и быстрой настройки.

---

# 📦 Сценарии применения

- Создание коротких видеороликов
- Эксперименты по экранизации романов
- Инструменты AI-адаптации литературы
- Разработка сценариев и быстрое прототипирование
- Генерация видеоматериалов

---

# 🔰 Руководство по использованию

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

1. Запустите приложение и войдите (учётные данные по умолчанию: `admin` / `admin123`).
2. В центре настроек выполните конфигурацию провайдеров моделей (текстовые/изображения/видеомодели).
3. Создайте новый проект и импортируйте оригинальное произведение, выполните извлечение событий глав.
4. Перейдите в ScriptAgent для генерации сюжетного каркаса, стратегии адаптации и структурированного сценария.
5. Переключитесь в ProductionAgent для организации раскадровок, материалов и видеоузлов на бесконечном холсте.
6. Выполните узловую точную настройку изображений раскадровки, после чего верните их на рабочее место для склейки видео и экспорта.

## 📺 Видеоурок

https://www.bilibili.com/video/BV1oXD7BqEqJ
[![Toonflow 12 分钟快速上手 AI 视频](./videoCover.jpg)](https://www.bilibili.com/video/BV1oXD7BqEqJ)

**Toonflow: быстрый старт с AI-видео за 12 минут**
👉 [Нажмите для просмотра](https://www.bilibili.com/video/BV1oXD7BqEqJ)

📱 Отсканируйте QR-код в WeChat для просмотра

<img src="./videoQR.png" alt="微信扫码观看" width="150"/>

---

# 📸 Скриншоты и видео демонстрации

Следующие скриншоты и видео взяты из AI-сериала-демо, созданного с помощью Toonflow. Весь процесс занял около 2 часов, включая генерацию сценария, создание раскадровки и монтаж.

<div align="center">
<table>
  <tr>
    <td width="50%"><a href="./screenshot/1.png" target="_blank"><img src="./screenshot/1.png" width="100%"/></a></td>
    <td width="50%"><a href="./screenshot/2.png" target="_blank"><img src="./screenshot/2.png" width="100%"/></a></td>
  </tr>
  <tr>
    <td width="50%"><a href="./screenshot/3.png" target="_blank"><img src="./screenshot/3.png" width="100%"/></a></td>
    <td width="50%"><a href="./screenshot/4.png" target="_blank"><img src="./screenshot/4.png" width="100%"/></a></td>
  </tr>
  <tr>
    <td width="50%"><a href="./screenshot/5.png" target="_blank"><img src="./screenshot/5.png" width="100%"/></a></td>
    <td width="50%"><a href="./screenshot/6.png" target="_blank"><img src="./screenshot/6.png" width="100%"/></a></td>
  </tr>
  <tr>
    <td width="50%"><a href="./screenshot/7.png" target="_blank"><img src="./screenshot/7.png" width="100%"/></a></td>
    <td width="50%"><a href="./screenshot/8.png" target="_blank"><img src="./screenshot/8.png" width="100%"/></a></td>
  </tr>
  <tr>
    <td width="50%"><a href="./screenshot/9.png" target="_blank"><img src="./screenshot/9.png" width="100%"/></a></td>
    <td width="50%"><a href="./screenshot/10.png" target="_blank"><img src="./screenshot/10.png" width="100%"/></a></td>
  </tr>
</table>
</div>

## 🎬 Демо-видео

<div align="center">

https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9

Если видео не воспроизводится, [скачайте его](./screenshot/demo.mp4)

</div>

## Информация о демо

| Параметр            | Значение                        |
| :------------------ | :------------------------------ |
| Время производства  | Около 2 часов                   |
| Видеомодель         | Seedance 2.0                    |
| Модель изображений  | GPT Image 2                     |
| Языковая модель     | Claude Opus 4.6                 |
| Общая длительность  | Около 2 минут (исходно 3 мин, вырезано около 1 мин неудачных дублей) |

## Детализация затрат

| Тип модели         | Стоимость   |
| :----------------- | :---------- |
| Языковая модель    | ~ ¥10       |
| Видеомодель (полная генерация) | ~ ¥120 |
| Модель изображений | менее ¥1    |
| **Итого**          | **~ ¥130**  |

> **Примечание**: Исходное разрешение демо — 1080×1882, опубликованная версия сжата до 480p. В случае нарушения авторских прав просьба свяжитесь с нами для удаления.

---

# 🚀 Установка

## Предварительные требования

Перед установкой и использованием программного обеспечения подготовьте следующее:

- ✅ Адрес API-интерфейса большой языковой модели AI
- ✅ Адрес API-интерфейса видеосервиса Sora или Doubao
- ✅ API-интерфейс сервиса генерации изображений Nano Banana Pro

## Локальная установка

### 1. Загрузка и установка

| Операционная система | GitHub                                                       | Примечание                  |
| :------------------: | :----------------------------------------------------------- | :-------------------------- |
|       Windows        | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Официальный установочный пакет |
|        Linux         | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Официальный установочный пакет |
|        macOS         | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Официальный установочный пакет |

> [!CAUTION]
> Пользователям MacOS необходимо перейти в Настройки → Конфиденциальность и безопасность, чтобы настроить безопасность, иначе приложение может не открыться из-за проблем с сертификатом.
>
> Справочная статья на Zhihu: [https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)

> Из-за ограничений среды Gitee OS и ограничений на размер загружаемых файлов Release, ссылки для скачивания с Gitee Release временно не предоставляются.

### 2. Запуск сервиса

После завершения установки запустите программу, чтобы начать использование.

> ⚠️ **Первый вход**  
> Логин: `admin`  
> Пароль: `admin123`

## Развёртывание через Docker

### Предварительные требования

- Установлен [Docker](https://docs.docker.com/get-docker/) (версия 20.10+)

### Способ 1: Онлайн-развёртывание

В разработке. Пока используйте локальную сборку.

### Способ 2: Локальная сборка

Соберите проект из исходного кода. Подходит для разработчиков или пользователей, уже клонировавших репозиторий. Для этого требуется локально установленный git:

```shell
# Клонируйте проект (пропустите, если уже есть)
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
cd Toonflow-app

# Локальная сборка и запуск через docker-compose
yarn docker:local

# Или соберите вручную
docker build -t toonflow .
docker run -d -p <локальный_порт>:10588 -v <локальный_путь_данных>:/app/data toonflow

# После этого страница будет доступна по пути /index.html на соответствующем порту
# Например: http://localhost:10588/index.html
```

### Описание портов сервиса

| Порт     | Назначение       | Маппинг при развёртывании |
| -------- | ---------------- | ------------------------- |
| `10588`  | Веб-интерфейс    | `10588:10588`             |

**Описание переменных окружения:**

| Переменная | Описание                                           |
| ---------- | -------------------------------------------------- |
| `NODE_ENV` | Среда выполнения, `prod` — производственная среда  |
| `PORT`     | Порт прослушивания сервиса (по умолчанию 10588)    |
| `OSSURL`   | Адрес доступа к файловому хранилищу для статики    |

---

## Облачное развёртывание

### 1. Требования к серверу

- **ОС**: Ubuntu 20.04+ / CentOS 7+
- **Node.js**: 24.x (рекомендуется, минимум 23.11.1+)
- **Память**: 2GB+

### 2. Развёртывание на сервере

#### 1. Установка окружения

```bash
# Установка Node.js
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 24
# Установка Yarn и PM2
npm install -g yarn pm2
```

#### 2. Развёртывание проекта

**Клонирование с GitHub:**

```bash
cd /opt
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
cd Toonflow-app
yarn install
yarn build
```

**Клонирование с Gitee (рекомендуется для Китая):**

```bash
cd /opt
git clone https://gitee.com/HBAI-Ltd/Toonflow-app.git
cd Toonflow-app
yarn install
yarn build
```

#### 3. Настройка PM2

Создайте файл `pm2.json`:

```json
{
  "name": "toonflow-app",
  "script": "data/serve/app.js",
  "instances": "max",
  "exec_mode": "cluster",
  "env": {
    "NODE_ENV": "prod",
    "PORT": 10588,
    "OSSURL": "http://127.0.0.1:10588/"
  }
}
```

**Описание переменных окружения:**

| Переменная | Описание                                           |
| ---------- | -------------------------------------------------- |
| `NODE_ENV` | Среда выполнения, `prod` — производственная среда  |
| `PORT`     | Порт прослушивания сервиса                         |
| `OSSURL`   | Адрес доступа к файловому хранилищу для статики    |

---

#### 4. Запуск сервиса

```bash
pm2 start pm2.json
pm2 startup
pm2 save
```

#### 5. Часто используемые команды

```bash
pm2 list              # Просмотр процессов
pm2 logs toonflow-app # Просмотр логов
pm2 restart all       # Перезапуск сервиса
pm2 monit             # Панель мониторинга
```

> ⚠️ **Первый вход**  
> Логин: `admin`  
> Пароль: `admin123`

#### 6. Развёртывание фронтенда

Для отдельного развёртывания или кастомизации фронтенда обратитесь к репозиторию фронтенда:

- **GitHub**: [Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
- **Gitee**: [Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)

> 💡 **Примечание**: Данный репозиторий уже содержит скомпилированные фронтенд-ресурсы. Обычным пользователям не требуется отдельно развёртывать фронтенд. Репозиторий фронтенда предназначен только для разработчиков, которым нужна доработка.

---

# 🔧 Руководство по процессу разработки

> [!CAUTION]
> 🚧 **Правила отправки PR** 🚧
>
> ⛔ Ветка `master` не принимает PR ｜ ✅ Пожалуйста, отправляйте PR в ветку `develop`
>
> Приветствуется совместное участие разработчиков в создании Toonflow. Если вы заинтересованы, свяжитесь с руководителем ACT в группе общения.

## 🛠️ Технологический стек

| Категория          | Технологии                                                                               |
| ------------------ | ---------------------------------------------------------------------------------------- |
| Среда выполнения   | Node.js 23.11.1+                                                                         |
| Язык               | TypeScript 5.x                                                                           |
| Бэкенд-фреймворк   | Express 5                                                                                |
| База данных        | SQLite (better-sqlite3 / knex)                                                           |
| AI-интеграция      | Vercel AI SDK (OpenAI / Anthropic / Google / DeepSeek / Zhipu / MiniMax / Tongyi / xAI)  |
| Локальный инференс | @huggingface/transformers (ONNX)                                                         |
| Реалтайм-связь     | Socket.IO                                                                                |
| Десктопный клиент  | Electron 40                                                                              |
| Обработка изображений | Sharp                                                                                 |
| Контейнеризация    | Docker                                                                                   |

## Подготовка среды разработки

- **Node.js**: версия 23.11.1 и выше
- **Yarn**: рекомендуется в качестве менеджера пакетов

## Быстрый запуск проекта

1. **Клонирование проекта**

   **Клонирование с GitHub:**

   ```bash
   git clone https://github.com/HBAI-Ltd/Toonflow-app.git
   cd Toonflow-app
   ```

   **Клонирование с Gitee (рекомендуется для Китая):**

   ```bash
   git clone https://gitee.com/HBAI-Ltd/Toonflow-app.git
   cd Toonflow-app
   ```

2. **Установка зависимостей**

   Выполните следующую команду в корневой директории проекта для установки зависимостей:

   ```bash
   yarn install
   ```

3. **Запуск среды разработки**

   Проект состоит из **бэкенд-сервиса API** и **фронтенда**. Выберите способ запуска по необходимости:

   - **Способ 1: Запуск только бэкенда**

     ```bash
     yarn dev
     ```

     > ⚠️ Эта команда запускает только бэкенд-сервис API (порт 10588), **не включая фронтенд**. При прямом обращении к `http://localhost:10588` будут доступны только API, но не полный веб-интерфейс. Для одновременного использования фронтенда запустите его отдельно или используйте режим GUI ниже.

   - **Способ 2: Запуск Electron-клиента**

     ```bash
     yarn dev:gui
     ```

     > Эта команда одновременно запускает бэкенд и окно Electron Desktop со встроенным фронтендом — готовое решение «из коробки», не требующее дополнительных настроек. Подходит для разработчиков, желающих опробовать все функции.

   - **Способ 3: Запуск в production-режиме**

     ```bash
     yarn start
     ```

     > Запуск предварительно скомпилированного сервиса в production-режиме (требуется предварительно выполнить `yarn build`).

4. **Сборка проекта**

   - Компиляция TypeScript-файлов:

     ```bash
     yarn build
     ```

   - Сборка исполняемого файла для Windows:

     ```bash
     yarn dist:win
     ```

   - Сборка исполняемого файла для macOS:

     ```bash
     yarn dist:mac
     ```

   - Сборка исполняемого файла для Linux:

     ```bash
     yarn dist:linux
     ```

5. **Проверка качества кода**

   - Глобальная проверка синтаксиса и соответствия стандартам:

     ```bash
     yarn lint
     ```

6. **Отладочная панель AI (опционально)**

   Запуск визуального инструмента отладки AI SDK для удобства отладки AI-вызовов:

   ```bash
   yarn debug:ai
   ```

## Разработка фронтенда

Для изменения фронтенда перейдите в соответствующий репозиторий:

- **GitHub**: [Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
- **Gitee**: [Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)

После сборки фронтенда скопируйте содержимое директории `dist` в директорию `data/web` данного проекта.

## Структура проекта

```
📂 build/                    # Результаты компиляции
📂 data/                     # Данные времени выполнения
│  ├─ 📂 models/            # Локальные модели инференса (ONNX)
│  ├─ 📂 oss/               # Объектное хранилище (материалы/персонажи/сцены)
│  ├─ 📂 serve/             # Точка входа production-среды
│  ├─ 📂 skills/            # Промпты навыков Agent
│  └─ 📂 web/               # Скомпилированный фронтенд (встроенный)
📂 docs/                     # Документация
📂 env/                      # Конфигурация окружения
📂 scripts/                  # Скрипты сборки и вспомогательные скрипты
📂 src/
├─ 📂 agents/               # Модули AI Agent
│  ├─ 📂 productionAgent/   # Production Agent
│  └─ 📂 scriptAgent/       # Script Agent
├─ 📂 lib/                  # Общие библиотеки (инициализация БД, формат ответов)
├─ 📂 middleware/            # Промежуточное ПО
├─ 📂 routes/               # Модули маршрутов
│  ├─ 📂 agents/            # Управление памятью Agent
│  ├─ 📂 artStyle/          # Управление художественным стилем
│  ├─ 📂 assets/            # Управление материалами
│  ├─ 📂 assetsGenerate/    # Генерация материалов
│  ├─ 📂 cornerScape/       # Управление раскадровками
│  ├─ 📂 general/           # Общие интерфейсы
│  ├─ 📂 login/             # Аутентификация
│  ├─ 📂 migrate/           # Миграция данных
│  ├─ 📂 modelSelect/       # Выбор модели
│  ├─ 📂 novel/             # Управление романами
│  ├─ 📂 other/             # Прочие функции
│  ├─ 📂 production/        # Управление производством
│  ├─ 📂 project/           # Управление проектами
│  ├─ 📂 script/            # Генерация сценариев
│  ├─ 📂 scriptAgent/       # Интерфейс Script Agent
│  ├─ 📂 setting/           # Системные настройки
│  ├─ 📂 task/              # Управление задачами
│  └─ 📂 test/              # Тестовые интерфейсы
├─ 📂 socket/               # WebSocket-реалтайм-связь
├─ 📂 types/                # Объявления типов TypeScript
├─ 📂 utils/                # Вспомогательные функции
├─ 📄 app.ts                # Точка входа приложения
├─ 📄 core.ts               # Базовая инициализация
├─ 📄 env.ts                # Обработка переменных окружения
├─ 📄 err.ts                # Обработка ошибок
├─ 📄 logger.ts             # Модуль логирования
├─ 📄 router.ts             # Регистрация маршрутов
└─ 📄 utils.ts              # Общие утилиты
📄 Dockerfile                # Файл сборки Docker
📄 electron-builder.yml      # Конфигурация сборки Electron
📄 skillList.json            # Список навыков
📄 LICENSE                   # Лицензия (Apache-2.0)
📄 NOTICES.txt               # Уведомления о сторонних зависимостях
📄 package.json              # Конфигурация проекта
📄 tsconfig.json             # Конфигурация TypeScript
```

---

# 🔗 Связанные репозитории

| Репозиторий      | Описание                                        | GitHub                                             | Gitee                                            |
| ---------------- | ----------------------------------------------- | -------------------------------------------------- | ------------------------------------------------ |
| **Toonflow-app** | Полный клиент (данный репозиторий, рекомендуется обычным пользователям) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
| **Toonflow-web** | Исходный код фронтенда (для фронтенд-разработчиков) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-web) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-web) |

> 💡 **Подсказка**: Если вы просто хотите использовать Toonflow, скачайте клиент из этого репозитория. Репозиторий фронтенда предназначен только для разработчиков, которым требуется доработка или кастомизация интерфейса.

---

# 👨‍👩‍👧‍👦 Группа в WeChat

Помощник для добавления в группу:

<img src="./QR.png" alt="Toonflow QR" height="400"/>

Вы также можете присоединиться к Discord, нажав на иконку:

[![Join our Discord](https://cdn.prod.website-files.com/6257adef93867e50d84d30e2/67d00cf7266d2c75571aebde_Example.svg)](https://discord.gg/HEjKmpNpAZ)

Или перейдя по ссылке-приглашению: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)

---

# 💌 Контакты

📧 Эл. почта: [ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=Toonflow咨询)

---

# 📜 Лицензия

Toonflow распространяется с открытым исходным кодом по лицензии Apache-2.0 с дополнительным коммерческим соглашением.

Подробности лицензии: https://www.apache.org/licenses/LICENSE-2.0

## Дополнительное соглашение

- Если данное программное обеспечение распространяется в виде продукта **двум и более независимым третьим сторонам**, необходимо получить **письменное коммерческое разрешение** от HBAI-Ltd.
- **Совместное внутреннее использование ≤ 5 юридическими лицами** без предоставления услуг внешним сторонам считается внутренним использованием и **не требует разрешения**.
- Запрещается удалять или изменять идентификационные знаки и информацию об авторских правах Toonflow.

## Сценарии постоянного бесплатного использования

- ✅ Создание контента с помощью Toonflow и получение дохода от платформы
- ✅ Доработка для внутреннего использования в своей команде
- ✅ Совместное внутреннее использование ≤ 5 юридическими лицами
- ✅ Личное обучение, исследования, некоммерческое использование

## Цены на коммерческое лицензирование

| Этап           | Годовой объём продаж | Годовая плата  |
| -------------- | -------------------- | -------------- |
| 🌱 Поддержка   | < ¥100 000           | **Бесплатная лицензия по запросу** |
| 🚀 Старт       | ¥100 000 – 500 000   | ¥5 000/год     |
| 📈 Рост        | ¥500 000 – 1 500 000 | ¥20 000/год    |
| 🏢 Масштабирование | ¥1 500 000 – 5 000 000 | ¥80 000/год    |
| 🌐 Корпоративный | > ¥5 000 000       | Обсуждается    |

> **Положение о неретроактивности**: Пользователи, использовавшие программное обеспечение на условиях AGPL-3.0 до выхода версии v1.0.8, продолжают действовать в соответствии с AGPL-3.0 и не подпадают под действие изменений данного соглашения.

Полный текст соглашения см. в файле [LICENSE](./LICENSE).

---

# ⭐️ Звёзды

[![Star History Rank](https://api.star-history.com/badge?repo=HBAI-Ltd/Toonflow-app)](https://www.star-history.com/#HBAI-Ltd/Toonflow-app)

[![Star History Chart](https://api.star-history.com/svg?repos=HBAI-Ltd/Toonflow-app&type=timeline&legend=top-left)](https://www.star-history.com/#HBAI-Ltd/Toonflow-app&type=timeline&legend=top-left)

---


# 🙏 Благодарности

Благодарим следующие проекты с открытым исходным кодом за мощную поддержку Toonflow:

- [Express](https://expressjs.com/) — Быстрый, свободный и минималистичный веб-фреймворк для Node.js
- [AI SDK](https://ai-sdk.dev/) — AI-инструментарий для TypeScript
- [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3) — Высокопроизводительная библиотека привязки SQLite3
- [Sharp](https://sharp.pixelplumbing.com/) — Высокопроизводительная библиотека обработки изображений для Node.js
- [Axios](https://axios-http.com/) — HTTP-клиент на основе Promise
- [Zod](https://zod.dev/) — TypeScript-ориентированная библиотека валидации схем
- [Socket.IO](https://socket.io/) — Двунаправленный движок реалтайм-коммуникаций
- [Electron](https://www.electronjs.org/) — Кроссплатформенный фреймворк для разработки десктопных приложений
- [Hugging Face Transformers](https://huggingface.co/docs/transformers.js) — Локальная библиотека ML-инференса

Благодарим следующие организации и лица за поддержку Toonflow:

<table>
  <thead>
    <tr>
      <th align="center">Логотип</th>
      <th align="center">Название</th>
      <th align="center">Форма поддержки</th>
      <th>Описание</th>
      <th align="center">Веб-сайт</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td align="center"><img src="./sponsored/sophnet.png" alt="SuanNeng Cloud Logo" width="48"></td>
      <td align="center"><b>SuanNeng Cloud</b></td>
      <td align="center">💻 Спонсорство вычислительных мощностей</td>
      <td>Стремится создать более быструю, стабильную и экономичную универсальную платформу API-сервисов для инференса моделей.</td>
      <td align="center"><a href="https://www.sophnet.com/">Веб-сайт</a></td>
    </tr>
    <tr>
      <td align="center"><img src="./sponsored/atlascloud.png" alt="Atlas Cloud Logo" width="48"></td>
      <td align="center"><b>Atlas Cloud</b></td>
      <td align="center">💻 Спонсорство вычислительных мощностей</td>
      <td>Первая в мире универсальная мультимодальная платформа инференса. Диалог, изображения, видео, аудио — всё через единый API. Более 300 моделей, совместимость с OpenAI.</td>
      <td align="center"><a href="https://www.atlascloud.ai/">Веб-сайт</a></td>
    </tr>
    <tr>
      <td align="center"><img src="./sponsored/hunyuan.webp" alt="Tencent Hunyuan 3D Logo" width="48"></td>
      <td align="center"><b>Tencent Hunyuan 3D</b></td>
      <td align="center">🌐 Техническая поддержка мировых моделей</td>
      <td>AI-движок создания 3D-контента на основе большой модели генерации 3D Tencent Hunyuan версии 2.5 — первая в отрасли универсальная AI-платформа для создания 3D. Поддерживает генерацию 3D из текста и изображений, 3D-анимацию, генерацию текстур и многое другое, включая генерацию 3D из набросков, создание 3D-персонажей и преимущества в создании low-poly моделей.</td>
      <td align="center"><a href="https://3d.hunyuan.tencent.com/">Веб-сайт</a></td>
    </tr>
  </tbody>
</table>

Полный список сторонних зависимостей см. в файле `NOTICES.txt`

##### copyright © Beijing Ai'a Technology Co., Ltd.

<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=100&section=footer" width="100%"/>