TroglodyteDerivations commited on
Commit
ad82f82
·
verified ·
1 Parent(s): efadf4c

Upload 107 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +103 -0
  2. app.py +394 -0
  3. comfyui_workflow/Screenshot 2025-10-27 at 5.25.25 PM.png +3 -0
  4. images/flux_krea_00264_.png +3 -0
  5. images/flux_krea_00265_.png +3 -0
  6. images/flux_krea_00266_.png +3 -0
  7. images/flux_krea_00267_.png +3 -0
  8. images/flux_krea_00268_.png +3 -0
  9. images/flux_krea_00269_.png +3 -0
  10. images/flux_krea_00270_.png +3 -0
  11. images/flux_krea_00271_.png +3 -0
  12. images/flux_krea_00272_.png +3 -0
  13. images/flux_krea_00273_.png +3 -0
  14. images/flux_krea_00274_.png +3 -0
  15. images/flux_krea_00275_.png +3 -0
  16. images/flux_krea_00276_.png +3 -0
  17. images/flux_krea_00277_.png +3 -0
  18. images/flux_krea_00278_.png +3 -0
  19. images/flux_krea_00279_.png +3 -0
  20. images/flux_krea_00280_.png +3 -0
  21. images/flux_krea_00281_.png +3 -0
  22. images/flux_krea_00282_.png +3 -0
  23. images/flux_krea_00283_.png +3 -0
  24. images/flux_krea_00284_.png +3 -0
  25. images/flux_krea_00285_.png +3 -0
  26. images/flux_krea_00286_.png +3 -0
  27. images/flux_krea_00287_.png +3 -0
  28. images/flux_krea_00288_.png +3 -0
  29. images/flux_krea_00289_.png +3 -0
  30. images/flux_krea_00290_.png +3 -0
  31. images/flux_krea_00291_.png +3 -0
  32. images/flux_krea_00292_.png +3 -0
  33. images/flux_krea_00293_.png +3 -0
  34. images/flux_krea_00294_.png +3 -0
  35. images/flux_krea_00295_.png +3 -0
  36. images/flux_krea_00296_.png +3 -0
  37. images/flux_krea_00297_.png +3 -0
  38. images/flux_krea_00298_.png +3 -0
  39. images/flux_krea_00299_.png +3 -0
  40. images/flux_krea_00300_.png +3 -0
  41. images/flux_krea_00301_.png +3 -0
  42. images/flux_krea_00302_.png +3 -0
  43. images/flux_krea_00303_.png +3 -0
  44. images/flux_krea_00304_.png +3 -0
  45. images/flux_krea_00305_.png +3 -0
  46. images/flux_krea_00306_.png +3 -0
  47. images/flux_krea_00307_.png +3 -0
  48. images/flux_krea_00308_.png +3 -0
  49. images/flux_krea_00309_.png +3 -0
  50. images/flux_krea_00310_.png +3 -0
