File size: 3,629 Bytes
f667084 a04adbd c6c4d1c 4d54b56 90c9be8 0372f7c fa3a39e a04adbd 264752e 50b4bab 264752e dcf269f 264752e 01b1364 0372f7c 3891dec a04adbd f667084 a04adbd 8a7739d 90c9be8 3bf8f5f f667084 50b4bab c6c4d1c 3aefc04 17bd3ff 55b9907 50b4bab 55b9907 dcf269f 50b4bab 3891dec fa3a39e f418994 dcf269f 948eab4 f418994 33407d1 3aefc04 9023169 a04adbd c83e28c febdafe 8bbdb99 eb4cf9a c6c4d1c eb4cf9a 01b1364 eb4cf9a 3aefc04 eb4cf9a 3aefc04 eb4cf9a 0c3147e 264752e 3a94231 eb4cf9a 5a33899 3aefc04 622764d 264752e 622764d c6c4d1c eb4cf9a 3aefc04 c6c4d1c 6833ac1 9023169 1b6a75c 0ef1f3f 6833ac1 9023169 a81e611 f667084 0ef1f3f |
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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
import os
from huggingface_hub import login
from transformers import BlipProcessor, BlipForConditionalGeneration
from transformers import MllamaForConditionalGeneration, AutoProcessor
from PIL import Image
from dotenv import load_dotenv
import gradio as gr
from diffusers import DiffusionPipeline
import torch
import spaces # Hugging Face Spaces module
import requests
from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info
from diffusers import DiffusionPipeline
fabrics = ['cotton', 'silk', 'denim', 'linen', 'polyester', 'wool', 'velvet']
patterns = ['striped', 'floral', 'geometric', 'abstract', 'solid', 'polka dots']
textile_designs = ['woven texture', 'embroidery', 'printed fabric', 'hand-dyed', 'quilting']
# Get Hugging Face Token from environment variable
HUGGINGFACE_TOKEN = os.getenv("HUGGINGFACE_TOKEN")
# Authenticate using the token
login(token =HUGGINGFACE_TOKEN)
processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-large")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-large")
processor1 = BlipProcessor.from_pretrained("noamrot/FuseCap")
model2 = BlipForConditionalGeneration.from_pretrained("noamrot/FuseCap")
from diffusers import FluxPipeline
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16)
device = "cuda" if torch.cuda.is_available() else "cpu"
# pipe.to(device)
model.to(device)
pipe.to(device)
model2.to(device)
@spaces.GPU(duration=150)
def generate_caption_and_image(image, f, p, d):
if f!=None and p!=None and d!=None and image!=None:
img = image.convert("RGB")
# reader = easyocr.Reader(['en'])
# # result = reader.readtext(img)
# import random
text = "a picture of "
inputs = processor(img, text, return_tensors="pt").to(device)
out = model2.generate(**inputs, num_beams = 3)
caption2 = processor1.decode(out[0], skip_special_tokens=True)
inputs = processor(image, return_tensors="pt", padding=True, truncation=True, max_length=250)
inputs = {key: val.to(device) for key, val in inputs.items()}
out = model.generate(**inputs)
caption1 = processor.decode(out[0], skip_special_tokens=True)
prompt = f"Design a high-quality, stylish clothing item that flawlessly combines the essence of {caption1} and {caption2}. The design should emphasize the luxurious feel and practicality of {f} fabric, while integrating intricate {d} textual design elements. Incorporate {p} patterns that elevate the garment's aesthetic, ensuring a harmonious blend of textures and visuals. The final piece should be both sophisticated and innovative, reflecting modern trends while preserving timeless elegance. The design should be bold, wearable, and a true work of art."
image = pipe(prompt,height=1024,width=1024,guidance_scale=3.5,num_inference_steps=50,max_sequence_length=512,generator=torch.Generator("cpu").manual_seed(0)).images[0]
return image
return None
# Gradio UI
iface = gr.Interface(
fn=generate_caption_and_image,
inputs=[gr.Image(type="pil", label="Upload Image"), gr.Radio(fabrics, label="Select Fabric"), gr.Radio(patterns, label="Select Pattern"), gr.Radio(textile_designs, label="Select Textile Design")],
outputs=[gr.Image(label="Generated Design 1")],
live=True
)
iface.launch(share=True)
|