Advertisement
Guest User

Untitled

a guest
Oct 6th, 2024
573
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. from aiogram import Bot, types, Dispatcher, Router, F
  2. from aiogram.filters import Command
  3. import asyncio
  4. import uuid
  5. import json
  6. import websockets
  7.  
  8. token = '' # Ваш токен бота взятый из @BotFather
  9. runware_api = 'z1ilk4CqKMMMPSm3gynSdrsuoKsECcxK' # Тот самый ключик разработчиков для работы нейросети
  10.  
  11. bot = Bot(token=token)
  12. dp = Dispatcher()
  13. router = Router()
  14.  
  15. async def create_image(prompt): # Генерируем картинку
  16. async with websockets.connect('wss://ws-api.runware.ai/v1') as websocket:
  17. auth_request = [{"taskType": "authentication","apiKey": runware_api}]
  18. await websocket.send(json.dumps(auth_request)) # Логинимся и получаем успешный ответ от сервера
  19. auth_response = await websocket.recv()
  20. n = 1
  21. image_request = [{"positivePrompt": prompt,"model": "runware:100@1",'steps':4,'width':512,'height':512,'numberResults':n,'outputType':['URL'],'taskType':'imageInference','taskUUID':uuid.uuid4().hex}]
  22. await websocket.send(json.dumps(image_request)) # Отправляем запрос на генерацию и получаем картинку
  23. img = await websocket.recv()
  24. data = json.loads(img)['data'][0]
  25. return data
  26.  
  27. @router.message(Command('start')) # Добавляем ответ на команду /start
  28. async def start(message: types.Message):
  29. await message.answer('Привет!\nЯ бот для моментальной генерации картинок, отправь мне на английском любой промпт и я в ту же секунду сгенерирую тебе изображение')
  30.  
  31. @router.message() # Ловим промпты
  32. async def gen(message: types.Message):
  33. if not message.text:
  34. return await message.answer('Отправь мне запрос текстом, я не понимаю другие форматы :(')
  35. msg = await message.answer(f'Начинаю генерацию по запросу:\n\n{message.text}')
  36. image = await create_image(message.text)
  37. await message.answer_photo(image['imageURL'], caption=f'Вот ваша генерация по запросу:\n\n{message.text}')
  38. await bot.delete_messages(message.chat.id, [msg.message_id, message.message_id])
  39.  
  40. async def main():
  41. router.message.filter(F.chat.type == 'private')
  42. dp.include_router(router)
  43. await dp.start_polling(bot)
  44.  
  45. if __name__ == '__main__':
  46. print('Бот для генерации картинок успешно запущен')
  47. asyncio.run(main())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement