Tonkato comics

Как сделать бота, который превращает фото в комикс: пошаговая инструкция для чайников

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

Выбор архитектуры

После относительно успешного запуска selfie2anime бота (использующего готовую модель UGATIT), мне захотелось сделать то же самое, но свое. Например, модель, превращающую ваши фото в комиксы.
Вот несколько примеров из моего photo2comicsbot, и мы с вами сделаем нечто подобное.



Поскольку модель UGATIT была слишком тяжела для моей видеокарты, я обратил внимание на более старую, но менее прожорливую аналогию — CycleGAN
В данной реализации есть несколько архитектур моделей и удобное визуальное отображение процесса обучения в браузере.
CycleGAN, как и архитектуры для переноса стилей по одному изображению, не требует парных изображенией для обучения. Это важно, потому что иначе нам пришлось бы самим перерисовывать все фото в комиксы для создания обучающей выборки.
Задача, которую мы поставим перед нашим алгоритмом, состоит из двух частей.
На выходе мы должны получить картинку, которая:
а) похожа на комикс
б) похожа на исходное изображение
Пункт “а” может быть реализован с помощью обычной GAN, где за “похожесть на комиксы” будет отвечать обучаемый Критик.
Подробнее о GAN
GAN, или Generative Adversarial Network — это пара из двух нейросетей: Генератора и Критика.
Генератор преобразует входные данные, например, из фото в комикс, а критик сравнивает полученный “фейковый” результат с настоящим комиксом. Задача Генератора — обмануть Критика, и наоборот.
В процессе обучения Генератор учится создавать комиксы, все больше похожие на настоящие, а Критик учится лучше их различать.
Со второй частью несколько сложнее. Если бы у нас были парные картинки, где в наборе “А” были бы фотографии, а в наборе “Б” — они же, но перерисованные в комиксы (т.е. то, что мы и хотим получить от модели), мы могли бы просто сравнить результат, выданный Генератором, с парным изображением из набора «Б» нашей обучающей выборки.
В нашем случае наборы “А” и “Б” никак не связаны друг с другом. В наборе “А” — случайные фото, в наборе “Б” — случайные комиксы.
Сравнивать же фейковый комикс с каким-то случайным комиксом из набора “Б” бессмысленно, так как это, как минимум, будет дублировать функцию Критика, не говоря уже о непредсказуемом результате.
Тут-то и приходит на помощь архитектура CycleGAN.
Если коротко, то это пара GAN, первая из которых преобразует изображение из категории “А” (например, фото) в категорию “Б” (например, комикс), а вторая — обратно, из категории “Б” в категорию “А”.

Модели обучаются как на основе сравнения исходного фото с восстановленным (в результате цикла “А”-”Б”-”А”, “фото-комикс-фото), так и данных Критиков, как в обычной GAN.

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

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

Для реализации нашего хитрого плана нам понадобятся:

  • Видеокарта с поддержкой CUDA и 8гб RAM
  • ОС Linux
  • Miniconda/Anaconda c Python 3.5+

Видеокарты с менее чем 8гб RAM тоже могут подойти, если поколдовать с настройками. На Windows тоже будет работать, но медленнее, у меня разница была, как минимум, в 1,5-2 раза.
Если у вас нет GPU с поддержкой CUDA, или вам лень все это настраивать, всегда можно воспользоваться Google Colab. Если найдется достаточное количество желающих, запилю туториал и по тому, как провернуть все нижеперечисленное в гугловом облаке.
Инструкции по установке
После установки Anaconda/Miniconda (далее — conda), создадим новую среду для наших экспериментов и активируем ее:
(Пользователям Windows нужно сначала запустить Anaconda Prompt из меню Пуск)
conda create —name cyclegan conda activate cyclegan
Теперь все пакеты будут установлены в активную среду, не затрагивая остальные среды. Это удобно, если нужны определенные комбинации версий различных пакетов, например если вы используете чей-то старый код и вам нужно установить устаревшие пакеты, не испортив себе жизнь и основную рабочую среду.
Далее просто следуем инструкциям README.MD из дистрибутива:
Сохраним себе дистрибутив CycleGAN:
(или же просто скачаем архив с GitHub)
git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix cd pytorch-CycleGAN-and-pix2pix
Установим нужные пакеты:
conda install numpy pyyaml mkl mkl-include setuptools cmake cffi typing conda install pytorch torchvision -c pytorch conda install visdom dominate -c conda-forge
Скачаем готовый датасет и соответствующую модель:
bash ./datasets/download_cyclegan_dataset.sh horse2zebra bash ./scripts/download_cyclegan_model.sh horse2zebra
Обратите внимание на то, какие фотографии есть в скачанном датасете.
Если открыть файлы скриптов из предыдущего абзаца, можно увидеть, что есть и другие готовые датасеты и модели для них.
Наконец, протестируем модель на скачанном наборе данных:
python test.py —dataroot datasets/horse2zebra/testA —name horse2zebra_pretrained —model test —no_dropout
Результаты будут сохранены в папке /results/horse2zebra_pretrained/

