oort commited on
Commit
65367f3
·
verified ·
1 Parent(s): 49f2138

Add Flux prompt generation tool

Browse files
Files changed (1) hide show
  1. app.py +55 -1
app.py CHANGED
@@ -33,6 +33,60 @@ def get_current_time_in_timezone(timezone: str) -> str:
33
  except Exception as e:
34
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  final_answer = FinalAnswerTool()
38
 
@@ -55,7 +109,7 @@ with open("prompts.yaml", 'r') as stream:
55
 
56
  agent = CodeAgent(
57
  model=model,
58
- tools=[final_answer, get_current_time_in_timezone], ## add your tools here (don't remove final answer)
59
  max_steps=6,
60
  verbosity_level=1,
61
  grammar=None,
 
33
  except Exception as e:
34
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
35
 
36
+ @tool
37
+ def llm_tool(user_prompt: str) -> str:
38
+
39
+ """Executes a prompt using a language model to create a detaled prompt
40
+ for image generation based on user_prompt.
41
+ Returns prompt for image_generation_tool.
42
+
43
+ Args:
44
+ user_prompt: The user's text prompt to be processed by the language model.
45
+ """
46
+ # Prompt parts
47
+ prefix="Generate a detailed and structured FLUX-Schnell-compatible prompt based on the following short description of an image: "
48
+ postfix="""
49
+ The generated prompt should follow these guidelines:
50
+ 1. Foreground, Middle Ground, and Background: Clearly describe elements in each layer of the image in an organized manner.
51
+ 2. Tone and Style: Specify the tone (e.g., cinematic, surreal, vibrant) and artistic style (e.g., photorealistic, painterly, abstract).
52
+ 3. Color Palette: Include details about the dominant colors or overall color scheme.
53
+ 4. Perspective and Camera Details: Mention the point of view (e.g., wide-angle, close-up), camera type, lens, aperture, and lighting conditions if applicable.
54
+ 5. Additional Details: Highlight any specific objects, text, or unique features with clear emphasis (e.g., ‘with green text’ or ‘emphasis on golden hour lighting’).
55
+ 6. Output Settings: Suggest aspect ratio, output format (e.g., PNG), quality level, and seed for reproducibility.
56
+ Ensure that the generated prompt is logical, descriptive, and written in natural language to maximize compatibility with FLUX-Schnell’s capabilities.”
57
+ Example Input:
58
+ 'An image of a serene forest with a small cabin.'
59
+ Example Output:
60
+ '''
61
+ In the foreground, a lush green forest floor covered with moss and scattered wildflowers.
62
+ In the middle ground, a cozy wooden cabin with smoke gently rising from its chimney.
63
+ In the background, towering pine trees fading into a misty horizon.
64
+ The tone is tranquil and inviting, with a photorealistic style.
65
+ The color palette includes rich greens, warm browns for the cabin, and soft gray mist.
66
+ The perspective is slightly elevated as if viewed from a drone camera at sunrise,
67
+ capturing golden hour lighting for soft shadows and warm highlights.
68
+ The aspect ratio is 16:9 in PNG format with high quality (90), using seed 42 for reproducibility.
69
+ '''
70
+ """
71
+ model = HfApiModel(
72
+ max_tokens=200,
73
+ temperature=1.0,
74
+ model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
75
+ custom_role_conversions=None,
76
+ )
77
+ prompt = prefix + user_prompt + '. ' + postfix
78
+ try:
79
+ response = model.generate(
80
+ prompt=prompt, temperature=1., max_tokens=200)
81
+
82
+ response = openai.Completion.create(
83
+ engine=model_name, # Use 'engine' for older models, 'model' for newer
84
+ prompt=prompt
85
+ )
86
+ return response.choices[0].text.strip()
87
+
88
+ except Exception as e:
89
+ return f"Error during LLM call: {str(e)}"
90
 
91
  final_answer = FinalAnswerTool()
92
 
 
109
 
110
  agent = CodeAgent(
111
  model=model,
112
+ tools=[final_answer, llm_tool, image_generation_tool], ## add your tools here (don't remove final answer)
113
  max_steps=6,
114
  verbosity_level=1,
115
  grammar=None,