.gitattributes CHANGED
@@ -33,3 +33,106 @@ saved_model/**/* 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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
36
+ comfyui_workflow/Screenshot[[:space:]]2025-10-27[[:space:]]at[[:space:]]5.25.25 PM.png filter=lfs diff=lfs merge=lfs -text
37
+ images/flux_krea_00264_.png filter=lfs diff=lfs merge=lfs -text
38
+ images/flux_krea_00265_.png filter=lfs diff=lfs merge=lfs -text
39
+ images/flux_krea_00266_.png filter=lfs diff=lfs merge=lfs -text
40
+ images/flux_krea_00267_.png filter=lfs diff=lfs merge=lfs -text
41
+ images/flux_krea_00268_.png filter=lfs diff=lfs merge=lfs -text
42
+ images/flux_krea_00269_.png filter=lfs diff=lfs merge=lfs -text
43
+ images/flux_krea_00270_.png filter=lfs diff=lfs merge=lfs -text
44
+ images/flux_krea_00271_.png filter=lfs diff=lfs merge=lfs -text
45
+ images/flux_krea_00272_.png filter=lfs diff=lfs merge=lfs -text
46
+ images/flux_krea_00273_.png filter=lfs diff=lfs merge=lfs -text
47
+ images/flux_krea_00274_.png filter=lfs diff=lfs merge=lfs -text
48
+ images/flux_krea_00275_.png filter=lfs diff=lfs merge=lfs -text
49
+ images/flux_krea_00276_.png filter=lfs diff=lfs merge=lfs -text
50
+ images/flux_krea_00277_.png filter=lfs diff=lfs merge=lfs -text
51
+ images/flux_krea_00278_.png filter=lfs diff=lfs merge=lfs -text
52
+ images/flux_krea_00279_.png filter=lfs diff=lfs merge=lfs -text
53
+ images/flux_krea_00280_.png filter=lfs diff=lfs merge=lfs -text
54
+ images/flux_krea_00281_.png filter=lfs diff=lfs merge=lfs -text
55
+ images/flux_krea_00282_.png filter=lfs diff=lfs merge=lfs -text
56
+ images/flux_krea_00283_.png filter=lfs diff=lfs merge=lfs -text
57
+ images/flux_krea_00284_.png filter=lfs diff=lfs merge=lfs -text
58
+ images/flux_krea_00285_.png filter=lfs diff=lfs merge=lfs -text
59
+ images/flux_krea_00286_.png filter=lfs diff=lfs merge=lfs -text
60
+ images/flux_krea_00287_.png filter=lfs diff=lfs merge=lfs -text
61
+ images/flux_krea_00288_.png filter=lfs diff=lfs merge=lfs -text
62
+ images/flux_krea_00289_.png filter=lfs diff=lfs merge=lfs -text
63
+ images/flux_krea_00290_.png filter=lfs diff=lfs merge=lfs -text
64
+ images/flux_krea_00291_.png filter=lfs diff=lfs merge=lfs -text
65
+ images/flux_krea_00292_.png filter=lfs diff=lfs merge=lfs -text
66
+ images/flux_krea_00293_.png filter=lfs diff=lfs merge=lfs -text
67
+ images/flux_krea_00294_.png filter=lfs diff=lfs merge=lfs -text
68
+ images/flux_krea_00295_.png filter=lfs diff=lfs merge=lfs -text
69
+ images/flux_krea_00296_.png filter=lfs diff=lfs merge=lfs -text
70
+ images/flux_krea_00297_.png filter=lfs diff=lfs merge=lfs -text
71
+ images/flux_krea_00298_.png filter=lfs diff=lfs merge=lfs -text
72
+ images/flux_krea_00299_.png filter=lfs diff=lfs merge=lfs -text
73
+ images/flux_krea_00300_.png filter=lfs diff=lfs merge=lfs -text
74
+ images/flux_krea_00301_.png filter=lfs diff=lfs merge=lfs -text
75
+ images/flux_krea_00302_.png filter=lfs diff=lfs merge=lfs -text
76
+ images/flux_krea_00303_.png filter=lfs diff=lfs merge=lfs -text
77
+ images/flux_krea_00304_.png filter=lfs diff=lfs merge=lfs -text
78
+ images/flux_krea_00305_.png filter=lfs diff=lfs merge=lfs -text
79
+ images/flux_krea_00306_.png filter=lfs diff=lfs merge=lfs -text
80
+ images/flux_krea_00307_.png filter=lfs diff=lfs merge=lfs -text
81
+ images/flux_krea_00308_.png filter=lfs diff=lfs merge=lfs -text
82
+ images/flux_krea_00309_.png filter=lfs diff=lfs merge=lfs -text
83
+ images/flux_krea_00310_.png filter=lfs diff=lfs merge=lfs -text
84
+ images/flux_krea_00311_.png filter=lfs diff=lfs merge=lfs -text
85
+ images/flux_krea_00312_.png filter=lfs diff=lfs merge=lfs -text
86
+ images/flux_krea_00313_.png filter=lfs diff=lfs merge=lfs -text
87
+ images/flux_krea_00314_.png filter=lfs diff=lfs merge=lfs -text
88
+ images/flux_krea_00315_.png filter=lfs diff=lfs merge=lfs -text
89
+ images/flux_krea_00316_.png filter=lfs diff=lfs merge=lfs -text
90
+ images/flux_krea_00317_.png filter=lfs diff=lfs merge=lfs -text
91
+ images/flux_krea_00318_.png filter=lfs diff=lfs merge=lfs -text
92
+ images/flux_krea_00319_.png filter=lfs diff=lfs merge=lfs -text
93
+ images/flux_krea_00320_.png filter=lfs diff=lfs merge=lfs -text
94
+ images/flux_krea_00321_.png filter=lfs diff=lfs merge=lfs -text
95
+ images/flux_krea_00322_.png filter=lfs diff=lfs merge=lfs -text
96
+ images/flux_krea_00323_.png filter=lfs diff=lfs merge=lfs -text
97
+ images/flux_krea_00324_.png filter=lfs diff=lfs merge=lfs -text
98
+ images/flux_krea_00325_.png filter=lfs diff=lfs merge=lfs -text
99
+ images/flux_krea_00326_.png filter=lfs diff=lfs merge=lfs -text
100
+ images/flux_krea_00327_.png filter=lfs diff=lfs merge=lfs -text
101
+ images/flux_krea_00328_.png filter=lfs diff=lfs merge=lfs -text
102
+ images/flux_krea_00329_.png filter=lfs diff=lfs merge=lfs -text
103
+ images/flux_krea_00330_.png filter=lfs diff=lfs merge=lfs -text
104
+ images/flux_krea_00331_.png filter=lfs diff=lfs merge=lfs -text
105
+ images/flux_krea_00332_.png filter=lfs diff=lfs merge=lfs -text
106
+ images/flux_krea_00333_.png filter=lfs diff=lfs merge=lfs -text
107
+ images/flux_krea_00334_.png filter=lfs diff=lfs merge=lfs -text
108
+ images/flux_krea_00335_.png filter=lfs diff=lfs merge=lfs -text
109
+ images/flux_krea_00336_.png filter=lfs diff=lfs merge=lfs -text
110
+ images/flux_krea_00337_.png filter=lfs diff=lfs merge=lfs -text
111
+ images/flux_krea_00338_.png filter=lfs diff=lfs merge=lfs -text
112
+ images/flux_krea_00339_.png filter=lfs diff=lfs merge=lfs -text
113
+ images/flux_krea_00340_.png filter=lfs diff=lfs merge=lfs -text
114
+ images/flux_krea_00341_.png filter=lfs diff=lfs merge=lfs -text
115
+ images/flux_krea_00342_.png filter=lfs diff=lfs merge=lfs -text
116
+ images/flux_krea_00343_.png filter=lfs diff=lfs merge=lfs -text
117
+ images/flux_krea_00344_.png filter=lfs diff=lfs merge=lfs -text
118
+ images/flux_krea_00345_.png filter=lfs diff=lfs merge=lfs -text
119
+ images/flux_krea_00346_.png filter=lfs diff=lfs merge=lfs -text
120
+ images/flux_krea_00347_.png filter=lfs diff=lfs merge=lfs -text
121
+ images/flux_krea_00348_.png filter=lfs diff=lfs merge=lfs -text
122
+ images/flux_krea_00349_.png filter=lfs diff=lfs merge=lfs -text
123
+ images/flux_krea_00350_.png filter=lfs diff=lfs merge=lfs -text
124
+ images/flux_krea_00351_.png filter=lfs diff=lfs merge=lfs -text
125
+ images/flux_krea_00352_.png filter=lfs diff=lfs merge=lfs -text
126
+ images/flux_krea_00353_.png filter=lfs diff=lfs merge=lfs -text
127
+ images/flux_krea_00354_.png filter=lfs diff=lfs merge=lfs -text
128
+ images/flux_krea_00355_.png filter=lfs diff=lfs merge=lfs -text
129
+ images/flux_krea_00356_.png filter=lfs diff=lfs merge=lfs -text
130
+ images/flux_krea_00357_.png filter=lfs diff=lfs merge=lfs -text
131
+ images/flux_krea_00358_.png filter=lfs diff=lfs merge=lfs -text
132
+ images/flux_krea_00359_.png filter=lfs diff=lfs merge=lfs -text
133
+ images/flux_krea_00360_.png filter=lfs diff=lfs merge=lfs -text
134
+ images/flux_krea_00361_.png filter=lfs diff=lfs merge=lfs -text
135
+ images/flux_krea_00362_.png filter=lfs diff=lfs merge=lfs -text
136
+ images/flux_krea_00363_.png filter=lfs diff=lfs merge=lfs -text
137
+ images/flux_krea_00364_.png filter=lfs diff=lfs merge=lfs -text
138
+ prompt/Screenshot[[:space:]]2025-10-27[[:space:]]at[[:space:]]5.10.36 PM.png filter=lfs diff=lfs merge=lfs -text
app.py ADDED
@@ -0,0 +1,394 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import os
3
+ from pathlib import Path
4
+ import glob
5
+
6
+ # Define absolute paths - FIXED: Using current directory as base
7
+ BASE_DIR = os.path.abspath(".") # Current directory where the script is running
8
+ PROMPT_DIR = os.path.join(BASE_DIR, "prompt")
9
+ COMFYUI_WORKFLOW_DIR = os.path.join(BASE_DIR, "comfyui_workflow")
10
+ IMAGES_DIR = os.path.join(BASE_DIR, "images")
11
+ LOG_DIR = os.path.join(BASE_DIR, "log")
12
+
13
+ def find_prompt_image():
14
+ """Find the FLUX.1-Krea-dev prompt image"""
15
+ if os.path.exists(PROMPT_DIR):
16
+ for file in os.listdir(PROMPT_DIR):
17
+ if "Screenshot" in file and "5.10.36" in file:
18
+ return os.path.join(PROMPT_DIR, file)
19
+ elif "Screenshot" in file: # Fallback to any screenshot
20
+ return os.path.join(PROMPT_DIR, file)
21
+ return None
22
+
23
+ def find_comfyui_workflow():
24
+ """Find the ComfyUI workflow screenshot"""
25
+ if os.path.exists(COMFYUI_WORKFLOW_DIR):
26
+ for file in os.listdir(COMFYUI_WORKFLOW_DIR):
27
+ if "Screenshot" in file and "4.14.52" in file:
28
+ return os.path.join(COMFYUI_WORKFLOW_DIR, file)
29
+ elif "Screenshot" in file: # Fallback to any screenshot
30
+ return os.path.join(COMFYUI_WORKFLOW_DIR, file)
31
+ return None
32
+
33
+ def load_flux_images():
34
+ """Load all FLUX.1-Krea-dev Fangs Out collection images"""
35
+ images = []
36
+
37
+ if os.path.exists(IMAGES_DIR):
38
+ # Pattern to match flux_krea_*.png
39
+ pattern = os.path.join(IMAGES_DIR, "flux_krea_*.png")
40
+ all_flux_images = glob.glob(pattern)
41
+
42
+ # Sort images numerically
43
+ all_flux_images.sort()
44
+
45
+ # If we have specific range, filter them
46
+ filtered_images = []
47
+ for img_path in all_flux_images:
48
+ filename = os.path.basename(img_path)
49
+ try:
50
+ # Extract number from filename like "flux_krea_00264_.png"
51
+ number_part = filename.split('_')[2]
52
+ number = int(number_part)
53
+ if 264 <= number <= 364:
54
+ filtered_images.append(img_path)
55
+ except (IndexError, ValueError):
56
+ # If we can't parse the number, include the image
57
+ filtered_images.append(img_path)
58
+
59
+ images = filtered_images if filtered_images else all_flux_images
60
+
61
+ return images
62
+
63
+ def load_log_file():
64
+ """Load and display the complete ComfyUI log file"""
65
+ log_path = os.path.join(LOG_DIR, "comfyui_8000.log")
66
+
67
+ if os.path.exists(log_path):
68
+ try:
69
+ with open(log_path, 'r', encoding='utf-8') as file:
70
+ return file.read()
71
+ except UnicodeDecodeError:
72
+ try:
73
+ with open(log_path, 'r', encoding='latin-1') as file:
74
+ return file.read()
75
+ except Exception as e:
76
+ return f"Error reading log file: {str(e)}"
77
+ else:
78
+ # Try to find any log file
79
+ if os.path.exists(LOG_DIR):
80
+ for file in os.listdir(LOG_DIR):
81
+ if file.endswith('.log'):
82
+ log_file_path = os.path.join(LOG_DIR, file)
83
+ try:
84
+ with open(log_file_path, 'r', encoding='utf-8') as f:
85
+ return f.read()
86
+ except Exception as e:
87
+ return f"Error reading {file}: {str(e)}"
88
+
89
+ return "No log file found. Please ensure the log directory exists and contains log files."
90
+
91
+ def update_gallery():
92
+ """Update the gallery with current images"""
93
+ images = load_flux_images()
94
+ return images, len(images)
95
+
96
+ def check_files():
97
+ """Check which files are available"""
98
+ return {
99
+ "prompt_image": find_prompt_image() is not None,
100
+ "workflow_image": find_comfyui_workflow() is not None,
101
+ "flux_images": len(load_flux_images()),
102
+ "log_file": load_log_file() != "No log file found. Please ensure the log directory exists and contains log files."
103
+ }
104
+
105
+ def get_directory_structure():
106
+ """Get current directory structure for debugging"""
107
+ structure = {}
108
+ for item in os.listdir(BASE_DIR):
109
+ item_path = os.path.join(BASE_DIR, item)
110
+ if os.path.isdir(item_path):
111
+ structure[item] = os.listdir(item_path)
112
+ else:
113
+ structure[item] = "file"
114
+ return structure
115
+
116
+ # Create the Gradio app
117
+ with gr.Blocks(
118
+ theme=gr.themes.Soft(
119
+ primary_hue="blue",
120
+ secondary_hue="slate"
121
+ ),
122
+ title="FLUX.1 & ComfyUI Image Generation Showcase",
123
+ css="""
124
+ .gallery-container {
125
+ border: 1px solid #e2e8f0;
126
+ border-radius: 8px;
127
+ padding: 10px;
128
+ background: white;
129
+ }
130
+ """
131
+ ) as demo:
132
+
133
+ gr.Markdown(
134
+ """
135
+ # 🎨 FLUX.1 & ComfyUI Image Generation Showcase
136
+
137
+ Welcome to the ultimate showcase of FLUX.1-Krea-dev and ComfyUI capabilities!
138
+ """
139
+ )
140
+
141
+ # Debug information
142
+ with gr.Accordion("🔧 Debug Information", open=False):
143
+ with gr.Row():
144
+ with gr.Column():
145
+ directory_structure = gr.JSON(
146
+ label="Current Directory Structure",
147
+ value=get_directory_structure
148
+ )
149
+ with gr.Column():
150
+ file_status = gr.JSON(
151
+ label="File Status",
152
+ value=check_files
153
+ )
154
+
155
+ # File status indicator
156
+ with gr.Row():
157
+ with gr.Column():
158
+ status_display = gr.HTML(
159
+ label="Load Status",
160
+ value=lambda: f"""
161
+ <div style="padding: 10px; border-radius: 5px; background: #f8f9fa;">
162
+ <h4>📁 Load Status:</h4>
163
+ <p>📝 Prompt Image: {'✅ Loaded' if find_prompt_image() else '❌ Missing'}</p>
164
+ <p>⚙️ Workflow Image: {'✅ Loaded' if find_comfyui_workflow() else '❌ Missing'}</p>
165
+ <p>🖼️ Flux Images: {'✅ ' + str(len(load_flux_images())) + ' loaded' if load_flux_images() else '❌ Missing'}</p>
166
+ <p>📊 Log File: {'✅ Loaded' if check_files()['log_file'] else '❌ Missing'}</p>
167
+ </div>
168
+ """
169
+ )
170
+
171
+ with gr.Tabs() as tabs:
172
+ # Tab 1: FLUX.1-Krea-dev Prompt
173
+ with gr.TabItem("🚀 FLUX.1-Krea-dev Prompt"):
174
+ with gr.Row():
175
+ with gr.Column():
176
+ gr.Markdown(
177
+ """
178
+ ## DeepSeek's FLUX.1-Krea-dev Prompt
179
+
180
+ This showcases the powerful prompt engineering by DeepSeek that generates
181
+ stunning visual outputs using the FLUX.1 model.
182
+ """
183
+ )
184
+ gr.Markdown(
185
+ """
186
+ **Expected file:** `prompt/Screenshot 2025-10-27 at 5.10.36 PM.png`
187
+ """
188
+ )
189
+ with gr.Column():
190
+ prompt_image = gr.Image(
191
+ value=find_prompt_image(),
192
+ label="FLUX.1-Krea-dev Prompt Screenshot",
193
+ height=500,
194
+ show_download_button=True,
195
+ show_fullscreen_button=True
196
+ )
197
+ with gr.Row():
198
+ refresh_prompt = gr.Button("🔄 Refresh", variant="secondary")
199
+ upload_prompt = gr.UploadButton("📁 Upload Prompt Image", file_types=[".png", ".jpg", ".jpeg"])
200
+
201
+ # Tab 2: ComfyUI Workflow
202
+ with gr.TabItem("⚙️ ComfyUI Workflow"):
203
+ with gr.Row():
204
+ with gr.Column():
205
+ gr.Markdown(
206
+ """
207
+ ## ComfyUI Fangs Out Concept
208
+
209
+ Discover the intricate workflow behind the "Fangs Out" concept,
210
+ showcasing ComfyUI's node-based image generation process.
211
+ """
212
+ )
213
+ gr.Markdown(
214
+ """
215
+ **Expected file:** `comfyui_workflow/Screenshot 2025-10-27 at 4.14.52 PM.png`
216
+ """
217
+ )
218
+ with gr.Column():
219
+ workflow_image = gr.Image(
220
+ value=find_comfyui_workflow(),
221
+ label="ComfyUI Workflow Screenshot",
222
+ height=500,
223
+ show_download_button=True,
224
+ show_fullscreen_button=True
225
+ )
226
+ with gr.Row():
227
+ refresh_workflow = gr.Button("🔄 Refresh", variant="secondary")
228
+ upload_workflow = gr.UploadButton("📁 Upload Workflow Image", file_types=[".png", ".jpg", ".jpeg"])
229
+
230
+ # Tab 3: FLUX.1 Image Gallery
231
+ with gr.TabItem("🖼️ FLUX.1 Image Gallery"):
232
+ with gr.Row():
233
+ gr.Markdown(
234
+ """
235
+ ## FLUX.1-Krea-dev Fangs Out Collection
236
+
237
+ Browse through the complete collection of generated images from
238
+ `flux_krea_00264_.png` to `flux_krea_00364_.png`
239
+ """
240
+ )
241
+
242
+ with gr.Row():
243
+ gallery = gr.Gallery(
244
+ value=load_flux_images(),
245
+ label="FLUX.1-Krea-dev Fangs Out Collection",
246
+ columns=4,
247
+ rows=3,
248
+ height="auto",
249
+ object_fit="contain",
250
+ show_download_button=True,
251
+ show_fullscreen_button=True
252
+ )
253
+
254
+ with gr.Row():
255
+ refresh_gallery = gr.Button("🔄 Refresh Gallery", variant="primary")
256
+ image_count = gr.Number(
257
+ value=len(load_flux_images()),
258
+ label="Images Loaded",
259
+ interactive=False
260
+ )
261
+ upload_images = gr.UploadButton("📁 Upload Images", file_types=[".png", ".jpg", ".jpeg"], file_count="multiple")
262
+
263
+ # Tab 4: ComfyUI Logs
264
+ with gr.TabItem("📊 ComfyUI Logs"):
265
+ with gr.Row():
266
+ with gr.Column():
267
+ gr.Markdown(
268
+ """
269
+ ## ComfyUI Execution Log
270
+
271
+ Explore the complete execution log from ComfyUI.
272
+ """
273
+ )
274
+ gr.Markdown(
275
+ """
276
+ **Expected file:** `log/comfyui_8000.log`
277
+ """
278
+ )
279
+ with gr.Row():
280
+ refresh_logs = gr.Button("🔄 Refresh Logs", variant="primary")
281
+ clear_logs = gr.Button("🗑️ Clear Display", variant="secondary")
282
+
283
+ with gr.Column():
284
+ log_display = gr.Textbox(
285
+ value=load_log_file(),
286
+ label="ComfyUI Log File",
287
+ lines=20,
288
+ max_lines=50,
289
+ show_copy_button=True,
290
+ autoscroll=False
291
+ )
292
+
293
+ # Refresh functionality
294
+ refresh_prompt.click(
295
+ fn=find_prompt_image,
296
+ outputs=prompt_image
297
+ )
298
+
299
+ refresh_workflow.click(
300
+ fn=find_comfyui_workflow,
301
+ outputs=workflow_image
302
+ )
303
+
304
+ refresh_gallery.click(
305
+ fn=update_gallery,
306
+ outputs=[gallery, image_count]
307
+ )
308
+
309
+ refresh_logs.click(
310
+ fn=load_log_file,
311
+ outputs=log_display
312
+ )
313
+
314
+ clear_logs.click(
315
+ fn=lambda: "",
316
+ outputs=log_display
317
+ )
318
+
319
+ # Upload handlers
320
+ def handle_prompt_upload(file):
321
+ if file is not None:
322
+ return file.name
323
+ return find_prompt_image()
324
+
325
+ def handle_workflow_upload(file):
326
+ if file is not None:
327
+ return file.name
328
+ return find_comfyui_workflow()
329
+
330
+ upload_prompt.upload(
331
+ fn=handle_prompt_upload,
332
+ inputs=upload_prompt,
333
+ outputs=prompt_image
334
+ )
335
+
336
+ upload_workflow.upload(
337
+ fn=handle_workflow_upload,
338
+ inputs=upload_workflow,
339
+ outputs=workflow_image
340
+ )
341
+
342
+ gr.Markdown(
343
+ """
344
+ ---
345
+ *Showcase created with ❤️ featuring FLUX.1-Krea-dev and ComfyUI*
346
+
347
+ **Expected Directory Structure:**
348
+ ```
349
+ fangs_out_gradio/
350
+ ├── app.py
351
+ ├── prompt/
352
+ │ └── Screenshot 2025-10-27 at 5.10.36 PM.png
353
+ ├── comfyui_workflow/
354
+ │ └── Screenshot 2025-10-27 at 4.14.52 PM.png
355
+ ├── images/
356
+ │ ├── flux_krea_00264_.png
357
+ │ ├── ... (images 264-364)
358
+ │ └── flux_krea_00364_.png
359
+ └── log/
360
+ └── comfyui_8000.log
361
+ ```
362
+ """
363
+ )
364
+
365
+ if __name__ == "__main__":
366
+ # Print detailed debug information
367
+ print("=" * 50)
368
+ print("🔍 DEBUG INFORMATION")
369
+ print("=" * 50)
370
+ print(f"Current working directory: {os.getcwd()}")
371
+ print(f"Base directory: {BASE_DIR}")
372
+ print(f"Script location: {os.path.abspath(__file__)}")
373
+
374
+ print("\n📁 Directory contents:")
375
+ for item in os.listdir(BASE_DIR):
376
+ item_path = os.path.join(BASE_DIR, item)
377
+ if os.path.isdir(item_path):
378
+ print(f" 📂 {item}/: {os.listdir(item_path)}")
379
+ else:
380
+ print(f" 📄 {item}")
381
+
382
+ print("\n✅ File status:")
383
+ status = check_files()
384
+ for key, value in status.items():
385
+ print(f" {key}: {value}")
386
+
387
+ print("\n🚀 Starting Gradio app...")
388
+ demo.launch(
389
+ server_name="0.0.0.0",
390
+ server_port=7860,
391
+ share=True,
392
+ show_error=True,
393
+ inbrowser=True
394
+ )
comfyui_workflow/Screenshot 2025-10-27 at 5.25.25 PM.png ADDED

