
Недавно я решила продать часть своих старых вещей в интернете — обувь, мебель, всякие безделушки — и быстро поняла, как неловко выглядит моя квартира на фотографиях. Представьте себе мусорные баки в углу, разбросанные носки и случайные пучки волос на полу. Это определенно не та эстетика фотографий, которая кричит «Купи это сейчас!»
Вместо того, чтобы заняться уборкой (у кого есть на это время?), я подумал: «Должно быть решение на основе ИИ!» — и полез в кроличью нору. Благодаря ChatGPT я обнаружил rembg для удаления фонов, но это привело меня к клонированию репозитория и установке непонятных пакетов. Затем я захотел автоматически генерировать подписи для своих изображений, поэтому переключился на еще одну модель. Каждый шаг требовал другой библиотеки, другой настройки и кучи обучающих программ.
Как разработчик-консультант в LandingAI , компании, ориентированной на визуальный ИИ, я хочу выделить VisionAgent . Он обещает унифицированный интерфейс для таких задач, как обнаружение объектов, сегментация, субтитры и многое другое, не требуя от вас обучения или полного понимания внутренних компонентов каждой отдельной модели. Вместо того, чтобы верить мне на слово, следуйте этому руководству и узнайте, как единая, целостная платформа может преобразовать ваш рабочий процесс.
Всего за четыре часа я создал удобное приложение, которое удалило грязные фоны с моих фотографий, осветлило и увеличило резкость моих продуктов, предложило более привлекательные фоны (больше никаких носков на полу!) и сгенерировало яркие, достойные eBay подписи . В этой записи блога я покажу вам, как именно я это сделал — и как вы тоже можете это сделать.
💡 Полный исходный код доступен в репозитории, ссылка на который приведена в конце этой статьи. Вы можете клонировать его и запустить локально.
1. Задача: превратить некрасивые фотографии в идеальные объявления
Если вы когда-либо пытались продать что-то онлайн — обувь, мебель или что-то еще — вы знаете, насколько важна чистая, привлекательная фотография. Но добиться этого может быть непросто:
- Беспорядок : Ненужные предметы или предметы домашнего обихода в кадре.
- Плохое освещение : тускло освещенные помещения, которые не идут на пользу вашему продукту.
- Нет времени : Я бы лучше отложил все на потом, чем занялся уборкой и подготовкой хорошо освещенного места.

Что, если бы одним щелчком мыши вы могли аккуратно извлечь свой продукт из любого загруженного фона , поместить на чистый или стильный новый фон и придать ему четкий , хорошо освещенный вид?
2. Введите VisionAgent
VisionAgent — это генеративный конструктор приложений Visual AI . Он следует «агентной» структуре для обработки сложных визуальных задач, требующих рассуждений. Он модулирует выбор инструментов, чтобы выбрать лучший визуальный инструмент для задачи, и использует встроенные шаблоны проектирования для решения особенно сложных визуальных задач.

Звучит сложно? Не волнуйтесь! Думайте об этом как об агенте ИИ , который оптимизирует создание приложений , предоставляя доступ к современным моделям зрения в едином интерфейсе, а также готовые к использованию фрагменты кода для встраивания в ваше приложение.
В нашем текущем приложении мы специально использовали VisionAgent для решения таких задач, как:
- Обнаружение объектов
- Экземплярная или семантическая сегментация
- Подпись к изображению
- Обработка и улучшение изображений
…в простых в использовании функциях, таких как:
detections = florence2_object_detection ( «обнаружить один крупный объект» , image_data )
segmented_image = florence2_sam2_instance_segmentation ( «Сегментировать основной объект» , image_data )
caption = qwen2_vl_images_vqa ( «Опишите этот продукт…» , [ image_data ])
улучшенное_изображение = автоматическое_улучшение_изображения_простое ( данные_изображения )
резкое_изображение = нерезкая_маска ( улучшенное_изображение )
Больше не нужно рыться в нескольких репозиториях, загружать контрольные точки модели или возиться с кодом Torch/TensorFlow. VisionAgent абстрагирует всю эту сложность под одной крышей.
3. Мой путь создания этого приложения с VisionAgent
Мой путь к созданию этого приложения не был прямым. Сначала я спросил VisionAgent:
«Определить один основной объект на сцене и избежать беспорядка на заднем плане. Сегментировать объект переднего плана и удалить фон. Добавить функцию, которая заменяет удаленную область фона изображением, выбранным из папки, где мы сохранили фоновые изображения, и, наконец, написать еще одну функцию, которая улучшает новое составное изображение, создавая синтетическую тень?»


