mirror of
https://github.com/deepseek-ai/Janus.git
synced 2025-02-22 13:48:57 -05:00
Create fastapi_client.py
This commit is contained in:
parent
4ff169a19a
commit
d93eaeee96
78
demo/fastapi_client.py
Normal file
78
demo/fastapi_client.py
Normal file
@ -0,0 +1,78 @@
|
||||
import requests
|
||||
from PIL import Image
|
||||
import io
|
||||
# Endpoint URLs
|
||||
understand_image_url = "http://localhost:8000/understand_image_and_question/"
|
||||
generate_images_url = "http://localhost:8000/generate_images/"
|
||||
|
||||
# Use your image file path here
|
||||
image_path = "images/equation.png"
|
||||
|
||||
# Function to call the image understanding endpoint
|
||||
def understand_image_and_question(image_path, question, seed=42, top_p=0.95, temperature=0.1):
|
||||
files = {'file': open(image_path, 'rb')}
|
||||
data = {
|
||||
'question': question,
|
||||
'seed': seed,
|
||||
'top_p': top_p,
|
||||
'temperature': temperature
|
||||
}
|
||||
response = requests.post(understand_image_url, files=files, data=data)
|
||||
response_data = response.json()
|
||||
print("Image Understanding Response:", response_data['response'])
|
||||
|
||||
|
||||
# Function to call the text-to-image generation endpoint
|
||||
def generate_images(prompt, seed=None, guidance=5.0):
|
||||
data = {
|
||||
'prompt': prompt,
|
||||
'seed': seed,
|
||||
'guidance': guidance
|
||||
}
|
||||
response = requests.post(generate_images_url, data=data, stream=True)
|
||||
|
||||
if response.ok:
|
||||
img_idx = 1
|
||||
|
||||
# We will create a new BytesIO for each image
|
||||
buffers = {}
|
||||
|
||||
try:
|
||||
for chunk in response.iter_content(chunk_size=1024):
|
||||
if chunk:
|
||||
# Use a boundary detection to determine new image start
|
||||
if img_idx not in buffers:
|
||||
buffers[img_idx] = io.BytesIO()
|
||||
|
||||
buffers[img_idx].write(chunk)
|
||||
|
||||
# Attempt to open the image
|
||||
try:
|
||||
buffer = buffers[img_idx]
|
||||
buffer.seek(0)
|
||||
image = Image.open(buffer)
|
||||
img_path = f"generated_image_{img_idx}.png"
|
||||
image.save(img_path)
|
||||
print(f"Saved: {img_path}")
|
||||
|
||||
# Prepare the next image buffer
|
||||
buffer.close()
|
||||
img_idx += 1
|
||||
|
||||
except Exception as e:
|
||||
# Continue loading data into the current buffer
|
||||
continue
|
||||
|
||||
except Exception as e:
|
||||
print("Error processing image:", e)
|
||||
else:
|
||||
print("Failed to generate images.")
|
||||
|
||||
|
||||
# Example usage
|
||||
if __name__ == "__main__":
|
||||
# Call the image understanding API
|
||||
understand_image_and_question(image_path, "What is this image about?")
|
||||
|
||||
# Call the image generation API
|
||||
generate_images("A beautiful sunset over a mountain range, digital art.")
|
Loading…
Reference in New Issue
Block a user