Spaces:
Runtime error
Runtime error
File size: 1,143 Bytes
edd7a63 48b3f90 edd7a63 48b3f90 edd7a63 48b3f90 edd7a63 48b3f90 edd7a63 04acff5 edd7a63 48b3f90 04acff5 edd7a63 48b3f90 edd7a63 04acff5 edd7a63 48b3f90 04acff5 48b3f90 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import gradio as gr
from diffusers import QwenImageEditPlusPipeline
from PIL import Image
import torch
import io
import base64
print("Loading model...")
pipe = QwenImageEditPlusPipeline.from_pretrained(
"Qwen/Qwen-Image-Edit-2511",
torch_dtype=torch.float16,
use_safetensors=True,
low_cpu_mem_usage=True
)
pipe.enable_sequential_cpu_offload() # Экономит RAM на CPU Space
def edit_image(image_b64, prompt):
image_b64 = image_b64.split(',')[1] if ',' in image_b64 else image_b64
image_bytes = base64.b64decode(image_b64)
image = Image.open(io.BytesIO(image_bytes)).resize((512,512)).convert('RGB') # Resize для скорости
result = pipe(image=image, prompt=prompt, num_inference_steps=15).images[0]
buffer = io.BytesIO()
result.save(buffer, format='JPEG', quality=90)
return 'data:image/jpeg;base64,' + base64.b64encode(buffer.getvalue()).decode()
demo = gr.Interface(
fn=edit_image,
inputs=[gr.Textbox(lines=5, placeholder="data:image;base64,...", label="Image base64"), gr.Textbox(label="Prompt")],
outputs=gr.Image(label="Result")
)
demo.launch(server_port=7860)
|