Comments 56
Пиксель-арт прекрасен
![image](https://habrastorage.org/getpro/habr/comment_images/d48/8ab/e04/d488abe04b933a9cb2bacc791bf42442.png)
![image](https://habrastorage.org/getpro/habr/comment_images/08e/75b/9ee/08e75b9ee34258f11ef050400a023620.png)
Кажется, я знаю, как буду иллюстрировать корпоративную Wiki
Опять та же фигня. Не вижу где посмотреть видеокарту
![image](https://i.imgur.com/lhv482M.png)
Гугл в зависимости от загруженности может разные карты подсовывать. Можно еще оформить Colab Pro подписку, тогда будет карты помощнее давать.
Мы точно про один и тот же блокнот?
https://colab.research.google.com/drive/1MDin_3_XE21f7XcnFw_alc1YZIuKkD15#scrollTo=qQOvOhnKQ-Tu
![](https://habrastorage.org/getpro/habr/upload_files/5f2/f55/970/5f2f5597019dc18c6504d5519241002d.png)
https://colab.research.google.com/drive/1B6FLBZmHCSZmCI-kmQRzPqy0PeicO0PG
Добавьте в вашем блокноте ячейку и выполните в ней !nvidia-smi, покажет текущую видеокарту.
Отдает всегда Tesla K80
![image](https://i.imgur.com/62ghznk.png)
Если все время k80 дает, то надо подождать, значит нет свободных. Вообще должен в итоге хотя бы P4 выдать.
Либо же раскошелиться на подписку.
Видимо нет. Я раз 20 пересоздавал машину.
Проблема в том, что синтез пиксель арта здесь основан на diffvg, который придётся собирать из исходников на локальной машине, что не вполне тривиально.
Если у вас что-то вроде Debian или Ubuntu с установленными драйверами NVIDIA, CUDA Toolkit 10.2, и Python 3.7+, то могу написать небольшой гайд, как запустить эту нейронку локально. А вот под винду так даже и не соображу, что и как настраивать.
stackoverflow.com/questions/60240863/i-am-from-pakistan-can-i-buy-google-colab-pro-for-experiments
Так.
Oops: runtime error: CUDA out of memory. Tried to allocate 48.00 MiB (GPU 0; 7.43 GiB total capacity; 5.83 GiB already allocated; 32.81 MiB free; 5.95 GiB reserved in total by PyTorch) Try reducing --num-cuts to save memory
![](https://habrastorage.org/getpro/habr/upload_files/5b7/aed/090/5b7aed09004bd7488252b57385e0dfa0.png)
Сколько ему надо ресурсов? Никак зарезать нельзя?
В Colab'е очень часто выделяют меньше VRAM, чем есть на GPU. Издержки облака…
Можете попробовать в ячейке "III. Generate images" нажать на «Show code» и там, где задаются параметры, скажем после строчки
clipit.add_settings(use_pixeldraw=use_pixeldraw)
добавить строку:clipit.add_settings(num_cuts=9)
Это очень сильно уменьшит потребление памяти.Отлично, спасибо. Жаль опять Tesla K80 теперь только выпадает. На ней этот код вообще почему-то не взлетает. Даже медленно.
![image](https://habrastorage.org/getpro/habr/comment_images/70b/399/eba/70b399eba87ad0c3f2b09cb6e2b00648.png)
Для этого можно, к примеру, воспользоваться этим Colab'ом. Там после установки всего нужного и перезапуска runtime'а:
1. Устанавливаем scale в 1.
2. Снимаем галочку use_pixeldraw (теперь у нас вместо diffvg будет vqgan).
3. Показать код (Show code) в этой ячейке и там:
clipit.add_settings(prompts=prompts, aspect=aspect)
заменить наclipit.add_settings(prompts=prompts)
(иначе модель не влезет в память). Кроме того, после этой строчки добавить:clipit.add_settings(size=(256,256))
clipit.add_settings(num_cuts=9)
Тем самым мы запрашиваем генерацию квадратного изображения 256x256 пикселей (размеры должны быть кратны 16, чтобы сеть переварила).Всё, можно запускать, не забывая указывать в запросе тип рендеринга (скажем, #Unreal Engine или #pixelart):
![](https://habrastorage.org/webt/ms/ud/g6/msudg6f2oevvjor5n3otxwth0be.png)
![](https://habrastorage.org/webt/q2/ht/eo/q2hteofs5byhr3g83jyuulzz3ge.png)
clipit.add_settings(quality="better", scale=scale)
«better» на «draft».Спасибо. Я уже думаю, что проще на своей RTX 2060S завести.
А из PyPi не получится более корректную версию PyTorch вытащить в процессе сетапа?
clipit.add_settings(num_cuts=96)
![image](https://habrastorage.org/getpro/habr/comment_images/5da/851/9bf/5da8519bf8fb95c6abb8e7ef72284ae5.png)
Добавил в код:
import tensorflow as tf
device_name = tf.test.gpu_device_name()
print(device_name)
Выдал:
/device:GPU:0
Большое спасибо за статью! И за ссылки на блокноты отдельно. Вроде бы только недавно синтез изображения по текстовой подсказке был чем-то недосягаемым. Теперь же все делается в 2 клика. Страшно представить, к чему это придет через 10 лет. Синтез фильма по краткому описанию сюжета?
Вот например
![](https://habrastorage.org/webt/vt/1d/ds/vt1ddsfjxmua9tgvxcm-sqrmxag.jpeg)
Модель «не понимает», что в пещере деревья обычно не растут, да и пожелание сделать планировку пещеры в форме указанного музыкального инструмента реализовать не удалось даже после нескольких модификаций текста запроса.
В общем, разного рода фоновые вещи. Людей, особенно крупным планом, оно обрабатывает так себе (в pixelart-варианте это не слишком видно, но если делать FullHD, то ужас-ужас).
И совсем паршиво обрабатываются мифические животные, например гарпии, грифоны, драконы или (особенно) русалки. Сгенерировать нормальный русалочий хвост в FullHD так и не удалось. Похоже, нужно тюнить модель или использовать её как feature extractor, набросив сверху два дополнительных слоя, чтобы генерировать мифических животных.
![image](https://habrastorage.org/getpro/habr/comment_images/da6/54f/e89/da654fe89e95d8de1b7ee94d58a6629c.png)
Но вот, действительно, точного выполнения от них не получается. Лица в принципе генерируются, но страшненькие. Вот картины довольно неплохо заходят.
Не силён в ноутбуках... Что-то у меня упорно не находит модуль pixeldrawer :(
![](https://habrastorage.org/webt/_x/ff/a0/_xffa0qhvw74rhs-wgpkoez_fqk.png)
![image](https://habrastorage.org/getpro/habr/comment_images/7f8/697/28d/7f869728df07247769bc3b69dfca29f1.png)
![image](https://habrastorage.org/getpro/habr/comment_images/54c/dc2/76c/54cdc276cfb24bc777cb1a67fec7f341.png)
![image](https://habrastorage.org/getpro/habr/comment_images/a0e/686/19d/a0e68619d0108845c3f4327a9cd2d9f2.png)
![image](https://habrastorage.org/getpro/habr/comment_images/40e/9ec/380/40e9ec3808fa334b020f61a12909d5c1.png)
![](https://habrastorage.org/webt/m8/hb/ge/m8hbge_firci73vwzkwhfjyqzje.png)
![](https://habrastorage.org/webt/d1/6-/3y/d16-3y_fag_fg0fmy6kamcrvmmm.png)
Ну, и если запускать локально, то там намного больше возможностей и параметров для настройки. Я использовал такой вариант запуска:
python generate.py -p "the door into autumn #pixelart" -i 600 -qua "normal" --num_cuts 15 --output "result/output" -s 416 224 -lr 0.1 --save_every 10 --pixelize_every 50 --out_unpix "unpix/output"
![image](https://i.ibb.co/g4NBxNS/4e64980824c1.png)
Вин Дизель в космосе
![image](https://i.ibb.co/ZHwc8F7/a7df0db4e2b5.png)
Джим Керри
![image](https://i.ibb.co/f2smMbR/653b42ffa250.png)
Так что можно взять «выхлоп» CLIP, уменьшить так, чтобы каждый пиксельный кадратик изображения занимал ровно 1 реальный пиксель, после чего увеличить с помощью этой нейронки.
![](https://habrastorage.org/webt/bb/-s/1l/bb-s1lnymuzqlqbch-3o1cjsdsm.png)
![](https://habrastorage.org/webt/cc/wc/k-/ccwck-wazc90rhgfj2yjl8ikeia.png)
![](https://habrastorage.org/webt/af/hi/1p/afhi1pvzk3-3dj53tksnafofevy.png)
![](https://habrastorage.org/webt/f8/4j/9b/f84j9bqfvlq3sby9jegpo_gdkag.png)
Сделай себе книгу для изучения языка с нейросетевыми иллюстрациями