Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Генератор изображений на пайтоне для телеграма

Егор Красильников Ученик (92), на голосовании 8 месяцев назад
Нужна помощь срочно! Можете исправить ошибки в коде и сюда надо как-то пришить модель StyleGAN2 но можно и другую просто я не знаю как. Но впринципе можно использовать любую модель просто главное чтобы оно созавало изображения в зависимости от того что ему зададут.

Вот код:

import os
import random
import telebot
import numpy as np
from PIL import Image
import torch
from torchvision.utils import save_image
from stylegan2_pytorch import ModelLoader

# токен
TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'


# загрузка обученной модели StyleGAN2
def load_model():
# открытие файла .pkl
model_path = 'path/to/your/pretrained_model.pkl'

# загрузка
model = ModelLoader(model_path)

return model


# генерация с помощью модели
def generate_image(model):
# рандомный вектор
noise_vector = torch.randn(1, 512).cuda()

with torch.no _grad():
generated_image = model.sample(noise_vector)

return generated_image


# создание бота
bot = telebot.TeleBot(TOKEN)

# снова загрузка модели
model = load_model()


# эт старт
@bot.message_handler(commands=['start'])
def start(message):
bot.reply_to(message, "Welcome to Image Generator Bot! Type '/generate_image' to generate a new image.")


# эт обработка команды генерации
@bot.message_handler(commands=['generate_image'])
def generate(message):
# генерация
generated_image = generate_image(model)

# преобразование в PIL-изображение
generated_image_pil = Image.fromarray(np.transpose(generated_image[0].cpu().numpy(), (1, 2, 0)))

# сохранение созданной картинки
filename = 'generated_image.png'
generated_image_pil.save(filename)

# отправка
photo = open(filename, 'rb')
bot.send_photo(message.chat.id, photo)
photo.close()

# удаление изображения
os.remove(filename)

bot.polling()
Голосование за лучший ответ
Кицькодівчинка Мыслитель (5490) 9 месяцев назад
chatGPT делал?
Ща попробуем сделать
Обновлено: а в какой строке ошибка то? Я не вижу чёт
Егор КрасильниковУченик (92) 9 месяцев назад
  1. from torchvision.utils import save_image
  2. from stylegan2_pytorch import ModelLoader ему не нравятся эти библиотеки
  3. просто нужно найти какую-то модель и пришить её туда но я не пасу как это сделать но код заточен под StyleGan2
Кицькодівчинка Мыслитель (5490) Егор Красильников,
  1. Я бы import torchvision поставил вместо from torchvision.utils...
  2. уточни какая именно ошибка
Дмитрий Знаток (290) 9 месяцев назад
generate_image(model, z):
img = model.run (z)
return img[0]

размер изображения
IMAGE_SIZE = 1024

создание случайного шума z
z = torch.randn(1, model.z_dim, 1, 1).type(torch.float32)

генерация изображения
generated_image = generate_image(model, z)

преобразование в массив numpy
image_array = generated_image.detach().cpu().numpy()

масштабирование и перевод в диапазон 0-255
scaled_image_array = 255 * image_array / np.max(image_array)

сохранение изображения
save_image(scaled_image_array, f’generated_image_{random.randint(1, 1000)}.png’)

инициализация бота
bot = telebot.TeleBot(TOKEN)

load_model = load_model()
while True:
generate_image(load_model, z)
КицькодівчинкаМыслитель (5490) 9 месяцев назад
Без решёток не верю
Похожие вопросы