VisionAgent предоставил мне решение с использованием flux_image_inpainting для генерации совершенно новых фонов на основе текстовых подсказок:
def segment_and_replace_background ( image_path : str ,
background_prompt : Необязательно [ str ] = None ) -> np.ndarray :
«»»
Выделите основной объект (например, человека с баскетбольным мячом) из данного изображения,
затемните фон, примените улучшения яркости/контрастности и при необходимости замените фон с помощью зарисовки.
«»»
# 1. Загрузите изображение
# 2. Сегментируйте объект с помощью florence2_sam2_instance_segmentation
# 3. Объединяем маски, затемняем фон
# 4. Если указан background_prompt, вызовите flux_image_inpainting для заполнения фона
# …
вернуть финальное_изображение
Я даже протестировал этот подход с образцом изображения баскетбольного мяча, убедившись, что он может менять фоны. Однако модель реализации flux_image_inpainting с открытым исходным кодом, размещенная VisionAgent, не давала последовательно реалистичных или хорошо подобранных результатов; она нуждалась в серьезной тонкой настройке. Поэтому я перешел к стратегии курируемых фонов + LLM :
- Вручную подберите красивые фоновые изображения (например, гостиная, чистая белая студия).
- Используйте Claude/Gemini/OpenAI для оценки каждого фона на основе подробного описания продукта.
- Совместите объект переднего плана с новым фоном , получив профессионально выглядящий эффект синтетической тени.
- Предоставьте пользователю 3 лучших фона для окончательного выбора.
Это дало мне более последовательную композицию. Плюс, мне не нужна была генеративная модель, чтобы «галлюцинировать» новую сцену; у меня был прямой контроль над библиотекой фонов и тем, как они могли бы соответствовать моему продукту.
Наконец, я просто сшил каждый компонент (обнаружение, сегментацию, улучшение и выбор фона на основе LLM) в моем приложении Streamlit . Результатом стал быстрый, надежный усилитель фотографий продукта, который теперь составляет основу моих новых листингов eBay. Это мой полный путь — надеюсь, он поможет вам создавать и адаптировать собственные решения Visual AI!
4. Высокоуровневый поток
Мне нужен был веб-интерфейс, чтобы мои друзья тоже могли им пользоваться. Streamlit был идеален. Я закончил следующими основными шагами:
- Загрузите (или выберите из образца) изображение товара.
- Определите основной продукт с помощью большой модели технического зрения (Florence2).
- Создайте несколько подписей — одну подробную (для Клода/Джемини, чтобы использовать ее для выбора трех лучших фонов) и одну маркетинговую (для вашего листинга на eBay).
- Сегментируйте только продукт, используя модель «Сегментировать все» (SAM2).
- Очистите и улучшите извлеченный передний план (яркость, контрастность и т. д.).
- Выберите новый фон, предоставив возможность обладателю степени магистра права оценить каталог изображений и выбрать наиболее подходящие (прощайте, грязная квартира!).
- Разместите свой продукт на лучших фонах.
- Представьте результаты: пользователь выбирает понравившийся ему фон, отображается окончательный маркетинговый слоган — готово.

