Чтобы увидеть процесс создания комикса, посетите https://github.com/yvielcastillejos/Comic-Generator. Кроме того, в репозитории есть версия Google Colab, которая обеспечивает более удобный веб-интерфейс.

1.0 Основной конвейер

Генератор комиксов состоит из двух основных элементов: Генератора историй и Генератора визуальных образов. Генератор историй далее разделен на три секции, отвечающие за генерацию идей для историй, создание персонажей и формирование сюжетов. Эти разделы используют GPT-3 для получения соответствующих результатов и следуют линейному процессу, как показано на рисунке 1.0. Напротив, Visual Generator использует Stable Diffusion для создания комиксов. Чтобы подключить визуальный генератор к генератору историй, GPT-3 используется для создания подсказок ввода. В конце концов, в качестве конечного результата получается полностью сформированный комикс.

2.0 Генерация историй

Для создания сюжета комикса мы используем модель GPT-3, известную тем, что генерируем связный и контекстуально подходящий текст. Мы предоставляем модели короткую подсказку, которая задает контекст или тему комикса. В ответ GPT-3 создает серию связанных предложений или выражений, которые формируют сценарий комикса.

2.1 Побуждение к созданию идеи для истории

Мы используем GPT-3 для создания сюжетных идей для комиксов. Для этого мы запрашиваем модель с помощью

«Составьте список из пяти сюжетных идей».

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

2.2 Подсказка о создании персонажа

Чтобы создать список персонажей для комикса, мы используем GPT-3 и специальную подсказку, которая устанавливает формат и контекст. Подсказка гласит,

«Дайте список из пяти основных персонажей с форматом имени персонажа: описание персонажа. Персонаж — это главный герой истории, а история — об истории».

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

2.3 Побуждение к диалогу

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

«Создайте историю «подсказки» с помощью Dialogue. История ДОЛЖНА содержать только одного персонажа, разговаривающего сама с собой, а диалог ДОЛЖЕН содержать только три строки диалога. ПЕРСОНАЖИ: Имя Персонажа 1: Описание Персонажа 1 СЦЕНА:».

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

3.0 Визуальная генерация

Мы используем модель стабильной диффузии для визуального аспекта комикса. Модель была настроена с использованием нарисованных пользователем изображений персонажей и может генерировать изображения персонажей в различных условиях повествования, используя методы Textual Inversion и Dream Booth. Как только модель GPT-3 генерирует историю, модель стабильной диффузии синтезирует последовательность изображений, соответствующую истории.

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

4.0 Обучение стабильной диффузии, Учебное пособие

4.1 Подготовка входных изображений

Подготовьте набор изображений выбранного персонажа размером 512x512, пример показан на рис. 4.0.

Можно также использовать методы увеличения данных, такие как переворачивание данных и маскирование, чтобы увеличить объем набора данных, как показано на рисунке 4.3.

4.2 Тонкая настройка Stable Diffusion в Colab с использованием Dreambooth

Пожалуйста, используйте эту ссылку colab для обучения Dreambooth в colab: https://colab.research.google.com/drive/1cN59N1RGyHwCYkPmbretBz1jTEH7FYQF#scrollTo=AsWk2MBz1RdO

Прежде чем приступить к обучению, необходимо выполнить несколько требований:

  1. Создайте токен HUGGINGFACE, чтобы загрузить базовую модель Stable Diffusion, войдя в https://huggingface.co. Токены можно посмотреть здесь: https://huggingface.co/settings/tokens
  2. Вам необходимо принять лицензию модели. Пожалуйста, посетите https://huggingface.co/runwayml/stable-diffusion-v1-5, прочитайте лицензию и поставьте галочку, если вы согласны.
  3. Измените содержимое списка понятий в блокноте Colab. Поместите исходные изображения в папку instance_data_dir. Ваш instance_prompt — это токен, который вы будете использовать для описания своего персонажа, а ваш class_prompt — это лучшее описание класса вашего персонажа.
# You can also add multiple concepts here. Try tweaking `--max_train_steps` accordingly.

concepts_list = [
    {
        "instance_prompt":      "partyxyz girl",
        "class_prompt":         "girl",
        "instance_data_dir":    "/content/data/partyxyzgirl",
        "class_data_dir":       "/content/data/girl"
    },

]

# `class_data_dir` contains regularization images
import json
import os
for c in concepts_list:
    os.makedirs(c["instance_data_dir"], exist_ok=True)

with open("concepts_list.json", "w") as f:
    json.dump(concepts_list, f, indent=4)

4. Следуйте остальным инструкциям по обучению в Блокноте Google Colab, запустив ячейки.

5.0 Генератор комиксов

Чтобы разместить веб-интерфейс для вашей модели посетите https://colab.research.google.com/drive/1WkVlG8LyapurDNgKWpBZ28Du5r2xeroz?usp=sharing.

Чтобы начать создавать комиксы, мы должны разместить веб-сайт, на котором развернута наша модель стабильного распространения. Пожалуйста, измените переменную MODEL_PATH в ячейке Host Server в записной книжке на путь к вашей модели. Кроме того, измените API_KEY, используя свой собственный токен GPT-3. Как только мы запустим скрипт server.py, мы должны увидеть следующий вывод:

2023-04-15 21:36:09.866793: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
 * Serving Flask app 'server'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Running on http://5158-34-124-218-181.ngrok-free.app
 * Traffic stats available on http://127.0.0.1:4040

Нажмите на вторую ссылку, где упоминается: «Работает на ‹ngrok server›», и следуйте инструкциям, чтобы начать создание комикса. Конвейер к веб-интерфейсу показан ниже:

6.0 Образцы

Некоторые образцы показаны ниже:

7.0 Ограничения

Есть еще несколько ограничений модели:

  1. Модели предназначены для поддержки только одного персонажа. Два или более символов добавляют сложности и шума в сгенерированный вывод.
  2. Использование имени известного человека или персонажа может привести к нежелательным результатам.
  3. Пока что пользователю сложно контролировать выходные данные модели стабильной диффузии.