Git LFS Details

  • SHA256: e0420e829480bb0299353030c6c1a2f23086c49878be58685443ab92d64610a0
  • Pointer size: 132 Bytes
  • Size of remote file: 2.78 MB
images/flux_krea_00264_.png ADDED

Git LFS Details

  • SHA256: 671ee78cbb539add4a2a718c7cb8828dea0982ae4d6a82d24c3c5b8240dc86c2
  • Pointer size: 132 Bytes
  • Size of remote file: 1.13 MB
images/flux_krea_00265_.png ADDED

Git LFS Details

  • SHA256: 8d505539264f337fb86ea1a9351979bee7e3ac1af363642387b9bc73cceb5c0c
  • Pointer size: 132 Bytes
  • Size of remote file: 1.07 MB
images/flux_krea_00266_.png ADDED

Git LFS Details

  • SHA256: d1b9819900f12139a6d76f6b273dca088e4a150492a3fcd4bcabc684a6b87633
  • Pointer size: 132 Bytes
  • Size of remote file: 1.15 MB
images/flux_krea_00267_.png ADDED

Git LFS Details

  • SHA256: 03167a5ef3129d5c3cfc02b0279da76c841d214cb58579691bd2f52b3de7f5d7
  • Pointer size: 132 Bytes
  • Size of remote file: 1.1 MB
