Skip to content

Latest commit

 

History

History
221 lines (161 loc) · 14.2 KB

README.ru.md

File metadata and controls

221 lines (161 loc) · 14.2 KB

Flux-API-Worker - README 📘🎨🤖

English | 简体中文 | 繁體中文 | 日本語 | Español | Français | Русский | Deutsch

Введение 🌟💡

Flux-API-Worker - это сервис генерации изображений с помощью ИИ, развернутый на Cloudflare Worker. Он использует модель Flux, предоставляемую Cloudflare, для создания изображений и предлагает эффективный API-интерфейс для обработки запросов. Этот сервис можно легко интегрировать в различные приложения, предоставляя пользователям мощные возможности генерации изображений с помощью ИИ. ✨🖼️🚀

Особенности 🚀🌈

  • 🎨 Поддержка пользовательских подсказок для генерации изображений
  • 🌐 Опциональная функция оптимизации запросов
  • 📐 Поддержка различных предустановленных размеров и соотношений сторон изображений
  • 💾 Хранение сгенерированных изображений с использованием Cloudflare KV
  • 🔄 Поддержка потоковых и непотоковых ответов
  • 🔒 Встроенные системные сообщения для обеспечения стабильного качества вывода
  • 🌍 Поддержка Cross-Origin Resource Sharing (CORS)

Быстрый старт 🏃‍♂️💨

Развертывание в Cloudflare Dashboard 🖥️🛠️

  1. Войдите в свою учетную запись Cloudflare и перейдите на страницу Workers. 👨‍💻👩‍💻
  2. Нажмите кнопку "Создать сервис". 🆕
  3. Назовите ваш Worker, например, "flux-api". ✏️
  4. Вставьте предоставленный код Worker в редактор. 📋
  5. Нажмите кнопку "Сохранить и развернуть". 🚀

Настройка переменных окружения ⚙️🔧

На странице настроек Worker найдите раздел "Переменные окружения" и добавьте следующие переменные:

Список переменных окружения 📋🔑

Имя переменной Описание Тип Пример По умолчанию
API_KEY Ключ аутентификации API 🔐 Строка "ваш-сложный-ключ-api" -
CF_ACCOUNT_ID ID аккаунта Cloudflare 🆔 Строка "1a2b3c4d5e6f7g8h9i0j" -
CF_API_TOKEN Токен API Cloudflare 🎟️ Строка "ваш-токен-api-cloudflare" -
PROMPT_OPTIMIZATION Включить оптимизацию запроса 🌐 Строка "true" или "false" -
EXTERNAL_API_BASE Базовый URL внешнего API 🔗 Строка "https://api.external-service.com" -
EXTERNAL_MODEL Название внешней модели оптимизации 🤖 Строка "gpt-3.5-turbo" -
EXTERNAL_API_KEY Ключ доступа к внешнему API 🗝️ Строка "ваш-внешний-ключ-api" -
FLUX_NUM_STEPS Количество шагов модели Flux 🚶 Целое число "4" 4
IMAGE_EXPIRATION Время хранения изображений в KV (в секундах) ⏳ Целое число "1800" 1800

Убедитесь, что правильно настроили эти переменные в настройках переменных окружения Cloudflare Worker. Для переменных с значениями по умолчанию, если изменения не требуются, можно оставить настройки по умолчанию. 🔧✅

Примечание: Для обеспечения безопасности установите сложную строку для API_KEY. Она будет использоваться для проверки подлинности вызовов API. 🔒🛡️

Создание пространства имен KV 🗄️📦

  1. В панели управления Cloudflare перейдите на страницу "Workers". 🖥️
  2. Нажмите на вкладку "KV". 📑
  3. Создайте новое пространство имен и назовите его "FLUX_CF_KV". 🆕
  4. В настройках Worker привяжите это пространство имен KV к переменной FLUX_CF_KV. 🔗

Конечные точки API и функциональность 🌐🛠️

1. Страница приветствия 👋

