thomson99 commited on
Commit
76b0948
·
verified ·
1 Parent(s): d65e041

Upload 3 files

Browse files
Files changed (3) hide show
  1. README.md +67 -14
  2. app.py +136 -0
  3. requirements.txt +8 -0
README.md CHANGED
@@ -1,14 +1,67 @@
1
- ---
2
- title: Art.Style.Converter
3
- emoji: 🐠
4
- colorFrom: green
5
- colorTo: red
6
- sdk: gradio
7
- sdk_version: 5.12.0
8
- app_file: app.py
9
- pinned: false
10
- license: apache-2.0
11
- short_description: محول الأنماط الفني 🎨
12
- ---
13
-
14
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 🎨 محول الأنماط الفني | Artistic Style Transfer
2
+
3
+ تطبيق ذكاء اصطناعي لتحويل الصور إلى أنماط فنية مختلفة باستخدام تقنية Stable Diffusion.
4
+
5
+ ## ✨ المميزات
6
+
7
+ - 🖼️ تحويل الصور إلى أنماط فنية متعددة
8
+ - 🎯 التحكم في قوة التأثير الفني
9
+ - 🎨 10 أنماط فنية مختلفة
10
+ - 💫 واجهة مستخدم سهلة وجذابة
11
+ - 🚀 معالجة سريعة وفعالة
12
+
13
+ ## 🎯 الأنماط المتوفرة
14
+
15
+ 1. فان غوخ
16
+ 2. بيكاسو
17
+ 3. دافنشي
18
+ 4. موناليزا
19
+ 5. رسوم متحركة
20
+ 6. أنمي
21
+ 7. لوحة زيتية
22
+ 8. رسم بالألوان المائية
23
+ 9. فن البوب
24
+ 10. رسم رقمي
25
+
26
+ ## 🚀 التثبيت
27
+
28
+ 1. قم بتثبيت المتطلبات:
29
+ ```bash
30
+ pip install -r requirements.txt
31
+ ```
32
+
33
+ 2. قم بتشغيل التطبيق:
34
+ ```bash
35
+ python app.py
36
+ ```
37
+
38
+ ## 📝 كيفية الاستخدام
39
+
40
+ 1. قم بتحميل صورة
41
+ 2. اختر النمط الفني المطلوب
42
+ 3. اضبط قوة التأثير (0.1 إلى 0.9)
43
+ 4. انقر على زر "تحويل"
44
+ 5. انتظر النتيجة
45
+
46
+ ## 🛠️ المتطلبات التقنية
47
+
48
+ - Python 3.8+
49
+ - CUDA (للتسريع باستخدام GPU)
50
+ - 8GB RAM على الأقل
51
+ - مساحة تخزين 5GB
52
+
53
+ ## 📋 الترخيص
54
+
55
+ هذا المشروع مرخص تحت رخصة MIT.
56
+
57
+ ## 🤝 المساهمة
58
+
59
+ نرحب بمساهماتكم! يمكنكم:
60
+ - إضافة أنماط فنية جديدة
61
+ - تحسين جودة النتائج
62
+ - تطوير واجهة المستخدم
63
+ - إصلاح الأخطاء
64
+
65
+ ## 📞 التواصل
66
+
67
+ إذا كان لديك أي استفسار أو اقتراح، لا تتردد في التواصل معنا!
app.py ADDED
@@ -0,0 +1,136 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import torch
3
+ from diffusers import StableDiffusionImg2ImgPipeline
4
+ from PIL import Image
5
+ import numpy as np
6
+
7
+ # تهيئة النموذج
8
+ device = "cuda" if torch.cuda.is_available() else "cpu"
9
+ model_id = "runwayml/stable-diffusion-v1-5"
10
+ pipe = StableDiffusionImg2ImgPipeline.from_pretrained(model_id, torch_dtype=torch.float16 if device == "cuda" else torch.float32)
11
+ pipe = pipe.to(device)
12
+
13
+ # قائمة الأنماط الفنية المتاحة
14
+ ARTISTIC_STYLES = {
15
+ "فان غوخ": "in the style of Vincent van Gogh, oil painting, impressionist, bold brushstrokes, vibrant colors",
16
+ "بيكاسو": "in the style of Pablo Picasso, cubism, geometric shapes, abstract art",
17
+ "دافنشي": "in the style of Leonardo da Vinci, Renaissance art, detailed, realistic, sfumato technique",
18
+ "موناليزا": "in the style of Mona Lisa, Renaissance portrait, subtle colors, mysterious smile",
19
+ "رسوم متحركة": "cartoon style, vibrant colors, simple shapes, cute characters",
20
+ "أنمي": "anime style, manga art, detailed eyes, vibrant colors",
21
+ "لوحة زيتية": "oil painting style, textured canvas, rich colors, detailed brushstrokes",
22
+ "رسم بالألوان المائية": "watercolor painting, soft colors, flowing texture, artistic",
23
+ "فن البوب": "pop art style, bold colors, comic book style, Andy Warhol inspired",
24
+ "رسم رقمي": "digital art, clean lines, modern style, professional illustration"
25
+ }
26
+
27
+ def process_image(image, style, strength):
28
+ """
29
+ تحويل الصورة إلى النمط الفني المختار
30
+ """
31
+ # تحويل الصورة إلى الحجم المناسب
32
+ width, height = image.size
33
+ max_size = 768
34
+ if width > max_size or height > max_size:
35
+ ratio = max_size / max(width, height)
36
+ new_width = int(width * ratio)
37
+ new_height = int(height * ratio)
38
+ image = image.resize((new_width, new_height), Image.Resampling.LANCZOS)
39
+
40
+ # إنشاء وصف النمط
41
+ prompt = f"transform this image {ARTISTIC_STYLES[style]}, masterpiece, highly detailed"
42
+
43
+ # معالجة الصورة
44
+ output = pipe(
45
+ prompt=prompt,
46
+ image=image,
47
+ strength=strength,
48
+ guidance_scale=7.5,
49
+ num_inference_steps=50
50
+ ).images[0]
51
+
52
+ return output
53
+
54
+ def style_transfer(input_image, style_name, effect_strength=0.75):
55
+ """
56
+ واجهة تحويل النمط الفني
57
+ """
58
+ if input_image is None:
59
+ return None
60
+
61
+ # تحويل الصورة إلى كائن PIL
62
+ if isinstance(input_image, np.ndarray):
63
+ input_image = Image.fromarray(input_image)
64
+
65
+ try:
66
+ output_image = process_image(input_image, style_name, effect_strength)
67
+ return output_image
68
+ except Exception as e:
69
+ return f"حدث خطأ: {str(e)}"
70
+
71
+ # إنشاء واجهة المستخدم
72
+ with gr.Blocks(title="محول الأنماط الفني 🎨", theme=gr.themes.Soft()) as iface:
73
+ gr.Markdown("""
74
+ # 🎨 محول الأنماط الفني
75
+
76
+ قم بتحويل صورك إلى أعمال فنية مذهلة باستخدام تقنيات الذكاء الاصطناعي!
77
+
78
+ ### 📝 التعليمات:
79
+ 1. قم بتحميل صورة
80
+ 2. اختر النمط الفني المطلوب
81
+ 3. اضبط قوة التأثير
82
+ 4. انقر على "تحويل" وانتظر النتيجة
83
+ """)
84
+
85
+ with gr.Row():
86
+ with gr.Column():
87
+ input_image = gr.Image(
88
+ label="الصورة الأصلية",
89
+ type="pil",
90
+ height=400
91
+ )
92
+
93
+ style_dropdown = gr.Dropdown(
94
+ choices=list(ARTISTIC_STYLES.keys()),
95
+ value=list(ARTISTIC_STYLES.keys())[0],
96
+ label="اختر النمط الفني"
97
+ )
98
+
99
+ strength_slider = gr.Slider(
100
+ minimum=0.1,
101
+ maximum=0.9,
102
+ value=0.75,
103
+ step=0.05,
104
+ label="قوة التأثير"
105
+ )
106
+
107
+ convert_btn = gr.Button("تحويل 🎨", variant="primary")
108
+
109
+ with gr.Column():
110
+ output_image = gr.Image(
111
+ label="النتيجة",
112
+ height=400
113
+ )
114
+
115
+ with gr.Row():
116
+ gr.Markdown("""
117
+ ### 💡 نصائح:
118
+ - استخدم صوراً واضحة وذات جودة عالية
119
+ - جرب أنماطاً مختلفة لنفس الصورة
120
+ - اضبط قوة التأثير للحصول على النتيجة المطلوبة
121
+
122
+ ### ℹ️ معلومات:
123
+ - يستخدم هذا التطبيق تقنية Stable Diffusion
124
+ - جميع المعالجة تتم محلياً على جهازك
125
+ - الصور المدخلة لا يتم تخزينها أو مشاركتها
126
+ """)
127
+
128
+ # ربط الأحدا��
129
+ convert_btn.click(
130
+ style_transfer,
131
+ inputs=[input_image, style_dropdown, strength_slider],
132
+ outputs=output_image
133
+ )
134
+
135
+ # تشغيل التطبيق
136
+ iface.launch()
requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ torch>=2.0.0
2
+ torchvision>=0.15.0
3
+ gradio>=4.19.2
4
+ diffusers>=0.24.0
5
+ transformers>=4.36.0
6
+ pillow>=10.0.0
7
+ numpy>=1.24.0
8
+ accelerate>=0.25.0