images/flux_krea_00268_.png ADDED

Git LFS Details

  • SHA256: e926039438bf6951c3405a8bde5ad8ac9e741ee87a3864c5a1f8cfd54cea830a
  • Pointer size: 132 Bytes
  • Size of remote file: 1.07 MB
images/flux_krea_00269_.png ADDED

Git LFS Details

  • SHA256: 865cbbd0011be75b402d7d2c8c770b98d48dafba4041a96550ff8cd89420209c
  • Pointer size: 132 Bytes
  • Size of remote file: 1.13 MB
images/flux_krea_00270_.png ADDED

Git LFS Details

  • SHA256: 5f1400c9510bd08e01d62fb0321e2a1fbe5f5b3777010f4d4dd73f8fe69a27f1
  • Pointer size: 132 Bytes
  • Size of remote file: 1.04 MB
images/flux_krea_00271_.png ADDED

Git LFS Details

  • SHA256: 5d1a4337acadac4b5621170caf5de6172aac98d03c9b5ed66a9a41767bb3edee
  • Pointer size: 132 Bytes
  • Size of remote file: 1.21 MB
images/flux_krea_00272_.png ADDED

Git LFS Details

  • SHA256: a6767e22050f8dfeb5f2585f8c28a3b8c0e7c6391c11af4c3ca084e3c2e57e96
  • Pointer size: 132 Bytes
  • Size of remote file: 1.11 MB
