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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -10
app.py CHANGED
@@ -26,7 +26,7 @@ def query_zephyr(prompt):
26
  else:
27
  raise ValueError("Unexpected response format from Zephyr API")
28
 
29
- def generate_image_from_prompt(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,28 +37,47 @@ def generate_image_from_prompt(prompt, guidance_scale=7.5, width=1024, height=76
37
  "num_inference_steps": num_inference_steps,
38
  },
39
  }
 
 
 
40
  response = requests.post(SD_API_URL, headers=headers, json=payload)
41
  image_bytes = response.content
42
  image = Image.open(io.BytesIO(image_bytes))
43
  return image
44
 
45
- def generate_image_and_show_prompt(linkedin_text):
46
- # Generate a prompt from the LinkedIn text using Zephyr
47
- generated_prompt = query_zephyr(linkedin_text)
 
 
 
 
 
 
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)
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_and_show_prompt,
58
- inputs=[gr.Textbox(label="LinkedIn Message", placeholder="Enter LinkedIn message here...")],
59
- outputs=[gr.Image(type="pil"), gr.Textbox(label="Generated Prompt")],
 
 
 
 
 
 
 
 
 
 
60
  title="Generate Images from LinkedIn Messages",
61
- description="Enter a LinkedIn message to generate a creative prompt with Zephyr, which is then used to generate an image with Stable Diffusion. The generated prompt is also displayed."
62
  )
63
 
64
  iface.launch()
 
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
  "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)
44
  image_bytes = response.content
45
  image = Image.open(io.BytesIO(image_bytes))
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=[
68
+ gr.Textbox(label="LinkedIn Message", placeholder="Enter LinkedIn message here..."),
69
+ gr.Textbox(label="Negative Prompt", placeholder="Enter a negative prompt here (optional)..."),
70
+ gr.Slider(label="Guidance Scale", minimum=1, maximum=20, step=0.1, value=7.5),
71
+ gr.Slider(label="Width", minimum=768, maximum=1024, step=1, value=1024),
72
+ gr.Slider(label="Height", minimum=768, maximum=1024, step=1, value=768),
73
+ gr.Slider(label="Number of Inference Steps", minimum=20, maximum=50, step=1, value=30)
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()