Создание собственного бесплатного генератора изображений на базе Stable Diffusion v2-1

24 января 2025
Создание собственного бесплатного генератора изображений на базе Stable Diffusion v2-1

Генераторы изображений на основе ИИ — идеальный инструмент для творческих личностей с богатым воображением и любовью к технологиям. С помощью моделей Stable Diffusion теперь можно создавать потрясающие, сюрреалистические или совершенно абсурдные визуальные образы, просто набрав текстовое описание. И самое лучшее? Всё это делается с помощью ИИ с открытым исходным кодом, доступного каждому, кто готов экспериментировать и погрузиться в технологии.

Почему стоит создать собственный генератор изображений на базе ИИ?

Конечно, существует множество готовых инструментов, но в создании собственной системы есть что-то особенно привлекательное. Вот почему это стоит сделать:

  • Полный контроль: Вы решаете, как это работает — настраиваете выходные данные, регулируете параметры и экспериментируете с новыми функциями.
  • Открытый исходный код: Всё полностью в вашем распоряжении для изучения, модификации и создания...
  • Работает на пользовательском оборудовании: Используя Google Colab T4 GPU или ваш персональный компьютер, вы можете генерировать качественные изображения без больших затрат.
  • Безграничное творчество: Единственное ограничение — ваше воображение. Мечтайте масштабно, экспериментируйте смело и наблюдайте за результатами.
ИИ генератор изображений
ИИ генератор изображений

Знакомство с моделью

Stable Diffusion v2-1 — это усовершенствованная модель для генерации изображений по текстовому описанию, разработанная компанией Stability AI на основе предшествующей версии Stable Diffusion v2. Эта модель создана для генерации и модификации изображений на основе текстовых запросов, используя архитектуру латентной диффузии, которая объединяет автоэнкодер с диффузионной моделью.

Обзор модели

Разработка и обучение: Stable Diffusion v2-1 была дообучена на основе оригинальной модели Stable Diffusion v2, пройдя дополнительные 55 000 шагов обучения с последующими 155 000 шагами с различными параметрами безопасности для улучшения производительности и безопасности при генерации изображений. Модель использует фиксированный предварительно обученный текстовый энкодер OpenCLIP-ViT/H, который помогает преобразовывать текстовые запросы в осмысленные визуальные представления.

Stable Diffusion v2
Stable Diffusion v2

Технические характеристики:

  • Тип модели: Латентная диффузионная модель
  • Лицензия: CreativeML Open RAIL++-M
  • Поддерживаемые языки: Преимущественно английский
  • Данные для обучения: Модель обучена на наборе данных LAION-5B с фильтрацией вредоносного контента

Применение:

Stable Diffusion v2-1 может использоваться в различных областях:

  • Искусство и дизайн: Художники могут использовать модель для создания уникальных изображений или улучшения существующего дизайна
  • Образовательные инструменты: Служит ресурсом для обучения концепциям генеративных моделей и искусственного интеллекта
  • Исследования: Модель предоставляет основу для изучения ограничений и предвзятостей, присущих генеративным технологиям ИИ

Ограничения и этические соображения

Хотя Stable Diffusion v2-1 демонстрирует впечатляющие возможности, но у неё есть определенные ограничения:

  • Модель может испытывать трудности с фотореалистичностью и не может точно воспроизводить текст на изображениях
  • Обучение проводилось преимущественно на английском языке, что приводит к снижению производительности при работе с неанглоязычными запросами
  • Существуют опасения относительно потенциальной предвзятости в генерируемом контенте, отражающем общественные стереотипы из-за набора данных, использованного для обучения

Реализация

Вот как вы можете создать свой собственный генератор изображений на базе ИИ, шаг за шагом. Процесс реализации включает:

  1. Загрузку модели Stable Diffusion
  2. Сохранение и локальную загрузку модели
  3. Создание интерактивного приложения для генерации изображений

1. Загрузка модели

Вариант 1: Использование Transformers

Библиотека Transformers от Hugging Face также предоставляет доступ к моделям.

from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
import torch

# Загрузка модели из Hugging Face
model_id = "stabilityai/stable-diffusion-2-1"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)

# Настройка планировщика и перемещение модели на GPU
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")
StabilityAI Stable Diffusion v2
StabilityAI Stable Diffusion v2

Сохранение модели

Для сохранения загруженной модели для офлайн-использования:

# Сохранение модели в локальную директорию
pipe.save_pretrained("./stable_diffusion_local")

Вариант 2: Прямая загрузка файлов модели

Вы можете загрузить модель с Hugging Face и использовать её локально.

StabilityaAI Stable Diffusion v2 на Hugging Face
StabilityaAI Stable Diffusion v2 на Hugging Face
StabilityaAI Stable Diffusion v2 на Hugging Face
StabilityaAI Stable Diffusion v2 на Hugging Face

Скачайте модель и поместите ее в директорию

2. Локальная загрузка модели

Загрузка из локальной директории

При работе офлайн загружайте модель из сохранённой директории:

from diffusers import StableDiffusionPipeline
import torch

# Загрузка модели из локальной директории
pipe = StableDiffusionPipeline.from_pretrained("./stable_diffusion_local", torch_dtype=torch.float16)
pipe = pipe.to("cuda")

