File size: 2,269 Bytes
8247a04 |
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
import requests
import io
from PIL import Image
import os
from dotenv import load_dotenv
# Load environment variables from .env file
load_dotenv()
# Hugging Face API token (need to set in .env or environment)
HF_TOKEN = os.getenv("HF_TOKEN")
# API base URL
API_BASE = "http://localhost:8000"
def text_to_image(prompt, model=None, negative_prompt=None):
"""
Generate image from text using the API
"""
url = f"{API_BASE}/text-to-image"
# Prepare form data
data = {
"prompt": prompt,
}
if model:
data["model"] = model
if negative_prompt:
data["negative_prompt"] = negative_prompt
# Make API request
response = requests.post(url, data=data)
if response.status_code == 200:
# Convert response to PIL image
image = Image.open(io.BytesIO(response.content))
return image
else:
print(f"Error: {response.status_code}")
print(response.text)
return None
def image_to_image(image_path, prompt=None, model=None):
"""
Transform image using the API
"""
url = f"{API_BASE}/image-to-image"
# Prepare form data and files
data = {}
if prompt:
data["prompt"] = prompt
if model:
data["model"] = model
files = {
"image": open(image_path, "rb")
}
# Make API request
response = requests.post(url, data=data, files=files)
if response.status_code == 200:
# Convert response to PIL image
image = Image.open(io.BytesIO(response.content))
return image
else:
print(f"Error: {response.status_code}")
print(response.text)
return None
if __name__ == "__main__":
# Example usage
print("Text to Image example:")
image = text_to_image("A beautiful mountain landscape at sunset")
if image:
image.save("text2img_output.png")
print("Image saved as text2img_output.png")
print("Image to Image example (requires an input image):")
# Uncomment and modify path to run:
# result = image_to_image("input.png", "Turn this into a fantasy scene")
# if result:
# result.save("img2img_output.png")
# print("Image saved as img2img_output.png")
|