Создание обучающей выборки

Не менее важным этапом после выбора архитектуры будущей модели (и поиска готовой реализации на github) является составление dataset’a, или набора данных, на которых мы будем обучать и проверять нашу модель.
От того, какие данные мы будем использовать, зависит практически все. Например, UGATIT для selfie2anime бота была натренирована на женских селфи и женских лицах из аниме. Поэтому с мужскими фото она ведет себя как минимум забавно, заменяя брутальных бородатых мужчин на маленьких девочек с высоким воротником. На фото ваш покорный слуга после того, как узнал, что смотрит аниме.

Как вы уже поняли, стоит отбирать те фото\комиксы, которые вы хотите использовать на входе и получить на выходе. Планируете обрабатывать селфи — добавляете селфи и крупные планы лиц из комиксов, фото зданий — добавляете фото зданий и страницы из комиксов со зданиями.

В качестве образцов фотографий я использовал DIV2K и Urban100, приправленные фотками звезд из гугла для пущего разнообразия.
Комиксы я взял из вселенной Marvel, страницы целиком, выкинув рекламу и анонсы, где рисовка не похожа на комикс. Ссылку приложить не могу по понятным причинам, но по запросу Marvel Comics вы легко найдете отсканированные варианты на любимых сайтах с комиксами, если вы понимаете, о чем я.
Важно обращать внимание на рисовку, она отличается у разных серий, и на цветовую гамму.

У меня было много дедпула и спайдермена, поэтому кожа сильно уходит в красный.
Неполный список остальных публичных датасетов вы найдете .
Структура папок в нашем датасете должна быть следующей:
selfie2comics
├── trainA
├── trainB
├── testA
└── testB
trainA — наши фото (порядка 1000шт)
testA — несколько фото для тестов модели (30шт. будет достаточно)
trainB — наши комиксы (порядка 1000шт.)
testB — комиксы для тестов (30шт.)
Датасет желательно разместить на SSD, если есть такая возможность.
На сегодня это все, в следующем выпуске мы начнем обучать модель и получим первые результаты!
Обязательно пишите, если у вас что-то пошло не так, это поможет улучшить руководство и облегчит страдания последующих читателей.

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

Девушка в красном платье танцует с мужчиной

Танец парня и девушки

Девушка в черном танцует с парнем

Девушка и парень в танце

Пара танцует танго

Девушка в белом платье наклонилась в танце

Девушка в танце с парнем

Пара танцует на сцене

Девушка отвела ногу в танце

Девушка в черном платье танцует с мужчиной

Парень и девушка репетируют танец

Пара на сцене танцует танго

Девушка в платье повисла на парне в танце

Парень держит девушка на спину

Девушка и парень танцуют вместе

Девушка в синем платье танцует с партнером

Девушка отводит ногу в танце

Девушка в красном платье подняла ногу в танце с парнем

Парень и женщина танцуют танго

Девушка в красном платье танцует с мужчиной на сером фоне

Девушка с кудрями танцует с парнем

Девушка и парень в страстном танце

Девушка в красном платье танцует с мужчиной

Девушка присела на колено в танце

