More improvements.
This commit is contained in:
@@ -80,7 +80,8 @@ def evaluate_image_quality(image_path, prompt, model, folder=None):
|
||||
PROMPT: '{prompt}'
|
||||
OUTPUT_FORMAT (JSON): {{ "score": int (1-10), "reason": "string" }}
|
||||
""", img])
|
||||
if folder: utils.log_usage(folder, "logic-pro", response.usage_metadata)
|
||||
model_name = getattr(model, 'name', "logic-pro")
|
||||
if folder: utils.log_usage(folder, model_name, response.usage_metadata)
|
||||
data = json.loads(utils.clean_json(response.text))
|
||||
return data.get('score'), data.get('reason')
|
||||
except Exception as e: return None, str(e)
|
||||
@@ -104,7 +105,7 @@ def generate_blurb(bp, folder):
|
||||
"""
|
||||
try:
|
||||
response = ai.model_writer.generate_content(prompt)
|
||||
utils.log_usage(folder, "writer-flash", response.usage_metadata)
|
||||
utils.log_usage(folder, ai.model_writer.name, response.usage_metadata)
|
||||
blurb = response.text
|
||||
with open(os.path.join(folder, "blurb.txt"), "w") as f: f.write(blurb)
|
||||
with open(os.path.join(folder, "back_cover.txt"), "w") as f: f.write(blurb)
|
||||
@@ -157,6 +158,7 @@ def generate_cover(bp, folder, tracking=None, feedback=None, interactive=False):
|
||||
"""
|
||||
try:
|
||||
resp = ai.model_logic.generate_content(analysis_prompt)
|
||||
utils.log_usage(folder, ai.model_logic.name, resp.usage_metadata)
|
||||
decision = json.loads(utils.clean_json(resp.text))
|
||||
if decision.get('action') == 'REGENERATE_LAYOUT':
|
||||
regenerate_image = False
|
||||
@@ -193,7 +195,7 @@ def generate_cover(bp, folder, tracking=None, feedback=None, interactive=False):
|
||||
"""
|
||||
try:
|
||||
response = ai.model_artist.generate_content(design_prompt)
|
||||
utils.log_usage(folder, "artist-flash", response.usage_metadata)
|
||||
utils.log_usage(folder, ai.model_artist.name, response.usage_metadata)
|
||||
design = json.loads(utils.clean_json(response.text))
|
||||
|
||||
bg_color = design.get('primary_color', '#252570')
|
||||
@@ -211,7 +213,7 @@ def generate_cover(bp, folder, tracking=None, feedback=None, interactive=False):
|
||||
best_img_path = None
|
||||
|
||||
if regenerate_image:
|
||||
for i in range(1, 6):
|
||||
for i in range(1, 4):
|
||||
utils.log("MARKETING", f"Generating cover art (Attempt {i}/5)...")
|
||||
try:
|
||||
if not ai.model_image: raise ImportError("No Image Generation Model available.")
|
||||
@@ -231,7 +233,7 @@ def generate_cover(bp, folder, tracking=None, feedback=None, interactive=False):
|
||||
result.images[0].save(attempt_path)
|
||||
utils.log_usage(folder, "imagen", image_count=1)
|
||||
|
||||
score, critique = evaluate_image_quality(attempt_path, art_prompt, ai.model_logic, folder)
|
||||
score, critique = evaluate_image_quality(attempt_path, art_prompt, ai.model_writer, folder)
|
||||
if score is None: score = 0
|
||||
|
||||
utils.log("MARKETING", f" -> Image Score: {score}/10. Critique: {critique}")
|
||||
@@ -319,8 +321,8 @@ def generate_cover(bp, folder, tracking=None, feedback=None, interactive=False):
|
||||
for attempt in range(1, 6):
|
||||
utils.log("MARKETING", f"Designing text layout (Attempt {attempt}/5)...")
|
||||
try:
|
||||
response = ai.model_logic.generate_content([layout_prompt, img])
|
||||
utils.log_usage(folder, "logic-pro", response.usage_metadata)
|
||||
response = ai.model_writer.generate_content([layout_prompt, img])
|
||||
utils.log_usage(folder, ai.model_writer.name, response.usage_metadata)
|
||||
layout = json.loads(utils.clean_json(response.text))
|
||||
if isinstance(layout, list): layout = layout[0] if layout else {}
|
||||
except Exception as e:
|
||||
@@ -379,7 +381,7 @@ def generate_cover(bp, folder, tracking=None, feedback=None, interactive=False):
|
||||
2. Is the contrast sufficient?
|
||||
3. Does it look professional?
|
||||
"""
|
||||
score, critique = evaluate_image_quality(attempt_path, eval_prompt, ai.model_logic, folder)
|
||||
score, critique = evaluate_image_quality(attempt_path, eval_prompt, ai.model_writer, folder)
|
||||
if score is None: score = 0
|
||||
|
||||
utils.log("MARKETING", f" -> Layout Score: {score}/10. Critique: {critique}")
|
||||
|
||||
Reference in New Issue
Block a user