Spaces:
Runtime error
Runtime error
import base64 | |
import re | |
def insert_description(sentence, character, description): | |
""" | |
Integrates the character, its type, and its description within the sentence right after the character's name is mentioned. | |
Parameters: | |
- sentence (str): The original sentence where the description is to be inserted. | |
- character (str): The character whose description is to be added. | |
- description (dict): The dictionary containing the character's type and descriptive words. | |
Returns: | |
str: The modified sentence with the character's description if the character is present; otherwise, returns the original sentence. | |
""" | |
character_lower = character.lower() | |
# Use regex to find and replace the character's name with the name plus the description | |
modified_sentence = re.sub( | |
fr"\b{character}\b", | |
fr"{character.capitalize()}{description}", | |
sentence, | |
flags=re.IGNORECASE | |
) | |
return modified_sentence | |
def process_text(sentence, character_dict): | |
""" | |
Enhances the given sentence by incorporating descriptions for each mentioned character. | |
Falls back to the original sentence if `character_dict` is empty. | |
Parameters: | |
- sentence (str): The original sentence to be processed. | |
- character_dict (dict): A dictionary mapping characters to their respective descriptions. | |
Returns: | |
str: The sentence modified to include character descriptions where applicable, or the original sentence. | |
""" | |
try: | |
# If character_dict is empty, return the original sentence | |
if not character_dict: | |
print("Character descriptions are empty, returning the original sentence.") | |
return sentence | |
# Start with the original sentence | |
modified_sentence = sentence | |
for character, description in character_dict.items(): | |
# Insert description into the sentence where the character is mentioned | |
modified_sentence = insert_description(modified_sentence, character, description) | |
print(f'modified_sentence: {modified_sentence}') | |
return modified_sentence | |
except Exception as e: | |
print(f"Error processing text: {e}. Returning original sentence.") | |
return sentence | |
def generate_prompt(sentence, character_dict, selected_style): | |
""" | |
Generates a prompt for image generation based on the selected style and input text. | |
Parameters: | |
- style (str): The chosen illustration style. | |
- text (str): The input text for the illustration. | |
Returns: | |
tuple: A prompt string. | |
""" | |
# Retrieve the enhanced sentence associated with the original text | |
image_descriptions = process_text(sentence, character_dict) | |
# Define prompts and other parameters | |
prompt = f"Create a whimsical {selected_style} illustration ideal for a children's book page, from: {image_descriptions}." | |
return prompt | |