images/flux_krea_00273_.png ADDED

Git LFS Details

  • SHA256: d2a67e1f796021e4294f9f1c868ce3f47d2b113b75e5dfaa9dadd879638d2153
  • Pointer size: 132 Bytes
  • Size of remote file: 1.07 MB
images/flux_krea_00274_.png ADDED

Git LFS Details

  • SHA256: e79a5ed8ffbdff40b02d53764d03370f330c02d3f00296012b18ffa2efdb591f
  • Pointer size: 132 Bytes
  • Size of remote file: 1.07 MB
images/flux_krea_00275_.png ADDED

Git LFS Details

  • SHA256: 5cd61c339f7d6d23477752993754926c92e640916318c1e4d15b3124fd8c0c0f
  • Pointer size: 132 Bytes
  • Size of remote file: 1.07 MB
images/flux_krea_00276_.png ADDED

Git LFS Details

  • SHA256: da6ea432989f34071d5908e685fd49fe64b27503f933c8b03de351502bbe2f41
  • Pointer size: 132 Bytes
  • Size of remote file: 1.08 MB
images/flux_krea_00277_.png ADDED

Git LFS Details

  • SHA256: 24ac5808d3d6320590a50619325586cb8e04f9ea9dc08030528ed89e06081b46
  • Pointer size: 132 Bytes
  • Size of remote file: 1.13 MB
