Перейти к основному контенту

FLUX.1 Dev LoRA: бриф стиля, который оставляет сцену пригодной

Запустите FLUX.1 Dev LoRA, не потеряв объект: контроль без адаптера, стартовые значения масштаба и guidance и момент перехода к редактированию с маской.

Автор
Lydia
Опубликовано
Время чтения
11 мин чтения
Обновлено
Двое взрослых за столом в керамической мастерской смотрят на кобальтовый кувшин на кремовом льне

Чтобы запустить FLUX.1 Dev LoRA через API, отправьте URL весов и масштаб в списке loras. Чтобы сохранить объект, выполните сцену один раз без адаптера, затем добавьте файл с тем же сидом, тем же guidance и тем же числом шагов, изменив только масштаб LoRA. Рабочая отправная точка: масштаб 1, guidance 3.5, 28 шагов и квадратный кадр. Файлы для реализма часто выглядят лучше при guidance от 2.5 до 3. Контроль плюс три ступени масштаба дают четыре изображения по $0.018, то есть $0.072. Оставьте тот результат, в котором предметы ещё работают, а не тот, у которого вид сильнее.

Сцена для примера — вымышленный матовый кобальтовый кувшин с одной серповидной ручкой на кремовом льне.

Решите, что должен добавить адаптер

Сцене нужны один различимый кувшин, короткий носик, открытая ручка и контакт со льном, мягкий свет и сдержанная фактура керамики. Если адаптер добавит драматичный глянец или замысловатое украшение, он может работать и всё равно не подходить к этому брифу.

Для версии со взрослым персонажем замените кувшин одним вымышленным взрослым 35 лет в застёгнутой тёмно-синей рубашке рядом с простой стеной студии и сохраняйте позу и одежду одинаковыми во всех условиях.

Кобальтовый керамический кувшин с видимым отверстием ручки на кремовом льне

Иллюстрация, а не результат FLUX: целевой объект с одним корпусом, одним отверстием ручки и коротким носиком.

Выберите файл, совместимый с FLUX.1 Dev

Совместимый файл называет FLUX.1 Dev своей базой обучения. LoRA для другого релиза FLUX, для архитектуры под редактирование, для SDXL, Z-Image или Qwen-Image загрузится и почти ничего не изменит, поэтому сначала проверьте базу. В path укажите прямую ссылку на файл весов, а не страницу с его описанием: URL страницы отклоняется при отправке, и закрытый репозиторий, требующий входа, тоже отклоняется при отправке.

Например, карточка модели фотореализма XLabs указывает FLUX.1 Dev как базу, а прямая ссылка на файл в коде ниже заканчивается на /resolve/main/lora.safetensors (около 22 MB). Карточка применяет некоммерческую лицензию FLUX.1 Dev к самому файлу; прочитайте её условия, прежде чем использовать результаты в работе для клиента.

Если карточка описывает ключевую фразу, поставьте её в начало промпта дословно в том виде, как она записана (карточка XLabs не описывает ни одной). Если указан рекомендуемый уровень силы, начните с него, иначе используйте лестницу ниже.

Сначала попробуйте в Playground

Откройте FLUX.1 Dev LoRA текст в изображение на вкладке Playground в режиме Form и войдите в аккаунт с балансом, чтобы запустить. Начните с контроля, то есть запуска без весов:

  1. Вставьте приведённый ниже промпт в поле Prompt. FLUX следует длинным и конкретным промптам, поэтому пишите полными предложениями. Поля для негативного промпта нет, поэтому говорите, что вам нужно («one handle», «no lettering»), вместо того чтобы перечислять исключения.
  2. Задайте Aspect ratio значение 1:1.
  3. В разделе Style LoRAs нажимайте Remove item, пока список не опустеет.
  4. Откройте Advanced parameters и задайте Prompt adherence значение 3.5, Sampling steps значение 28, Output format значение PNG, а Seed значение 17231.
  5. Запустите модель и сохраните изображение.

One matte cobalt ceramic pitcher with a rounded body, short spout and one crescent handle on cream linen. Whole vessel visible, open handle against a quiet cream wall, oak stool behind without overlap. Soft daylight from the left, natural ceramic texture, contact shadow. Square composition, no lettering or extra vessels.

Если в этом контроле две ручки или основание висит в воздухе, сначала исправьте сцену: отодвиньте табурет от отверстия ручки, попросите более ясный вид в три четверти или уберите табурет. Изменённый промпт меняет изображение даже при том же сиде, поэтому во всех последующих запусках сохраняйте текст идентичным.