За четыре часа я заставил все это функционировать. Большая часть времени ушла на оперативную разработку (рассказать Клоду, как выбирать фоны) и настройку управления состоянием Streamlit для выбора пользователем. Если бы не эти мелочи, я, вероятно, мог бы закончить за два часа!
5. Создание основных функций
Ниже приведены некоторые ключевые фрагменты кода из файлов app.py и vision_tools.py . Мы опустили некоторые детали с помощью … для краткости. Проверьте полный репозиторий для полного кода. Файл app.py имеет конфигурацию streamlit и базовую настройку, а vision_tools.py содержит все функции утилиты компьютерного зрения, включая обнаружение объектов, сегментацию, удаление фона, улучшение и композицию с тенями.
5.1 Обнаружение объектов и субтитры
Неряшливое фото со случайными предметами может сбить с толку типичный инструмент для удаления фона. Вот почему мы сначала явно определяем основной объект, который нас интересует (предмет, который мы хотим продать), и генерируем подписи для выбора фона и маркетинга.

vision_tools.py:
def detect_objects ( путь_к_изображению ):
# 1. Загрузите изображение
изображение = загрузка_изображения ( путь_к_изображению )
# 2. Определите основной объект
detections = florence2_object_detection ( «обнаружить один крупный объект на сцене» , изображение )
# 3. Аннотируйте ограничивающие рамки
image_with_boxes = overlay_bounding_boxes ( изображение , обнаружения )
# 4. Создайте два описания (подробное + маркетинговый стиль)
claude_prompt = «Опишите этот продукт подробно…»
claude_caption = qwen2_vl_images_vqa ( claude_prompt , [ изображение ])
ad_prompt = «Создайте краткое объявление о продукте…»
ad_caption = qwen2_vl_images_vqa ( ad_prompt , [ изображение ])
# 5. Сохраните аннотированное изображение.
output_path = «output_image_with_boxes.jpg»
сохранить_изображение ( изображение_с_боксами , выходной_путь )
возвращаться {
«output_image_path» : выходной_путь ,
«claude_caption» : claude_caption ,
«ad_caption» : рекламный_подпись
}
florence2_object_detection и qwen2_vl_images_vqa VisionAgent выполняют здесь тяжелую работу ИИ. В нескольких строках вы получаете ограничивающие рамки и две специализированные подписи — одну подробную и одну маркетинговую.
5.2 Расширенная сегментация (SAM2)
Как только мы узнаем, какой объект является нашим основным продуктом, мы проводим более тонкую сегментацию экземпляра , чтобы точно удалить фон. Мы полагаемся на «Модель сегментации всего» (SAM2) из Florence2:
def segment_and_save_objects ( image_path , prompt ):
# Загрузить изображение
изображение = загрузка_изображения ( путь_к_изображению )
segmentation_results = florence2_sam2_instance_segmentation ( подсказка , изображение )
# Фильтрация мелких объектов или объектов по краям
# Объединить допустимые маски в изображение с альфа-каналом
сегментированное_имя_файла = f» {os.path.splitext(image_path)[0]} _segmented.png»
сохранить_изображение ( финальное_изображение , сегментированное_имя_файла )
вернуть сегментированное_имя_файла
С SAM2 края вашего продукта будут выглядеть аккуратно — никаких остатков пола или мусорного бака в углу.


5.3 Автоматическое улучшение
Я понял, что мои тускло освещенные снимки нуждаются в небольшом освещении. Поэтому мы добавили:
def unsharp_mask ( изображение , сигма = 1,0 , интенсивность = 1,5 ):
размыто = cv2.GaussianBlur ( изображение , ( 0 , 0 ), сигма )
резкость = cv2.addWeighted ( изображение , 1.0 + сила , размытость , -сила , 0 )
возвращение заточенным
def auto_enhance_image_simple ( img_bgr : np.ndarray ) -> np.ndarray :
# Применяет настройки яркости/контраста и легкую нерезкую маску
# …
вернуть final_img
Передний план более четкий, яркий и привлекает внимание потенциального покупателя.

