Jangai commited on
Commit
b864045
·
verified ·
1 Parent(s): b3015a7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -19
app.py CHANGED
@@ -4,8 +4,8 @@ from PIL import Image
4
  import gradio as gr
5
  import os
6
 
7
- # Assuming your API tokens are correctly set in environment variables
8
- ZEPHYR_API_TOKEN = os.getenv("HF_API_TOKEN")
9
  SD_API_TOKEN = os.getenv("HF_API_TOKEN")
10
 
11
  if not ZEPHYR_API_TOKEN or not SD_API_TOKEN:
@@ -17,16 +17,9 @@ SD_API_URL = "https://api-inference.huggingface.co/models/stabilityai/stable-dif
17
  def query_zephyr(prompt):
18
  headers = {"Authorization": f"Bearer {ZEPHYR_API_TOKEN}"}
19
  response = requests.post(ZEPHYR_API_URL, headers=headers, json={"inputs": prompt})
20
- # Assuming the response is correctly formatted JSON and the first item contains the desired data
21
- response_data = response.json()
22
- if isinstance(response_data, list) and len(response_data) > 0:
23
- # Extracting the generated text from the first item in the response list
24
- generated_text = response_data[0].get("generated_text", "")
25
- return generated_text
26
- else:
27
- raise ValueError("Unexpected response format from Zephyr API")
28
 
29
- def generate_image_from_prompt(prompt, negative_prompt="", guidance_scale=7.5, width=1024, height=768, num_inference_steps=30):
30
  headers = {"Authorization": f"Bearer {SD_API_TOKEN}"}
31
  payload = {
32
  "inputs": prompt,
@@ -37,7 +30,7 @@ def generate_image_from_prompt(prompt, negative_prompt="", guidance_scale=7.5, w
37
  "num_inference_steps": num_inference_steps,
38
  },
39
  }
40
- if negative_prompt: # Add negative_prompt to the payload if provided
41
  payload["parameters"]["negative_prompt"] = negative_prompt
42
 
43
  response = requests.post(SD_API_URL, headers=headers, json=payload)
@@ -46,22 +39,20 @@ def generate_image_from_prompt(prompt, negative_prompt="", guidance_scale=7.5, w
46
  return image
47
 
48
  def generate_image_from_linkedin_text(linkedin_text, negative_prompt, guidance_scale, width, height, num_inference_steps):
 
49
  zephyr_response = query_zephyr(linkedin_text)
50
-
51
  if zephyr_response and isinstance(zephyr_response, list):
52
  generated_prompt = zephyr_response[0].get("generated_text", "")
53
  else:
54
  raise ValueError("Unexpected response format from Zephyr model.")
55
-
56
- print("Generated Prompt:", generated_prompt) # For backend logs
57
-
58
  if generated_prompt:
59
  image = generate_image_from_prompt(generated_prompt, negative_prompt, guidance_scale, width, height, num_inference_steps)
60
  return image, generated_prompt
61
  else:
62
  raise ValueError("Failed to generate a prompt from the LinkedIn text.")
63
 
64
- # Update Gradio interface with additional parameters
65
  iface = gr.Interface(
66
  fn=generate_image_from_linkedin_text,
67
  inputs=[
@@ -74,10 +65,10 @@ iface = gr.Interface(
74
  ],
75
  outputs=[
76
  gr.Image(type="pil"),
77
- gr.Textbox(label="Generated Prompt", readonly=True)
78
  ],
79
  title="Generate Images from LinkedIn Messages",
80
- description="Enter a LinkedIn message to generate a creative prompt with Zephyr, which is then used to generate an image with Stable Diffusion. Additional parameters allow for fine-tuning of the generated image."
81
  )
82
 
83
  iface.launch()
 
4
  import gradio as gr
5
  import os
6
 
7
+ # Assuming you have your API tokens set in environment variables
8
+ ZEPHYR_API_TOKEN = os.getenv("ZEPHYR_API_TOKEN")
9
  SD_API_TOKEN = os.getenv("HF_API_TOKEN")
10
 
11
  if not ZEPHYR_API_TOKEN or not SD_API_TOKEN:
 
17
  def query_zephyr(prompt):
18
  headers = {"Authorization": f"Bearer {ZEPHYR_API_TOKEN}"}
19
  response = requests.post(ZEPHYR_API_URL, headers=headers, json={"inputs": prompt})
20
+ return response.json()
 
 
 
 
 
 
 
21
 
22
+ def generate_image_from_prompt(prompt, negative_prompt, guidance_scale, width, height, num_inference_steps):
23
  headers = {"Authorization": f"Bearer {SD_API_TOKEN}"}
24
  payload = {
25
  "inputs": prompt,
 
30
  "num_inference_steps": num_inference_steps,
31
  },
32
  }
33
+ if negative_prompt: # Add negative prompt if provided
34
  payload["parameters"]["negative_prompt"] = negative_prompt
35
 
36
  response = requests.post(SD_API_URL, headers=headers, json=payload)
 
39
  return image
40
 
41
  def generate_image_from_linkedin_text(linkedin_text, negative_prompt, guidance_scale, width, height, num_inference_steps):
42
+ # Generate a prompt from the LinkedIn text using Zephyr
43
  zephyr_response = query_zephyr(linkedin_text)
 
44
  if zephyr_response and isinstance(zephyr_response, list):
45
  generated_prompt = zephyr_response[0].get("generated_text", "")
46
  else:
47
  raise ValueError("Unexpected response format from Zephyr model.")
48
+
49
+ # Use the generated prompt to create an image with Stable Diffusion
 
50
  if generated_prompt:
51
  image = generate_image_from_prompt(generated_prompt, negative_prompt, guidance_scale, width, height, num_inference_steps)
52
  return image, generated_prompt
53
  else:
54
  raise ValueError("Failed to generate a prompt from the LinkedIn text.")
55
 
 
56
  iface = gr.Interface(
57
  fn=generate_image_from_linkedin_text,
58
  inputs=[
 
65
  ],
66
  outputs=[
67
  gr.Image(type="pil"),
68
+ gr.Label(label="Generated Prompt")
69
  ],
70
  title="Generate Images from LinkedIn Messages",
71
+ description="Enter a LinkedIn message to generate a creative prompt with Zephyr, which is then used to generate an image with Stable Diffusion. Image parameters can be adjusted."
72
  )
73
 
74
  iface.launch()