Небольшое предисловие.

С 2009 по 2020 год я занимался фотобанками, продавал там свои фото. Причем с 2012 довольно активно. Но в середине 2020-го остановил активные загрузки, а стоки для меня стали полностью пассивным доходом, который медленно, но постоянно уменьшался. Тогда было понимание, что тягаться в одиночку со студиями бессмысленно. Временные затраты были просто не сопоставимы с отдачей. Но в 2024 году я задумался о возвращении на стоки. Но сегодня, с развитием ИИ, многие процессы можно автоматизировать. Как мне кажется, это может позволить дополнительно зарабатывать на стоках, имея большой архив фото. 

Что нужно сделать, чтобы уже имеющиеся фото начали продаваться на стоках? Только загрузить их? Нет. Есть очень важная часть — атрибутирование изображений: необходимо прописать название, описание и до 50 ключевых слов для каждого файла. А теперь представьте, что фотографий тысячи. А все данные надо прописывать на английском языке. Это становится настоящей проблемой. Есть еще, конечно, вопрос загрузки большого объема файлов с прикрепленными релизами и сразу на несколько стоков, но эта задача уже давно решена. Например, есть стоксабмиттер.


Итак. Самое узкое место для меня в работе со стоками — это атрибутирование файлов.

Какие есть решения?

— обратиться к специалисту, который вручную всё пропишет. Это примерно 0,5$ за картинку. Перемножаем, 500$ за 1000 файлов — получается бессмысленная затея. 

— У Microstock.plus есть функция ИИ-атрибутирования за 0,02-0,03 €. Протестровал, результат не понравился. Важный и очевидных ключей почему-то я не нашел.

— Искать решение по автоматизации самостоятельно.


Ничего не оставалось как выбрать третий вариант. Звучала задача не сложно: написать скрипт, который будет брать фото из папки, грузить их по одной в чат gpt, получать ответ и записывать названия, описания и кейворды в метаданные. Для человека — это работа по нажатию нескольких кнопок. Можно было бы и не автоматизировать? Но время загрузки и ожидания ответа, время на копирование метаданных, рутинное копирование данных и пересохранение тысяч файлов в ручную — звучит устрашающе. 


Python, Gygachat, Deepseek

Сначала я пошел в Gygachat, как русский ИИ. Казалось, что задавать вопросы ИИ на русском логичнее всего там. Он предложил написать скрипт для автоматизации процесса на Python'е, рассказал, как установить Python, записать скрипт в файл, запустить этот скрипт. Дал первоначальный текст скрипта, но он так и не заработал. Прорыв произошел, когда я перешел на DeepSeek. Либо он сильнее, либо я неправильно давал запросы GygaChat'у, но первый оказался для меня лучше. А дальше я столкнулся с огромным множеством проблем. Несколько раз мне казалось, что вот скрипт готов, но всплывала новая ошибка.


DeepSeek, Python, HTML, Pip, API и еще много страшных букв

Начнем с того, что опыта в программировании на Python у меня нет никакого, язык я этот не знаю, да и вообще в написании кода знания околонулевые. Последний раз я писал программу еще в институте лет 15 назад на древнем языке, а уровень был примерно такой: решить уравнение y=x+2

И, вот, DeepSeek  пишет мне код, я его запускаю, программа не работает, нужно как-то ее менять, пишу ИИ, что исправить. И так по кругу. Тут главное понимать логику, что ты хочешь, чтобы происходило. Смотришь, что происходит на самом деле. На основе этого и пишешь запросы к ИИ. Он предлагает изменения, ты ничего не понимаешь и просишь обновленный полный код. Так и работали.


С какими проблемами я столкнулся? (Ничего из этого не знал, столкнулся, разобрался, нашел решение)

1. Данные в чат можно грузить через API, а можно запустить браузер и имитировать работу человека. Первый вариант не подошел. 

2. При работе через браузер появилась проблема логина на сайте необходимость поиска в коде на странице, куда грузить фото, где писать промт для ИИ, как отправить сообщение. Пришлось разбираться в HTML и искать элементы страницы в коде. Благо в браузере можно посмотреть код страницы.

3. Потом возникла сложность со считыванием информации из чата. Ответ мы получили, но скрипт его не находит. Опять пришлось помучаться с HTML. И не раз вернуться к этому пункту. 

4. Когда я наконец получил метаданные из чата, оказалось, что они неправильно прописываются в экзиф. Ключевые слова обрезаются. Нашел решение куда и как прописывать кейворды, чтобы они сохранялись все.

Отлично! У меня есть фото с прописанными метаданными! Сейчас я быстренько закольцую программу и получу все фото атрибутированными. Но не тут то было!

5. Вместо второго фото скрипт отправлял первые 2. Вместо третьего фото — первые 3.

6. Когда в чате появилось несколько ответов, скрипт стал брать любой из них, а не последний. Соответственно в файл записывались данные от другого фото. Непорядок. 

Теперь обрабатывает несколько фото! УРА! Но опять нет.

7. Оказалось, что название, описание и кейворды видны в фотошопе, но описание не отображается в Stocksubmitter'e, а при прямой загрузке на Shutterstock имя файла остается пустым, а все кейворды отображаются одним словом. Пришлось опять разбираться с тем как прописываются метаданные и куда. Опытным путем искать в какое поле их прописать, чтобы они везде отображались. 

Заработало!

8. Тут оказалось, что к некоторым словам прилипают знаки препинания. А ИИ выдает очень много словосочетаний, а не одиночных слов, и надо бы разделить их на слова. Пришлось снова дописывать код, подключать NLTK. О его существовании мне тоже рассказал DeepSeek, конечно.

Вот теперь всё!


Помимо этого за всё время написания скрипта:

— пришлось разбираться с паузами, ожиданиями итд, чтобы скрипт не переходил к следующему действию раньше времени

— установить кучу библиотек и модулей

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

— узнал про логирование (это когда пишется, что скрипт делает, что получилось, а что нет, где произошла ошибка)

— попытаться разобраться с капчей. Но настроить скрипт так, чтобы он ее обходил, я не смог. Даже пауза и ввод капчи вручную пользователем не помогли…

— а самая большая проблема — это перегрузка чата и отсутствие ответа

— пришлось часть кода вынести в отдельную программу и тестировать отдельно


Вывод

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


Я вывел несколько правил работы с ИИ для себя:

— Если что-то не знаешь, спрашиваешь у ИИ, как это сделать

— Если совсем не разбираешься в коде, проси выдать полный код с изменениями

— Сравнивай длины кода до и после изменений от ИИ. Иногда они вырезают часть кода по своей инициативе

— Проси ИИ добавлять логирование и описание команд, это поможет понять, что и где происходит в вашей программе


Блог