Поборол GIMP с помощью ИИ
Для одной задачи понадобилось обработать 140 PNG-файлов простым образом: магическое выделение с порогом 24, увеличить выделение на 2, растушевать на 4, удалить и сохранить с альфа-каналом. По сути сделать рудиментарный кеинг.
Нормальные люди делают это на раз в своих фотошопах. Например, записывают action для этих действий, и применяют к пачке файлов. Я же использую GIMP, и он у меня версии 2.10 — будете смеяться, но я всё ещё сижу на старом компьютере. В GIMP макросов нет, а автоматизацию предлагается делать скриптами на Script-Fu или Python-Fu. Пошёл пытать ИИ, чтобы узнать, как решить задачу через это место.
Но ИИ оказался не робкого десятка. Он дал мне скрипт на Script-Fu, но тот не работал, выдавая ошибки. — Момент! — сказал ИИ, и предложил скрипт на Python-Fu. Он тоже не заработал! — Я понял свою ошибку, нужно использовать Script-Fu! — просветлился ИИ. И снова дал нерабочий вариант. По этому кругу я прошёл пять раз. В конце ИИ клялся мамой и бил себя пяткой в грудь, что всё будет, надо только написать скрипт для ImageMagick.
Но и я не пальцем делан. Я взял первый скрипт и спросил у того же ИИ в другом чате конкретные вопросы по проблемным местам. Тот нагуглил необходимое, и я вручную смог понять и починить скрипт. Также задействовал предложенный ИИ BIMP для пакетного запуска скрипта. И всё сработало. Чуть быстрее, чем если бы я обрабатывал эти 140 файлов вручную.
Выглядит скрипт так:
(define (script-fu-remove-contiguous-bg image drawable)
(gimp-image-undo-group-start image)
(gimp-layer-add-alpha drawable)
(gimp-context-set-sample-threshold (/ 24.3 255.0))
(gimp-image-select-contiguous-color image CHANNEL-OP-REPLACE drawable 0 0)
(gimp-selection-grow image 2.0)
(gimp-selection-feather image 4.0)
(gimp-drawable-edit-clear drawable)
(gimp-selection-none image)
(gimp-image-undo-group-end image)
(gimp-displays-flush)
)
(script-fu-register "script-fu-remove-contiguous-bg"
"Remove Contiguous Background"
"Removes contiguous background (white) starting from top-left corner"
"Your Name"
"Your Name"
"2024"
""
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
)
(script-fu-menu-register "script-fu-remove-contiguous-bg" "<Image>/Filters/MyScripts")
рабочее
ии
gimp