Дополнительно
Добавить в закладкиaLuxe
Главный модератор
Привет! Сегодня разберемся как запустить лору Instagirl 2.5 для WAN 2.2 в ComfyUI на арендованном GPU сервере RunPod. Гайд для новичков, всё объясню пошагово.
Если зайдёт — сделаю ещё уроки про обучение своей лоры для генерации одного и того же персонажа в картинках и видео. В итоге дойдём до телеграм-бота который генерит по запросу.
Для россиян: понадобится VPN и зарубежная карта (или крипта) для оплаты RunPod.
Регистрация на Runpod
Регистрируемся на Runpod.io и пополняем баланс минимум на 10$ через Billing — картой или криптой.
Создаём Storage
Storage — это постоянный диск где хранятся модели. Нужен чтобы не качать каждый раз заново тяжёлые GGUF файлы.
Идём в Storage → New network volume. Выбираем датацентр где есть нужная GPU (мы берём L40S). Смотрим справа — там показаны свободные GPU по датацентрам. Выбираем US-IL-1, US-NC-1 или US-TX-3 где больше свободных L40S.
Пишем имя хранилища (любое), ставим 70 GB. Выйдет $4.90/месяц, оплата почасовая. Жмём Create network Storage.
Идём в Storage → New network volume. Выбираем датацентр где есть нужная GPU (мы берём L40S). Смотрим справа — там показаны свободные GPU по датацентрам. Выбираем US-IL-1, US-NC-1 или US-TX-3 где больше свободных L40S.
Пишем имя хранилища (любое), ставим 70 GB. Выйдет $4.90/месяц, оплата почасовая. Жмём Create network Storage.
Запускаем POD
POD — это сам сервер с GPU.
Идём в Pods, сверху выбираем наше хранилище, снизу кликаем на L40S. Жмём Change Template → выбираем ComfyUI Manager Permanent Disk torch2.4.
Это готовый образ с Ubuntu, CUDA, PyTorch и ComfyUI.
Жмём Deploy On-Demand. Ждём статус Ready у JupyterLab (первый раз может минут 5).
Настройка JupyterLab
Откроется JupyterLab. Папка /workspace — это наше постоянное хранилище. ComfyUI лежит в /workspace/ComfyUI, модели в /workspace/ComfyUI/models.
Открываем терминал и ставим SageAttention (ускоряет генерацию):
Вписываем команды:
Идём в Pods, сверху выбираем наше хранилище, снизу кликаем на L40S. Жмём Change Template → выбираем ComfyUI Manager Permanent Disk torch2.4.
Это готовый образ с Ubuntu, CUDA, PyTorch и ComfyUI.
Жмём Deploy On-Demand. Ждём статус Ready у JupyterLab (первый раз может минут 5).
Откроется JupyterLab. Папка /workspace — это наше постоянное хранилище. ComfyUI лежит в /workspace/ComfyUI, модели в /workspace/ComfyUI/models.
Открываем терминал и ставим SageAttention (ускоряет генерацию):
Вписываем команды:
Код:
source /workspace/ComfyUI/venv/bin/activate[/SIZE][/CENTER]
[SIZE=4][CENTER]pip install sageattention
Запускаем ComfyUI командой ./run_gpu.sh:
Ждём сообщение в логах о готовности. Потом идём в Pods на RunPod и кликаем ссылку ComfyUI.
Загружаем Workflow
Скачиваем Workflow файл. Открываем в ComfyUI — попросит поставить недостающие ноды.
Жмём Install All Missing Nodes → Restart → обновляем страницу.
Ставим RES4LYF: Manager → Custom nodes manager → ищем RES4LYF → Install → Restart.
Жмём Install All Missing Nodes → Restart → обновляем страницу.
Ставим RES4LYF: Manager → Custom nodes manager → ищем RES4LYF → Install → Restart.
Качаем модели
Возвращаемся в JupyterLab. Нужно загрузить файлы в папки:
Vae: wan_2.1_vae.safetensors
Unet: Wan2.2-T2V-A14B-HighNoise-Q8_0.gguf | Wan2.2-T2V-A14B-LowNoise-Q8_0.gguf
Loras: Instagirlv2.5-HIGH.safetensors (Google drive) | Instagirlv2.5-LOW.safetensors (Google drive) | Wan21_T2V_14B_lightx2v_cfg_step_distill_lora_rank32.safetensors | Lenovo.safetensors (Google drive)
Checkpoints: WAN2.2-HighNoise_SmartphoneSnapshotPhotoReality_v3_by-AI_Characters.safetensors
Clip: umt5_xxl_fp8_e4m3fn_scaled.safetensors
Vae: wan_2.1_vae.safetensors
Unet: Wan2.2-T2V-A14B-HighNoise-Q8_0.gguf | Wan2.2-T2V-A14B-LowNoise-Q8_0.gguf
Loras: Instagirlv2.5-HIGH.safetensors (Google drive) | Instagirlv2.5-LOW.safetensors (Google drive) | Wan21_T2V_14B_lightx2v_cfg_step_distill_lora_rank32.safetensors | Lenovo.safetensors (Google drive)
Checkpoints: WAN2.2-HighNoise_SmartphoneSnapshotPhotoReality_v3_by-AI_Characters.safetensors
Clip: umt5_xxl_fp8_e4m3fn_scaled.safetensors
Как загружать файлы из HuggingFace в Jupyter
Открываем терминал, переходим в нужную папку cd /workspace/ComfyUI/models/vae:
Идём на HuggingFace, копируем Copy download link, вставляем команду wget https://ссылка-на-файл в терминале:
Жмем Enter и дожидаемся загрузки. В итоге мы должны увидеть это:
Проверяем что скачалось командой ls -l:
Для перехода между папками:
Идём на HuggingFace, копируем Copy download link, вставляем команду wget https://ссылка-на-файл в терминале:
Жмем Enter и дожидаемся загрузки. В итоге мы должны увидеть это:
Проверяем что скачалось командой ls -l:
Для перехода между папками:
- cd .. — назад
- cd unet — в папку unet
Как загружать файлы с Google Drive в Jupyter
Используем команду gdown --fuzzy "ссылка-с-google-drive":
Качаем все файлы в соответствующие папки.
Первая генерация
Запускаем ComfyUI из /workspace командой ./run_gpu.sh:
Ждём когда появится надпись `[ComfyUI-Manager] All startup tasks have been completed` во вкладке Logs. Открываем ComfyUI через Pods → загружаем Workflow → жмём Run.
Первая генерация долгая (4-5 минут) — грузятся модели. Если ошибка с названием файла — забыли что-то скачать.
Когда ComfyUI загрузился, снова открываем наш файл Workflow:
Следить за процессом можно в логах Jupyter. Появилась ошибка с именем файла? Скорее всего забыли что-то скачать в нужную папку, если все ок — вы увидите следующее:
Промпты вводим в поле Positive prompt.
Ждём когда появится надпись `[ComfyUI-Manager] All startup tasks have been completed` во вкладке Logs. Открываем ComfyUI через Pods → загружаем Workflow → жмём Run.
Первая генерация долгая (4-5 минут) — грузятся модели. Если ошибка с названием файла — забыли что-то скачать.
Когда ComfyUI загрузился, снова открываем наш файл Workflow:
Следить за процессом можно в логах Jupyter. Появилась ошибка с именем файла? Скорее всего забыли что-то скачать в нужную папку, если все ок — вы увидите следующее:
Промпты вводим в поле Positive prompt.
Как писать промпты
Промпты — основа любой генерации. Нужны два типа:
Positive — описываем что хотим получить
Negative — перечисляем что НЕ должно попасть в кадр
Открываем chat gpt и просим пример для нашего случая:
Positive:
Важно: используем лору Instagirl, поэтому в промпте обязательно пишем слово Instagirl.
Negative:
В негативный промпт добавляем всё нежелательное: лишних людей, текст на изображении и т.д.
Positive — описываем что хотим получить
Negative — перечисляем что НЕ должно попасть в кадр
Открываем chat gpt и просим пример для нашего случая:
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
Важно: используем лору Instagirl, поэтому в промпте обязательно пишем слово Instagirl.
Negative:
Код:
色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走, censored, sunburnt skin, rashy skin, red cheeks
В негативный промпт добавляем всё нежелательное: лишних людей, текст на изображении и т.д.
Лайфхак с промптами
Проще всего генерить промпты через нейросеть. Описываем на русском + даём пример:
Сделай промпт на английском для генерации изображения девушки. Обязательно используй слово instagirl: девушка сидит на кровати в красном платье. Сделай объёмный промпт с деталями. Пример: Instagirl, a young woman with her hair in two high pigtails...
Для 18+ контента используй uncensored модели типа Venice: Uncensored (бесплатная).
Сделай промпт на английском для генерации изображения девушки. Обязательно используй слово instagirl: девушка сидит на кровати в красном платье. Сделай объёмный промпт с деталями. Пример: Instagirl, a young woman with her hair in two high pigtails...
Для 18+ контента используй uncensored модели типа Venice: Uncensored (бесплатная).
