Привет! Узнал о существовании данного колаба только из этого видео. Инициатива классная! Когда гугол забанил автоматик тоже задумался о том что круто было бы адаптировать под генерацию диффузеры, работающие без всяких туннелей и UI. С тех пор сам написал несколько колабов для SD и текстовых LLM. В техническом плане у тебя всё круто, но вот с точки зрения пользовательского интефейса печаль-беда. Я бы маленько доработал следующие моменты, чтобы было более юзабельно: 1. Блок загрузки. Идея перезапускать его по несколько раз в принципе такая себе, и заставляет его запинаться о ранее загруженный контент. Гораздо стабильнее и удобнее было бы сделать например 5 полей со списками загружаемых моделей и 5 полей с лорами. Пускай они грузятся и конвертируются по очереди. Это также позволит более удобно выбирать используемые при генерции модели и лоры. Можно тупо сделать выпадающий список с моделями/лорами 1-5. 2. Вводить токен civitai вручную в строку загрузки это не комильфо. Ты бы сам задолбался его каждый раз приписывать, если бы например тестил с десяток моделей. Лучше просто сделать для него поле и подставлять автоматически. 3. Насчёт ввода ссылок на скачивание. Хорошо что так можно делать, но если реализовать в настройках выбор моделей по номеру поля, в которое были вбиты ссылки, то разобраться визуально чем отличается модель /12345 от /54321 будет геморно. Поэтому хорошим тоном будет заранее заполнить выпадающие списки названиями годных моделей, а при загрузке проверять какое имя выбрано и подставлять соответствующую ссылку. Юзеры за такое скажут спасибо, я гарантирую это. 4. Насчёт загрузки лор. Иметь 3 разных поля для ввода ссылки на лору, которые ещё и могут конфликтовать между собой, это не ок. Можно сделать одну строку и отслеживать в ней наличие "https", например if ('https' in lora1): грузить как с цивала else: грузить как с хагинфейса Хагинфейс кстати не очень то нужон, моделей там меньше и обновляются они реже. Так что если из за особенностей загрузки с него пострадают остальные функции, можно на него и забить - никто не заметит. 5. Проверять есть ли папки с соответствующими загружаемым моделям/лорам названиями это конечно база, но можно и тупо добавить строку "нет" во все списки, чтобы при выборе её ничего не грузилось. 6. Настройки. Очень геморно и неочевидно иметь их отдельным блоком. Сам факт того что его надо отдельно перезапускать при смене настроек уже не ок. Лучше продублировать их в каждом блоке гнерации. Так будет гораздо эргономичней. Чего не хватает, не знаю возможно ли это сделать через диффузеры, но было бы круто: 1. Загрузка/выбор VAE, на SD 1.5 без них печально. 2. Веса Лор. 3. Аналог апскейлера/хайрезфикса. Желательно с возможностью выбора/загрузки конкретных апскейлеров. 4. Аналог Динамик-промптс с поддержкой вайлдкарт. (Это в принципе можно сделать с помощью скрипта в самом колабе, но геморно) Если всё это получится добавить - уйду с автоматика :)
@ran4erep8 ай бұрын
спасибо за такой развёрнутый комментарий. Многое исправлять в интерфейсе уже будет тяжело. Одно завязано на другом. Про поле для токена я уже думал, надо будет добавить. Отдельный блок настроек - это, как говорится, фича, а не баг. В одном месте настраиваются все три режима работы. По поводу того, что не хватает. Что такое VAE я не знаю и погуглив толком и не понял, уже писали об этом. Я не эксперт в Stable Diffusion, не пользовался Automatic1111 сильно много и многих штук не знаю, так что попрошу объяснить что такое VAE и для чего оно используется. И главное как оно используется в том же A1111. Веса для лор звучит странно. От лоры нужно загрузиться в пайплайн вместе с основной моделью и просто вызывать её ключевым словом. Апскейлер я хотел добавить, но мне результат апскейлинга не понравился. Возможно я просто использовал плохую модель, хотел посмотреть на другие, но пока руки не добрались. Если результаты апскейлинга на другой моделе будут крутые, то обязательно добавлю апскейлинг. Опять же, что такое dynamic prompts и wildcard я тоже не знаю и про это даже впервые слышу. Подытожив хочу сказать, что я не хочу сделать какой-то аналог A1111 со всеми его возможностями, изначальная цель у меня была дать людям возможность генерировать бесплатно картинки, но без ограничений, которые есть на разных сайтах. Типа когда за тебя решают какое разрешение ты можешь выбрать, какие модели ты можешь использовать, запрещают генерировать NSFW контент и прочее
@LambdaDeltaArt8 ай бұрын
@@ran4erep Вот автоматиком ты зря не пользовался. В нём как раз реализованы все базовые функции, которые нужны для генерации в SD. Если ты решил делать что-то в этом направлении, то с ним стоит хотя-бы ознакомиться. Просто сгенерировать пикчи без цензуры по фану в онлайне сейчас не проблема. Тот-же SeaArt предлагает использовать большинство моделей и лор с civitai, а Foocus прост в использовании и работает в колабе. Можешь кстати их глянуть как пример базового функционала. На данный момент твой колаб позволяет генерировать лоурез картинки, что по нынешним временам вещь бесполезная. НО у него есть 2 больших преимущества: - Позволяет грузить кастомные модели и лоры. - Использует диффузеры. (Автоматик в колабе гугол официально забанил, а с диффузерами такого не будет) И эти преимущества могут всерьёз заинтересовать профессионалов, если +- добить функционал до автоматика. Попробую пояснить о чём речь (будет ссылки без https части и точки): Что такое VAE pikabu ru/story/chto_takoe_vae_dlya_stable_diffusion_obyazatelno_dobavlyaem_9957971 VAE можно найти на том же civitai. Без них во многих моделях картинки болучаются будто бы выцветшими. Веса в лорах вещь очень нужная. Это то же самое что и вес параметра в промпте, могут быть положительными и отрицательными. Причём многие лоры вообще могут не работать с весом 1.0, как при обычном добавлении. Использовать 4-6 лор это норма, если хочешь сгенерить что-то не дефолтное, и они при этом обязательно начнут конфликтовать между собой, выдавая тебе отборную нейродичь. Чтобы этого избежать нужно тонко настраивать баланс их весов, иногда приходиится раз 50 генерить тестовые картинки пока начнёт выходить что-то внятное. И вот поэтому общие настройки для всех режимов не очень удобны, тупо заколебаешься по 50 раз для каждой картинки запускать отдельный блок. По апскейлу. Мои любимые модели для апскейла это 4x-AnimeSharp и 4x-UltraSharp. civitai com/api/download/models/83197 и huggingface co/embed/upscale/resolve/main/4x-UltraSharp.pt результат дают достаточно годный. Кстати при попытке генерации в SD сразу картинки с большим разрешением, например около 2к пикселей, получишь значительные косяки в анатомии, потому что SD1.5 тренировалась на разрешении 512х512, а SDXL на 1024х1024. И для вменяемого результата разрешение генерации должно быть близким к этим значениям. Далее картинку вытягивают апскейлером, так что без него никак. Основные параметры в автоматическом апскейле это модель, количество шагов и Denoising strength. Dynamic prompts и wildcard это не обязательные вещи, но многие ими пользуются. Dynamic prompts позволяет использовать переменную ИЛИ в промпте при генерации. Например в промпт "1girl, {white | red | blue} dress" даст изображение девушки с белым, красным или синим платьем. Если зададим генерацию 3 картинок, получим все 3 варианта. Варианты задаются в фигурных скобках {}, а символ | выступает в виде оператора ИЛИ. Главная фишка в том, что можно создавать списки внутри списков, внутри списков, внутри списков, например: "1girl, {{white | red | blue} dress | {white | red | blue} swimsuit}", отсюда получаем либо платье, либо купальник. Кроме того к этому можно ещё и добавить вайлдкарты. Это просто текстовые файлы, лежащие в папке wildcards, вроде color.txt, которые содержат списки слов или фраз, каждая с новой строки, например: white red blue В промпте они вызываются символами _ по краям от имени. Теперь, если добавить их в промпт, получится "1girl, {_color_ dress | _color_ swimsuit}" То результат будет тем-же, но вставлять цвета каждый раз уже не нужно. При должной упоротости можно написать аналог заскриптованной скриптовой игры, дающей тебе сбалансированный промпт по нажатию одной кнопки. Выдал всё что мог, дальше сам думай что с этим делать.
@ran4erep8 ай бұрын
@@LambdaDeltaArt автоматик я не смогу попробовать, моё железо этого не позволяет, всё что у меня есть - планшет 2013-го года, со встроенной видеокартой и четырью гигабайтами ОЗУ. В общем, посмотрю что можно будет добавить и постараюсь добавить VAE, апскейлер, опять же, если результаты не будут отвратительными. Насчёт множества лор не знаю, ну то есть это можно сделать, но вот с весами лор пока ничего не знаю, получится ли, а без них, как я понял из твоего комментария, нет смысла такое добавлять
@kadzuto66 ай бұрын
Большое спасибо!
@xiaoxiao40688 ай бұрын
Great, updated
@ALi_KaLLi7 ай бұрын
Привет классно твои видео очень полезные, а можешь сделать SUPIR upscale в гугл колабе без платной подписки?
@ran4erep7 ай бұрын
я не знаю что такое SUPIR, но апскейл будет, с любой моделью которую найдёшь
@@ALi_KaLLi это не ComfyUI и не Automatic1111... Это свой отдельный интерфейс
@ВелесСлавянин4 ай бұрын
Кстати, можно еще задать один вопрос - можно ли как-то использовать модели и LoRA, рассчитаные на Pony Diffusion? Или нет?
@ran4erep4 ай бұрын
Pony Diffusion - это и есть модель
@ВелесСлавянин4 ай бұрын
@@ran4erep Я имел ввиду, что LoRA на Pony Diffusion можно использовать только через модель для Pony Diffusion? Или для этого надо использовать другой скрипт? Или можно как-то вставить LoRA для Pony в твоем скрипте(или для этого надо отключить вес токенов)?
@ran4erep4 ай бұрын
@@ВелесСлавянин просто берёшь и используешь лору для Pony Diffusion с моделью Pony Diffusion
@ВелесСлавянин4 ай бұрын
@@ran4erep То есть версия Stable Diffusion не имеет значения(которая в вашем скрипте в настройках параметра)?
@ran4erep4 ай бұрын
@@ВелесСлавянин пункт "версия Stable Diffusion" нужен чтобы работали веса токенов. Потому что они по-разному устроены для 1.5 и XL. К лорам это не имеет отношения
@friedpotato15873 ай бұрын
Здравствуйте, спасибо за скрипт! А с чем может быт ьсвязана ошибка "NameError: name 're' is not defined" и "AttributeError: 'NoneType' object has no attribute 'unload_lora_weights' " ?
@ran4erep3 ай бұрын
@@friedpotato1587 первая ошибка не знаю, а вторая - это баг
@friedpotato15873 ай бұрын
@@ran4erepс ним сейчас никак не справиться?
@ran4erep3 ай бұрын
@@friedpotato1587 самый простой способ - просто перезапустить сеанс и выбрать заново лору
@Im_Dark323 күн бұрын
помоги пожалуйста, AttributeError: 'NoneType' object has no attribute 'unload_lora_weights'
@ran4erep23 күн бұрын
@@Im_Dark3 это баг. Не помню как его можно решить. В любом случае, сейчас никто не пользуется Stable Diffusion. Это мёртвая нейросеть, все перешли на Flux. Она от бывших разработчиков Stable Diffusion, такая же бесплатная и опенсорсная, но показывает качество сопоставимое с Midjourney, DALL-E 3 и прочими современными нейросетями
@Im_Dark323 күн бұрын
@@ran4erep а на флюкс гайд есть?
@ran4erep23 күн бұрын
@@Im_Dark3 а на Флакс никаких гайдов не нужно. Берёшь и пользуешься на любом сайте. Его уже запустить на бесплатном Колабе не получится
@spentnasnt39008 ай бұрын
Привет ещё раз. Извиняюсь за спам комментами, у меня ещё один вопрос: эмбеддинги (в тч негативные) поддерживаются? Если нет, то будут ли добавлены позже? Поддерживается ли использования множества лор сразу (если вписать сразу несколько лор в промпт)?
@ran4erep8 ай бұрын
эмбеддинги в смысле textual inversion модели? Если так, то нет, не поддерживаются. Множество лор тоже нельзя загрузить, только одну
@Зиад-т9н8 ай бұрын
SDXL не крашится в коллабе если использывать спец vae для уменьшения потребления ОЗУ. from diffusers.models import AutoencoderKL from diffusers import AutoPipelineForText2Image import torch vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix") pipeline = AutoPipelineForText2Image.from_pretrained("stablediffusionapi/pony-diffusion-v6-xl", torch_dtype=torch.float16 ).to("cuda") generator = torch.Generator("cuda").manual_seed(31) image = pipeline("3D, Monika From Doki Doki Literature club, japan school background,", generator=generator, vae=vae, clip_skip=2).images[0] image
@ran4erep8 ай бұрын
проверим. Если действительно так, то будет ещё и поддержка XL моделей с CivitAI. Но не уверен что прям всем-всем моделям это поможет. Да и интересно повлияет ли этот VAE на генерацию
@Зиад-т9н8 ай бұрын
Модель SG161222/RealVisXL_V4.0 заработала и выдала изображение норм качества @@ran4erep
@kamentim4 ай бұрын
Добрый день! Если меняешь Лору, или указываешь ее после того когда уже загрузил модель, то Лора игнорируется. Как быть?
@ran4erep4 ай бұрын
не менять лору и не указывать её после того, когда модель уже загружена
@kamentim4 ай бұрын
@@ran4erep А если хочется использовать другую Лору с той же моделью?
@ran4erep4 ай бұрын
@@kamentim перезапустить сеанс
@zanyatoBlyat3 ай бұрын
мужик, ты случаем раньше на spaces не зависал? Ник больно знакомый...
@ran4erep3 ай бұрын
@@zanyatoBlyat почему раньше? И сейчас иногда захожу на эту файлопомойку
@Зиад-т9н8 ай бұрын
Привет, для некоторых моделей sdxl turbo нужен clip skip = 2 иначе всё превращается в лоу куалити блоб, я нашёл диффузере апи только как выставить его для 1.5/2.0, а для sdxl turbo его толи его нет толи я слепой но в описании модели написано что его надо ставить, ты видел что нить про него?
@ran4erep8 ай бұрын
видел, но пока что clip skip не поддерживается моим скриптом. И не знаю будет ли вообще поддерживаться, так как не особо понимаю для чего он вообще нужен
@Зиад-т9н8 ай бұрын
@@ran4erep Он нужен для некоторых моделей без них каша будет
@ran4erep8 ай бұрын
@@Зиад-т9н ну, я почитал подробно об этом, сделаю. Но чуть позже, сейчас в планах перевести скрипт на английский язык и снять англоязычную инструкцию
@LimeTime-q8u8 ай бұрын
Не работает. Загрузка модели не начинается, даже предустановленных из списка, пишет: None Список использованных моделей в течении сессии: Пока что список моделей пуст :( Видимо что-то поломалось.
@ran4erep8 ай бұрын
ничего не ломалось. Надо было бы хоть видео один раз посмотреть...
@listik10175 ай бұрын
img2img не работает, как бы не старался
@ran4erep5 ай бұрын
постарайся лучше. Только что проверил, всё работает
@listik10175 ай бұрын
@@ran4erep проблема в видеопамяти как я понял. загружаю в img2img изображение 1280x720, 0.4 силы и 25 шагов, никакую лору или типа того не использую, и говорит что не хватает памяти (OutOfMemoryError). "Оперативная память графического процессора" забивается на 14.5 из 15. Пробовал разные модели и методы (euler и dpm), везде одна и та же ошибка. Как чинить?
@ran4erep5 ай бұрын
@@listik1017 наверное нужно было прочитать, что картинка должна делиться на 8, иначе будет ошибка. Посмотри в калькуляторе сколько будет 720/8. Ну а вообще да, не хватает памяти. С этим ничего не поделать. Попробуй другую модель или уменьши количество шагов