File size: 2,896 Bytes
fdd0a59 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Dn6Ey7mV7-YW"
},
"outputs": [],
"source": [
"# import part\n",
"!pip install streamlit pyngrok\n",
"import streamlit as st\n",
"from transformers import pipeline\n",
"from PIL import Image\n",
"import io\n",
"\n",
"\n",
"# function part\n",
"def generate_image_caption(image):\n",
" \"\"\"Generates a caption for the given image using a pre-trained model.\"\"\"\n",
" img2caption = pipeline(\"image-to-text\", model=\"Salesforce/blip-image-captioning-base\")\n",
" result = img2caption(image)\n",
" return result[0]['generated_text']\n",
"\n",
"def text2story(text):\n",
" \"\"\"Generates a children's story from text input with genre adaptation\"\"\"\n",
" story_prompt = f\"Create a funny 100-word story for 8-year-olds about: {text}. Include: \"\n",
" story_prompt += \"1) A silly character 2) Magical object 3) Sound effects 4) Happy ending\"\n",
"\n",
" pipe = pipeline(\"text-generation\", model=\"pranavpsv/genre-story-generator-v2\")\n",
" story_text = pipe(\n",
" story_prompt,\n",
" max_new_tokens=200,\n",
" temperature=0.9,\n",
" top_k=50\n",
" )[0]['generated_text']\n",
" return story_text.split(\"Happy ending\")[-1].strip() # Clean output\n",
"\n",
"def main():\n",
" st.title(\"📖 Image Story Generator\")\n",
" st.write(\"Upload an image and get a magical children's story!\")\n",
"\n",
" uploaded_image = st.file_uploader(\"Choose an image...\", type=[\"jpg\", \"jpeg\", \"png\"])\n",
"\n",
" if uploaded_image:\n",
" image = Image.open(uploaded_image).convert(\"RGB\")\n",
" st.image(image, use_column_width=True)\n",
"\n",
" with st.spinner(\"✨ Analyzing image...\"):\n",
" caption = generate_image_caption(image)\n",
"\n",
" st.subheader(\"Image Understanding\")\n",
" st.write(caption)\n",
"\n",
" with st.spinner(\"📖 Writing story...\"):\n",
" story = text2story(caption)\n",
"\n",
" st.subheader(\"Magical Story\")\n",
" st.write(story)\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()"
]
}
]
} |