K00B404 commited on
Commit
422e2f4
1 Parent(s): cc36653

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -8
app.py CHANGED
@@ -41,8 +41,11 @@ def log_request(prompt, is_negative, steps, cfg_scale, sampler, seed, strength,
41
  # os.makedirs('assets', exist_ok=True)
42
  if not os.path.exists('icon.png'):
43
  os.system("wget -O icon.png https://i.pinimg.com/564x/64/49/88/644988c59447eb00286834c2e70fdd6b.jpg")
 
44
  API_URL_DEV = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-dev"
45
  API_URL = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-schnell"
 
 
46
  timeout = 100
47
  init_db('acces_log.log')
48
 
@@ -51,6 +54,14 @@ logging.basicConfig(filename='access.log', level=logging.INFO,
51
  format='%(asctime)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
52
 
53
 
 
 
 
 
 
 
 
 
54
 
55
  def log_requestold(prompt, is_negative, steps, cfg_scale, sampler, seed, strength, use_dev, enhance_prompt_style, enhance_prompt_option, nemo_enhance_prompt_style, use_mistral_nemo, huggingface_api_key):
56
  log_message = f"Request: prompt='{prompt}', is_negative={is_negative}, steps={steps}, cfg_scale={cfg_scale}, "
@@ -141,11 +152,17 @@ def mistral_nemo_call(prompt, API_TOKEN, model="mistralai/Mistral-Nemo-Instruct-
141
  response += message.choices[0].delta.content
142
  return response
143
 
144
- def query(prompt, is_negative=False, steps=30, cfg_scale=7, sampler="DPM++ 2M Karras", seed=-1, strength=0.7, huggingface_api_key=None, use_dev=False,enhance_prompt_style="generic", enhance_prompt_option=False, nemo_enhance_prompt_style="generic", use_mistral_nemo=False):
 
 
145
 
146
- log_request(prompt, is_negative, steps, cfg_scale, sampler, seed, strength, use_dev, enhance_prompt_style, enhance_prompt_option, nemo_enhance_prompt_style, use_mistral_nemo, huggingface_api_key)
147
  # Determine which API URL to use
148
- api_url = API_URL_DEV if use_dev else API_URL
 
 
 
 
 
149
 
150
  # Check if the request is an API call by checking for the presence of the huggingface_api_key
151
  is_api_call = huggingface_api_key is not None
@@ -166,7 +183,6 @@ def query(prompt, is_negative=False, steps=30, cfg_scale=7, sampler="DPM++ 2M Ka
166
 
167
  key = random.randint(0, 999)
168
  prompt = check_ubuse(prompt)
169
- #prompt = GoogleTranslator(source='ru', target='en').translate(prompt)
170
  print(f'\033[1mGeneration {key} translation:\033[0m {prompt}')
171
 
172
  original_prompt = prompt
@@ -184,6 +200,17 @@ def query(prompt, is_negative=False, steps=30, cfg_scale=7, sampler="DPM++ 2M Ka
184
  if seed == -1:
185
  seed = random.randint(1, 1000000000)
186
 
 
 
 
 
 
 
 
 
 
 
 
187
  payload = {
188
  "inputs": final_prompt,
189
  "is_negative": is_negative,
@@ -214,6 +241,7 @@ def query(prompt, is_negative=False, steps=30, cfg_scale=7, sampler="DPM++ 2M Ka
214
  except Exception as e:
215
  print(f"Error when trying to open the image: {e}")
216
  return None, None, None
 
217
 
218
  css = """
219
  body {
@@ -276,7 +304,6 @@ css1 = """
276
  font-weight: bold;
277
  }
278
  """
279
-
280
  with gr.Blocks(theme='Nymbo/Nymbo_Theme', css=css) as app:
281
  gr.HTML("""
282
  <center>
@@ -305,7 +332,8 @@ with gr.Blocks(theme='Nymbo/Nymbo_Theme', css=css) as app:
305
  enhance_prompt_option = gr.Checkbox(label="Enhance Prompt", value=False, elem_id="enhance-prompt-checkbox")
306
  use_mistral_nemo = gr.Checkbox(label="Use Mistral Nemo", value=False, elem_id="use-mistral-checkbox")
307
  nemo_prompt_style = gr.Textbox(label="Nemo Enhance Prompt Style", placeholder="Enter style for the prompt enhancer here", elem_id="nemo-enhance-prompt-style")
308
-
 
309
  with gr.Row():
310
  text_button = gr.Button("Run", variant='primary', elem_id="gen-button")
311
  with gr.Row():
@@ -314,7 +342,8 @@ with gr.Blocks(theme='Nymbo/Nymbo_Theme', css=css) as app:
314
  seed_output = gr.Textbox(label="Seed Used", elem_id="seed-output")
315
  final_prompt_output = gr.Textbox(label="Final Prompt", elem_id="final-prompt-output")
316
 
317
- # Adjust the click function to include the API key, use_dev, and enhance_prompt_option as inputs
318
- text_button.click(query, inputs=[text_prompt, negative_prompt, steps, cfg, method, seed, strength, huggingface_api_key, use_dev, enhance_prompt_style,enhance_prompt_option, enhance_prompt_style, use_mistral_nemo], outputs=[image_output, seed_output, final_prompt_output])
 
319
 
320
  app.launch(show_api=True, share=False)
 
41
  # os.makedirs('assets', exist_ok=True)
42
  if not os.path.exists('icon.png'):
43
  os.system("wget -O icon.png https://i.pinimg.com/564x/64/49/88/644988c59447eb00286834c2e70fdd6b.jpg")
44
+
45
  API_URL_DEV = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-dev"
46
  API_URL = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-schnell"
47
+ API_URL_UNHINGED = "https://api-inference.huggingface.co/models/enhanceaiteam/Flux-uncensored"
48
+
49
  timeout = 100
50
  init_db('acces_log.log')
51
 
 
54
  format='%(asctime)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
55
 
56
 
57
+ # Function to query the uncensored API
58
+ def query_unhinged_api(prompt):
59
+ key = os.getenv('HUGGINGFACEHUB_API_TOKEN')
60
+ headers = {"Authorization": f"Bearer {key}"}
61
+ payload = {"inputs": prompt}
62
+ response = requests.post(API_URL_UNHINGED, headers=headers, json=payload)
63
+ return response.content
64
+
65
 
66
  def log_requestold(prompt, is_negative, steps, cfg_scale, sampler, seed, strength, use_dev, enhance_prompt_style, enhance_prompt_option, nemo_enhance_prompt_style, use_mistral_nemo, huggingface_api_key):
67
  log_message = f"Request: prompt='{prompt}', is_negative={is_negative}, steps={steps}, cfg_scale={cfg_scale}, "
 
152
  response += message.choices[0].delta.content
153
  return response
154
 
155
+ def query(prompt, is_negative=False, steps=30, cfg_scale=7, sampler="DPM++ 2M Karras", seed=-1, strength=0.7, huggingface_api_key=None, use_dev=False, enhance_prompt_style="generic", enhance_prompt_option=False, nemo_enhance_prompt_style="generic", use_mistral_nemo=False, use_unhinged=False):
156
+
157
+ log_request(prompt, is_negative, steps, cfg_scale, sampler, seed, strength, use_dev, enhance_prompt_style, enhance_prompt_option, nemo_enhance_prompt_style, use_mistral_nemo, huggingface_api_key, use_unhinged)
158
 
 
159
  # Determine which API URL to use
160
+ if use_unhinged:
161
+ api_url = API_URL_UNHINGED
162
+ elif use_dev:
163
+ api_url = API_URL_DEV
164
+ else:
165
+ api_url = API_URL
166
 
167
  # Check if the request is an API call by checking for the presence of the huggingface_api_key
168
  is_api_call = huggingface_api_key is not None
 
183
 
184
  key = random.randint(0, 999)
185
  prompt = check_ubuse(prompt)
 
186
  print(f'\033[1mGeneration {key} translation:\033[0m {prompt}')
187
 
188
  original_prompt = prompt
 
200
  if seed == -1:
201
  seed = random.randint(1, 1000000000)
202
 
203
+ # Use uncensored API if selected
204
+ if use_unhinged:
205
+ unhinged_gallery = 'unhinged_images'
206
+ os.makedirs(unhinged_gallery, exist_ok=True)
207
+ image_bytes = query_unhinged_api(prompt)
208
+ image = Image.open(io.BytesIO(image_bytes))
209
+ output_path = f"./{unhinged_gallery}/unhinged_output_{random.randint(0, 999)}.png"
210
+ print(output_path)
211
+ image.save(output_path)
212
+ return output_path, seed, final_prompt
213
+
214
  payload = {
215
  "inputs": final_prompt,
216
  "is_negative": is_negative,
 
241
  except Exception as e:
242
  print(f"Error when trying to open the image: {e}")
243
  return None, None, None
244
+
245
 
246
  css = """
247
  body {
 
304
  font-weight: bold;
305
  }
306
  """
 
307
  with gr.Blocks(theme='Nymbo/Nymbo_Theme', css=css) as app:
308
  gr.HTML("""
309
  <center>
 
332
  enhance_prompt_option = gr.Checkbox(label="Enhance Prompt", value=False, elem_id="enhance-prompt-checkbox")
333
  use_mistral_nemo = gr.Checkbox(label="Use Mistral Nemo", value=False, elem_id="use-mistral-checkbox")
334
  nemo_prompt_style = gr.Textbox(label="Nemo Enhance Prompt Style", placeholder="Enter style for the prompt enhancer here", elem_id="nemo-enhance-prompt-style")
335
+ use_unhinged = gr.Checkbox(label="Use Flux Unhinged API", value=False, elem_id="use-unhinged-checkbox")
336
+
337
  with gr.Row():
338
  text_button = gr.Button("Run", variant='primary', elem_id="gen-button")
339
  with gr.Row():
 
342
  seed_output = gr.Textbox(label="Seed Used", elem_id="seed-output")
343
  final_prompt_output = gr.Textbox(label="Final Prompt", elem_id="final-prompt-output")
344
 
345
+ # Update the click function to include the use_unhinged option
346
+ text_button.click(query, inputs=[text_prompt, negative_prompt, steps, cfg, method, seed, strength, huggingface_api_key, use_dev, enhance_prompt_style, enhance_prompt_option, nemo_prompt_style, use_mistral_nemo, use_unhinged], outputs=[image_output, seed_output, final_prompt_output])
347
+
348
 
349
  app.launch(show_api=True, share=False)