FAW-AI-APP / fal_api.py
JarvisLabs's picture
Upload 12 files
34492bf verified
import base64
from fal_client import FalClient
from src.utils import numpy_to_base64,resize_image
import json
# Initialize FalClient
fal_client = FalClient()
styles_dic= json.dump(open("src/styles.json"))
def fal_api(prompt,ar,nis,seed,style,model="fal-ai/flux-general"):
inputs={
"prompt":prompt,
"num_inference_steps":nis,
}
if ar is not None:
inputs["image_size"]=ar
if seed is not None:
inputs["seed"]=seed
if style is not None:
style_type=styles_dic[style][1]
if style_type=="model":
model=styles_dic[style][0]
if style_type=="lora":
#inputs["LoraWeight"]=styles_dic[style][0]
inputs["loras"]= { "path": styles_dic[style][0]},
if len(styles_dic[style])==3: #Add in prompt triggers
inputs["prompt"]+=styles_dic[style][2]
if style_type=="prompt":
inputs["prompt"]+=styles_dic[style][0]
handler = fal_client.submit(
model,
arguments=inputs
)
return handler.get()["images"][0]["url"]
def fal_ipadapter_api(input_image,ip_image,seg_prompt):
print(input_image,ip_image,seg_prompt)
handler = fal_client.submit(
"comfy/JarvisSan22/cloth_ipadapter",
arguments={
"loadimage_1":numpy_to_base64(input_image),
"loadimage_2":numpy_to_base64(ip_image),
"groundingdinosamsegment (segment anything)_prompt":seg_prompt
},
)
print(handler)
result= handler.get()
#image_urls=[]
print(result["outputs"])
#print(result)
return result["outputs"]["20"]["images"][0]["url"]