File size: 1,788 Bytes
922678f
f3dddaf
 
 
922678f
 
 
 
f3dddaf
922678f
f3dddaf
922678f
f3dddaf
d6d1b32
f3dddaf
 
 
 
 
b827b19
 
 
f3dddaf
 
 
277d8e8
 
 
 
 
 
d6d1b32
 
 
277d8e8
f3dddaf
b827b19
 
 
277d8e8
 
d6d1b32
 
277d8e8
 
 
 
 
 
db2e240
 
 
 
277d8e8
 
d6d1b32
b827b19
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import os
import requests
import base64
import io
import gradio as gr
from PIL import Image

API_KEY = os.getenv("NVIDIA_API_KEY")
INVOKE_URL = "https://ai.api.nvidia.com/v1/genai/black-forest-labs/flux.2-klein-4b"

HEADERS = {
    "Authorization": f"Bearer {API_KEY}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}

def generate_or_edit(prompt, input_image=None):
    payload = {
        "prompt": prompt,
        "width": 1024,
        "height": 1024,
        "seed": 0,
        "steps": 4
    }

    if input_image is not None:
        buffered = io.BytesIO()
        input_image.save(buffered, format="PNG")
        img_str = base64.b64encode(buffered.getvalue()).decode()
        payload["image"] = img_str

    try:
        response = requests.post(INVOKE_URL, headers=HEADERS, json=payload)
        response.raise_for_status()
        result = response.json()
        
        # अब हम सीधे उस स्ट्रक्चर का उपयोग कर रहे हैं जो आपने दिखाया है
        image_b64 = result["artifacts"][0]["base64"]
        image_data = base64.b64decode(image_b64)
            
        return Image.open(io.BytesIO(image_data))
        
    except Exception as e:
        print(f"Error: {e}")
        return None

# Gradio इंटरफ़ेस
with gr.Blocks() as demo:
    gr.Markdown("# Vedika AI - Image Studio")
    prompt_input = gr.Textbox(label="Prompt")
    image_input = gr.Image(label="Input Image (Optional)", type="pil")
    submit_btn = gr.Button("Generate")
    result_output = gr.Image(label="Result")

    submit_btn.click(fn=generate_or_edit, inputs=[prompt_input, image_input], outputs=result_output)

demo.launch(server_name="0.0.0.0", server_port=7860)