huggingface-lora-space-builder
huggingface-lora-space-builder — скилл для создания и публикации Gradio Space под конкретную LoRA пользователя на Hugging Face. Его задача — не сделать универсальный шаблон для всех адаптеров, а собрать демо, которое соответствует модели, её входам и способу применения. В область входят LoRA для Qwen-Image, Qwen-Image-Edit, LTX-Video, Wan, FLUX, SDXL и других diffusion base models. Целевой результат — реальный Space, обычно приватный по умолчанию, который можно открыть в браузере и проверить; публикация выполняется после подтверждения владельца и имени репозитория. Сначала скилл собирает сведения из самого LoRA-репозитория. Проверяются файлы, наличие .safetensors, README, примеров изображений или видео и нескольких checkpoint-файлов. Затем загружается model card: из её структурированных полей и текста извлекаются base model, pipeline_tag или задача, trigger words, рекомендуемые steps, guidance scale, true CFG scale, LoRA scale, resolution, примеры prompt и фактический use case. Если checkpoint-файлов несколько, приоритет получает файл, рекомендованный README, затем pytorch_lora_weights.safetensors, затем актуальный checkpoint; при невозможности выбрать файл нужно запросить уточнение. Для image и video адаптеров важна конкретика: relighting, face swap и style LoRA могут иметь одну категорию image-to-image, но требуют разных интерфейсов. После этого выбирается базовый pipeline. Скилл направляет к отдельным справочным материалам для Qwen-Image, Qwen-Image-Edit, LTX и Krea 2 и требует сверить класс pipeline с inference snippet базовой model card. Это защищает от несовместимых вариантов: Qwen-Image-Edit использует QwenImageEditPipeline, а варианты 2509 и 2511 — QwenImageEditPlusPipeline и другие параметры; загрузка 2511 не в тот класс даёт испорченный результат. Для LTX различаются LTXPipeline, LTXImageToVideoPipeline, LTXConditionPipeline и LTX2Pipeline из другого модуля; некоторые версии LTX-2.3 требуют native pipeline вне diffusers. UI проектируется под задачу адаптера и содержит только нужные controls. Примеры включают загрузку видео и выбор aspect ratio для заполнения пустых полей, brush strokes для указания освещения и загрузку видео движения вместе с изображением персонажа. Общая форма «введите prompt» без объяснения поведения LoRA считается недостаточной. В app.py должны быть импорты Gradio, torch, spaces и pipeline, константы репозиториев и рекомендованных параметров, загрузка pipeline на уровне модуля, загрузка LoRA, preprocessing и функция inference. Модель размещается на cuda на уровне модуля; функция инференса получает @spaces.GPU(duration=...), валидирует обязательные входы, показывает прогресс и возвращает использованный seed, чтобы результат можно было повторить. Файлы Space должны учитывать ZeroGPU. Не следует использовать torch.compile, лениво загружать модель внутри GPU-функции или подключать все возможные параметры diffusers. Для Gradio Examples рекомендуется cache_examples=True вместе с cache_mode="lazy"; иначе примеры могут выполняться во время сборки. Если fn получает только значения из inputs, остальные параметры должны иметь defaults, иначе клик по примеру завершится ошибкой missing positional arguments. requirements.txt должен содержать только реально нужные зависимости: gradio задаётся через sdk_version в README, torch, spaces и huggingface_hub обычно предоставляет runtime, а несовместимые версии xformers или flash-attn могут сломать запуск. В README фиксируются base и LoRA repos, sdk: gradio, версия SDK, hardware zero-a10g, models и короткое описание. До публикации нужно учитывать доступность ресурсов и ограничения аккаунта. Для приватного LoRA сначала требуется действительный токен с правом чтения; если его нет, запрос делается один раз. ZeroGPU-доступен PRO, Team и Enterprise, а без подписки Space может перейти на CPU и работать неприемлемо медленно. Сам Space по умолчанию создаётся приватным. Веса LoRA не загружаются в репозиторий Space, а читаются из исходного Hub-репозитория во время запуска. После публикации выполняется smoke-тест для текстовых, image-to-image или video сценариев. Ошибки weight_name, pipeline class, missing dependency, OOM и timeout диагностируются по отдельным причинам; generic Space для всех LoRA, скрытая загрузка модели, torch.compile и лишние controls считаются ошибочными упрощениями.
Для чего подходит
- Публикация Gradio Space для обученной LoRA
- Выбор diffusers pipeline и параметров inference
- Подготовка приватного ZeroGPU-демо
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/huggingface/skills/tree/main/skills/huggingface-lora-space-builder