Насколько мне не изменяет память, самым эффективным алгоритмом был SIFT. ORB и SURF не дают такой точности, но и работают быстрее. Вся проблема SIFT - он отрабатывает на CPU 1-3 секунды, если картинки имеют большое количество одинаковых кейпоинтиов. Плюс надо использовать FlannBasedMatcher.knnMatch (для SURF тоже, а вот для ORB юзают BFMatcher). Дальше отбираешь только хорошие кейпоинты, а потом их решейпишь. В итоге на 3 значениях решаешь, баян или нет.
matches = matcher.knnMatch(des1, des2, k=2)
good = [m for m, n in matches if m.distance < 0.6 * n.distance]
src_pts = np.float32([kp1[m.queryIdx].pt for m in good]).reshape(-1, 1, 2)
dst_pts = np.float32([kp2[m.trainIdx].pt for m in good]).reshape(-1, 1, 2)
Перед сравнением картинки надо перегнать в COLOR_BGR2GRAY, сделать normalize с NORM_MINMAX, потом equalizeHist.
Из вариантов для GPU есть такая моча https://arxiv.org/abs/2112.02906
Работает в разы быстрее SIFT/ORB/SURF, запущенных на cuda_backend, но опять таки нужна видеокарта.
Вставлю свои никому не нужные пять копеек. Из интересных стилей есть еще такие как [by Antonio J. Manzanedo:by Andrew Atroshenko] и [by Greg Rutkowski:by Norman Rockwell]. В realistic они вписываются на ура.
Magnet для самых ленивых
magnet:?xt=urn:btih:D7DE10B226B9AD5899E360F28FE74702C20ADB22&dn=RandoMix3.zip&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce
Насколько мне не изменяет память, самым эффективным алгоритмом был SIFT. ORB и SURF не дают такой точности, но и работают быстрее. Вся проблема SIFT - он отрабатывает на CPU 1-3 секунды, если картинки имеют большое количество одинаковых кейпоинтиов. Плюс надо использовать FlannBasedMatcher.knnMatch (для SURF тоже, а вот для ORB юзают BFMatcher). Дальше отбираешь только хорошие кейпоинты, а потом их решейпишь. В итоге на 3 значениях решаешь, баян или нет.
matches = matcher.knnMatch(des1, des2, k=2)
good = [m for m, n in matches if m.distance < 0.6 * n.distance]
src_pts = np.float32([kp1[m.queryIdx].pt for m in good]).reshape(-1, 1, 2)
dst_pts = np.float32([kp2[m.trainIdx].pt for m in good]).reshape(-1, 1, 2)
Перед сравнением картинки надо перегнать в COLOR_BGR2GRAY, сделать normalize с NORM_MINMAX, потом equalizeHist.
Из вариантов для GPU есть такая моча https://arxiv.org/abs/2112.02906
Работает в разы быстрее SIFT/ORB/SURF, запущенных на cuda_backend, но опять таки нужна видеокарта.
medium breasts, nipples, orange eyes, messy hair, pink hair, short hair, ponytail, banges, hair over one eye, smug, eyelashes, make up, looking at viewer
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, stethoscope
Steps: 30, Sampler: DPM++ SDE Karras, CFG scale: 15, Seed: 2238960824
magnet:?xt=urn:btih:D7DE10B226B9AD5899E360F28FE74702C20ADB22&dn=RandoMix3.zip&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce
1. Открываем https://colab.research.google.com/ и создаем новый проект.
2. Добавляем себе GPU. Для этого сверху тыкаем "Среда выполнения" -> "Сменить среду выполнения" -> Выбираем GPU и нажимаем сохранить.
3. Вставляем следующее
!pip install -q https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.14/xformers-0.0.14.dev0-cp37-cp37m-linux_x86_64.whl
!git clone https://github.com/camenduru/stable-diffusion-webui
%cd stable-diffusion-webui
!sed -i -e 's/numpy==1.23.3/numpy==1.21.6/g' requirements_versions.txt
!sed -i -e 's/fairscale==0.4.9/fairscale==0.4.6/g' requirements_versions.txt
!wget https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/Anything-V3.0-pruned.ckpt -O /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0-pruned.ckpt
!wget https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/Anything-V3.0.vae.pt -O /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0.vae.pt
!python launch.py --listen --share --force-enable-xformers
(У автора поста потеряна команда скачивания весов для нейронки)
4. Тыкаем на кнопочку Play и ждем.