images/flux_krea_00278_.png ADDED

Git LFS Details

  • SHA256: f11f78450fa224b047a514b9415f0fee5fff43578f5df1beee247737fd8be380
  • Pointer size: 132 Bytes
  • Size of remote file: 1.09 MB
images/flux_krea_00279_.png ADDED

Git LFS Details

  • SHA256: 4874979d2ad054af586037523bebda3d388f76a415e8b1746fac018e826996cd
  • Pointer size: 132 Bytes
  • Size of remote file: 1.1 MB
images/flux_krea_00280_.png ADDED

Git LFS Details

  • SHA256: c9c6f611c3e2b488f59712a2e34f4ca7b00bc41595395f74c8ac861aedfc95bc
  • Pointer size: 132 Bytes
  • Size of remote file: 1.18 MB
images/flux_krea_00281_.png ADDED

Git LFS Details

  • SHA256: 75052a9d6bf9aa36f1512edc2126552c475205e328cdd5f8969843f72c5afdb0
  • Pointer size: 132 Bytes
  • Size of remote file: 1.12 MB
images/flux_krea_00282_.png ADDED

Git LFS Details

  • SHA256: 844c12279dfb0648c34ea921b5933d6119567fde30215004be074ffce9642ccf
  • Pointer size: 132 Bytes
  • Size of remote file: 1.2 MB