5.4 Выбор и применение нового фона
Вот секретный соус , который заменил мои грязные полы в квартире на стильный, свободный от беспорядка фон. Мы даем LLM подсказку оценить каталог изображений , а затем выбираем лучшие совпадения:
класс BackgroundSelector :
def select_best_background_claude_v2 ( self , item , image_directory ):
# Мы предлагаем LLM оценить каждый фон по шкале от 1 до 20
# Затем возвращаем 3 лучших фона
…
возврат [ верхний_фон_1 , верхний_фон_2 , верхний_фон_3 ]
В app.py этап компоновки выглядит примерно так:
для idx , bg_path в перечислении ( st.session_state.top_bg_paths ):
пытаться :
# Композит с синтетической тенью
composite_path = f»composite_option_{idx+1}.png»
создать_композитный_с_тенью (
bg_path ,
«sh_output.png» , # Улучшенный передний план
выходной_путь = составной_путь ,
shadow_offset =( 30 , 30 ), # или настройте по своему усмотрению
shadow_blur = 25 , # больше => мягче тень
shadow_opacity = 120 # 0-255 (0 = полностью прозрачный, 255 = полностью непрозрачный)
)
preview_images.append ( composite_path )
Теперь вы можете увидеть свой продукт в сияющем окружении — больше никаких носков в углу.

Секрет этого финального лака заключается в совмещении изображений с синтетической тенью:
def создать_композит_с_тенью (
bg_path : str ,
fg_path : str ,
выходной_путь : str ,
смещение_тени =( 15 , 15 ),
размытие_тени = 20 ,
непрозрачность_тени = 120
):
«»»
1. Удалите фон с изображения переднего плана, если он еще не RGBA.
2. Создайте тень от альфа-маски.
3. Вставьте тень на фон, затем вставьте передний план сверху.
4. Сохраните финальную композицию в `output_path`.
«»»
# Загрузить передний план, удалить BG
fg_img_raw = Изображение.открыть ( fg_path ) .конвертировать ( «RGBA» )
fg_img_clean = удалить ( fg_img_raw )
fg_w , fg_h = fg_img_clean.size
# Создать новую композитную базу того же размера, что и BG
композитный = Изображение.новый ( «RGBA» , ( bg_w , bg_h ), ( 0 , 0 , 0 , 0 ))
# Вставить фон
композит.вставить ( bg , ( 0 , 0 ))
# Построить тень
альфа = fg_img_clean.split ()[ 3 ]
тень = Изображение.новое ( «RGBA» ,( fg_w , fg_h ) , цвет =( 0,0,0,0 ))
black_img = Image.new ( «RGBA» , ( fg_w , fg_h ), color =( 0 , 0 , 0 , shadow_opacity ))
тень.вставить ( black_img , маска = альфа )
тень = тень.фильтр ( ImageFilter.GaussianBlur ( shadow_blur ))
shadow_x = offset_x + shadow_offset [ 0 ]
shadow_y = offset_y + shadow_offset [ 1 ]
композитный.альфа_композитный ( тень , ( тень_x , тень_y ))
композитный.альфа_композитный ( fg_img_clean , ( смещение_x , смещение_y ))
composite.convert ( «RGB» ). save ( output_path , format = «PNG» ; quality = 95 )
возврат выходного_пути
6. Streamlit-фронтенд
Файл app.py — это стандартный скрипт Streamlit , который связывает эти шаги вместе. Вы найдете такую логику:
если start_action и не st.session_state.processing :
# 1. Обнаружение объектов и подписей
результаты = detect_objects ( image_path )
# 2. Сегментируйте основной продукт
result_sam = segment_and_save_objects ( image_path , «…» )
# 3. Улучшить продукт
sharpened_image_path = auto_enhance_image_simple ( … )
# 4. Используйте LLM для выбора лучших фонов и их компоновки
background_selector = Селектор_Фона ()
st.session_state.top_bg_paths = background_selector.select_best_background_claude_v2 ( caption , BG_DIR )
# 5. Покажите пользователю готовые изображения и дайте ему возможность выбрать
…
- Загрузчик файлов или образцов изображений
- Кнопка « Начать действие », которая запускает конвейер (обнаружение → сегментация → улучшение → предложение фона → композиция).
- Предварительный просмотр изображений , чтобы вы могли выбрать наиболее понравившийся вам фон.
- Финальная подпись в стиле « Купить сейчас! » от магистра права.
Всего за несколько кликов вы:
- Четкие, профессионально выглядящие снимки продукции .
- Готовый к использованию маркетинговый текст для вашего листинга.

