API dashboard : https://api-dashboard.fotographer.ai/login.html
Install the SDK using pip:
pip install fai-gensdk
Note : when sending a request, please make sure to update your_api_key
and [email protected]
with the actual values in the example usage section.
1 credit / call
Here’s an example of how to use the InstantLight SDK to make an API call and handle the response:
from InstantLight import InstantLightSDK
from PIL import Image
import base64
from io import BytesIO
# Initialize the SDK
sdk = InstantLightSDK(
base_url='<https://api.fotographer.ai/instantLight>',
api_key='your_api_key',
email='[email protected]'
)
# Convert images to base64
def image_to_base64(image_path):
with Image.open(image_path) as img:
buffered = BytesIO()
img.save(buffered, format="PNG")
return base64.b64encode(buffered.getvalue()).decode('utf-8')
# Prepare the image data
foreground_image64 = image_to_base64('path_to_foreground_image.png')
background_image64 = image_to_base64('path_to_background_image.png')
# Example mode 0: Edit Light With a Prompt
# Mode 0 is used to edit the light in an image using a prompt.
image_data_mode_0 = {
"foreground_image64": foreground_image64,
"background_image64": background_image64,
"prompt": "neon light",
"mode": 0,
"prompt_strength": 3.0,
"inf_factor": 1.00,
"mask_strength": 0.5,
"image_width": 1400,
"image_height": 1400,
"additional_prompt": "",
"negative_prompt": "",
"lights": [] # Specify the lighting parameters as needed
}
# Example mode 1: Edit Light With a Prompt
# Mode 1 is used to edit the light in an image using a prompt.
image_data_mode_1 = {
"foreground_image64": foreground_image64,
"background_image64": background_image64,
"prompt": "neon light",
"mode": 1,
"prompt_strength": 3.0,
"inf_factor": 1.00,
"mask_strength": 0.5,
"image_width": 1400,
"image_height": 1400,
"additional_prompt": "",
"negative_prompt": "",
"lights": [] # Specify the lighting parameters as needed
}
# Example mode 2: Edit Light and Change Background
# Mode 2 is used to edit the light and change the background of an image.
image_data_mode_2 = {
"foreground_image64": foreground_image64,
"background_image64": background_image64,
"prompt": "sunset background",
"mode": 2,
"prompt_strength": 3.0,
"inf_factor": 1.00,
"mask_strength": 0.5,
"image_width": 1400,
"image_height": 1400,
"additional_prompt": "",
"negative_prompt": "",
"lights": [] # Specify the lighting parameters as needed
}
# Select the desired mode for the example
image_data = image_data_mode_2
# Make the API call
response = sdk.image_generation.get_image_gen(image_data)
# Print the response keys for debugging
print("Response Keys:", response.keys())
# Print the keys at all levels of the response for debugging
for key, value in response.items():
if isinstance(value, dict):
print(f"Response[{key}] Keys: {value.keys()}")
# Save the image and mask image if they exist in the response
if 'image' in response:
image_data = response['image']
image_bytes = base64.b64decode(image_data)
image = Image.open(BytesIO(image_bytes))
image.save("output_image.png")
print("Image retrieved and saved as output_image.png.")
if 'mask_image' in response:
mask_data = response['mask_image']
mask_bytes = base64.b64decode(mask_data)
mask_image = Image.open(BytesIO(mask_bytes))
mask_image.save("output_mask_image.png")
print("Mask retrieved and saved as output_mask_image.png.")
else:
print("Response does not contain 'image'")
Make sure to update your_api_key
and [email protected]
with the actual values in the example usage section.
1 credit / call
from FAImageGen import ImageGen as FAImageGenSDK
from PIL import Image
import base64
from io import BytesIO
# Initialize the SDK API
api = FAImageGenSDK(
base_url='<https://api.fotographer.ai/Image-gen>',
api_key='your_api_key',
email='[email protected]'
)
# Convert images to base64
def image_to_base64(image_path):
with Image.open(image_path) as img:
buffered = BytesIO()
img.save(buffered, format="PNG")
return base64.b64encode(buffered.getvalue()).decode('utf-8')
# Prepare the image data
image_path = 'path_to_foreground_image.png'
prompt = 'a black perfume bottle on top of mountain in front of the sea'
try:
# Make the API call
response = api.image_generation.get_image_gen(image_path, prompt)
# Print the response keys for debugging
# logging.debug("Response Keys: %s", response.keys())
# Print the keys at all levels of the response for debugging
for key, value in response.items():
if isinstance(value, dict):
logging.debug(f"Response[{key}] Keys: %s", value.keys())
# Save the image and mask image if they exist in the response
if 'image' in response:
logging.debug("Success")
else:
logging.debug("Response does not contain 'image'")
except requests.exceptions.RequestException as e:
logging.error(f"HTTP error occurred: {e}")
if hasattr(e, 'response') and e.response is not None:
logging.error(f"Response content: {e.response.content}")
except Exception as e:
logging.error("An unexpected error occurred: %s", e)