images/flux_krea_00283_.png ADDED

Git LFS Details

  • SHA256: b55467143cc6932d03247f0675e0af977c79f44fa730d80637dc5fcbbba6a580
  • Pointer size: 132 Bytes
  • Size of remote file: 1.09 MB
images/flux_krea_00284_.png ADDED

Git LFS Details

  • SHA256: 7bfefd95a4ff18eefe63f5126afb2ed1ddb55e930384469a2ac5353cea8806c9
  • Pointer size: 132 Bytes
  • Size of remote file: 1.07 MB
images/flux_krea_00285_.png ADDED

Git LFS Details

  • SHA256: bc2bcca83b5b34f51d883a3edb2c292270d7db815fe86dd3f6f98a0e4b432e46
  • Pointer size: 132 Bytes
  • Size of remote file: 1.17 MB
images/flux_krea_00286_.png ADDED

Git LFS Details

  • SHA256: 603ce04cc8650f4988f93082643b36fcc8b7aaf81947b5b682da0f8976a2e2a7
  • Pointer size: 132 Bytes
  • Size of remote file: 1.21 MB
images/flux_krea_00287_.png ADDED

Git LFS Details

  • SHA256: a59f79686292111a3a64dfa40f118bcb8684d79c4aefd8fa21b36db87fffd1b5
  • Pointer size: 132 Bytes
  • Size of remote file: 1.14 MB
images/flux_krea_00288_.png ADDED

Git LFS Details

  • SHA256: a91b79f7793ec5a57a2bc36330418505ca562a09b34606e56f95e657b00334e3
  • Pointer size: 132 Bytes
  • Size of remote file: 1.15 MB
images/flux_krea_00289_.png ADDED

Git LFS Details

  • SHA256: 3d0fff4126d93689fe2e8bfb948df0bd00bb8fea2a06e99250fc24b1d300b704
  • Pointer size: 132 Bytes
  • Size of remote file: 1.04 MB
images/flux_krea_00290_.png ADDED

Git LFS Details

  • SHA256: 9905a3fcb50e51f98a00ef225df1075243c4d4765a14bc0caac9dd65e13124df
  • Pointer size: 132 Bytes
  • Size of remote file: 1.09 MB
images/flux_krea_00291_.png ADDED

Git LFS Details

  • SHA256: c03564fd42ca58e02ce5a23cb6936dd395955b73f85191910487f98f08aa6bb3
  • Pointer size: 132 Bytes
  • Size of remote file: 1.08 MB