Простые и остроумные комиксы Tango

  • 169 63 150 86k

    Какой была бы Россия в 2019 году без Октябрьской революции

  • 75 34 48 69k

    10 звездных пар, которые подкосили нашу веру в любовь

  • 163 16 60 52k

    14 звезд, которые оказались героями не только в кино. Но их реальные подвиги известны меньше экранных

  • 194 16 62 38k

    20+ мелочей, знакомых каждому, которые выведут из себя даже дзен-буддиста

  • 181 16 103 38k

    Посмотрите, какие неизвестные факты скрывают наши любимые мультфильмы

  • 263 21 324 130k
  • 192 11 116 81k

    20+ фотографий, которые станут для вас маленьким открытием

  • 130 18 201 38k

    15 актеров, которые рискнули сыграть совсем нетипичную для них роль

  • 237 18 111 98k

    15 остроумных комментаторов, которым смело можно вручать приз «Коммент года»

  • 133 16 409 43k

    Люди в Facebook делятся советами для путешествий. Прочитав их, вы захотите сказать: «А что, так можно было?»

  • 152 24 73 36k

    Пользователи сети поделились «оригинальными» шуточками про их работу, которые они слышат ежедневно

  • 144 14 78 33k

    25 лет назад вышел 1-й эпизод «Друзей». Вот 25 фактов о лучшем сериале всех времен

  • 66 126 24 97k

    Как выглядели бы советские звезды, если бы их молодость пришлась на наши дни

  • 76 50 39 53k

    Посмотрите, как выглядят в одном и том же возрасте российские и голливудские звезды

  • 48 9 222 67k

    12 крутых идей по использованию лоточков для льда, до которых додумались немногие люди

  • 170 16 70 74k

    20+ молодоженов, которые доказали, что идеальные свадьбы бывают только в кино

Маньхуа

Маньхуа́ (кит. трад. 漫畫, упр. 漫画, пиньинь: Mànhuà) — китайская манга. Под этим понятием объединяют всю мангу, выпущенную в Китае (включая Тайвань и Гонконг), а также переводы японской манги на китайский язык. Несмотря на значительный рост производства маньхуа в материковом Китае, большинство манги по-прежнему выпускаются на Тайване и в Гонконге. Считается, что первым автором маньхуа был Томасу Чу (Tomasu Chew).

Название

В западных языках принято разделять мангу (японские комиксы), манхва и маньхуа. Однако в языках самих этих стран все эти слова записываются одинаковыми иероглифами и обозначают комиксы вообще. Если, например, китаец хочет подчеркнуть, что он говорит именно о манге, а не маньхуа, то он скажет «комиксы (маньхуа) в японском стиле» (日式漫画). Слово впервые появилось в Японии в начале XIX века и дословно означает «гротески», «странные (или весёлые) картинки».

История

В своей книге Комиксы Гонконга: история маньхуа (ISBN 1-56898-269-0) Вэньди Сюи Вонг пишет, что китайские комиксы «включают в себя карикатуры, комиксы и ляньхуаньту (традиционная китайская иллюстрированная книга рассказов с картинками) различных форм и стилей». Ляньхуаньту (连环图 — дословно «цепочка картинок», «связанные картинки») отличается от традиционных комиксов тем, что картинки в них занимают всю страницу и сопровождаются простыми подписями без «облачков».

Начало (заголовок и первые 6 кадров) специального маньхуа-выпуска газеты «Синь Нунда», органа хунвэйбинов Пекинского сельхозуниверситета, озаглавленного «Долой Тань Чжэньлиня!». Выпуск вышел в мае 1967 и был частью кампании критики этого члена ЦК КПК; являет собой довольно типичный пример хунвэйбинской маньхуа. На последнем, 33-м кадре (не показан на этом фрагменте), тов. Тань Чжэньлиня забивает дубинкой Царь обезьян Сунь Укун в фуражке со звездой

Рисунки, напоминающие современные комиксы и карикатуры, существовали в Китае с древних времён и на протяжении всей его истории. Наиболее древние образцы подобных изображений сохранились в виде каменных барельефов и рисунков на гончарных изделиях, а также в виде сатирических рисунков эпохи Мин (1368—1644 н. э.) и Цин (1643—1911 н. э.). В качестве времени зарождения традиционных китайских маньхуа обычно полагают пространный период с 1867 по 1927 гг. Традиционные маньхуа активно развивались вплоть до «культурной революции» (1966—1976 гг.), фактически прервавшей естественное культурное развитие Китая на 10 лет. В это же время активно начали развиваться современные маньхуа в Гонконге и на Тайване — во многом под влиянием японской манги.

В 1980-е гг. искусство традиционных маньхуа стало понемногу возрождаться, однако в начале 1990-х гг. в материковый Китай стали проникать современные маньхуа из Гонконга и Тайваня и японская манга. Они стремительно завоевали рынок КНР, практически не оставив шансов традиционным китайским маньхуа. Сейчас многие в Китае, особенно, молодёжь, ассоциируют слово «маньхуа» только с современными комиксами. В 90-х гг. в КНР было крайне неразвито законодательство в отношении прав на интеллектуальную собственность, что привело к расцвету пиратских маньхуа. Китайское правительство отреагировало большой кампанией по упорядочиванию рынка маньхуа, в пылу борьбы с пиратством закрыв первый в КНР посвящённый манге и маньхуа журнал «Король комиксов» (《画书大王》). В то же время для защиты рынка правительство КНР запустило «Проект развития детских маньхуа в Китае» (сокращённо «Проект 5155»), благодаря которому в Китае появилось множество журналов комиксов и художников маньхуа. При этом в большинстве своём китайские материковые маньхуа до сих пор уступают в качестве и количестве маньхуа Гонконга и Тайваня, которые няряду с переводной японской мангой пользуются наибольшей популярностью у читателей КНР.

