Canny Edge

canny edge — карта контуров для контроля композиции

Раздел
Адаптеры
Обновлено
11.08.26

Canny Edge — алгоритм извлечения контуров изображения, изобретённый Джоном Канни в 1986-м. В Stable Diffusion через ControlNet Canny используется как «обводка», на которой модель строит новую картинку. Хорошо подходит для переноса конкретных линий: контуры зданий, силуэты предметов, шрифт. В отличие от Depth (объём) и OpenPose (поза), Canny управляет точно плоскостной геометрией линий.

Коротко

Коротко. Canny Edge превращает изображение в карту контрастных границ. Совместимая ControlNet использует её как геометрическую подсказку: крупные линии и силуэты сохраняются лучше, а стиль и детали можно менять. Такой контроль подходит для эскизов, предметов и архитектуры, но не гарантирует точный текст или узнаваемое лицо.

Что это такое

Иллюстратор делает серию упаковок для пива. Дизайнер уже нарисовал контурный набросок: бутылка, этикетка, текст, орнамент. Нужны 5 разных стилевых вариантов: винтаж, минимализм, скандинавский, готика, ретро-фьюче.

Canny извлекает контуры из эскиза и передаёт их совместимой ControlNet. Генерации сильнее держатся за силуэт и расположение крупных линий, но не обязаны повторять мелкий текст или геометрию пиксель в пиксель.

Дизайнер получает несколько управляемых вариантов и проверяет, где карта сохранила форму, а где вместе с полезным контуром закрепила лишний шум.

Canny — классический алгоритм компьютерного зрения, опубликованный в 1980-х. Он не зависит от генеративной модели: сначала извлекает границы, а уже затем совместимый модуль управления использует полученную карту.

  • Перевод эскизов в финальные иллюстрации.
  • Перерисовка логотипов и упаковок в новых стилях.
  • Контроль архитектуры зданий.
  • Сохранение общей геометрии надписи перед финальной ручной вёрсткой.
  • Перенос композиции с минимальной свободой.

Как это работает

Алгоритм Canny проходит через изображение в 4 шага:

  1. Размытие Гауссом. Уменьшает шум, чтобы алгоритм не реагировал на пиксельный мусор.
  2. Поиск градиентов. В каждом пикселе считается, насколько резко меняется яркость. Резкие переходы = края.
  3. Не-максимальное подавление. Из «толстых» градиентных полос выбирается самая центральная линия.
  4. Двойной порог + связность. Слабые края, не связанные с сильными, отбрасываются. Получается чистая контурная карта.

Параметры Canny (управляют чувствительностью):

  • Low threshold — нижний порог. Чем ниже, тем больше слабых линий ловит.
  • High threshold — верхний. Чем выше, тем меньше шумных линий проходит.

Порогов два: нижний помогает продолжать слабые границы, верхний отмечает уверенные. Рабочие числа зависят от контраста и масштаба исходника, поэтому их подбирают по самой карте: нужные линии должны остаться, а шум и фактура — уйти.

В нодовом интерфейсе цепочка выглядит так: загрузка изображения → препроцессор Canny → совместимая модель контроля → сэмплер. Названия нод и файлов зависят от установленного пакета и архитектуры базовой модели.

Пример на практике

Дизайнер рестайлит логотип. Клиент дал старый логотип — кружка с надписью «Cofee Bar» (с опечаткой). Нужно перерисовать в трёх стилях: акварель, неон, металл-гравюра. Композиция и буквы должны остаться.

Workflow:

  1. Photoshop: исправляет опечатку → «Coffee Bar». Сохраняет PNG.
  2. ComfyUI: загружает картинку, применяет Canny Preprocessor (порог 100/200). Получает контурную карту: кружка + текст белыми линиями на чёрном.
  3. Запуск 3 раза с разными промптами:
    • watercolor coffee shop logo, soft pastels, vintage paper
    • neon coffee shop sign, dark background, cyberpunk style
    • metal engraving coffee logo, victorian, copper plate
  4. Strength подбирается сравнением нескольких значений: достаточно удержать геометрию без заметной обводки в финале.