3. Основная реализация кода

Создаём интерактивный интерфейс Gradio, который позволяет пользователям вводить запросы, настраивать размеры и просматривать сгенерированные изображения.

Полная реализация:

import torch
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
import gradio as gr

# Очистка кэша GPU
torch.cuda.empty_cache()

# Загрузка модели
model_id = "stabilityai/stable-diffusion-2-1"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")

# Функция генерации изображения
def image_generator(prompt, width=512, height=512):
    """
    Генерирует изображение из заданного текстового запроса, используя Stable Diffusion.

    Параметры:
        prompt (str): Текстовый запрос для генерации изображения.
        width (int): Ширина выходного изображения.
        height (int): Высота выходного изображения.

    Возвращает:
        PIL.Image: Сгенерированное изображение.
    """
    image = pipe(prompt, width=width, height=height).images[0]
    return image

# Создание интерфейса Gradio
with gr.Blocks() as demo:
    gr.Markdown(
        """
        # Генератор изображений на базе ИИ
        Введите запрос , чтобы создавать потрясающие изображения с помощью **Stable Diffusion**.
        Настройте размеры и наблюдайте, как ваше воображение оживает!
        """
    )

    with gr.Row():
        with gr.Column():
            prompt_input = gr.Textbox(
                label=" Введите ваш запрос",
                placeholder="например, Футуристический городской пейзаж с неоновыми огнями",
                lines=2,
            )
            width_slider = gr.Slider(
                minimum=256, maximum=1024, value=512, step=64, label=" Ширина изображения"
            )
            height_slider = gr.Slider(
                minimum=256, maximum=1024, value=512, step=64, label=" Высота изображения"
            )
            generate_button = gr.Button(" Сгенерировать изображение")

        with gr.Column():
            output_image = gr.Image(label=" Сгенерированное изображение")

    generate_button.click(
        fn=image_generator,
        inputs=[prompt_input, width_slider, height_slider],
        outputs=output_image,
    )

# Запуск приложения
demo.launch()

Выходное изображение:

Промт: дом перед океаном

Сгенерированное изображение
Сгенерированное изображение

Промт: фотография астронавта, скачущего на лошади по Марсу

Сгенерированное изображение
Сгенерированное изображение

Этические соображения

Хотя генераторы изображений на базе ИИ, такие как Stable Diffusion, предлагают огромный творческий потенциал, они также сопряжены с этическими проблемами и практическими ограничениями. Важно понимать эти аспекты для ответственного использования технологии.

Авторское право и владение

  • Кому принадлежат изображения, созданные ИИ? Этот вопрос становится ещё более сложным, если модель обучалась на защищённых авторским правом работах без явного разрешения
  • Всегда проявляйте осторожность при использовании изображений, сгенерированных ИИ, в коммерческих целях

Дезинформация и злоупотребление

  • Изображения, сгенерированные ИИ, могут быть использованы для создания дипфейков или вводящего в заблуждение контента
  • Это вызывает опасения по поводу распространения ложных нарративов или нанесения ущерба репутации отдельных лиц

Предвзятость в результатах

  • Тренировочные данные существенно влияют на результаты. Если набор данных предвзят, результаты могут непреднамеренно закреплять стереотипы или исключать определенные стили и перспективы

Влияние на окружающую среду

  • Обучение и запуск моделей ИИ требуют значительных вычислительных ресурсов, что способствует выбросам углерода
  • Выбор энергоэффективных настроек или использование общих ресурсов, таких как Google Colab, может помочь смягчить это воздействие

ИИ генераторы изображений делают творчество более доступным, делая его доступным для каждого, у кого есть идея. Независимо от того, являетесь ли вы художником, экспериментирующим с новыми концепциями, владельцем бизнеса, создающим визуальный контент, или энтузиастом технологий, исследующим ИИ, этот инструмент позволяет воплотить ваше воображение в жизнь.

Благодаря открытому исходному коду и возможности работать на GPU Google Colab T4 или любой пользовательской системе, Stable Diffusion устраняет барьеры для инноваций. Погрузитесь в мир ИИ-искусства и дайте волю своему творчеству!

Все нейросети для генерации изображений

Новости и обзоры

Читать все

Нейросети

смотреть все
Нейросеть Gen-3 by Runway - Генерация видео

Gen-3 by Runway

Gen-3 Alpha от Runway расширяет границы возможностей создания видео на основе искусственного интеллекта. Создавайте длинные, связные видеоролики, используя инструкции на естественном языке

Генерация видео
Бесплатно
Нейросеть Mubert AI - Музыка

Mubert AI

Генерация музыки с помощью искусственного интеллекта, которая работает на основе текстовых подсказок. Мелодии просты в создании и не имеют авторских прав

Музыка
Условно-бесплатно
Нейросеть Make - Автоматизация,No Code/Low Code

Make

Повысьте свою производительность за счет автоматизации задач (код не требуется). Создавайте визуально неограниченные сложные рабочие процессы с помощью искусственного интеллекта

Автоматизация
No Code/Low Code
Бесплатно
Платно — $9/мес