Классификация

Классификация маньхуа довольно расплывчата и во многом пересекается с классификацией японской манги. В китайской Википедии маньхуа делится на следующие категории:

  • По читательской аудитории:
    • Маньхуа для мальчиков — отличаются военной, приключенческой или научно-фантастической тематикой. Основной аудиторией являются мальчики и юноши до 18 лет, однако среди читателей есть немало девочек и взрослых людей.
    • Маньхуа для девочек — отличаются тонкой и чёткой отрисовкой и тематикой школьных или любовных отношений. Основной аудиторией являются девочки до 18 лет, однако среди читателей есть немало мальчиков и взрослых людей.
    • Молодёжные маньхуа — ориентированы на молодых людей в возрасте от 18 до 25 лет. В содержании отражены вопросы взросления и любовных (в том числе сексуальных) отношений.
    • Женские маньхуа — ориентированы на домохозяек либо бизнес-леди. В содержании отражены проблемы более взрослой жизни, главными героями, как правило, являются взрослые мужчины и женщины.
    • Маньхуа для взрослых — ориентированы на людей старше 18 лет. В содержании затрагиваются различные вопросы, такие как политика, экономика, история, культура и др. Они также могут содержать изображения секса и насилия.
      • Эротические маньхуа
        • Лоликун (лоликон)
        • Чжэнтайкун (сётакон)
      • Порно-маньхуа (хентай)

При этом в маньхуа для девочек также могут быть войны, фантастика и приключения. В маньхуа для мальчиков также могут затрагиваться темы школьных отношений и любви с позиции мальчика. В детских маньхуа могут также появляться темы, характерные для взрослых маньхуа (за исключением секса).

  • По количеству изображений:
    • Одиночные маньхуа — состоят из одного рисунка, как правило, цветные с изображением человека либо пейзажа, очень редко содержат сюжет.
    • Короткие маньхуа — как правило, состоят всего из нескольких страниц, в журналах обычно целиком публикуются в одном номере.
    • Длинные маньхуа — длина практически неограничена, в журналах могут публиковаться частями в течение нескольких лет или даже нескольких десятков лет.
  • По теме:
    • Научно-фантастические маньхуа.
    • Школьные маньхуа — маньхуа об отношениях школьников или студентов.
    • Фэнтези-маньхуа — действия происходят в абсолютно отличном от нашего мире.
    • Даньмэй-маньхуа (яой) — основной целевой аудиторией являются девушки и женщины, а также часть мужчин. Основная тематика — гомосексуальные отношения мужчин, какими они могут предстать в воображении женщины. Изначально появились в Японии, но затем распространились на китаеязычные регионы (включая Тайвань и КНР), где сейчас активно развивается движение додзиндзё (см. додзинси).
  • По месту производства:
    • Тайваньские маньхуа — отличительной особенностью является добавление элементов традиционной китайской графики гунбихуа, а также чёрно-белым исполнением. Основные представители: Цай Чжичжун и Чжэн Вэнь.
    • Гонконгские маньхуа — тематика гонконгских маньхуа это, как правило, войны, драки, мафия — то есть, всё то что в кинематографе объединяется под понятием боевик. В Гонконге также производится немало комических маньхуа. Основные представители: Ван Цзэ, Чэнь Моу, Хуан Юйлан и др.

Материковые маньхуа пока ещё не сформировали собственного стиля, в КНР наибольшей популярностью пользуются маньхуа из Гонконга и Тайваня, а также переводная японская манга.

  • По рейтингу возрастных ограничений:
    • Маньхуа с рейтингом 1 — подходят для любого возраста, крайне ограниченное содержание насилия и отношений полов. На их издание, импорт и экспорт не накладываются ограничения (за исключением маньхуа, запрещённых для детей младше 18 лет; для подобной продукции необходимо составлять особую декларацию, а также взять обязательство не продавать её детям младше 18 лет).
    • Маньхуа с рейтингом 2 — не подходят для читателей моложе 21 года. В них содержится определённый контент секса и насилия, однако не превышающий границы, установленные международными правилами.
    • Маньхуа с рейтингом 3 — содержание секса и насилия превышает рамки международных правил, считаются неподходящими для читателй любого возраста. Во многих странах запрещено издание и распространение подобной продукции.