Результат — несколько стилистических направлений с близкой общей композицией. Точный логотип и шрифт лучше накладывать после генерации в векторном редакторе: edge-карта не гарантирует корректные буквы.

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

С чем часто путают

  • Canny и Lineart — Lineart-препроцессор старается получить рисунок линиями, а Canny отмечает перепады яркости. Выбор зависит от того, нужен ли художественный штрих или фактический контур исходника.
  • Canny и Soft Edge / HED — Soft Edge сохраняет более мягкую структуру границ, а Canny даёт тонкую бинарную карту. Они по-разному ограничивают генерацию.
  • Canny и Depth — Canny это плоские контуры, Depth — 3D-объём. Часто комбинируют для архитектуры.
  • Canny и Sketch — Sketch (Scribble) принимает грубые наброски рукой, Canny — точные контуры. Sketch допускает «свободу», Canny требует точности.
  • Canny ControlNet и Canny из OpenCV — алгоритм один и тот же. Просто в SD он встроен в pipeline ControlNet'а.

Частые ошибки и заблуждения

  • «Canny ловит только важные линии». Не различает важные и неважные. Если на фото складки на одежде, тени, текстура стены — всё попадёт в карту. Иногда нужно постобработать (стереть лишнее в Photoshop).
  • «Чем больше линий, тем точнее результат». Часто наоборот: «зашумлённая» карта мешает модели, она пытается воспроизвести каждую закорючку. Чище контуры → лучше результат.
  • «Canny = чёрно-белая фотография». Нет, это извлечение границ, не оттенков. Из цветной фото Canny делает контурную карту, не чёрно-белый снимок.
  • «Максимальный strength = идеальный контроль». Нет. Слишком жёсткое условие способно перенести контур буквально и сделать изображение плоским. Рабочий диапазон зависит от модели, карты и желаемой свободы.
  • «Canny сохранит личность человека». Карта удерживает контуры, но не кодирует личность. Для узнаваемого портрета одного Canny обычно недостаточно.

Связанные термины

  • ControlNet — общая система, в которую встроен Canny.
  • Lineart — родственный препроцессор для художественных линий.
  • HED / Soft Edge — альтернатива с мягкими краями.
  • Sketch / Scribble — для грубых набросков.
  • Depth Map — комплементарный 3D-контроль.
  • OpenPose — другой ControlNet для людей.
  • OpenCV — библиотека, где Canny используется десятилетиями.

Частые вопросы

Какие пороги Canny выставлять? По умолчанию 100/200. Для тонких эскизов — 50/150 (больше тонких линий). Для чётких контуров — 200/300 (только жирные границы).

Можно ли использовать свою контурную карту? Да. Если у вас уже есть готовая обводка (рисунок, чертёж, иллюстрация), её можно подать прямо в ControlNet, минуя препроцессор. Главное — белые линии на чёрном фоне.

Canny работает с FLUX? Только при наличии совместимой модели контроля и поддержки в выбранном интерфейсе. Совпадения слова Canny в названии недостаточно: архитектура базовой модели тоже должна совпадать.

Чем Lineart лучше Canny для иллюстраций? Lineart может лучше отделять рисунок линиями от текстуры исходника. Canny проще и предсказуемее как детектор перепадов яркости. Подходящий вариант виден по самой карте ещё до генерации.

Сколько по времени? Сам Canny обычно заметно легче генеративной части pipeline. Дополнительное условие ControlNet увеличивает вычисления и память, а точная разница зависит от модели, размера кадра, числа шагов и реализации.

Можно ли стирать линии в Canny-карте перед генерацией? Можно и нужно! Часто полезно открыть карту в Photoshop, чёрной кистью убрать лишние линии (мусор от теней, текстуры), оставить только важное. Результат получится чище.

Главное

Canny Edge превращает изображение в карту границ. В ControlNet эта карта удерживает геометрию, пока модель меняет материал, свет и стиль. Метод полезен для упаковки, архитектуры и крупных графических форм, но не гарантирует читаемость букв или точность логотипа. Пороги и силу выбирают по исходной карте и тестовой серии, а лишние линии иногда проще убрать вручную.