images/flux_krea_00292_.png ADDED

Git LFS Details

  • SHA256: c54701883e28732a82f96a9c09b311fabdd0f1d904ed72c2ecd265743be66f6c
  • Pointer size: 132 Bytes
  • Size of remote file: 1.02 MB
images/flux_krea_00293_.png ADDED

Git LFS Details

  • SHA256: 1f6a022b4b2e96801bf955fb9201c1af9b002f5aaf68f6d804e45c5b3b029537
  • Pointer size: 132 Bytes
  • Size of remote file: 1.07 MB
images/flux_krea_00294_.png ADDED

Git LFS Details

  • SHA256: ceb8327e211d0eb726208158eb028f6117677140416dd82f40d8585e8404e181
  • Pointer size: 132 Bytes
  • Size of remote file: 1.11 MB
images/flux_krea_00295_.png ADDED

Git LFS Details

  • SHA256: 9106fc52e6f73e6deba15e332ead4a4234aa13dbaafc0176176d2e2628e2941d
  • Pointer size: 132 Bytes
  • Size of remote file: 1.13 MB
images/flux_krea_00296_.png ADDED

Git LFS Details

  • SHA256: 0cb7318cfe8c785b1959ba030ae0e3ab1f27008e8d81f3a1a1066e334fd79676
  • Pointer size: 132 Bytes
  • Size of remote file: 1.11 MB
images/flux_krea_00297_.png ADDED

Git LFS Details

  • SHA256: c5045edb459ff75c84bb65d086845643fea92938f993871ab8cc7c1dd34ed152
  • Pointer size: 132 Bytes
  • Size of remote file: 1.05 MB
images/flux_krea_00298_.png ADDED

Git LFS Details

  • SHA256: 675dd22673773accc2f906fd1c134a87c0ca9299a35fe62ecbf6ca9bbc1f6aa8
  • Pointer size: 132 Bytes
  • Size of remote file: 1.05 MB
images/flux_krea_00299_.png ADDED

Git LFS Details

  • SHA256: 2495dfddabd01c903f6f316c389a51da73676e07a15d96193226f12082421a5a
  • Pointer size: 132 Bytes
  • Size of remote file: 1.13 MB
images/flux_krea_00300_.png ADDED

Git LFS Details

  • SHA256: a2450cffb353a5cb8c9d4acfcd108d7bd0e8d6f68e876ef5639a3958875dfb14
  • Pointer size: 132 Bytes
  • Size of remote file: 1.06 MB
images/flux_krea_00301_.png ADDED

Git LFS Details

  • SHA256: 8070aba47cf6cdb647ff8075dcc52d6e05ff8461adeea4df81ab9d101f3a017f
  • Pointer size: 132 Bytes
  • Size of remote file: 1.08 MB
images/flux_krea_00302_.png ADDED

Git LFS Details

  • SHA256: f71b01364855621989306bcd8a0cad63ab6bbea9ee964426342609763095eeb5
  • Pointer size: 132 Bytes
  • Size of remote file: 1.04 MB
images/flux_krea_00303_.png ADDED

Git LFS Details

  • SHA256: 7e613d96d5b6941e2e9b7d934f27d451b123ac00d5bd54295c4fec6795a8e848
  • Pointer size: 132 Bytes
  • Size of remote file: 1.07 MB
images/flux_krea_00304_.png ADDED

Git LFS Details

  • SHA256: 2c28e4fd5d43f00db4c14379e4a248e3169f85a32967eac518d7982e08d6ccc2
  • Pointer size: 132 Bytes
  • Size of remote file: 1.08 MB
images/flux_krea_00305_.png ADDED

Git LFS Details

  • SHA256: 32a34e231c9d81cdc69aa366b3c4db37f60655ade9c1a6385b077bce30c543ad
  • Pointer size: 132 Bytes
  • Size of remote file: 1.17 MB
images/flux_krea_00306_.png ADDED

Git LFS Details

  • SHA256: c541a08cf14995667fbefb92ec64880e473eddc0278805a3ebdfe2e3ece0bb4a
  • Pointer size: 132 Bytes
  • Size of remote file: 1.17 MB
images/flux_krea_00307_.png ADDED

Git LFS Details

  • SHA256: 78073a0a26ae70869ac3aff6e1eeca64b12d28acf9e0b2714343d5714bd69e10
  • Pointer size: 132 Bytes
  • Size of remote file: 1.17 MB
images/flux_krea_00308_.png ADDED

Git LFS Details

  • SHA256: 9fb2fe35e3711fe25c9134af1b5b0503bf443d0cde7dd9863f7ef1296a6046e5
  • Pointer size: 132 Bytes
  • Size of remote file: 1.14 MB
images/flux_krea_00309_.png ADDED

Git LFS Details

  • SHA256: 07847c9ef63453d671ee3ef05b2331038457af478948b73e9e5585240d465903
  • Pointer size: 132 Bytes
  • Size of remote file: 1.18 MB
images/flux_krea_00310_.png ADDED

Git LFS Details

  • SHA256: 5670f4aeaeffc408b06af2366d77c3735715047f183fd9a82f0896be1066b071
  • Pointer size: 132 Bytes
  • Size of remote file: 1.1 MB