Как увеличить изображение FLUX: модели и настройки — это два разных маршрута. Локально работает связка базовой модели black-forest-labs/FLUX.1-dev и ControlNet jasperai/Flux.1-dev-Controlnet-Upscaler через библиотеку Diffusers. Облачный вариант — отдельный endpoint fal-ai/flux-vision-upscaler на fal.ai, где вход задаётся ссылкой на изображение. Ниже — идентификаторы, порядок запуска, параметры и учебная проверка результата.
Какие модели и идентификаторы участвуют
Локальный маршрут собран из двух отдельных сущностей. Базовая модель — black-forest-labs/FLUX.1-dev: именно её загружает пайплайн генерации. ControlNet — jasperai/Flux.1-dev-Controlnet-Upscaler, разработка исследовательской команды Jasper. В карточке модели на Hugging Face он описан как ControlNet для изображений низкого разрешения, обученный на синтетической схеме деградации: реальное изображение искусственно портили шумом (гауссовым и пуассоновым), размытием и JPEG-сжатием. Это объясняет, зачем модель вообще нужна: она работает с типичными дефектами сжатых и уменьшенных картинок.
Обратите внимание на тег пайплайна в карточке: image-to-image. Модель обучена на задаче super-resolution и помечена тегами ControlNet и upscaler. Лицензия указана как flux-1-dev-non-commercial-license со ссылкой на лицензию FLUX.1-dev.
Облачный маршрут — это другая модель и другой владелец. В документации fal.ai endpoint описан как fal-ai/flux-vision-upscaler, категория image-to-image, тип inference. Это самостоятельный сервис со своей схемой входа и своими параметрами. Объявлять его той же моделью, что Jasper ControlNet, нельзя: у них разные идентификаторы, разные входы и разные настройки.
| Маршрут | Базовая модель | ControlNet / endpoint | Библиотека |
|---|---|---|---|
| Локально | black-forest-labs/FLUX.1-dev |
jasperai/Flux.1-dev-Controlnet-Upscaler |
Diffusers |
| Облако | не требуется локально | fal-ai/flux-vision-upscaler |
HTTP API или клиент fal |
Разделение важно ещё и потому, что параметры одного маршрута не переносятся на другой. Значения из примера Jasper описывают конкретный пайплайн Diffusers. У fal своя схема полей, и подставлять туда числа из локального примера смысла нет.
Локальный запуск по карточке модели
Карточка jasperai/Flux.1-dev-Controlnet-Upscaler даёт готовый пример на Diffusers. Порядок такой: импортировать torch, загрузчик изображений и классы FluxControlNetModel и FluxControlNetPipeline; загрузить ControlNet из jasperai/Flux.1-dev-Controlnet-Upscaler в типе torch.bfloat16; собрать пайплайн из black-forest-labs/FLUX.1-dev с этим ControlNet; перевести пайплайн на cuda; загрузить контрольное изображение; увеличить его; вызвать пайплайн.
Отдельный шаг, который легко пропустить, — предварительное увеличение контрольного изображения. В примере размеры читаются как w, h = control_image.size, после чего изображение растягивается в четыре раза: control_image.resize((w * 4, h * 4)). Так готовится вход для ControlNet; итоговое изображение появится после генерации. Затем в вызов пайплайна передаются height и width, равные размерам уже увеличенного контрольного изображения.
Промпт в примере пустой: prompt="". Таким образом, вход модели — изображение; текстовый промпт здесь не используется. Это соответствует задаче upscaler.
Числа из примера — controlnet_conditioning_scale=0.6, num_inference_steps=28, guidance_scale=3.5 — это документированные параметры примера. Они не являются измеренным оптимумом и не подбирались под ваш конкретный файл. Относитесь к ним как к стартовой точке, от которой вы отталкиваетесь при сравнении.
Что делают три ключевых параметра
Документация Diffusers по FluxControlNetPipeline объясняет назначение каждого параметра.
controlnet_conditioning_scale (по умолчанию 1.0) — выходы ControlNet умножаются на это значение перед добавлением к остатку в исходной модели. Проще говоря, это сила влияния контрольного изображения на результат. Меньшее значение ослабляет привязку к входу, большее — усиливает.
num_inference_steps (в описании параметра указано значение по умолчанию 50) — число шагов денойзинга. Больше шагов обычно даёт более высокое качество ценой более медленного вывода. Это прямая формулировка из документации.
guidance_scale (по умолчанию 7.0) — масштаб управления из Classifier-Free Diffusion Guidance. Он включается при значении больше 1. Более высокий масштаб подталкивает генерацию ближе к текстовому промпту, обычно за счёт качества изображения.
Здесь важно не путать роли. guidance_scale управляет следованием тексту, а controlnet_conditioning_scale — силой влияния контрольного изображения. В примере Jasper промпт пустой, поэтому основную работу ведёт именно ControlNet. Значения из примера относятся к этому пайплайну Diffusers. Переносить их на fal не нужно: у облачного endpoint своя схема, и там действуют собственные поля и диапазоны.
Облачный вход: image_url и поля fal
Документация fal.ai описывает endpoint fal-ai/flux-vision-upscaler и его схему входа. Обязательное поле — image_url типа string: это URL изображения, которое нужно увеличить. В примере используется ссылка на файл в хранилище fal.
Остальные поля необязательные. upscale_factor типа float задаёт коэффициент увеличения в диапазоне от 1 до 4, значение по умолчанию 2. seed типа integer задаёт зерно; если его не указать, используется случайное. creativity типа float управляет отклонением от оригинала и соответствует силе денойзинга при сэмплировании: диапазон от 0 до 1, значение по умолчанию 0.3. steps типа integer задаёт число шагов вывода в диапазоне от 4 до 50, значение по умолчанию 20. Есть также guidance (от 1 до 4, по умолчанию 1) и enable_safety_checker (по умолчанию true).
Ответ содержит поле image с URL результата, а также seed, timings и caption — сгенерированную VLM подпись. В примере ответа указаны размеры 2048 на 2048.
Запрос к fal — платная операция: в документации endpoint указана цена за мегапиксель. Автор запроса передаёт свой ключ в заголовке авторизации. Здесь запрос не выполняется: чтобы получить результат, его нужно отправить самостоятельно со своим ключом и своим изображением.
Локально или облако: таблица выбора
| Критерий | Локально (Jasper + FLUX.1-dev) | Облако (fal) |
|---|---|---|
| Установка | Diffusers, загрузка двух моделей, GPU | Клиент или HTTP-запрос |
| Файлы | Веса моделей на своём диске | Изображение доступно по URL |
| Ключ | Не нужен для запуска пайплайна | Ключ собственного аккаунта fal |
| Лицензия | Лицензия FLUX.1-dev, проверяется для конкретной модели | Условия сервиса fal |
| Контроль параметров | Полный: шаги, guidance, сила ControlNet | Ограничен полями endpoint |
| Оплата | Своё железо | Оплата за мегапиксель |
Лицензия — отдельный пункт, который стоит проверить до запуска. Модель FLUX.1-dev распространяется под FLUX.1 [dev] Non-Commercial License. В тексте лицензии Black Forest Labs указано, что веса, параметры и код вывода предоставляются для некоммерческого и непроизводственного использования. Коммерческое применение требует отдельной лицензии от компании.
При этом лицензия различает модель и результаты. В её тексте сказано, что компания не заявляет прав собственности на Outputs, а ответственность за сгенерированные результаты и их дальнейшее использование лежит на пользователе. Outputs определяются как контент, созданный работой модели по входу или промпту. Поэтому обобщение «любые картинки нельзя использовать коммерчески» неверно: нужно смотреть конкретную лицензию конкретной модели и условия её применения.
Учебная карточка сравнения
Это учебный порядок действий. Редакция не измеряла результат такого прогона. Он помогает понять, что именно изменилось при увеличении.
Сначала сохраните оригинал, идентификаторы моделей, seed и все параметры базовой попытки. Сделайте базовый результат с ними. Затем измените ровно один параметр — например, controlnet_conditioning_scale — оставив остальные условия и seed прежними. Сравните два результата по конкретным признакам:
- границы объектов: не «поплыли» ли края;
- надписи: читаются ли буквы, не превратились ли в узор;
- кожа: сохранилась ли естественная текстура;
- повторяющиеся линии: не появились ли ритмичные артефакты.
Фиксированный seed помогает сопоставить две попытки между собой. При этом одинаковый seed не гарантирует идентичного результата на разных платформах: локальный пайплайн Diffusers и облачный endpoint — разные системы.
Приёмка простая: размер изображения увеличился, а существенные элементы не исказились. Спорные, заново сгенерированные детали проверяет человек. Если контур лица или текст на вывеске изменились, вернитесь к параметрам и повторите проверку.
Больше пикселей не значит больше деталей
Увеличение даёт большую ширину и высоту — это факт, который видно по размерам файла. Сохранность содержимого — отдельный вопрос. Модель super-resolution достраивает правдоподобные текстуры там, где исходных данных не хватает. Новая текстура кожи или листвы выглядит убедительно, но такие детали синтезируются моделью. Их соответствие оригиналу нужно проверять отдельно.
Практический вывод: отделяйте измеримое от оценочного. Ширина и высота в пикселях — измеримы. Читаемость надписи, узнаваемость лица, отсутствие артефактов — оцениваются глазами. Более крупный файл сам по себе не доказывает, что истинные исходные детали восстановлены.
Именно поэтому в учебной карточке сравнение идёт по границам, надписям, коже и повторяющимся линиям. Эти признаки показывают, где модель достроила, а где сохранила.
Частые вопросы
Чем отличается Jasper ControlNet от fal endpoint?
Это разные модели с разными идентификаторами. Локально работает jasperai/Flux.1-dev-Controlnet-Upscaler вместе с базовой black-forest-labs/FLUX.1-dev через Diffusers. Облачный вариант — fal-ai/flux-vision-upscaler со своей схемой входа. Параметры одного маршрута не переносятся на другой.
Какие значения параметров ставить?
В примере карточки Jasper указаны controlnet_conditioning_scale=0.6, num_inference_steps=28 и guidance_scale=3.5. Это параметры официального примера; оптимальные значения для вашего исходника требуют отдельного подбора. Начните с них и меняйте по одному параметру, сравнивая результаты.
Что делает controlnet_conditioning_scale?
Выходы ControlNet умножаются на это значение перед добавлением к остатку в исходной модели. Это сила влияния контрольного изображения. Меньшее значение ослабляет привязку к входу, большее — усиливает.
Какой коэффициент увеличения доступен в fal?
Поле upscale_factor принимает значения от 1 до 4, по умолчанию 2. Это отдельный параметр облачного endpoint, он не связан с предварительным увеличением контрольного изображения в локальном примере.
Можно ли использовать результат коммерчески?
Лицензия FLUX.1 [dev] Non-Commercial License описывает некоммерческое использование модели, а права на Outputs отделены от прав на модель. Коммерческое применение модели требует отдельной лицензии от Black Forest Labs. Проверяйте условия конкретной модели перед использованием.
