Давно меня не было в уличных гонках, то есть на xss.pro
Всем привет, в этом уроке мы запустим лору instagirl 2.5 для Wan 2.2 в ComfyUI в арендованном сервере с GPU в Runpod.
Инструкция подходит для новичков и является по сути вводным уроком.
Если этот урок получит положительный отклик, будет еще другие уроки, такие как обучение лоры для генерации изображения и видео с одним и тем же человеком.
Постепенно мы придем к реализации telegram-бота для serverless генерации изображений и видео по требованию.
Если вы из России для реализации этой инструкции вам понадобится иностранный vpn и иностранная карта (или криптовалюта) для оплаты Runpod.
Пополняем свой счет с помощью иностранной карты или криптовалюты (минималка 10$).
Это память (диск) который мы арендуем для хранения наших моделей и прочих данных.
Необходимо это для того чтобы каждый раз не загружать тяжеловесные gguf модели и safetensor.
Переходим в Storage и нажимаем New network volume.
Перед нами откроется окно:
Здесь мы можем выбрать дата центры где будет наше хранилище.
Справа можно увидеть доступные GPU в каждом дата центре, шкала отображает количество свободных GPU.
Важно выбрать дата центр исходя из наших потребностей в GPU
Мы будем запускать нашу модель на L40S.
По этой причине выбираем дата центр US-IL-1, US-NC-1 или US-TX-3 (необходимо выбрать дата центр с большим количеством свободных GPU L40S).
Обязательно написать имя нашего хранилища (любое удобное вам) и выбираем необходимый объем памяти (в нашем случае 70гб).
Это будет стоить нам 4.90$ в месяц.
Оплата почасовая. нажимаем Create network storage и наше хранилище будет создано.
Перед нами откроется окно:
Сверху мы выбираем нами созданное хранилище, снизу нажимаем на желаемый GPU (у нас будет L40S).
После выбора GPU мы увидим:
Тут нам необходимо нажать Change Template и выбрать ComfyUI Manager Permanent Disk torch2.4 (это уже подготовленный образ с ubuntu, cuda и предустановленными pytorch и comfyui).
Все остальные настройки должны соответствовать скрину. Жмем Deploy On-Demand.
После этого наш сервер начнет запускаться и нам надо дождаться статуса Ready у сервиса JupiterLab (при первом запуске на это может уйти до 5 минут)
После этого в браузере откроется JupiterLab:
Тут /workspace это директория в нашем хранилище, которая будет всегда пока мы не удалим хранилище.
Тут мы можем хранить наши данные не опасаясь того что они пропадут после отключения сервера.
ComfyUI а нас находится в папке ComfyUI.
Открываем его и находим папку models. Тут и будут храниться наши модели и прочие данные необходимые для работы.
Теперь мы запустим терминал чтобы оттуда запустить наш ComfyUI:
Но сначала установим sageattention (команда source /workspace/ComfyUI/venv/bin/activate и pip install sageattention), который ускоряет генерацию изображений:
Для запуска ComfyUI в терминале набираем команду ./run_gpu.sh и жмем Enter
Ждем окончания процесса запуска и вывода сообщения:
Чтобы запустить графический интерфейс ComfyUI необходимо зайти в наш под в runpod и нажать на ссылку ComfyUI:
После этого откроется стартовое окно ComfyUI с разными template, нам они не нужны, закрываем. Скачиваем на свой комп Workflow. Открываем этот файл:
При первом запуске запросит установить дополнительные ноды:
Жмем Install All Missing Nodes.
После установки жмем restart и обновляем страницу в браузере.
Так же нам понадобится установить RES4LYF.
Для этого открываем Manager и в открывшемся окне жмем Custom nodes manager:
Далее в поиске вбиваем RES4LYF и жмем install потом выйдет окошко выбора версии, просто жмем select:
После окончании установки жмем кнопку restart и обновляем страницу в браузере пока не появится интерфейс ComfyUI.
Переходим обратно в JupiterLab.
Теперь нам необходимо добавить файлы в папки Vae, Unet, Loras, Checkpoints, Clip.
Список файлов которые нам необходимы находятся ниже.
Vae: wan_2.1_vae.safetensors
Unet: Wan2.2-T2V-A14B-HighNoise-Q8_0.gguf | Wan2.2-T2V-A14B-LowNoise-Q8_0.gguf
Loras: Lenovo.safetensors (Google drive)
Checkpoints: WAN2.2-HighNoise_SmartphoneSnapshotPhotoReality_v3_by-AI_Characters.safetensors
Clip: umt5_xxl_fp8_e4m3fn_scaled.safetensors
Ссылки кликабельны.
Некоторые файлы мы будем перекачивать по прямой ссылке из huggingface с помощью команды wget.
Ссылки помеченные Google drive будем скачивать с помощью команды gdown --fuzzy.
Для примера перакачаем из huggingface файл в папку vae.
Открываем терминал:
После того как терминал запустится, с помощью команды cd переходим к директории ComfyUI/models/vae
Жмем Enter и выполнится переход.
Далее нам надо скопировать прямую ссылку на наш файл из huggingface.
Переходим на wan_2.1_vae.safetensors и жмем Copy download link:
Мы скопировали прямую ссылку для скачивания, сейчас нам надо вернуться обратно в терминал и скачать наш файл с помощью команды wget, пишем команду и после пробела вставляем нашу ссылку для скачивания:
В итоге мы должны увидеть это:
Это означает что наш файл успешно загружен.
Проверим наличие нашего файла.
Проверим наличие нашего файла с помощью команды ls -l
Как мы видим, файл находится в данной директории.
Сейчас мы будем с помощью терминала переходить по директориям и скачивать туда нужные файлы.
Сейчас мы находимся в папке vae. Чтобы нам перейти назад в папку models используем команду cd ..
Мы перешли в папку models.
Так как остальные нужные папки у нас находятся в папке models, для перехода мы будем использовать команду cd {название папки}.
Например для перехода в папку unet, необходимо использовать команду cd unet. По аналогии перекачиваем наши файлы в целевые папки.
Загружать файлы на которых нет прямой ссылки мы будем из Google Drive .
Например для Instagirlv2.5-HIGH.safetensors копируем ссылку, переходим в директорию loras и вводим команду gdown --fuzzy "https://drive.google.com/file/d/11XFmwj9nR0V9erp_EU5Ei40YvnPFZYnG/"
Ждем окончания загрузки.
Проделываем это для остальных файлов из Google drive меняя ссылку в команде.
Теперь убеждаемся что все нужные файлы находятся в соответствующих папках и можно приступать к следующему этапу.
Промпты необходимо вводить в окно Positive prompt:
Пример промпта для нашего случая:
Positive: Instagirl, a young woman with her hair in two high pigtails, dyed half lavender and half mint green, she is winking one eye at the camera and giving a peace sign right next to her cheek, a wide, playful smile on her face, wearing a white collared shirt with a black ribbon tie, tight close-up selfie, taken from a slightly high angle in her bedroom, the background is a collage of anime posters and photos taped to the wall, ring light reflection, high angle selfie, Instagirl, kept delicate noise texture, dangerous charm, amateur cellphone quality, visible sensor noise, heavy HDR glow, amateur photo, blown-out highlight from the lamp, deeply crushed shadows
В нашем workflow используется лора Instagirl, поэтому генерируемого человека мы должны обозначить как Instagirl.
Negative: 色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走, censored, sunburnt skin, rashy skin, red cheeks
В негативном промоет можно дописать то что вы не хотите видеть (например можно запретить генерировать других людей, тексты и тд)
Самый удобный способ написать промпт это использовать для этого нейросеть.
Пишем на русском что мы хотим получить и показываем пример промпта:
Текст промпта из этого примера: сделай промпт на английском для генерации изображения девушки. обязательно используй слово instagirl для определения девушки: девушка сидит на кровати в красном платье.
Сделай объемный промпт с большим количеством деталей. Пример: Instagirl, a young woman with her hair in two high pigtails, dyed half lavender and half mint green, she is winking one eye at the camera and giving a peace sign right next to her cheek, a wide, playful smile on her face, wearing a white collared shirt with a black ribbon tie, tight close-up selfie, taken from a slightly high angle in her bedroom, the background is a collage of anime posters and photos taped to the wall, ring light reflection, high angle selfie, Instagirl, kept delicate noise texture, dangerous charm, amateur cellphone quality, visible sensor noise, heavy HDR glow, amateur photo, blown-out highlight from the lamp, deeply crushed shadows
Для промптинга более откровенных изображений необходимо использовать uncensored текстовые модели, например Venice: Uncensored (free)
Всем привет, в этом уроке мы запустим лору instagirl 2.5 для Wan 2.2 в ComfyUI в арендованном сервере с GPU в Runpod.
Инструкция подходит для новичков и является по сути вводным уроком.
Если этот урок получит положительный отклик, будет еще другие уроки, такие как обучение лоры для генерации изображения и видео с одним и тем же человеком.
Постепенно мы придем к реализации telegram-бота для serverless генерации изображений и видео по требованию.
Если вы из России для реализации этой инструкции вам понадобится иностранный vpn и иностранная карта (или криптовалюта) для оплаты Runpod.
Регистрация и пополнение счета в Runpod.
Регистрируемся в runpod(реф, при пополнении баланса на 10$ и более получаете рандомно от 5$ до 500$)| не реф и переходим в биллинг.Пополняем свой счет с помощью иностранной карты или криптовалюты (минималка 10$).
Создание Storage
Запуск мы будем делать с использованием Storage.Это память (диск) который мы арендуем для хранения наших моделей и прочих данных.
Необходимо это для того чтобы каждый раз не загружать тяжеловесные gguf модели и safetensor.
Переходим в Storage и нажимаем New network volume.
Перед нами откроется окно:
Здесь мы можем выбрать дата центры где будет наше хранилище.
Справа можно увидеть доступные GPU в каждом дата центре, шкала отображает количество свободных GPU.
Важно выбрать дата центр исходя из наших потребностей в GPU
Мы будем запускать нашу модель на L40S.
По этой причине выбираем дата центр US-IL-1, US-NC-1 или US-TX-3 (необходимо выбрать дата центр с большим количеством свободных GPU L40S).
Обязательно написать имя нашего хранилища (любое удобное вам) и выбираем необходимый объем памяти (в нашем случае 70гб).
Это будет стоить нам 4.90$ в месяц.
Оплата почасовая. нажимаем Create network storage и наше хранилище будет создано.
Запускаем POD
POD - простыми словами это сервер с GPU на котором мы будем запускать наши модели. Переходим в Pods.Перед нами откроется окно:
Сверху мы выбираем нами созданное хранилище, снизу нажимаем на желаемый GPU (у нас будет L40S).
После выбора GPU мы увидим:
Тут нам необходимо нажать Change Template и выбрать ComfyUI Manager Permanent Disk torch2.4 (это уже подготовленный образ с ubuntu, cuda и предустановленными pytorch и comfyui).
Все остальные настройки должны соответствовать скрину. Жмем Deploy On-Demand.
После этого наш сервер начнет запускаться и нам надо дождаться статуса Ready у сервиса JupiterLab (при первом запуске на это может уйти до 5 минут)
После этого в браузере откроется JupiterLab:
Тут /workspace это директория в нашем хранилище, которая будет всегда пока мы не удалим хранилище.
Тут мы можем хранить наши данные не опасаясь того что они пропадут после отключения сервера.
ComfyUI а нас находится в папке ComfyUI.
Открываем его и находим папку models. Тут и будут храниться наши модели и прочие данные необходимые для работы.
Теперь мы запустим терминал чтобы оттуда запустить наш ComfyUI:
Но сначала установим sageattention (команда source /workspace/ComfyUI/venv/bin/activate и pip install sageattention), который ускоряет генерацию изображений:
Для запуска ComfyUI в терминале набираем команду ./run_gpu.sh и жмем Enter
Ждем окончания процесса запуска и вывода сообщения:
Чтобы запустить графический интерфейс ComfyUI необходимо зайти в наш под в runpod и нажать на ссылку ComfyUI:
После этого откроется стартовое окно ComfyUI с разными template, нам они не нужны, закрываем. Скачиваем на свой комп Workflow. Открываем этот файл:
При первом запуске запросит установить дополнительные ноды:
Жмем Install All Missing Nodes.
После установки жмем restart и обновляем страницу в браузере.
Так же нам понадобится установить RES4LYF.
Для этого открываем Manager и в открывшемся окне жмем Custom nodes manager:
Далее в поиске вбиваем RES4LYF и жмем install потом выйдет окошко выбора версии, просто жмем select:
После окончании установки жмем кнопку restart и обновляем страницу в браузере пока не появится интерфейс ComfyUI.
Переходим обратно в JupiterLab.
Теперь нам необходимо добавить файлы в папки Vae, Unet, Loras, Checkpoints, Clip.
Список файлов которые нам необходимы находятся ниже.
Vae: wan_2.1_vae.safetensors
Unet: Wan2.2-T2V-A14B-HighNoise-Q8_0.gguf | Wan2.2-T2V-A14B-LowNoise-Q8_0.gguf
Loras: Lenovo.safetensors (Google drive)
Checkpoints: WAN2.2-HighNoise_SmartphoneSnapshotPhotoReality_v3_by-AI_Characters.safetensors
Clip: umt5_xxl_fp8_e4m3fn_scaled.safetensors
Ссылки кликабельны.
Некоторые файлы мы будем перекачивать по прямой ссылке из huggingface с помощью команды wget.
Ссылки помеченные Google drive будем скачивать с помощью команды gdown --fuzzy.
Для примера перакачаем из huggingface файл в папку vae.
Открываем терминал:
После того как терминал запустится, с помощью команды cd переходим к директории ComfyUI/models/vae
Жмем Enter и выполнится переход.
Далее нам надо скопировать прямую ссылку на наш файл из huggingface.
Переходим на wan_2.1_vae.safetensors и жмем Copy download link:
Мы скопировали прямую ссылку для скачивания, сейчас нам надо вернуться обратно в терминал и скачать наш файл с помощью команды wget, пишем команду и после пробела вставляем нашу ссылку для скачивания:
В итоге мы должны увидеть это:
Это означает что наш файл успешно загружен.
Проверим наличие нашего файла.
Проверим наличие нашего файла с помощью команды ls -l
Как мы видим, файл находится в данной директории.
Сейчас мы будем с помощью терминала переходить по директориям и скачивать туда нужные файлы.
Сейчас мы находимся в папке vae. Чтобы нам перейти назад в папку models используем команду cd ..
Мы перешли в папку models.
Так как остальные нужные папки у нас находятся в папке models, для перехода мы будем использовать команду cd {название папки}.
Например для перехода в папку unet, необходимо использовать команду cd unet. По аналогии перекачиваем наши файлы в целевые папки.
Загружать файлы на которых нет прямой ссылки мы будем из Google Drive .
Например для Instagirlv2.5-HIGH.safetensors копируем ссылку, переходим в директорию loras и вводим команду gdown --fuzzy "https://drive.google.com/file/d/11XFmwj9nR0V9erp_EU5Ei40YvnPFZYnG/"
Ждем окончания загрузки.
Проделываем это для остальных файлов из Google drive меняя ссылку в команде.
Теперь убеждаемся что все нужные файлы находятся в соответствующих папках и можно приступать к следующему этапу.
Первый запуск генерации
Открываем терминал в Jupiterlab и с директории /workspace выполняем команду ./run_gpu.sh
Ждем запуска ComfyUI и выхода сообщения в логе [ComfyUI-Manager] All startup tasks have been completed.
После этого можем запускать наш ComfyUI в меню Pods:
После открытия ComfyUI опять открываем наш Workflow:
Делаем первый запуск генерации нажав на Run внизу окна:
Запустится генерация изображения.
Первая генерация происходит долго из-за подгрузки моделей (может занять 4-5 минут).
При этом в JupiterLab можно смотреть в логах процесс генерации.
Если выйдет окно с ошибкой который содержит название файла, то вы скорее всего забыли перекачать файл в нужную папку.
Если все хорошо увидим картину:
Промптинг
В любой нейросети промпты играют важную роль для получения результата. В данном случае у нас должны быть positive и negative промпты. Positive отображает то что вы хотите получить. Negative, соответсвенно чего вы не хотите.Пример промпта для нашего случая:
Positive: Instagirl, a young woman with her hair in two high pigtails, dyed half lavender and half mint green, she is winking one eye at the camera and giving a peace sign right next to her cheek, a wide, playful smile on her face, wearing a white collared shirt with a black ribbon tie, tight close-up selfie, taken from a slightly high angle in her bedroom, the background is a collage of anime posters and photos taped to the wall, ring light reflection, high angle selfie, Instagirl, kept delicate noise texture, dangerous charm, amateur cellphone quality, visible sensor noise, heavy HDR glow, amateur photo, blown-out highlight from the lamp, deeply crushed shadows
В нашем workflow используется лора Instagirl, поэтому генерируемого человека мы должны обозначить как Instagirl.
Negative: 色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走, censored, sunburnt skin, rashy skin, red cheeks
В негативном промоет можно дописать то что вы не хотите видеть (например можно запретить генерировать других людей, тексты и тд)
Самый удобный способ написать промпт это использовать для этого нейросеть.
Пишем на русском что мы хотим получить и показываем пример промпта:
Текст промпта из этого примера: сделай промпт на английском для генерации изображения девушки. обязательно используй слово instagirl для определения девушки: девушка сидит на кровати в красном платье.
Сделай объемный промпт с большим количеством деталей. Пример: Instagirl, a young woman with her hair in two high pigtails, dyed half lavender and half mint green, she is winking one eye at the camera and giving a peace sign right next to her cheek, a wide, playful smile on her face, wearing a white collared shirt with a black ribbon tie, tight close-up selfie, taken from a slightly high angle in her bedroom, the background is a collage of anime posters and photos taped to the wall, ring light reflection, high angle selfie, Instagirl, kept delicate noise texture, dangerous charm, amateur cellphone quality, visible sensor noise, heavy HDR glow, amateur photo, blown-out highlight from the lamp, deeply crushed shadows
Для промптинга более откровенных изображений необходимо использовать uncensored текстовые модели, например Venice: Uncensored (free)
Правильная остановка работы
Для остановки работы необходим закрыть окно с ComfyUI и в меню Pod нажать на кнопку Terminate: