Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from huggingface_hub import InferenceClient | |
| import PIL.Image | |
| import io | |
| import base64 | |
| client = InferenceClient( | |
| model="Kwai-Kolors/Kolors-Virtual-Try-On" | |
| ) | |
| def virtual_try_on(person_image, garment_image): | |
| """ | |
| Process the virtual try-on request | |
| Args: | |
| person_image: PIL Image of the person | |
| garment_image: PIL Image of the garment | |
| Returns: | |
| PIL Image of the result | |
| """ | |
| try: | |
| # Convert images to base64 | |
| person_bytes = io.BytesIO() | |
| garment_bytes = io.BytesIO() | |
| person_image.save(person_bytes, format='PNG') | |
| garment_image.save(garment_bytes, format='PNG') | |
| person_base64 = base64.b64encode(person_bytes.getvalue()).decode('utf-8') | |
| garment_base64 = base64.b64encode(garment_bytes.getvalue()).decode('utf-8') | |
| # Make API request | |
| response = client.post( | |
| json={ | |
| "inputs": [ | |
| {"image": person_base64}, | |
| {"image": garment_base64} | |
| ] | |
| } | |
| ) | |
| # Eğer response bytes ise doğrudan kullan, değilse base64'ten decode et | |
| if isinstance(response, bytes): | |
| result_bytes = response | |
| else: | |
| result_bytes = base64.b64decode(response) | |
| # Convert response to image | |
| result_image = PIL.Image.open(io.BytesIO(result_bytes)) | |
| return result_image, "Success" | |
| except Exception as e: | |
| return None, f"Error: {str(e)}" | |
| # Create Gradio interface | |
| demo = gr.Interface( | |
| fn=virtual_try_on, | |
| inputs=[ | |
| gr.Image(type="pil", label="Person Image"), | |
| gr.Image(type="pil", label="Garment Image") | |
| ], | |
| outputs=[ | |
| gr.Image(type="pil", label="Result"), | |
| gr.Text(label="Status") | |
| ], | |
| title="Virtual Try-On API", | |
| description="Upload a person image and a garment image to see how the garment would look on the person." | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |