Последние изменения в comfy-skill заметно расширили его возможности и, что важнее, изменили сам характер инструмента. Если раньше это был в основном skill для text-to-image генерации, то теперь он постепенно становится полноценным workflow layer для визуальных задач: генерации, редактирования, апскейла и анимации.
Здесь важно сразу обозначить контекст: сам по себе comfy-skill не особенно интересен в отрыве от OpenClaw-агентов. Именно агенты выступают интерфейсом к этому слою возможностей: они выбирают сценарий, подставляют нужный workflow, управляют job-пайплайном, забирают результат и встраивают его в реальную задачу. Без этого связующего слоя вся история теряет большую часть практического смысла и превращается просто в набор разрозненных скриптов. Все изображения в этой статье, включая иллюстрации, галереи и анимированные фрагменты, тоже были сгенерированы OpenClaw-агентом в рамках этого же workflow.
Сейчас в этом пайплайне используются такие модели и режимы:
flux-dev— основная модель для text-to-image и части иллюстраций;flux-fill— для inpainting и outpainting;upscale/ UltraSharp 4x — для увеличения разрешения;wan-video— для image-to-video;sdxlиflux-schnellтоже поддерживаются skill’ом, но в этой статье основной визуальный материал собирался вокругflux-dev,flux-fill, upscale иwan-video.
Поддержка FLUX Fill: переход от генерации к редактированию
Одно из самых важных обновлений — добавление FLUX Fill и отдельного wrapper’а для inpainting. Это сразу открыло несколько практических сценариев:
- заменить часть изображения,
- удалить объект,
- дорисовать фон,
- расширить кадр за пределы исходной картинки.
На практике это более важный шаг, чем просто добавление ещё одной модели. Генерация перестаёт быть одноразовой операцией. Вместо бесконечных попыток с нуля появляется возможность брать уже удачный результат и точечно доводить его до нужного состояния. Для реального использования это один из самых полезных сценариев во всём skill: не просить модель каждый раз заново придумать весь кадр, а редактировать только ту часть изображения, которая действительно требует изменения.
Удаление hardcoded model choices из txt2img wrapper’а
Следующее важное изменение — из generate_image_job.py убрали жёстко зашитый список моделей. Теперь wrapper не ограничивает backend искусственно, а сервер сам валидирует доступные model aliases.
Это небольшая на вид правка, но архитектурно она очень полезна. Backend можно расширять быстрее, не попадая каждый раз в ситуацию, когда сервис уже умеет новую модель, а клиентский скрипт ещё запрещает её использовать. В результате уменьшается рассинхрон между API и wrapper’ами, а сам skill становится заметно менее хрупким.
Отдельный upscale workflow вместо обходных решений
После этого появился полноценный сценарий для UltraSharp 4x upscale. Это отдельный job model и отдельный wrapper, а не попытка решать задачу через img2img.
Такой workflow кажется второстепенным ровно до тех пор, пока не начинаешь пользоваться им регулярно. На практике он нужен постоянно: сгенерировал удачный кадр, получил не самое большое изображение, а затем просто поднял разрешение без повторной генерации всей сцены. Это очень понятная и прикладная возможность, которая делает skill полезнее в реальной работе, а не только в демо-сценариях. Возможно, это вообще самая приземлённая функция из всех обновлений, но именно поэтому она и даёт одну из самых быстрых практических выгод.
Image-to-video на Wan 2.2
Самое заметное расширение — добавление Wan 2.2 image-to-video. Появился новый wrapper, новый сценарий wan-video, и skill вышел за пределы чисто image tooling.
С этого момента задача уже не ограничивается картинкой. Можно взять один кадр и превратить его в короткий анимированный ролик. Это меняет сам набор сценариев использования: теперь можно не только сгенерировать изображение, но и оживить его, добавить естественное движение, сделать короткий видеофрагмент из фото или концепт-арта.
При этом здесь важно оговориться отдельно: video generation в текущем состоянии для меня скорее исследовательская функция, чем зрелый production-инструмент. Сам факт, что это работает локально, уже интересен, но качество результата пока остаётся скорее посредственным, чем стабильно полезным. Вся эта история по-прежнему сильно упирается в железо — в доступную GPU-мощность, память, скорость пайплайна и цену таких экспериментов по времени. Я реализовал этот сценарий не потому, что уже готов использовать его каждый день, а чтобы понять, какого результата вообще можно добиться на своей инфраструктуре и где сейчас проходит практический предел.
Упрощение API: отказ от /status
Отдельно стоит отметить инфраструктурное упрощение API. Из пайплайна убрали отдельный precheck через /status, а основную логику availability перенесли в POST /jobs.
Это делает систему чище сразу в нескольких местах:
- меньше лишних round-trip’ов,
- меньше гонок между проверкой состояния и реальной отправкой job,
- меньше дублирования логики между разными ручками.
Для клиентских скриптов это тоже плюс: wrappers становятся проще, а поведение — предсказуемее.
Inline mask generation без внешних зависимостей
Одна из самых полезных инженерных доработок — встроенная генерация масок для inpainting. Wrapper теперь умеет строить mask сам, например из прямоугольников, и не требует внешних библиотек вроде Pillow или ImageMagick для базового сценария.
Это особенно важно для агентной среды. Очень часто проблема не в самой модели, а в окружении: не установлен нужный пакет, нет подходящего редактора, нет простой утилиты для подготовки mask image. Встроенная генерация масок убирает один из самых частых operational blockers и делает skill намного автономнее.
Что получилось в итоге
Если собрать все изменения вместе, становится понятно, что comfy-skill больше нельзя считать просто skill’ом для генерации картинок. Теперь он покрывает сразу несколько независимых классов задач:
- text-to-image,
- img2img,
- inpainting и outpainting,
- upscale,
- image-to-video.
То есть речь уже идёт не о single-purpose wrapper’е, а о более общем интерфейсе над media backend.
Главный результат этого обновления не в количестве новых скриптов и не в числе поддержанных моделей. Главное в том, что skill стал:
- более универсальным,
- менее хрупким,
- лучше согласованным с backend,
- и заметно удобнее для агентного использования.
Если формулировать коротко, то comfy-skill эволюционирует из набора image wrappers в полноценный visual workflow toolkit.
Что дальше
Следующий логичный шаг я вижу в ещё большем упрощении пользовательского слоя. Чем меньше пользователю или агенту нужно думать про конкретную модель и внутренний workflow, тем лучше. На верхнем уровне хочется оперировать не названием модели, а намерением:
- сгенерировать,
- изменить,
- улучшить,
- оживить.
Но даже в текущем виде обновление уже получилось сильным. На практике skill перестаёт быть коллекцией отдельных обёрток и становится цельным инструментом для повседневной работы с визуальным контентом. При этом зрелость сценариев пока разная: где-то уже получается удобный рабочий поток, а где-то это всё ещё исследование границ текущего железа и моделей. И именно в этом, наверное, главный результат всей работы: вместо набора разрозненных экспериментов начал появляться единый visual workflow, с которым уже можно нормально жить и дальше его последовательно улучшать.





