Используйте диффузоры, чтобы вызвать контрольно-пропускной пункт и Лору в Civitai.
Используйте диффузоры, чтобы вызвать контрольно-пропускной пункт и Лору в Civitai.

Diffusers(https://huggingface.co/docs/diffusers/index)Это расширенная предварительно обученная библиотека моделей диффузии.,Используется для генерации изображений, аудио и даже трехмерных структур молекул. Он предоставляет простой в использовании и легко настраиваемый модульный набор инструментов для вывода и обучения.

Хотя Stable Diffusion WebUI также очень эффективен для создания высококачественных изображений, специалистам по данным и инженерам по машинному обучению часто требуется больший контроль. Библиотека Diffusers удовлетворяет эту потребность, позволяя пользователям настраивать модели и предлагать создавать изображения в соответствии с конкретными потребностями Python. В основном это работает для моделей, размещенных на HuggingFace, но для моделей, поддерживающих Stable Diffusion WebUI на сайте C, требуются некоторые специфические приемы.

В этой статье в основном описывается, как использовать диффузоры для вызова контрольной точки и лоры в модели диффузии SD в civitai.

Покупка сервера

Рекомендуется приобрести сервер графического процессора у Tencent Cloud Server Singapore. Подробный процесс покупки читайте в моей предыдущей статье.

Установка среды

Язык кода:shell
копировать
yum install -y git

adduser sd  (Создать учетную запись SD)
passwd sd  (Создать пароль)
usermod -aG wheel sd (Увеличьте разрешения sudo)
su - sd (Переключиться на пользователя SD)

git clone https://github.com/huggingface/diffusers.git

wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh

sh Anaconda3-2023.03-Linux-x86_64.sh

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

Язык кода:shell
копировать
conda create -n sd python=3.10.6

pip install diffusers
pip install transformers
pip install torch
pip install matplotlib
pip install numpy
pip install omegaconf
pip install accelerate

mkdir model
cd model

преобразование формата контрольной точки и лора

Загрузите большие модели dreamlikePhotoreal20_dreamlikePhotoreal20.safetensors и lora airfryer.safetensors (эту лору я обучил) в каталог ~/model пользователя sd.

В каталоге ~/model выполните следующую команду в командной строке, чтобы преобразовать модель контрольной точки стабильной диффузии в модель, которую можно использовать в диффузорах.

Язык кода:shell
копировать
python ~/diffusers/scripts/convert_original_stable_diffusion_to_diffusers.py --checkpoint_path dreamlikePhotoreal20_dreamlikePhotoreal20.safetensors --dump_path dreamlikePhotoreal20/ --from_safetensors

в,

--checkpoint_path Путь к контрольной точке, которую необходимо преобразовать.

--original_config_file Файл конфигурации YAML, соответствующий исходной архитектуре.

--num_in_channels Введите количество каналов. Если «Нет», количество входных каналов будет определено автоматически.

--scheduler_type Тип используемого планировщика. Должно быть одно из «pndm», «lms», «ddim», «euler», «euler-ancestral», «dpm».

--pipeline_type Тип трубы. Одними из них являются «FrozenOpenCLIPEmbedder», «FrozenCLIPEmbedder», «PaintByExample». Если «Нет», тип трубы будет определен автоматически.

--image_size Размер изображения, используемый при обучении модели. Для стабильной Diffusion v1.X и стабильная версия Siffusion v2 База, пожалуйста, используйте 512. Для стабильной Diffusion v2, пожалуйста, используйте 768.

--prediction_type Тип прогноза, используемый при обучении модели. Для стабильной Diffusion v1.X и стабильная версия Diffusion v2 База, пожалуйста, используйте «эпсилон». Для стабильной Diffusion v2, используйте «v_prediction».

--extract_ema Работает только на контрольных точках с весами как EMA, так и не EMA. Следует ли извлекать веса EMA. По умолчанию — ложь. Добавьте --extract_ema для извлечения весов EMA. Веса EMA часто используются для создания изображений более высокого качества для вывода. Веса, не относящиеся к EMA, часто используются для продолжения точной настройки.

--upcast_attention Следует ли всегда выполнять преобразование внимания с повышением частоты. Это необходимо при запуске Stable Diffusion 2.1.

--from_safetensors Если --checkpoint_path имеет формат Safetensors, то для загрузки контрольной точки вместо PyTorch используются безопасные тензоры.

--to_safetensors Хранить ли трубы в формате Safetensors.

--dump_path Путь к выходной модели.

--device Используемое устройство (например, процессор, cuda:0, cuda:1 и т. д.).

--stable_unclip Установите, если это стабильная модель unCLIP. Один из них — «txt2img» или «img2img».

--stable_unclip_prior Если это стабильный unCLIP txt2imgМодель,Пожалуйста, установите. Выберите перед использованием. Если для --stable_unclip установлено значение txt2img,Выбор по умолчаниюkarloаприори(https://huggingface.co/kakaobrain/karlo-v1-alpha/tree/main/prior)。

--clip_stats_path Путь к файлу статистики клипа. Требуется только в том случае, если model.params.noise_aug_config.params.clip_stats_path указан в конфигурации стабильной модели unclip.

--controlnet Установите флаг, если это контрольная точка сети управления.

--half Сохраняйте веса с половинной точностью.

--vae_path Установить путь, концентратор ID, чтобы избежать повторного преобразования преобразованного VAE.

--pipeline_class_name Укажите имя класса канала.

Подробности см.: https://github.com/huggingface/diffusers/blob/main/scripts/convert_original_stable_diffusion_to_diffusers.py

После завершения преобразования модели контрольной точки нам все еще может потребоваться использовать lora для выполнения преобразования lora.

Язык кода:shell
копировать
python ~/diffusers/scripts/convert_lora_safetensor_to_diffusers.py --base_model_path dreamlike-art/dreamlike-photoreal-2.0 --checkpoint_path  ./airfryer.safetensors --dump_path ./airfryer

в,

--base_model_path Путь к базовой модели в формате диффузоров.

--checkpoint_path Путь к контрольной точке для преобразования.

--dump_path Путь к выходной модели.

--lora_prefix_unet Префикс для весов UNet в защитных тензорах.

--lora_prefix_text_encoder Префикс для весов кодировщика текста в защитных тензорах.

--alpha W = W0 + alpha * deltaW Коэффициент слияния в .

--to_safetensors Хранить ли трубы в формате Safetensors.

--device Используемое устройство (например, процессор, cuda:0, cuda:1 и т. д.).

Подробности см.: https://github.com/huggingface/diffusers/blob/main/scripts/convert_lora_safetensor_to_diffusers.py

Здесь необходимо объяснить, что --alpha — очень важный параметр. Значение по умолчанию — 0,75. Если это значение установлено слишком большим, его будет легко переназначить.

Вот мой пример.

--альфа составляет 0,75
--альфа составляет 0,75

Случай, когда альфа равна 0,75.

--альфа равна 1,5
--альфа равна 1,5

Когда альфа равна 1,5

--альфа — 0,5
--альфа — 0,5

Когда альфа равна 0,5

Создавайте изображения, используя диффузоры, контрольные точки и рассуждения Лоры.

Завершите вывод, используя следующий фрагмент кода

Язык кода:python
кодКоличество запусков:0
копировать
from diffusers import (
    StableDiffusionPipeline,
    PNDMScheduler,
    LMSDiscreteScheduler,
    DDIMScheduler,
    EulerDiscreteScheduler,
    EulerAncestralDiscreteScheduler,
    DPMSolverMultistepScheduler,
    UniPCMultistepScheduler,
)

def make_scheduler(name, config):
    return {
        "PNDM": PNDMScheduler.from_config(config),
        "KLMS": LMSDiscreteScheduler.from_config(config),
        "DDIM": DDIMScheduler.from_config(config),
        "K_EULER": EulerDiscreteScheduler.from_config(config),
        "K_EULER_ANCESTRAL": EulerAncestralDiscreteScheduler.from_config(config),
        "DPMSolverMultistep": DPMSolverMultistepScheduler.from_config(config),
        "UniPCM": UniPCMultistepScheduler.from_config(config),
    }[name]

model_id = "./airfryer";
pipe = StableDiffusionPipeline.from_pretrained(
    model_id, 
    torch_dtype=torch.float16, 
    safety_checker=None, 
    cache_dir="diffusers-cache", 
    local_files_only=False).to("cuda");
generator = torch.Generator("cuda").manual_seed(seed)

pipe.scheduler = make_scheduler(scheduler, self.pipe.scheduler.config)
seed = 9527
generator = torch.Generator("cuda").manual_seed(seed)

# generate image
output = pipe(
    prompt="",
    negative_prompt="",
    guidance_scale=guidance_scale,
    num_inference_steps=num_inference_steps,
    generator=generator,
    eta=0.5
)

for i, sample in enumerate(output.images):
    output_path = f"/tmp/out-{seed}-{i}.png"
    sample.save(output_path)
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose