Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from src.utils import add_to_prompt | |
| from src.rep_api import generate_image_replicate,generate_image_control_net, model_dict | |
| import os | |
| # The dictionary data | |
| prompt_dict = { | |
| "Character": ["Asian girl with black hair", "A man with blond hair", "A Cat girl anime character with purple hair", "A Green Alien with big black eyes"], | |
| "Clothes": ["Wearing a blue jacket", "Wearing a black business suit", "Wearing a purple jumpsuit", "Wearing shorts and a white T-shirt"], | |
| "Pose": ["Close up portrait", "Standing doing a peace sign", "Folding arms", "holding a phone"], | |
| "Style": ["Simple white background", "Fashion runway", "Inside a business conference", "Inside a spaceship"], | |
| } | |
| prompt_dict_kp ={ | |
| "Character": ["黒髪のアジア系女性", "金髪の男性", "紫髪のキャットガールアニメキャラクター", "大きな黒い目を持つ緑の宇宙人"], | |
| "Clothes": ["青いジャケットを着ている", "黒のビジネススーツを着ている", "紫のジャンプスーツを着ている", "ショーツと白いTシャツを着ている"], | |
| "Pose": ["クローズアップポートレート", "ピースサインをして立っている", "腕を組んでいる", "携帯電話を持っている"], | |
| "Scene": ["シンプルな白背景", "ファッションランウェイ", "ビジネス会議の中", "宇宙船の内部"] | |
| } | |
| lora_style_support = [ | |
| ["ps1","Test_images/lora_support_examples/ps1.png"], | |
| ["cyberpunk","Test_images/lora_support_examples/cyberpunk.png"], | |
| ["Sioux","Test_images/Walk_4.png"], | |
| ["RetroAnime1","Test_images/lora_support_examples/appleseed.png"], | |
| ["RetroAnime2","Test_images/lora_support_examples/Galverse.png"], | |
| ["half-illustration","Test_images/lora_support_examples/halfillust.png"] | |
| ] | |
| prompt_support = [ | |
| ["Test_images/prompt_support_examples/Man_1.png","A full body photo man standing with blond hair wearing a suit"], | |
| ["Test_images/prompt_support_examples/Woman_1.png","A full body photo girl standing with blond hair wearing a suit "], | |
| ["Test_images/prompt_support_examples/Woman_2.png","a Asian girl as at a fashion show walking down the cat walk, wearing a red dress"], | |
| ["Test_images/prompt_support_examples/Man_2.png","A High exposure photo of a Asian man wearing a blue shirt at a business conference, blue shirt, short black hair, hands out welcoming people into a booth, booth with a green and white color scheme "], | |
| ["Test_images/prompt_support_examples/Shoes_1.png","a product photo of high tech shoes with lights and a wifi symbol on the side, low angle shot, front view of walking down stairs "], | |
| ["Test_images/prompt_support_examples/Jacket_1.png","a product photo of green checked jacked being on a man from behind , furry collar, large cute character logo of a cat on back of jacket, simple background,"], | |
| ] | |
| def create_gen_tab(): | |
| with gr.TabItem("Image Generator"): | |
| #Gen how too row | |
| with gr.Row(): | |
| with gr.Accordion("HowTo",open=False): | |
| with gr.Column(): | |
| gr.Markdown("### How to use the Image Generator 画像生成器の使い方 \n" | |
| "1. Enter a prompt in the textbox. テキストボックスにプロンプトを入力します。\n" | |
| "2. Choose the aspect ratio. アスペクト比を選択します。\n" | |
| "3. Options Select a style lore. スタイルロアを選択します。\n" | |
| "4. Options in extra control net. Extraでコントロールネットのオプションを選択します。\n" | |
| "5. Click 'Generate' to create the image. Generateをクリックして画像を生成します。\n" | |
| "6. click button to move image to other tab.ボタンをクリックして画像を他のタブに移動します。 \n") | |
| gr.Image(value="HowTo/Gen.png",label=None,interactive=False) | |
| #Gen generatpor options | |
| with gr.Row(): | |
| with gr.Column(): | |
| inp = gr.Textbox(label="Prompt",info="日本語対応は可能") | |
| aspect_ratio = gr.Dropdown(list(["1:1","16:9","9:16","5:4"]),value="1:1", label="Aspect Ratio", info="Image size Aspect Ratio 画像サイズ アスペクト比") | |
| with gr.Accordion("Control Net", open=False): | |
| #Control net | |
| use_control_net=gr.Checkbox(label="Use Control net",value=False) | |
| control_net_type=gr.Dropdown(["depth","canny","soft_edge"],value="depth",label="Control net type") | |
| control_net_img= gr.Image(label="Control net image",type="pil") | |
| control_net_strength = gr.Slider(0,1,value=0.4,label="control net strength") | |
| control_net_examples = gr.Examples( | |
| examples=["Test_images/Walk_3.png","Test_images/example_outputs/input_2.png","Test_images/example_outputs/input_4.png","Test_images/Sit_1.png","Test_images/controlnet-in-automatic1111-for-character-design-sheets-v0-ir6p0gdwpfia1.webp"], | |
| inputs=[control_net_img] | |
| ) | |
| with gr.Column(): | |
| style_mode = gr.Dropdown(list(model_dict.keys()),label="Style lore",value="Base",info="style model スタイルのモデル") | |
| with gr.Accordion("Style Imgaes",open=False): | |
| # with gr.Column(elem_id="prompt_support_column"): | |
| for i,lora in enumerate(lora_style_support): | |
| if i % 3 == 0: | |
| row = gr.Row() # Start a new row | |
| with row: | |
| lora_img = gr.Image(value=lora[1], label=lora[0],width=200,height=200, interactive=False) | |
| lora_img.select(lambda x:x, inputs=gr.Textbox(value=lora[0],visible=False),outputs=style_mode) | |
| api_path = gr.Textbox(label="Other_style",info="Style lora .safetensors route goes here or replicate link goes here スタイルのローラの.safetensorsのルートはこちら。",value=None) | |
| style_strength = gr.Slider(0,2,value=1,label="Style Strength") | |
| with gr.Row(): | |
| btn = gr.Button("Generate") | |
| with gr.Accordion("Prompt Support", open=False): | |
| for i,item in enumerate(prompt_support): | |
| if i % 6 ==0: | |
| row=gr.Row() | |
| with row: | |
| with gr.Column(elem_id="prompt_support_column"): | |
| img_ps=gr.Image(value=item[0],label="",interactive=False) | |
| btn_ps=gr.Button(item[1],elem_id="prompt_support_button") | |
| img_ps.select(lambda x:x, inputs=gr.Textbox(item[1],visible=False),outputs=inp) | |
| btn_ps.click(lambda x:x, inputs=gr.Textbox(item[1],visible=False),outputs=inp) | |
| with gr.Row(): | |
| gen_out = gr.Image(label="Generated Image",type="filepath",elem_id="output_image") | |
| with gr.Row(): #Move gen out row | |
| move_to_ip =gr.Button("Move to Cloth IP Adapter") | |
| move_to_vto =gr.Button("Move to Virtual Try On") | |
| move_to_cnmk =gr.Button("Move to Control net mockup ") | |
| move_to_relight= gr.Button("Move to Relight") | |
| # move_to_fs =gr.Button("Move to Face Swap") | |
| # move_to_zest=gr.Button("Move to Zest IP Adapter") | |
| btn.click(generate_image_control_net, | |
| inputs=[inp,style_mode,api_path,aspect_ratio,style_strength,use_control_net,control_net_type,control_net_img,control_net_strength], | |
| outputs=[gen_out]) | |
| return gen_out,move_to_vto,move_to_ip,move_to_cnmk,move_to_relight# move_to_fs,#,move_to_zest |