SubashSK777 commited on
Commit
a56dd86
·
verified ·
1 Parent(s): 67d6fae

Upload 6 files

Browse files
Files changed (6) hide show
  1. .gitattributes +35 -35
  2. README.md +15 -12
  3. app.py +133 -0
  4. config.py +21 -0
  5. models.py +60 -0
  6. requirements.txt +4 -0
.gitattributes CHANGED
@@ -1,35 +1,35 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,12 +1,15 @@
1
- ---
2
- title: Boss-Img Generator-v2
3
- emoji: 📉
4
- colorFrom: yellow
5
- colorTo: gray
6
- sdk: gradio
7
- sdk_version: 5.49.0
8
- app_file: app.py
9
- pinned: false
10
- ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
1
+ ---
2
+ title: HunyuanImage-3.0
3
+ emoji: 📊
4
+ colorFrom: purple
5
+ colorTo: yellow
6
+ sdk: gradio
7
+ sdk_version: 5.47.2
8
+ app_file: app.py
9
+ pinned: false
10
+ tags:
11
+ - anycoder
12
+ hf_oauth: true
13
+ ---
14
+
15
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from models import generate_image, MODEL_ID
3
+ from config import APPLE_TENCENT_THEME
4
+
5
+ def generate_image_with_auth(prompt: str, profile: gr.OAuthProfile | None):
6
+ if profile is None:
7
+ raise gr.Error("⚠️ Please Sign in with Hugging Face to use this generator.")
8
+ return generate_image(prompt)
9
+
10
+ def create_ui():
11
+ with gr.Blocks(
12
+ title="Boss Img Generator v2",
13
+ theme=APPLE_TENCENT_THEME,
14
+ css="""
15
+ body {
16
+ background: linear-gradient(120deg, #1e1e2f, #2d2d44);
17
+ color: #fff;
18
+ font-family: 'Inter', sans-serif;
19
+ }
20
+ h1, h2, h3, p {
21
+ color: white !important;
22
+ }
23
+ .gr-button {
24
+ font-weight: 700;
25
+ background: linear-gradient(90deg, #ff4d4d, #ff884d);
26
+ border: none;
27
+ transition: all 0.3s ease;
28
+ }
29
+ .gr-button:hover {
30
+ transform: scale(1.05);
31
+ box-shadow: 0 0 15px rgba(255, 100, 50, 0.5);
32
+ }
33
+ .gr-textbox textarea {
34
+ background-color: rgba(255,255,255,0.1) !important;
35
+ color: white !important;
36
+ border-radius: 10px !important;
37
+ }
38
+ .gr-image {
39
+ border-radius: 12px;
40
+ box-shadow: 0 0 20px rgba(255,255,255,0.1);
41
+ overflow: hidden;
42
+ }
43
+ .title-card {
44
+ background: rgba(255, 255, 255, 0.05);
45
+ backdrop-filter: blur(10px);
46
+ border-radius: 20px;
47
+ padding: 20px;
48
+ box-shadow: 0 0 25px rgba(255,255,255,0.05);
49
+ text-align: center;
50
+ }
51
+ footer {
52
+ text-align: center;
53
+ margin-top: 30px;
54
+ color: #aaa;
55
+ }
56
+ """
57
+ ) as demo:
58
+
59
+ gr.HTML("""
60
+ <div class='title-card'>
61
+ <h1>🔥 Tencent Boss Image Generator</h1>
62
+ <p>Generate stunning AI visuals using Tencent’s advanced FAL AI model.</p>
63
+ <p style="color: gold;">⚠️ Sign in with Hugging Face to unlock free access.</p>
64
+ </div>
65
+ <br>
66
+ """)
67
+
68
+ gr.LoginButton()
69
+
70
+ with gr.Row():
71
+ with gr.Column(scale=1):
72
+ prompt_input = gr.Textbox(
73
+ label="Your Imagination 💭",
74
+ placeholder="Describe what you want (e.g., 'A cyberpunk samurai under neon rain').",
75
+ lines=4
76
+ )
77
+ generate_btn = gr.Button("⚡ Generate Image", variant="primary", size="lg")
78
+
79
+ with gr.Column(scale=1):
80
+ output_image = gr.Image(
81
+ label="🎨 Result",
82
+ height=512,
83
+ width=512,
84
+ interactive=False,
85
+ show_download_button=True
86
+ )
87
+
88
+ generate_btn.click(
89
+ fn=generate_image_with_auth,
90
+ inputs=[prompt_input],
91
+ outputs=[output_image],
92
+ queue=False,
93
+ api_name=False,
94
+ show_api=False,
95
+ )
96
+
97
+ gr.HTML("""
98
+ <div style='text-align:center; margin-top:30px;'>
99
+ <h3>✨ Try these prompts:</h3>
100
+ </div>
101
+ """)
102
+
103
+ gr.Examples(
104
+ examples=[
105
+ "A futuristic city skyline at sunset with flying cars and neon lights",
106
+ "A majestic lion wearing a royal crown made of fire",
107
+ "A cinematic portrait of a samurai standing in rain, lit by neon signs",
108
+ "A realistic photo of a baby dragon sitting in a teacup"
109
+ ],
110
+ inputs=prompt_input,
111
+ outputs=output_image,
112
+ fn=generate_image,
113
+ cache_examples=False,
114
+ api_name=False,
115
+ show_api=False,
116
+ )
117
+
118
+ gr.HTML("""
119
+ <footer>
120
+ <p>⚡ Built with ❤️ by Subash | Powered by Tencent & Hugging Face</p>
121
+ </footer>
122
+ """)
123
+
124
+ return demo
125
+
126
+
127
+ if __name__ == "__main__":
128
+ app = create_ui()
129
+ app.launch(
130
+ show_api=False,
131
+ enable_monitoring=False,
132
+ quiet=True,
133
+ )
config.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+
3
+ # Define a custom theme based on Soft theme for a modern/Apple aesthetic
4
+ # Using indigo for a deep tech blue (Tencent blue approximation)
5
+ APPLE_TENCENT_THEME = gr.themes.Soft(
6
+ primary_hue=gr.themes.colors.indigo, # FIX: Corrected capitalization to lowercase 'indigo'
7
+ secondary_hue=gr.themes.colors.gray,
8
+ neutral_hue=gr.themes.colors.neutral,
9
+ spacing_size=gr.themes.sizes.spacing_lg,
10
+ radius_size=gr.themes.sizes.radius_lg,
11
+ text_size=gr.themes.sizes.text_md,
12
+ ).set(
13
+ # Custom tweaks for a cleaner, high-contrast look (Apple/Modern aesthetic)
14
+ body_background_fill="#F9F9F9",
15
+ background_fill_primary="#FFFFFF",
16
+ background_fill_secondary="#F0F0F0",
17
+ shadow_drop="0 1px 3px 0 rgba(0, 0, 0, 0.05), 0 1px 2px 0 rgba(0, 0, 0, 0.02)",
18
+ shadow_drop_lg="0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",
19
+ button_primary_background_fill="*primary_500",
20
+ button_primary_background_fill_hover="*primary_600",
21
+ )
models.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from huggingface_hub import InferenceClient
3
+ from PIL import Image
4
+ import gradio as gr
5
+ from typing import Union
6
+
7
+ # Load environment variables (useful for local testing)
8
+ from dotenv import load_dotenv
9
+ load_dotenv()
10
+
11
+ # --- Model Configuration ---
12
+ MODEL_ID = "tencent/HunyuanImage-3.0"
13
+ PROVIDER = "fal-ai"
14
+ BILL_TO = "huggingface"
15
+
16
+ # Initialize client
17
+ HF_TOKEN = os.environ.get("HF_TOKEN")
18
+ CLIENT: Union[InferenceClient, None] = None
19
+
20
+ if HF_TOKEN:
21
+ try:
22
+ # Note: FAL AI provider uses HF_TOKEN as its api_key
23
+ CLIENT = InferenceClient(
24
+ provider=PROVIDER,
25
+ api_key=HF_TOKEN,
26
+ bill_to=BILL_TO,
27
+ )
28
+ print(f"✅ InferenceClient initialized for {MODEL_ID} via {PROVIDER}")
29
+ except Exception as e:
30
+ print(f"❌ Error initializing InferenceClient: {e}")
31
+ CLIENT = None
32
+ else:
33
+ print("⚠️ HF_TOKEN environment variable not set. Client will be unavailable.")
34
+
35
+ def generate_image(prompt: str) -> Image.Image:
36
+ """
37
+ Generates an image from a text prompt using the Hugging Face Inference Client.
38
+ """
39
+ if not CLIENT:
40
+ raise gr.Error("API client not available. Please ensure HF_TOKEN is set correctly.")
41
+
42
+ if not prompt:
43
+ raise gr.Error("Please provide a prompt.")
44
+
45
+ print(f"Generating image for prompt: '{prompt[:50]}...'")
46
+
47
+ try:
48
+ # The output is a PIL.Image object directly
49
+ image = CLIENT.text_to_image(
50
+ prompt,
51
+ model=MODEL_ID,
52
+ )
53
+ return image
54
+ except Exception as e:
55
+ print(f"Error during image generation: {e}")
56
+ if "Authentication failed" in str(e):
57
+ raise gr.Error("Authentication failed. Check your HF_TOKEN.")
58
+ if "limit reached" in str(e) or "quota" in str(e):
59
+ raise gr.Error("Rate limit or quota reached for this API endpoint.")
60
+ raise gr.Error(f"Generation failed: {str(e)}")
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ gradio
2
+ huggingface-hub
3
+ Pillow
4
+ python-dotenv