SLSLK commited on
Commit
7f3d2e1
·
verified ·
1 Parent(s): a20ef6e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -72
app.py CHANGED
@@ -16,12 +16,12 @@ client_process = Client("Galaxydude2/aaaaa")
16
  if "gallery" not in st.session_state:
17
  st.session_state.gallery = []
18
 
19
- if "edit_mode" not in st.session_state:
20
- st.session_state.edit_mode = False
21
-
22
  if "selected_image" not in st.session_state:
23
  st.session_state.selected_image = None
24
 
 
 
 
25
  # ---------------------------
26
  # Funktionen
27
  # ---------------------------
@@ -45,11 +45,17 @@ def generate_image(prompt):
45
 
46
  def edit_image(input_image, prompt):
47
  try:
 
 
 
 
 
48
  result = client_main.predict(
49
- input_image=handle_file(input_image),
50
  prompt=prompt,
51
  api_name="/edit_image_interface"
52
  )
 
53
  return extract_url(result[0])
54
  except Exception as e:
55
  st.error(e)
@@ -89,19 +95,21 @@ def run_with_progress(func, *args):
89
  st.set_page_config(page_title="Omni Image Studio", layout="wide")
90
 
91
  st.title("🎨 Omni Image Studio")
92
- st.write("Generieren • Bearbeiten • Verarbeiten • Galerie")
93
 
94
- tab1, tab2, tab3, tab4 = st.tabs([
95
- "🖼️ Generieren",
96
- "✨ Bearbeiten",
97
- "🧪 Process",
98
- "📚 Galerie"
99
- ])
 
 
 
100
 
101
  # ---------------------------
102
- # TAB 1: GENERATE
103
  # ---------------------------
104
- with tab1:
105
  prompt = st.text_area("Bildbeschreibung")
106
 
107
  if st.button("Generieren"):
@@ -131,18 +139,33 @@ with tab1:
131
  })
132
 
133
  # ---------------------------
134
- # TAB 2: EDIT
135
  # ---------------------------
136
- with tab2:
137
- uploaded = st.file_uploader("Bild hochladen", type=["png", "jpg", "jpeg"])
 
 
 
 
 
 
 
 
 
 
138
  edit_prompt = st.text_area("Bearbeitung")
139
 
140
  if st.button("Bearbeiten"):
141
- if uploaded and edit_prompt:
142
  status = st.empty()
143
  progress = st.progress(0)
144
 
145
- job = run_with_progress(edit_image, uploaded, edit_prompt)
 
 
 
 
 
146
 
147
  percent = 0
148
  while not job["done"]:
@@ -154,20 +177,20 @@ with tab2:
154
  progress.progress(100)
155
  status.text("Fertig ✅")
156
 
157
- img_url = job["result"]
158
 
159
- if img_url:
160
- st.image(img_url)
161
  st.session_state.gallery.append({
162
- "url": img_url,
163
  "prompt": edit_prompt
164
  })
165
 
166
  # ---------------------------
167
- # TAB 3: PROCESS
168
  # ---------------------------
169
- with tab3:
170
- uploaded = st.file_uploader("Bild auswählen", type=["png", "jpg", "jpeg"], key="proc")
171
 
172
  if st.button("Verarbeiten"):
173
  if uploaded:
@@ -198,9 +221,9 @@ with tab3:
198
  st.write(result)
199
 
200
  # ---------------------------
201
- # TAB 4: GALLERY
202
  # ---------------------------
203
- with tab4:
204
  st.subheader("📸 Galerie")
205
 
206
  if not st.session_state.gallery:
@@ -215,52 +238,11 @@ with tab4:
215
  with cols[i % 3]:
216
  st.image(url, caption=prompt_text)
217
 
 
218
  if st.button("✏️ Edit", key=f"edit_{i}"):
219
  st.session_state.selected_image = url
220
- st.session_state.edit_mode = True
 
221
 
222
  if st.button("🗑️ Galerie leeren"):
223
- st.session_state.gallery = []
224
-
225
- # ---------------------------
226
- # GLOBAL EDIT (aus Galerie)
227
- # ---------------------------
228
- if st.session_state.edit_mode:
229
- st.divider()
230
- st.subheader("✏️ Bild aus Galerie bearbeiten")
231
-
232
- st.image(st.session_state.selected_image)
233
-
234
- edit_prompt_gallery = st.text_area("Bearbeitung", key="gallery_edit")
235
-
236
- if st.button("🚀 Anwenden"):
237
- status = st.empty()
238
- progress = st.progress(0)
239
-
240
- job = run_with_progress(
241
- edit_image,
242
- st.session_state.selected_image,
243
- edit_prompt_gallery
244
- )
245
-
246
- percent = 0
247
- while not job["done"]:
248
- percent = min(percent + 5, 95)
249
- progress.progress(percent)
250
- status.text(f"Bearbeite Bild... {percent}%")
251
- time.sleep(0.2)
252
-
253
- progress.progress(100)
254
- status.text("Fertig ✅")
255
-
256
- result = job["result"]
257
-
258
- if result:
259
- st.image(result)
260
- st.session_state.gallery.append({
261
- "url": result,
262
- "prompt": edit_prompt_gallery
263
- })
264
-
265
- if st.button("❌ Abbrechen"):
266
- st.session_state.edit_mode = False
 