Согласно классификации Вэньди Сюи Вонг гонконгские маньхуа делятся на:

  • Сатирические и политические маньхуа
  • Комические маньхуа
  • Маньхуа-боевики
  • Детские маньхуа (маньхуа по мотивам древних китайских легенд)

> Известные авторы

  • Никки Ли
  • Хуан Юйлан

Известные наименования

  • Прованс (Provence)
  • КЭТ (CAT — Confidential Assassination Troop)
  • Деньги на бочку! (Show Me the Money)
  • Любовь онлайн (Net Love)
  • Первый номер (The One)
  • Священная мелодия (Divine Melody)
  • Аватар короля (The King’s Avatar)

Список издательств маньхуа

Гонконг

  • Fluid Friction Comics
  • HK Comics Ltd.
  • Jademan Comics (в прошлом вошел в состав Hong Kong Stock Exchange)
  • Culturecom Comics

Тайваньские издатели манхвы

  • Tong Li Comics
  • Ching Win
  • daran
  • Ever Glory Publishing
  • Min-Hsien Cultural
  • Sharp Point Publishing

Русский

  • Фабрика комиксов
  • Истари комикс

Американские

  • Tokyopop
  • Yen Press
  • ComicsOne
  • DrMaster

Английские

  • Bamboo Press Ltd

Французские

  • Glénat
  • Xiao Pan

Индонезия

  • M&C Comics

Бразильские

  • Panini Comics
  • Conrad Editora

Сингапурские

  • TCZ Studio

> См. также

  • Манга
  • Манхва
  • Лубок
  • Комикс
  • Список известных маньхуа в английской Википедии

> Примечания

  1. Thompson J. Manga: The Complete Guide. — New York: Del Rey Books, 2007. — P. 499. — 556 p. — ISBN 978-0-345-48590-8.

Ссылки

  • Традиционные маньхуа по мотивам древних китайских легенд
  • Истари комикс — российское издательство, выпускающее лицензионные серии тайваньской маньхуа
  • Фабрика комиксов — российское издательство, выпускающее лицензионные серии тайваньской маньхуа

Манга (moon. 漫画) — японские комиксы. Отличаются от американских тем, что они:

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

2) Расово читаются сверху вниз и справа налево, так как японцы читают книги именно так (на самом деле они так ещё их и пишут).

3) Не такие заметные идиотские звукоподражания на полпанели для дошкольников, типа «бум», «бах», «тибитрах» и т.п.

Манхва (кор. 만화 ) — корейские комиксы. Термин в Корее означает и анимационные мультфильмы, и комиксы, и карикатуру, а за её пределами обычно употребляется для обозначения исключительно корейских комиксов.

Корейская манхва очень похожа на японскую мангу и китайскую маньхуа. Они имеют много общих черт, но каждая обладает собственными особенностями — текст и графика согласуются с культурой и историей соответствующих стран. Манхва находилась под влиянием тяжелой новейшей истории Кореи, это повлияло на многообразие форм и жанров. Отталкиваясь от основного течения, копирующего особенности манги, манхва развилась до авторских мини-историй, графически ориентированных работ и манхва-сериалов, распространяемых через интернет. На данный момент длинные сериалы интернет-манхвы на специальных порталах (например Media Daum) и личных страничках являются популярным ресурсом среди молодого поколения Кореи.

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

Маньхуа́ (кит. трад. 漫畫, упр. 漫画, пиньинь Mànhuà) — китайские комиксы. Под этим понятием объединяют все комиксы, выпущенные в Китае (включая Тайвань и Гонконг), а также переводы японской манги на китайский язык. Несмотря на значительный рост производства маньхуа в материковом Китае, большинство комиксов по-прежнему выпускаются на Тайване и в Гонконге. Считается, что первым автором маньхуа был Томасу Чу (Tomasu Chew).

В западных языках принято разделять мангу (японские комиксы), манхва (корейские комиксы) и маньхуа. Однако в языках самих этих стран все эти слова записываются одинаковыми иероглифами и обозначают комиксы вообще. Если, например, китаец хочет подчеркнуть, что он говорит имеено о манге, а не маньхуа, то он скажет «комиксы (маньхуа) в японском стиле» (日式漫画). Слово впервые появилось в Японии в начале XIX века и дословно означает «гротески», «странные (или весёлые) картинки».