7. Почему VisionAgent?
Поначалу я метался между rembg , различными репозиториями Hugging Face для сегментации, случайными скриптами субтитров и т. д. VisionAgent изменил правила игры:
- Единый унифицированный API : нет необходимости отслеживать несколько конечных точек модели или репозиториев.
- Высококачественные модели : Florence 2 и Qwen2-VL обеспечивают первоклассное обнаружение, маски и подписи.
- Простота использования : несколько вызовов функций превратят неряшливые фотографии в безупречные композиции.
- Готовность к производству : вы можете выйти за рамки прототипов — используйте эффективный вывод модели VisionAgent для надежного онлайн-сервиса. А если вам нужна дополнительная настройка или вы хотите доработать модели, вы можете работать напрямую с командой и платформой LandingAI.

8. Реальное влияние (и что дальше)
Вооружившись почти мгновенным способом создания снимков, достойных eBay, я разместил свои товары с лучшими визуальными эффектами — и, конечно же, они начали продаваться быстрее . Разница в показателях кликабельности и интересе покупателей становится ощутимой, если вы хорошо представляете свой продукт.
Этот подход не ограничивается пыльными квартирами. С небольшими изменениями вы можете:
- Мода : Сфотографируйте футболку на кровати, снимите ее и положите на модель или на чистый, фотогеничный фон.
- Недвижимость : виртуальная постановка комнат, удаление старой мебели и установка новых декораций.
- Маркетинг в социальных сетях : автоматическое создание рекламных изображений с цветовым фоном вашего бренда.
Вы поняли — как только вы сможете легко объединить обнаружение, сегментацию и генерацию текста , предела не будет.
9. Идеи для дальнейшего улучшения
Если вы хотите сделать это приложение еще более эффективным , вот несколько идей:
- Пакетная обработка : пользователи могут загружать несколько изображений одновременно и ставить их в очередь на удаление фона и улучшение.
- Интерактивное редактирование объектов : пользователь может исправить или стереть незначительные ошибки сегментации с помощью интерфейса «кисть».
- Настройка подписи : предоставьте несколько маркетинговых стилей — «необычный», «формальный», «роскошный» и т. д. — и позвольте пользователю выбирать.
- Автоматическая обрезка и позиционирование : автоматическое центрирование или обрезка продукта для обеспечения единообразной композиции на всех изображениях.
10. Подведение итогов
От захламленной квартиры до отполированного автомата для выставления товаров на eBay — этот путь показывает, как VisionAgent с минимальными усилиями открывает новый уровень визуального ИИ:
- Все в одном : такие инструменты, как обнаружение, сегментация, создание субтитров и анализ изображений, объединены в одном решении.
- Production Ready : Вы можете выйти за рамки прототипов — используйте API VisionAgent и пользовательские функции обучения модели для создания надежных, экономичных онлайн-сервисов. Если вам нужна большая гибкость или пользовательское обучение модели, свяжитесь со мной.
Попробуйте! Всего через несколько часов у вас будет собственное приложение на основе искусственного интеллекта для «замены фона и улучшения продукта» — не требуется никаких продвинутых знаний в области искусственного интеллекта, не требуется никакого опыта в обработке изображений или компьютерном зрении. Полный код находится в нашем репозитории и может быть клонирован локально для немедленного запуска. Вооружившись этими инструментами, у вас больше не будет оправданий для тусклых, непривлекательных фотографий продукта. Теперь идите и продавайте свое снаряжение — и пусть эти непарные носки останутся скрытым секретом времен «до»!
Счастливого строительства ! И помните, если вам нужна более глубокая интеграция или у вас есть особые требования, сообщество VisionAgent Discord и команда LandingAI всегда готовы помочь.
Источник: landing.ai



