16
  if "gallery" not in st.session_state:
17
  st.session_state.gallery = []
18
 
 
 
 
19
  if "selected_image" not in st.session_state:
20
  st.session_state.selected_image = None
21
 
22
+ if "page" not in st.session_state:
23
+ st.session_state.page = "🖼️ Generieren"
24
+
25
  # ---------------------------
26
  # Funktionen
27
  # ---------------------------
 
45
 
46
  def edit_image(input_image, prompt):
47
  try:
48
+ if isinstance(input_image, str) and input_image.startswith("http"):
49
+ image_input = input_image
50
+ else:
51
+ image_input = handle_file(input_image)
52
+
53
  result = client_main.predict(
54
+ input_image=image_input,
55
  prompt=prompt,
56
  api_name="/edit_image_interface"
57
  )
58
+
59
  return extract_url(result[0])
60
  except Exception as e:
61
  st.error(e)
 
95
  st.set_page_config(page_title="Omni Image Studio", layout="wide")
96
 
97
  st.title("🎨 Omni Image Studio")
 
98
 
99
+ # 🔥 Navigation (ersetzt Tabs → erlaubt Auto-Switch)
100
+ page = st.radio(
101
+ "Navigation",
102
+ ["🖼️ Generieren", "✨ Bearbeiten", "🧪 Process", "📚 Galerie"],
103
+ index=["🖼️ Generieren", "✨ Bearbeiten", "🧪 Process", "📚 Galerie"].index(st.session_state.page),
104
+ horizontal=True
105
+ )
106
+
107
+ st.session_state.page = page
108
 
109
  # ---------------------------
110
+ # PAGE: GENERATE
111
  # ---------------------------
112
+ if page == "🖼️ Generieren":
113
  prompt = st.text_area("Bildbeschreibung")
114
 
115
  if st.button("Generieren"):
 
139
  })
140
 
141
  # ---------------------------
142
+ # PAGE: EDIT
143
  # ---------------------------
144
+ elif page == "✨ Bearbeiten":
145
+ st.subheader("Bild bearbeiten")
146
+
147
+ use_gallery = False
148
+
149
+ # 👉 Bild aus Galerie übernommen
150
+ if st.session_state.selected_image:
151
+ st.image(st.session_state.selected_image, caption="Aus Galerie")
152
+ use_gallery = True
153
+ else:
154
+ uploaded = st.file_uploader("Bild hochladen", type=["png", "jpg", "jpeg"])
155
+
156
  edit_prompt = st.text_area("Bearbeitung")
157
 
158
  if st.button("Bearbeiten"):
159
+ if edit_prompt:
160
  status = st.empty()
161
  progress = st.progress(0)
162
 
163
+ if use_gallery:
164
+ input_image = st.session_state.selected_image
165
+ else:
166
+ input_image = uploaded
167
+
168
+ job = run_with_progress(edit_image, input_image, edit_prompt)
169
 
170
  percent = 0
171
  while not job["done"]:
 
177
  progress.progress(100)
178
  status.text("Fertig ✅")
179
 
180
+ result = job["result"]
181
 
182
+ if result:
183
+ st.image(result)
184
  st.session_state.gallery.append({
185
+ "url": result,
186
  "prompt": edit_prompt
187
  })
188
 
189
  # ---------------------------
190
+ # PAGE: PROCESS
191
  # ---------------------------
192
+ elif page == "🧪 Process":
193
+ uploaded = st.file_uploader("Bild auswählen", type=["png", "jpg", "jpeg"])
194
 
195
  if st.button("Verarbeiten"):
196
  if uploaded:
 
221
  st.write(result)
222
 
223
  # ---------------------------
224
+ # PAGE: GALLERY
225
  # ---------------------------
226
+ elif page == "📚 Galerie":
227
  st.subheader("📸 Galerie")
228
 
229
  if not st.session_state.gallery:
 
238
  with cols[i % 3]:
239
  st.image(url, caption=prompt_text)
240
 
241
+ # 🔥 AUTO SWITCH
242
  if st.button("✏️ Edit", key=f"edit_{i}"):
243
  st.session_state.selected_image = url
244
+ st.session_state.page = "✨ Bearbeiten"
245
+ st.rerun()
246
 
247
  if st.button("🗑️ Galerie leeren"):
248
+ st.session_state.gallery = []