Затем добавьте один адаптер. Нажмите Add item, вставьте прямую ссылку на веса в поле LoRA file (доступный файл, на который у вас есть права) и задайте Strength значение 1. Больше ничего не меняйте и запустите снова. Сила 1 применяет файл так, как его обучил автор, а поле принимает значения от 0 до 4. В качестве лестницы выполните 0.8, 1.0 и 1.2 (добавьте 0.5, если 0.8 всё ещё слишком сильно): снижайте к 0.8, если вид выглядит тяжёлым; выразительным иллюстративным стилям может понадобиться чуть больше 1. Не складывайте три файла, пока один не покажет себя. Если файлу нужен триггер, выполните также сам триггер отдельно без LoRA; один только текст уже может сдвинуть базовое изображение.

Если файл реализма выглядит воскообразным или чрезмерно резким, повторите лучшую силу с Prompt adherence на 2.5 и тем же сидом. Prompt adherence задаёт, насколько строго изображение следует промпту; это не сила адаптера.

Затем запустите из кода

Тот же контроль и три ступени силы с неизменными сидом и всеми остальными полями. Установите Python SDK (pip install spicyapi), задайте SPICY_API_KEY в окружении сервера и выполните:

python
import uuid
from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

PROMPT = ("One matte cobalt ceramic pitcher with a rounded body, short spout and one crescent handle "
          "on cream linen. Whole vessel visible, open handle against a quiet cream wall, oak stool "
          "behind without overlap. Soft daylight from the left, natural ceramic texture, contact "
          "shadow. Square composition, no lettering or extra vessels.")
WEIGHTS = "https://huggingface.co/XLabs-AI/flux-RealismLora/resolve/main/lora.safetensors"  # XLabs realism, FLUX.1 Dev; swap in your own file
# 4 images x $0.018 = $0.072

