File size: 2,120 Bytes
4cd1592
ca6690d
 
8838600
619c5e1
8838600
4cd1592
 
8838600
4cd1592
 
8838600
4cd1592
 
8838600
ca6690d
 
 
 
8838600
619c5e1
ca6690d
 
 
 
 
 
 
 
619c5e1
ca6690d
 
619c5e1
 
 
96698ba
619c5e1
 
8838600
619c5e1
 
f3adba4
619c5e1
 
 
045f3e9
619c5e1
 
 
 
f3adba4
ca6690d
 
8838600
 
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
import streamlit as st
from PIL import Image
import torch
from diffusers import DiffusionPipeline  # تأكد من استخدام مكتبة متوافقة مع النموذج الجديد
import numpy as np
import io

# إعداد الصفحة
st.set_page_config(page_title="3D Mesh Generation", page_icon="🖼️")

# عنوان الصفحة
st.title("3D Mesh Generation from Image")

# تعليمات
st.write("Upload an image to generate a 3D mesh.")

# تحميل النموذج
@st.cache_resource
def load_model():
    model_id = "your_new_model_id_here"  # استبدل بـ ID النموذج الجديد
    pipe = DiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to("cuda")
    return pipe

pipe = load_model()

# إدخال المستخدم
uploaded_image = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])

if uploaded_image is not None:
    image = Image.open(uploaded_image).convert("RGB")
    st.image(image, caption='Uploaded Image', use_column_width=True)

    if st.button('Generate 3D Mesh'):
        # تحويل الصورة إلى تنسور
        image_tensor = torch.tensor(np.array(image)).float().unsqueeze(0).permute(0, 3, 1, 2).to("cuda") / 255.0
        
        # توليد الشبكة ثلاثية الأبعاد
        with st.spinner("Generating 3D mesh..."):
            mesh = pipe(image_tensor).images  # تأكد من أن هذا هو الاستخدام الصحيح للنموذج

        st.success("3D mesh generated successfully!")

        # عرض النتيجة
        st.write("### 3D Mesh Preview")
        st.image(mesh[0], caption="Generated 3D Mesh", use_column_width=True)

        # تنزيل النموذج
        mesh_bytes = io.BytesIO()
        mesh[0].save(mesh_bytes, format="png")  # استخدم الصيغة المناسبة هنا
        st.download_button(label="Download 3D Mesh", data=mesh_bytes.getvalue(), file_name="generated_mesh.png", mime="image/png")

# تقديم بعض المعلومات حول النموذج
st.write("""
### About the Model:
This model generates 3D meshes from single images