--- datasets: - AnyaSchen/image2poetry_ru language: - ru tags: - poetry - image --- This repo contains model for russian poetry generation from images. Poetry can be generated in style of poets: Маяковский, Пушкин, Есенин, Тютчев, Блок. To use this model you can write: ``` from PIL import Image import requests from transformers import AutoTokenizer, VisionEncoderDecoderModel, ViTImageProcessor def generate_poetry(fine_tuned_model, image, tokenizer, author): pixel_values = feature_extractor(images=image, return_tensors="pt").pixel_values pixel_values = pixel_values.to(device) # Encode author's name and prepare as input to the decoder author_input = f" {author} " decoder_input_ids = tokenizer.encode(author_input, return_tensors="pt").to(device) # Generate the poetry with the fine-tuned VisionEncoderDecoder model generated_tokens = fine_tuned_model.generate( pixel_values, decoder_input_ids=decoder_input_ids, max_length=300, num_beams=3, top_p=0.8, temperature=2.0, do_sample=True, pad_token_id=tokenizer.pad_token_id, eos_token_id=tokenizer.eos_token_id, ) # Decode the generated tokens generated_poetry = tokenizer.decode(generated_tokens[0], skip_special_tokens=True) generated_poetry = generated_poetry.split(f'{author}')[-1] return generated_poetry url = 'https://anandaindia.org/wp-content/uploads/2018/12/happy-man.jpg' image = Image.open(requests.get(url, stream=True).raw) generated_poetry = generate_poetry(fine_tuned_model, image, tokenizer) print(generated_poetry) ```