adf0d17497
publish / version_or_publish (push) Has been cancelled
storybook-build / changes (push) Has been cancelled
storybook-build / :storybook-build (push) Has been cancelled
Sync Gradio Skills to Hugging Face / sync-skills (push) Has been cancelled
functional / changes (push) Has been cancelled
functional / build-frontend (push) Has been cancelled
functional / functional-test-SSR=false (push) Has been cancelled
functional / functional-reload (push) Has been cancelled
js / changes (push) Has been cancelled
js / js-test (push) Has been cancelled
docs-build / changes (push) Has been cancelled
docs-build / docs-build (push) Has been cancelled
docs-build / website-build (push) Has been cancelled
functional / functional-test-SSR=true (push) Has been cancelled
hygiene / hygiene-test (push) Has been cancelled
python / changes (push) Has been cancelled
python / build (push) Has been cancelled
python / test-ubuntu-latest-flaky (push) Has been cancelled
python / test-ubuntu-latest-not-flaky (push) Has been cancelled
python / test-windows-latest-flaky (push) Has been cancelled
python / test-windows-latest-not-flaky (push) Has been cancelled
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
import os
|
|
import random
|
|
|
|
import gradio as gr
|
|
|
|
|
|
def describe_product(image) -> str:
|
|
if image is None:
|
|
return "a premium product"
|
|
img_path = image.get("path") if isinstance(image, dict) else str(image)
|
|
img_url = image.get("url", "") if isinstance(image, dict) else str(image)
|
|
try:
|
|
from gradio_client import Client, handle_file
|
|
source = img_path if (img_path and os.path.exists(img_path)) else img_url
|
|
if not source:
|
|
return "a premium product"
|
|
client = Client("vikhyatk/moondream2", verbose=False)
|
|
result = client.predict(
|
|
handle_file(source),
|
|
"Describe this product briefly and concisely. What is it?",
|
|
api_name="/answer_question",
|
|
)
|
|
return str(result).strip() if result else "a premium product"
|
|
except Exception:
|
|
return "a premium product"
|
|
|
|
|
|
def craft_marketing_prompt(caption: str) -> str:
|
|
if not caption:
|
|
caption = "a premium product"
|
|
caption = caption.strip().rstrip(".")
|
|
styles = [
|
|
(
|
|
f"Professional product advertisement photograph of {caption}, "
|
|
"studio lighting, clean white background, commercial photography, "
|
|
"ultra-sharp, 8K quality"
|
|
),
|
|
(
|
|
f"Cinematic product shot of {caption}, dramatic lighting, "
|
|
"aspirational lifestyle context, premium brand aesthetic, "
|
|
"shot on Hasselblad, magazine cover quality"
|
|
),
|
|
(
|
|
f"Bold marketing campaign visual of {caption}, vibrant colors, "
|
|
"dynamic composition, modern editorial style, "
|
|
"award-winning commercial photography"
|
|
),
|
|
]
|
|
return random.choice(styles)
|
|
|
|
|
|
demo = gr.Workflow(bind=[describe_product, craft_marketing_prompt])
|
|
|
|
if __name__ == "__main__":
|
|
demo.launch()
|