Spaces:
Paused
Paused
| import os | |
| import uuid | |
| import gradio as gr | |
| import spaces | |
| from clip_slider_pipeline import CLIPSliderFlux | |
| from diffusers import FluxPipeline, AutoencoderTiny | |
| import torch | |
| import numpy as np | |
| import cv2 | |
| from PIL import Image | |
| from diffusers.utils import load_image | |
| from diffusers.utils import export_to_video | |
| import random | |
| from transformers import pipeline | |
| # Translation model load | |
| translator = pipeline("translation", model="Helsinki-NLP/opus-mt-ko-en") | |
| # English menu labels | |
| english_labels = { | |
| "Prompt": "Prompt", | |
| "1st direction to steer": "1st Direction", | |
| "2nd direction to steer": "2nd Direction", | |
| "Strength": "Strength", | |
| "Generate directions": "Generate Directions", | |
| "Generated Images": "Generated Images", | |
| "From 1st to 2nd direction": "From 1st to 2nd Direction", | |
| "Strip": "Image Strip", | |
| "Looping video": "Looping Video", | |
| "Advanced options": "Advanced Options", | |
| "Num of intermediate images": "Number of Intermediate Images", | |
| "Num iterations for clip directions": "Number of CLIP Direction Iterations", | |
| "Num inference steps": "Number of Inference Steps", | |
| "Guidance scale": "Guidance Scale", | |
| "Randomize seed": "Randomize Seed", | |
| "Seed": "Seed" | |
| } | |
| # [Rest of the imports and pipeline setup remains the same...] | |
| css = """ | |
| footer { | |
| visibility: hidden; | |
| } | |
| """ | |
| with gr.Blocks(theme="Yntec/HaleyCH_Theme_Orange", css=css) as demo: | |
| x_concept_1 = gr.State("") | |
| x_concept_2 = gr.State("") | |
| total_images = gr.Gallery(visible=False) | |
| avg_diff_x = gr.State() | |
| recalc_directions = gr.State(False) | |
| with gr.Row(): | |
| with gr.Column(): | |
| with gr.Group(): | |
| prompt = gr.Textbox(label=english_labels["Prompt"], | |
| info="Enter the description", | |
| placeholder="A dog in the park") | |
| with gr.Row(): | |
| concept_1 = gr.Textbox(label=english_labels["1st direction to steer"], | |
| info="Initial state", | |
| placeholder="winter") | |
| concept_2 = gr.Textbox(label=english_labels["2nd direction to steer"], | |
| info="Final state", | |
| placeholder="summer") | |
| x = gr.Slider(minimum=0, | |
| value=1.75, | |
| step=0.1, | |
| maximum=4.0, | |
| label=english_labels["Strength"], | |
| info="Maximum strength for each direction (above 2.5 may be unstable)") | |
| submit = gr.Button(english_labels["Generate directions"]) | |
| with gr.Column(): | |
| with gr.Group(elem_id="group"): | |
| post_generation_image = gr.Image(label=english_labels["Generated Images"], | |
| type="filepath", | |
| elem_id="interactive") | |
| post_generation_slider = gr.Slider(minimum=-10, | |
| maximum=10, | |
| value=0, | |
| step=1, | |
| label=english_labels["From 1st to 2nd direction"]) | |
| with gr.Row(): | |
| with gr.Column(scale=4): | |
| image_seq = gr.Image(label=english_labels["Strip"], | |
| elem_id="strip", | |
| height=80) | |
| with gr.Column(scale=2, min_width=100): | |
| output_image = gr.Video(label=english_labels["Looping video"], | |
| elem_id="video", | |
| loop=True, | |
| autoplay=True) | |
| with gr.Accordion(label=english_labels["Advanced options"], open=False): | |
| interm_steps = gr.Slider(label=english_labels["Num of intermediate images"], | |
| minimum=3, | |
| value=7, | |
| maximum=65, | |
| step=2) | |
| with gr.Row(): | |
| iterations = gr.Slider(label=english_labels["Num iterations for clip directions"], | |
| minimum=0, | |
| value=200, | |
| maximum=400, | |
| step=1) | |
| steps = gr.Slider(label=english_labels["Num inference steps"], | |
| minimum=1, | |
| value=3, | |
| maximum=4, | |
| step=1) | |
| with gr.Row(): | |
| guidance_scale = gr.Slider( | |
| label=english_labels["Guidance scale"], | |
| minimum=0.1, | |
| maximum=10.0, | |
| step=0.1, | |
| value=3.5, | |
| ) | |
| with gr.Column(): | |
| randomize_seed = gr.Checkbox(True, label=english_labels["Randomize seed"]) | |
| seed = gr.Slider(minimum=0, | |
| maximum=MAX_SEED, | |
| step=1, | |
| label=english_labels["Seed"], | |
| interactive=True, | |
| randomize=True) | |
| # Updated examples with English text | |
| examples = [ | |
| ["flower in mountain", "spring", "winter", 1.5], | |
| ["man", "baby", "elderly", 2.5], | |
| ["a tomato", "super fresh", "rotten", 2.5] | |
| ] | |
| examples_gradio = gr.Examples( | |
| examples=examples, | |
| inputs=[prompt, concept_1, concept_2, x], | |
| fn=generate, | |
| outputs=[x_concept_1, x_concept_2, avg_diff_x, output_image, image_seq, total_images, | |
| post_generation_image, post_generation_slider, seed], | |
| cache_examples="lazy" | |
| ) | |
| # [Rest of the event handlers remain the same...] | |
| if __name__ == "__main__": | |
| demo.launch() |