|
import os |
|
import sys |
|
import numpy as np |
|
from PIL import Image |
|
import requests |
|
from io import BytesIO |
|
|
|
root = os.path.dirname(os.path.abspath(__file__)) |
|
sys.path.append(root) |
|
os.chdir(root) |
|
|
|
import modules.config |
|
import modules.html |
|
import modules.flags as flags |
|
import modules.meta_parser |
|
|
|
def download_image(url): |
|
response = requests.get(url) |
|
img = Image.open(BytesIO(response.content)).convert("RGB") |
|
return img |
|
|
|
def trigger_describe(mode, img_path): |
|
print("Running") |
|
print("Press Ctrl+C for Stop ") |
|
if mode == flags.desc_type_photo: |
|
from extras.interrogate import default_interrogator as default_interrogator_photo |
|
if img_path.startswith('http'): |
|
img = download_image(img_path) |
|
else: |
|
img = Image.open(img_path).convert("RGB") |
|
return default_interrogator_photo(img), ["Fooocus V2", "Fooocus Enhance", "Fooocus Sharp"] |
|
elif mode == flags.desc_type_anime: |
|
from extras.wd14tagger import default_interrogator as default_interrogator_anime |
|
if img_path.startswith('http'): |
|
img = download_image(img_path) |
|
elif isinstance(img_path, str): |
|
|
|
img = Image.open(img_path).convert("RGB") |
|
elif isinstance(img_path, np.ndarray): |
|
|
|
img = Image.fromarray(img_path).convert("RGB") |
|
else: |
|
raise ValueError("Invalid image format. Please provide a valid path or NumPy array.") |
|
|
|
|
|
img_array = np.array(img) |
|
|
|
return default_interrogator_anime(img_array), ["Fooocus V2", "Fooocus Masterpiece"] |
|
return mode, ["Fooocus V2"] |
|
|
|
style_selections = modules.config.default_styles |
|
|
|
def run_describe(image_path, content_type): |
|
desc_input_image = image_path |
|
desc_method = content_type |
|
|
|
result, style_selections = None, None |
|
|
|
if desc_method in ["Photograph", "1", ""]: |
|
desc_method = "Photograph (1)" |
|
result, style_selections = trigger_describe(flags.desc_type_photo, desc_input_image) |
|
elif desc_method in ["Art/Anime", "2"]: |
|
desc_method = "Art/Anime (2)" |
|
result, style_selections = trigger_describe(flags.desc_type_anime, desc_input_image) |
|
else: |
|
print("ERROR!") |
|
|
|
if result or style_selections != "": |
|
style_selections = "" |
|
print("Result:", result) |
|
|
|
quit() |
|
|
|
if __name__ == "__main__": |
|
desc_input_image = input("Path to Image (local path or URL): ") |
|
|
|
if desc_input_image == "": |
|
desc_input_image = "./imgs/Gambar1.jpg" |
|
|
|
print(f"You use: {desc_input_image}") |
|
|
|
desc_method = input( |
|
""" |
|
Select Content Type: |
|
Photograph (1) |
|
Art/Anime (2) |
|
""" |
|
) |
|
|
|
run_describe(desc_input_image, desc_method) |
|
|