if not description.strip():
raise poe.BotError("Please provide a character description to generate a reference sheet.")
with poe.start_message() as msg:
msg.write("Creating your character reference sheet...\n\n")
msg.write("Step 1: Generating front view...\n")
# Generate front view first - this becomes our reference
front_response = poe.call(
"Nano-Banana",
f"Create a full-body character design in front view based on this description: {description}. Clean white background, concept art style, detailed character design, full body visible from head to feet.",
parameters={"aspect_ratio": "3:4", "image_only": True}
)
front_image = front_response.last.attachments[0]
with poe.start_message() as msg:
msg.write("Step 2: Generating side, back, and action views...\n")
# Generate remaining views in parallel using front image as reference
side_response, back_response, action_response = poe.parallel(
lambda: poe.call(
"Nano-Banana",
poe.Message(
text="Show this exact same character from a side view (profile). Keep all details, clothing, colors, and proportions identical. Clean white background, full body visible.",
attachments=[front_image]
),
parameters={"aspect_ratio": "3:4", "image_only": True}
),
lambda: poe.call(
"Nano-Banana",
poe.Message(
text="Show this exact same character from the back view. Keep all details, clothing, colors, and proportions identical. Clean white background, full body visible.",
attachments=[front_image]
),
parameters={"aspect_ratio": "3:4", "image_only": True}
),
lambda: poe.call(
"Nano-Banana",
poe.Message(
text="Show this exact same character in a dynamic action pose that fits their personality. Keep all character details, clothing, and colors identical. Clean white background.",
attachments=[front_image]
),
parameters={"aspect_ratio": "3:4", "image_only": True}
)
)
side_image = side_response.last.attachments[0]
back_image = back_response.last.attachments[0]
action_image = action_response.last.attachments[0]
# Display the complete reference sheet
with poe.start_message() as msg:
msg.write(f"## Character Reference Sheet\n\n")
msg.write(f"**Description:** {description}\n\n")
msg.write(f"---\n\n")
msg.write(f"### Front View\n")
msg.add_attachment(front_image)
msg.write(f"\n### Side View\n")
msg.add_attachment(side_image)
msg.write(f"\n### Back View\n")
msg.add_attachment(back_image)
msg.write(f"\n### Action Pose\n")
msg.add_attachment(action_image)