При доступе к корневому пути Worker (https://<имя_вашего_worker>.<ваш_поддомен>.workers.dev/) будет отображаться страница приветствия, подтверждающая работу API-сервиса. ✅🏠

2. Конечная точка завершения чата 💬

Основная конечная точка для генерации изображений:

https://<имя_вашего_worker>.<ваш_поддомен>.workers.dev/v1/chat/completions

🎨✨

3. Конечная точка информации о модели ℹ️

Получение информации о доступных моделях:

https://<имя_вашего_worker>.<ваш_поддомен>.workers.dev/v1/models

Эта конечная точка возвращает информацию о текущей используемой модели Flux. 🤖📊

4. Конечная точка получения изображения 🖼️

Получение сгенерированного изображения:

https://<имя_вашего_worker>.<ваш_поддомен>.workers.dev/image/{ключ_изображения}

📥🎭

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

Генерация изображения 🖼️🎨

Отправьте POST-запрос на конечную точку завершения чата в следующем формате:

{
  "messages": [
    {
      "role": "user",
      "content": "Милый котенок 3:2"
    }
  ],
  "stream": false
}

Заголовки запроса должны включать:

Authorization: Bearer ВАШ_КЛЮЧ_API
Content-Type: application/json

Важно: Замените ВАШ_КЛЮЧ_API на значение API_KEY, которое вы установили в переменных окружения. 🔑🔄

Потоковый ответ 🌊📡

Если вы хотите получить потоковый ответ, установите параметр stream в значение true:

{
  "messages": [
    {
      "role": "user",
      "content": "Милый котенок 3:2"
    }
  ],
  "stream": true
}

Потоковый ответ будет возвращен в формате Server-Sent Events (SSE), что позволяет получать прогресс генерации в реальном времени. ⚡🔄

Поддерживаемые размеры изображений 📏🖼️

Flux-API-Worker поддерживает следующие предустановленные размеры и соотношения сторон изображений:

  • 1:1 (1024x1024) - размер по умолчанию 🟦
  • 1:2 (512x1024) 📱
  • 3:2 (768x512) 🖼️
  • 3:4 (768x1024) 📱
  • 16:9 (1024x576) 🖥️
  • 9:16 (576x1024) 📱

Чтобы указать конкретный размер, просто добавьте соответствующее соотношение сторон после подсказки, например:

"Милый котенок 16:9"

Если размер не указан, система по умолчанию сгенерирует изображение 1:1 (1024x1024). 🎛️🔧

Поддержка Cross-Origin Resource Sharing (CORS) 🌍🔓

Flux-API-Worker поддерживает CORS, что позволяет обращаться к API из веб-приложений на разных доменах. Это означает, что вы можете напрямую вызывать API из фронтенд-приложений на JavaScript без проблем с кросс-доменными запросами. 🔗🚫🚧

Использование в сторонних приложениях 🔗🔌

Flux-API-Worker можно легко интегрировать в различные приложения, такие как NextWeb, ChatBox и другие. При настройке в этих приложениях:

  1. Установите адрес API на URL вашего Worker (конечная точка завершения чата). 🔗
  2. Введите установленный вами API KEY. 🔑
  3. Нет необходимости учитывать настройки System Message, предоставляемые приложением, так как Flux-API-Worker использует встроенное System Message. 💬🚫

Примечание: Flux-API-Worker удалил функциональность контекста, каждый вызов будет генерировать новое уникальное изображение. 🆕🖼️

Формат ответа 📤📊

Пример непотокового ответа:

{
  "id": "chatcmpl-1234567890",
  "created": 1677649420,
  "model": "@cf/black-forest-labs/flux-1-schnell",
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "🎨 Оригинальная подсказка: Милый котенок 3:2\n💬 Модель генерации подсказки: Original Prompt\n🌐 Оптимизированный запрос: Милый котенок\n📐 Спецификация изображения: 768x512\n🌟 Изображение успешно сгенерировано!\nВот результат:\n\n![Сгенерированное изображение](https://url-вашего-worker.workers.dev/image/12345)"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 100,
    "total_tokens": 120
  }
}

Важные замечания ⚠️🚨

  • Убедитесь, что все необходимые переменные окружения правильно настроены. ✅🔧
  • API-ключ должен храниться в безопасности и не раскрываться в клиентском коде. 🔒🙈
  • Изображения в хранилище KV имеют срок хранения (по умолчанию 30 минут), своевременно сохраняйте важные изображения. ⏳💾
  • Если функция оптимизации запросов включена, убедитесь, что внешнее API настроено правильно. 🌐🔧
  • При использовании потокового ответа убедитесь, что ваш клиент может правильно обрабатывать Server-Sent Events. 🌊📡

Устранение неполадок 🔧🚑

  1. При появлении ошибки неавторизованного доступа проверьте правильность установки и использования API-ключа. 🔑❓
  2. Если генерация изображения не удается, убедитесь, что токен API Cloudflare имеет правильные разрешения. 🎟️🔍
  3. Если оптимизация запросов не работает, убедитесь, что PROMPT_OPTIMIZATION установлено на 'true' и внешнее API настроено правильно. 🌐🔧
  4. Если вы получаете ошибку 404, убедитесь, что обращаетесь к правильному пути конечной точки. 🔍🚷
  5. Для других ошибок проверьте логи Worker для получения более подробной информации об ошибке. 📋🔬

Дальнейшая настройка 🛠️🎨

Вы можете дополнительно оптимизировать функциональность API, изменив код Worker, например:

  • Настроить поддерживаемые размеры и соотношения сторон изображений 📏✂️
  • Изменить встроенное системное сообщение для изменения поведения генерации подсказок 💬🔄
  • Добавить дополнительные механизмы обработки ошибок и ведения журнала 🚨📊
  • Реализовать пользовательские ограничения скорости или другие меры безопасности 🛡️⏱️

Я надеюсь, что этот README поможет вам быстро развернуть и использовать Flux-API-Worker. Если у вас есть вопросы или нужна дополнительная помощь, не стесняйтесь обращаться ко мне. 💌👨‍💻👩‍💻

Если вы считаете, что этот репозиторий был вам полезен, пожалуйста, поставьте ему звезду. ⭐⭐⭐ Спасибо!