for scale in (None, 0.8, 1.0, 1.2):  # None = control with no adapter
    task = client.create_task(
        model="black-forest-labs/flux-1-dev-lora/text-to-image",
        input_data={
            "prompt": PROMPT,
            "aspect_ratio": "1:1",
            "loras": [] if scale is None else [{"path": WEIGHTS, "scale": scale}],
            "guidance_scale": 3.5,
            "steps": 28,
            "seed": 17231,
            "output_format": "png",
        },
        idempotency_key=str(uuid.uuid4()),
    )
    final = client.wait_for_terminal(task["taskId"])
    if final["state"] != "succeeded":
        raise RuntimeError(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
    assets = output_assets(final)
    if not assets or any(a.get("pending") or a.get("unavailable") or not a.get("url") for a in assets):
        raise RuntimeError(f"Task {task['taskId']} has no ready output; check this task before running more images")
    print(scale, assets[0]["url"])  # copy the image to your own storage now

Создание, ожидание, загрузку, повторы и коды ошибок описывает руководство по задачам и справочник Python SDK. Веса загружаются при каждой задаче, поэтому первый вызов с большим файлом медленнее обычного запуска (см. Запуск собственной LoRA на размещённом API).

Или пусть это выполнит Agent

Когда сравнение должен провести ассистент, все три официальных инструмента показывают цену и запрашивают подтверждение перед платным вызовом.

  • CLI. Поместите объект input одного условия в input.json, затем выполните:

``bash spicyapi tasks create --model black-forest-labs/flux-1-dev-lora/text-to-image --input-file input.json --wait ``

См. документацию по CLI; npx @spicyapi/cli работает без установки.

  • Сервер MCP. Добавьте сервер MCP вашему ассистенту, а затем попросите: "Run FLUX.1 Dev LoRA with this prompt, seed 17231, no LoRA, then again with this weights link at strength 0.8, 1 and 1.2." Он вызывает spicyapi_task_create, который останавливается на подтверждении цены, а затем spicyapi_task_wait.
  • Skill. npx skills add spicyapi-ai/spicy-skill устанавливает Agent Skill, благодаря которому программный ассистент читает реальную схему модели вместо догадок о полях.

Не путайте эти элементы управления

ЭлементДиапазон в задаче «текст в изображение»Применение в этом сравнении
loras (Style LoRAs)до 3, у каждого path и scaleНачните с одного; контроль без файла использует []
Масштаб LoRA (Strength)0–4, 1 применяет файл как обученМеняйте его, удерживая остальные настройки
guidance_scale (Prompt adherence)0–20, по умолчанию 3.5Оставьте 3.5; для воскообразного реализма попробуйте 2.5
steps (Sampling steps)1–50, по умолчанию 28Оставьте 28, чтобы не добавлять ещё одно меняющееся условие
seed0–2147483647Сохраняйте 17231, чтобы запуски оставались сопоставимыми
ФорматыJPEG (по умолчанию), PNG, WebPPNG

В задаче доступны девять соотношений сторон (от 21:9 до 9:21, все примерно в один мегапиксель и по одной цене), но нет разрешения, отдельных полей ширины и высоты, входного изображения и маски. Запись с scale: 0 всё равно может загрузить файл, поэтому она не заменяет контроль с пустым списком.

Исправьте неудачный эксперимент с адаптером

ПроблемаКонкретное следующее действие
Запрос отклонён или позже падаетПроверьте, что path возвращает файл .safetensors без входа в аккаунт, а не страницу карточки модели. Неверно набранный хост или файл, который позже исчезает, принимаются при отправке и падают после.
Картинка почти не меняетсяПроверьте, что база файла — FLUX.1 Dev и что нужный триггер стоит в начале промпта, затем увеличьте масштаб на 0.2.
Стиль подавляет объектСнизьте масштаб к 0.8 или 0.6.
Реализм выглядит воскообразнымПонизьте guidance до 2.5 при том же сиде.
Ручка становится сплошной или дублируетсяПонизьте масштаб или отклоните этот файл для данного объекта.
Один только триггер даёт этот видВид приходит из слов, а не из файла; оценивайте файл только по тому, что он добавляет поверх изображения с одним лишь триггером.
Стиль полезен, но форма товара меняетсяИспользуйте редактор с маской (следующий раздел) или скомпонуйте слой товара.

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

Используйте редактор, когда результат должен вести источник

FLUX.1 Dev LoRA редактирование — вторая задача на той же модели, также $0.018 за изображение. Она требует image_url и prompt и принимает тот же список loras, тот же guidance и то же число шагов. Новыми являются два элемента: strength (от 0 до 1, по умолчанию 0.8), задающий, насколько результат отходит от источника, и необязательный mask_url — чёрно-белое изображение того же размера, где белое перерисовывается, а чёрное сохраняется. Источник и маска ограничены 10 MB каждый, и оба могут быть публичной ссылкой на файл.

При значении по умолчанию 0.8 поза и компоновка сохраняются; около 0.95 модель перерисовывает почти всё. Начните с 0.8 и двигайтесь шагами по 0.05, меняя за один запуск только силу или масштаб LoRA: если источник просвечивает, увеличьте; если форма уезжает, уменьшите. С маской используйте от 0.9 до 1, чтобы белая область действительно изменилась, и описывайте только то, что должно попасть в белую область.

Практическое применение для этого брифа: оставьте одобренный кувшин и измените стиль всего вокруг него. В Playground откройте задачу редактирования, поместите контрольное изображение в Input image, покрасьте стену и лён в белый, а кувшин в чёрный на изображении того же размера и добавьте его в Advanced parameters как Mask, затем задайте Transformation strength значение 0.95, добавьте свои веса в Style LoRAs и используйте промпт только для новой обработки: "Cream linen with deep folds and a quiet plaster wall, soft daylight from the left, restrained film grain." Сохраните сид, Prompt adherence 3.5 и Sampling steps 28 из контроля. В запросах API те же поля — это image_url, mask_url, strength и loras в модели black-forest-labs/flux-1-dev-lora/edit.

Смягчите край маски или идите по контуру объекта; жёсткий прямоугольник оставляет заметный шов. Редактирование следует форме источника, поэтому поля aspect_ratio нет, а результат возвращается примерно в 0.7 мегапикселя (источник 1024 x 1536 возвращается как 672 x 1008), то есть меньше кадра «текст в изображение». Если пиксели товара должны совпадать точно, оставьте исходный слой товара поверх отдельно подготовленного фона и считайте эту композицию финальным этапом.

Руки раскладывают фотографию кобальтового кувшина, карандашный рисунок и образец глазури на столе мастерской

Референсные материалы для брифа: фотография, рисунок и образцы глазури.

Контент для взрослых: что меняет LoRA и что нет

FLUX.1 Dev LoRA — это путь без цензуры: SpicyAPI не добавляет платформенный фильтр содержимого, а LoRA для взрослых загружаются и отрисовываются. Загрузка LoRA не задаёт границы содержимого; что именно вернётся, по-прежнему решает базовая модель. По результатам наших тестов сентября 2026 года чистая модель по тексту выдавала NSFW-изображения с намёком и изображения верхней части тела, а запросы с фигурой в полный рост и с двумя людьми смягчала. С загруженной LoRA для взрослых самая сильная проверка давала продвинутые NSFW-изображения, но никогда сцену максимальной интенсивности. В редактировании запрос по верхней части тела на одетом портрете при силе 0.95 (с LoRA и без неё) и при 1 с маской возвращался как запрошено, но при 0.85 смягчался, поэтому повышайте силу, прежде чем менять модель. В статье FLUX без цензуры? приведены результаты по уровням.

Фотографическая стилевая LoRA меняет вид, а не границы содержимого. Используйте только вымышленных взрослых или людей с задокументированным согласием.

Что делать дальше

Оставьте LoRA, если чистый запуск уже отвечает брифу. Чтобы проверить новый файл на битые ссылки и неработающие веса по всей библиотеке, см. Запуск собственной LoRA на размещённом API. Тот же метод «сначала контроль» на другой базе описан в тесте Z-Image Turbo LoRA с одинаковым сидом.

Другие языки English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Italiano · Polski

Примените руководство на практике