TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Абьюзер СhatGPT 💄 REBORN

1 Sep, 16:07

Открыть в Telegram Поделиться Пожаловаться

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

import requests
import cv2
import os
from insightface.app import FaceAnalysis
from insightface.model_zoo import get_model

app = FaceAnalysis(name='buffalo_l')
app.prepare(ctx_id=0, det_size=(640, 640))


def download_model(url, model_path):
if not os.path.exists(model_path):
print(f"Загрузка модели с {url}...")
response = requests.get(url)
response.raise_for_status()
with open(model_path, 'wb') as file:
file.write(response.content)
print(f"Модель сохранена как {model_path}")


model_url = "https://huggingface.co/ezioruan/inswapper_128.onnx/resolve/main/inswapper_128.onnx?download=true"
model_path = "inswapper_128.onnx"

download_model(model_url, model_path)

swapper = get_model(model_path)


def swap_face_between_images(source_image_path, target_image_path, output_image_path):
source_img = cv2.imread(source_image_path)
if source_img is None:
print(f"Ошибка: Не удалось загрузить изображение-источник по пути: {source_image_path}")
return

target_img = cv2.imread(target_image_path)
if target_img is None:
print(f"Ошибка: Не удалось загрузить изображение-цель по пути: {target_image_path}")
return

print("Анализ лиц на изображении-источнике...")
source_faces = app.get(source_img)
if not source_faces:
print("Ошибка: Лица на изображении-источнике не найдены.")
return
source_face = source_faces[0]

print("Анализ лиц на изображении-цели...")
target_faces = app.get(target_img)
if not target_faces:
print("Ошибка: Лица на изображении-цели не найдены.")
return
target_face_to_replace = target_faces[0]

print("Выполнение замены лица...")
result_img = target_img.copy()
result_img = swapper.get(result_img, target_face_to_replace, source_face)

cv2.imwrite(output_image_path, result_img)
print(f"Изображение с замененным лицом сохранено как: {output_image_path}")


if __name__ == "__main__":
path_to_source_photo = 'rojers.jpg'
path_to_target_photo = 'stark.jpg'
output_filename = 'swapped_result.png'

if not os.path.exists(path_to_source_photo):
print(
f"Файл источника не найден: {path_to_source_photo}. Пожалуйста, создайте его или укажите правильный путь.")
elif not os.path.exists(path_to_target_photo):
print(f"Файл цели не найден: {path_to_target_photo}. Пожалуйста, создайте его или укажите правильный путь.")
else:
swap_face_between_images(path_to_source_photo, path_to_target_photo, output_filename)

requirements.txt:

opencv-python
onnxruntime
insightface

Чем лучше качество исходных фоток, тем лучше будет результат.

1.4k 0 13 4
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot