Seed and Use main image as image conditioner by default
Browse files
app.py
CHANGED
@@ -605,7 +605,7 @@ def generate_ai_image_local (
|
|
605 |
return None
|
606 |
|
607 |
|
608 |
-
def generate_input_image_click(map_option, prompt_textbox_value, negative_prompt_textbox_value, model_textbox_value, randomize_seed=True, seed=None, use_conditioned_image=False, strength=0.5, image_format="16:9", scale_factor=(8/3), progress=gr.Progress(track_tqdm=True)):
|
609 |
if randomize_seed:
|
610 |
seed = random.randint(0, constants.MAX_SEED)
|
611 |
|
@@ -613,6 +613,7 @@ def generate_input_image_click(map_option, prompt_textbox_value, negative_prompt
|
|
613 |
model, lora_weights = get_model_and_lora(model_textbox_value)
|
614 |
global current_prerendered_image
|
615 |
conditioned_image=None
|
|
|
616 |
|
617 |
if use_conditioned_image:
|
618 |
print(f"Conditioned path: {current_prerendered_image.value}.. converting to RGB\n")
|
@@ -620,6 +621,11 @@ def generate_input_image_click(map_option, prompt_textbox_value, negative_prompt
|
|
620 |
if isinstance(current_prerendered_image.value, str):
|
621 |
conditioned_image = open_image(current_prerendered_image.value).convert("RGB")
|
622 |
print(f"Conditioned Image: {conditioned_image.size}.. converted to RGB\n")
|
|
|
|
|
|
|
|
|
|
|
623 |
|
624 |
# Convert image_format from a string split by ":" into two numbers divided
|
625 |
width_ratio, height_ratio = map(int, image_format.split(":"))
|
@@ -649,19 +655,19 @@ def generate_input_image_click(map_option, prompt_textbox_value, negative_prompt
|
|
649 |
image = Image.open(image_path).convert("RGBA")
|
650 |
except Exception as e:
|
651 |
print(f"Failed to open generated image: {e}")
|
652 |
-
return image_path # Return the original image path if opening fails
|
653 |
|
654 |
# Upscale the image
|
655 |
upscaled_image = upscale_image(image, scale_factor)
|
656 |
|
657 |
# Save the upscaled image to a temporary file
|
658 |
-
with NamedTemporaryFile(delete=False, suffix=".png") as tmp_upscaled:
|
659 |
upscaled_image.save(tmp_upscaled.name, format="PNG")
|
660 |
constants.temp_files.append(tmp_upscaled.name)
|
661 |
print(f"Upscaled image saved to {tmp_upscaled.name}")
|
662 |
gc.collect()
|
663 |
# Return the path of the upscaled image
|
664 |
-
return tmp_upscaled.name
|
665 |
|
666 |
def update_prompt_visibility(map_option):
|
667 |
is_visible = (map_option == "Prompt")
|
@@ -879,7 +885,7 @@ examples = [["assets//examples//hex_map_p1.png", 32, 1, 0, 0, 0, 0, 0, "#ede9ac4
|
|
879 |
gr.set_static_paths(paths=["images/","images/images","images/prerendered","LUT/","fonts/"])
|
880 |
|
881 |
# Gradio Blocks Interface
|
882 |
-
with gr.Blocks(css_paths="style_20250128.css", title=title, theme='Surn/beeuty') as hexaGrid:
|
883 |
with gr.Row():
|
884 |
gr.Markdown("""
|
885 |
# HexaGrid Creator
|
@@ -1082,12 +1088,12 @@ with gr.Blocks(css_paths="style_20250128.css", title=title, theme='Surn/beeuty')
|
|
1082 |
)
|
1083 |
with gr.Row():
|
1084 |
generate_input_image = gr.Button(
|
1085 |
-
"Generate
|
1086 |
elem_id="generate_input_image",
|
1087 |
elem_classes="solid"
|
1088 |
)
|
1089 |
with gr.Column(scale=2):
|
1090 |
-
with gr.Accordion("Template
|
1091 |
with gr.Row():
|
1092 |
with gr.Column(scale=2):
|
1093 |
# Gallery from PRE_RENDERED_IMAGES GOES HERE
|
@@ -1100,7 +1106,7 @@ with gr.Blocks(css_paths="style_20250128.css", title=title, theme='Surn/beeuty')
|
|
1100 |
elem_classes="solid"
|
1101 |
)
|
1102 |
generate_input_image_from_gallery = gr.Button(
|
1103 |
-
"Generate AI Image from
|
1104 |
elem_id="generate_input_image_from_gallery",
|
1105 |
elem_classes="solid"
|
1106 |
)
|
@@ -1223,8 +1229,8 @@ with gr.Blocks(css_paths="style_20250128.css", title=title, theme='Surn/beeuty')
|
|
1223 |
)
|
1224 |
generate_input_image.click(
|
1225 |
fn=generate_input_image_click,
|
1226 |
-
inputs=[map_options, prompt_textbox, negative_prompt_textbox, model_textbox, randomize_seed, seed_slider, gr.State(False), gr.State(0.5), image_size_ratio],
|
1227 |
-
outputs=[input_image], scroll_to_output=True
|
1228 |
)
|
1229 |
generate_depth_button.click(
|
1230 |
fn=generate_depth_button_click,
|
@@ -1255,8 +1261,8 @@ with gr.Blocks(css_paths="style_20250128.css", title=title, theme='Surn/beeuty')
|
|
1255 |
#use conditioned_image as the input_image for generate_input_image_click
|
1256 |
generate_input_image_from_gallery.click(
|
1257 |
fn=generate_input_image_click,
|
1258 |
-
inputs=[map_options, prompt_textbox, negative_prompt_textbox, model_textbox,randomize_seed, seed_slider, gr.State(True), image_guidance_stength, image_size_ratio],
|
1259 |
-
outputs=[input_image], scroll_to_output=True
|
1260 |
)
|
1261 |
|
1262 |
# Update the state variable with the prerendered image filepath when an image is selected
|
|
|
605 |
return None
|
606 |
|
607 |
|
608 |
+
def generate_input_image_click(image_input, map_option, prompt_textbox_value, negative_prompt_textbox_value, model_textbox_value, randomize_seed=True, seed=None, use_conditioned_image=False, strength=0.5, image_format="16:9", scale_factor=(8/3), progress=gr.Progress(track_tqdm=True)):
|
609 |
if randomize_seed:
|
610 |
seed = random.randint(0, constants.MAX_SEED)
|
611 |
|
|
|
613 |
model, lora_weights = get_model_and_lora(model_textbox_value)
|
614 |
global current_prerendered_image
|
615 |
conditioned_image=None
|
616 |
+
formatted_map_option = map_option.lower().replace(' ', '_')
|
617 |
|
618 |
if use_conditioned_image:
|
619 |
print(f"Conditioned path: {current_prerendered_image.value}.. converting to RGB\n")
|
|
|
621 |
if isinstance(current_prerendered_image.value, str):
|
622 |
conditioned_image = open_image(current_prerendered_image.value).convert("RGB")
|
623 |
print(f"Conditioned Image: {conditioned_image.size}.. converted to RGB\n")
|
624 |
+
# use image_input as the conditioned_image if it is not None
|
625 |
+
elif image_input is not None:
|
626 |
+
conditioned_image = open_image(image_input).convert("RGB")
|
627 |
+
print(f"Conditioned Image set to modify Input Image!\nClear to generate new image.")
|
628 |
+
gr.Info("Conditioned Image set to modify Input Image! Clear to generate new image",duration=5)
|
629 |
|
630 |
# Convert image_format from a string split by ":" into two numbers divided
|
631 |
width_ratio, height_ratio = map(int, image_format.split(":"))
|
|
|
655 |
image = Image.open(image_path).convert("RGBA")
|
656 |
except Exception as e:
|
657 |
print(f"Failed to open generated image: {e}")
|
658 |
+
return image_path, seed # Return the original image path if opening fails
|
659 |
|
660 |
# Upscale the image
|
661 |
upscaled_image = upscale_image(image, scale_factor)
|
662 |
|
663 |
# Save the upscaled image to a temporary file
|
664 |
+
with NamedTemporaryFile(delete=False, suffix=".png", prefix=f"{formatted_map_option}_") as tmp_upscaled:
|
665 |
upscaled_image.save(tmp_upscaled.name, format="PNG")
|
666 |
constants.temp_files.append(tmp_upscaled.name)
|
667 |
print(f"Upscaled image saved to {tmp_upscaled.name}")
|
668 |
gc.collect()
|
669 |
# Return the path of the upscaled image
|
670 |
+
return tmp_upscaled.name, seed
|
671 |
|
672 |
def update_prompt_visibility(map_option):
|
673 |
is_visible = (map_option == "Prompt")
|
|
|
885 |
gr.set_static_paths(paths=["images/","images/images","images/prerendered","LUT/","fonts/"])
|
886 |
|
887 |
# Gradio Blocks Interface
|
888 |
+
with gr.Blocks(css_paths="style_20250128.css", title=title, theme='Surn/beeuty',delete_cache=(21600,86400)) as hexaGrid:
|
889 |
with gr.Row():
|
890 |
gr.Markdown("""
|
891 |
# HexaGrid Creator
|
|
|
1088 |
)
|
1089 |
with gr.Row():
|
1090 |
generate_input_image = gr.Button(
|
1091 |
+
"Generate from Input Image & Options ",
|
1092 |
elem_id="generate_input_image",
|
1093 |
elem_classes="solid"
|
1094 |
)
|
1095 |
with gr.Column(scale=2):
|
1096 |
+
with gr.Accordion("Template Images", open = False):
|
1097 |
with gr.Row():
|
1098 |
with gr.Column(scale=2):
|
1099 |
# Gallery from PRE_RENDERED_IMAGES GOES HERE
|
|
|
1106 |
elem_classes="solid"
|
1107 |
)
|
1108 |
generate_input_image_from_gallery = gr.Button(
|
1109 |
+
"Generate AI Image from Template Image & Options",
|
1110 |
elem_id="generate_input_image_from_gallery",
|
1111 |
elem_classes="solid"
|
1112 |
)
|
|
|
1229 |
)
|
1230 |
generate_input_image.click(
|
1231 |
fn=generate_input_image_click,
|
1232 |
+
inputs=[input_image,map_options, prompt_textbox, negative_prompt_textbox, model_textbox, randomize_seed, seed_slider, gr.State(False), gr.State(0.5), image_size_ratio],
|
1233 |
+
outputs=[input_image, seed_slider], scroll_to_output=True
|
1234 |
)
|
1235 |
generate_depth_button.click(
|
1236 |
fn=generate_depth_button_click,
|
|
|
1261 |
#use conditioned_image as the input_image for generate_input_image_click
|
1262 |
generate_input_image_from_gallery.click(
|
1263 |
fn=generate_input_image_click,
|
1264 |
+
inputs=[input_image, map_options, prompt_textbox, negative_prompt_textbox, model_textbox,randomize_seed, seed_slider, gr.State(True), image_guidance_stength, image_size_ratio],
|
1265 |
+
outputs=[input_image, seed_slider], scroll_to_output=True
|
1266 |
)
|
1267 |
|
1268 |
# Update the state variable with the prerendered image filepath when an image is selected
|
images/prerendered/th/{Hex_gen_map.PNG → Hex_gen_map.png}
RENAMED
File without changes
|
images/prerendered/th/{cute3dkawaii.PNG → cute3dkawaii.png}
RENAMED
File without changes
|
utils/constants.py
CHANGED
@@ -50,9 +50,9 @@ def load_env_vars(env_path):
|
|
50 |
print(f"Warning: .env file not found at {env_path}")
|
51 |
|
52 |
# Set the temporary folder location
|
53 |
-
#os.environ['TEMP'] = r'e:\\TMP'
|
54 |
-
#os.environ['TMPDIR'] = r'e:\\TMP'
|
55 |
-
#os.environ['XDG_CACHE_HOME'] = r'E:\\cache'
|
56 |
|
57 |
HF_API_TOKEN = os.getenv("HF_TOKEN")
|
58 |
if not HF_API_TOKEN:
|
@@ -62,7 +62,7 @@ default_lut_example_img = "./LUT/daisy.jpg"
|
|
62 |
MAX_SEED = np.iinfo(np.int32).max
|
63 |
TARGET_SIZE = (2688,1536)
|
64 |
#TMPDIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'tmp')
|
65 |
-
#os.makedirs(
|
66 |
|
67 |
|
68 |
PROMPTS = {
|
@@ -93,7 +93,7 @@ NEGATIVE_PROMPTS = {
|
|
93 |
PRERENDER_DIR = "images/prerendered"
|
94 |
|
95 |
# # List of pre-rendered hexagon map files
|
96 |
-
# PRE_RENDERED_MAPS = ['alien_orb_land_1.png', 'alien_prarie_1.png', 'alien_world_1.png', 'alien_world_2.png', 'alien_world_3.png', 'alien_world_4.png', 'alien_world_5.png', 'BurntCity.png', 'canyon_water_1.png', 'CONQ_Caustic_Valley.png', 'CONQ_Frozen_City.png', 'CONQ_Hellebore_Springs.png', 'CONQ_Terra_Therma.png', 'CONQ_Viridian_Bog.png', 'cute3dkawaii.PNG', 'dark_dirt_elevations_1.png', 'donald_park.png', 'elevated_peninsula_1.png', 'Firefly_alien_canyons_1.png', 'Firefly_alien_canyons_2.png', 'Firefly_alien_dry_canyons_1.png', 'Firefly_alien_dry_canyons_2.png', 'Firefly_alien_map_1.png', 'Firefly_hpg_terrain_1.png', 'Firefly_hpg_terrain_2.png', 'Firefly_river_dry_1.png', 'Firefly_river_running_1.png', 'Firefly_topographical_alien_desert_1.png', 'Firefly_topographical_canyon_1.png', 'Firefly_topographical_height_map_1.png', 'Firefly_topographical_height_map_2.png', 'Firefly_topographical_height_map_3.png', 'Firefly_topographical_height_map_5.png', 'Firefly_topographical_height_map_6.png', 'Firefly_topographical_marble_1.png', 'Firefly_topographical_moon_1.png', 'fractal_islands.png', 'Genison.png', 'green_farming_alien_world_1.png', 'green_farming_alien_world_2.png', 'grey_barren_alien_world_1.png', 'grey_barren_alien_world_2.png', 'grey_barren_alien_world_3.png', 'grey_barren_alien_world_4.png', 'grey_barren_alien_world_5.png', 'grey_barren_alien_world_6.png', 'grey_barren_alien_world_7.png', 'grey_waterless_alien_world_map.png', 'grid_1.png', 'Hex_gen_map.
|
97 |
|
98 |
# # Create full paths for pre-rendered maps
|
99 |
# pre_rendered_maps_paths = [os.path.join(PRERENDER_DIR, map_file).replace("\\", "/") for map_file in PRE_RENDERED_MAPS]
|
@@ -105,7 +105,7 @@ PRERENDER_DIR = "images/prerendered"
|
|
105 |
# for file in PRE_RENDERED_MAPS
|
106 |
#}
|
107 |
#PRE_RENDERED_MAPS_JSON
|
108 |
-
#{'alien orb land 1': 'images/prerendered/alien_orb_land_1.png', 'alien prarie 1': 'images/prerendered/alien_prarie_1.png', 'alien world 1': 'images/prerendered/alien_world_1.png', 'alien world 2': 'images/prerendered/alien_world_2.png', 'alien world 3': 'images/prerendered/alien_world_3.png', 'alien world 4': 'images/prerendered/alien_world_4.png', 'alien world 5': 'images/prerendered/alien_world_5.png', 'BurntCity': 'images/prerendered/BurntCity.png', 'canyon water 1': 'images/prerendered/canyon_water_1.png', 'CONQ Caustic Valley': 'images/prerendered/CONQ_Caustic_Valley.png', 'CONQ Frozen City': 'images/prerendered/CONQ_Frozen_City.png', 'CONQ Hellebore Springs': 'images/prerendered/CONQ_Hellebore_Springs.png', 'CONQ Terra Therma': 'images/prerendered/CONQ_Terra_Therma.png', 'CONQ Viridian Bog': 'images/prerendered/CONQ_Viridian_Bog.png', 'cute3dkawaii': 'images/prerendered/cute3dkawaii.
|
109 |
##PRE_RENDERED_MAPS_JSON = { key: { 'file': value, 'quality': 0 } for key, value in PRE_RENDERED_MAPS_JSON.items()}
|
110 |
PRE_RENDERED_MAPS_JSON_LEVELS = {
|
111 |
'alien orb land 1': {'file': 'images/prerendered/alien_orb_land_1.png', 'thumbnail': 'images/prerendered/th/alien_orb_land_1.png', 'quality': 0},
|
@@ -122,7 +122,7 @@ PRE_RENDERED_MAPS_JSON_LEVELS = {
|
|
122 |
'CONQ Hellebore Springs': {'file': 'images/prerendered/CONQ_Hellebore_Springs.png', 'thumbnail': 'images/prerendered/th/CONQ_Hellebore_Springs.png', 'quality': 2},
|
123 |
'CONQ Terra Therma': {'file': 'images/prerendered/CONQ_Terra_Therma.png', 'thumbnail': 'images/prerendered/th/CONQ_Terra_Therma.png', 'quality': 1},
|
124 |
'CONQ Viridian Bog': {'file': 'images/prerendered/CONQ_Viridian_Bog.png', 'thumbnail': 'images/prerendered/th/CONQ_Viridian_Bog.png', 'quality': 1},
|
125 |
-
'cute3dkawaii': {'file': 'images/prerendered/cute3dkawaii.
|
126 |
'dark dirt elevations 1': {'file': 'images/prerendered/dark_dirt_elevations_1.png', 'thumbnail': 'images/prerendered/th/dark_dirt_elevations_1.png', 'quality': 0},
|
127 |
'donald park': {'file': 'images/prerendered/donald_park.png', 'thumbnail': 'images/prerendered/th/donald_park.png', 'quality': 0},
|
128 |
'elevated peninsula 1': {'file': 'images/prerendered/elevated_peninsula_1.png', 'thumbnail': 'images/prerendered/th/elevated_peninsula_1.png', 'quality': 0},
|
@@ -157,7 +157,7 @@ PRE_RENDERED_MAPS_JSON_LEVELS = {
|
|
157 |
'grey barren alien world 7': {'file': 'images/prerendered/grey_barren_alien_world_7.png', 'thumbnail': 'images/prerendered/th/grey_barren_alien_world_7.png', 'quality': 3},
|
158 |
'grey waterless alien world map': {'file': 'images/prerendered/grey_waterless_alien_world_map.png', 'thumbnail': 'images/prerendered/th/grey_waterless_alien_world_map.png', 'quality': 3},
|
159 |
'grid 1': {'file': 'images/prerendered/grid_1.png', 'thumbnail': 'images/prerendered/th/grid_1.png', 'quality': 0},
|
160 |
-
'Hex gen map': {'file': 'images/prerendered/Hex_gen_map.
|
161 |
'hex grass dirty': {'file': 'images/prerendered/hex_grass_dirty.png', 'thumbnail': 'images/prerendered/th/hex_grass_dirty.png', 'quality': 0},
|
162 |
'hex military industrial alien world map': {'file': 'images/prerendered/hex_military_industrial_alien_world_map.png', 'thumbnail': 'images/prerendered/th/hex_military_industrial_alien_world_map.png', 'quality': 3},
|
163 |
'hex mixed elevations battlefield 1': {'file': 'images/prerendered/hex_mixed_elevations_battlefield_1.png', 'thumbnail': 'images/prerendered/th/hex_mixed_elevations_battlefield_1.png', 'quality': 0},
|
@@ -251,7 +251,7 @@ LORA_DETAILS = {
|
|
251 |
"trigger_words": "anime,",
|
252 |
},
|
253 |
{
|
254 |
-
"notes": "You should use ',anime' as trigger words at the end.
|
255 |
},
|
256 |
{
|
257 |
"parameters" :{
|
@@ -268,7 +268,7 @@ LORA_DETAILS = {
|
|
268 |
"trigger_words": "scenery style,",
|
269 |
},
|
270 |
{
|
271 |
-
"notes": "You should use ',scenery style' as trigger words at the end.
|
272 |
},
|
273 |
{
|
274 |
"parameters" :{
|
@@ -285,7 +285,7 @@ LORA_DETAILS = {
|
|
285 |
"trigger_words": "disney style,",
|
286 |
},
|
287 |
{
|
288 |
-
"notes": "You should use ',disney style' as trigger words at the end.
|
289 |
},
|
290 |
{
|
291 |
"parameters" :{
|
@@ -295,7 +295,7 @@ LORA_DETAILS = {
|
|
295 |
],
|
296 |
"XLabs-AI/flux-RealismLora":[
|
297 |
{
|
298 |
-
"notes": "No trigger words but 8k, Animatrix illustration style, fantasy style, natural photo cinematic should all work
|
299 |
},
|
300 |
{
|
301 |
"parameters" :{
|
@@ -314,7 +314,7 @@ LORA_DETAILS = {
|
|
314 |
"trigger_words": "FRM$",
|
315 |
},
|
316 |
{
|
317 |
-
"notes": "
|
318 |
},
|
319 |
{
|
320 |
"parameters" :{
|
@@ -343,7 +343,7 @@ LORA_DETAILS = {
|
|
343 |
],
|
344 |
"Shakker-Labs/FLUX.1-dev-LoRA-Logo-Design": [
|
345 |
{
|
346 |
-
"notes": "
|
347 |
},
|
348 |
{
|
349 |
"trigger_words": "wablogo, logo, Minimalist ",
|
@@ -361,7 +361,7 @@ LORA_DETAILS = {
|
|
361 |
],
|
362 |
"Borcherding/FLUX.1-dev-LoRA-FractalLand-v0.1": [
|
363 |
{
|
364 |
-
"notes": "
|
365 |
},
|
366 |
{
|
367 |
"trigger_words": "fractalLand ",
|
|
|
50 |
print(f"Warning: .env file not found at {env_path}")
|
51 |
|
52 |
# Set the temporary folder location
|
53 |
+
# os.environ['TEMP'] = r'e:\\TMP'
|
54 |
+
# os.environ['TMPDIR'] = r'e:\\TMP'
|
55 |
+
# os.environ['XDG_CACHE_HOME'] = r'E:\\cache'
|
56 |
|
57 |
HF_API_TOKEN = os.getenv("HF_TOKEN")
|
58 |
if not HF_API_TOKEN:
|
|
|
62 |
MAX_SEED = np.iinfo(np.int32).max
|
63 |
TARGET_SIZE = (2688,1536)
|
64 |
#TMPDIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'tmp')
|
65 |
+
#os.makedirs(TMPDIR, exist_ok=True)
|
66 |
|
67 |
|
68 |
PROMPTS = {
|
|
|
93 |
PRERENDER_DIR = "images/prerendered"
|
94 |
|
95 |
# # List of pre-rendered hexagon map files
|
96 |
+
# PRE_RENDERED_MAPS = ['alien_orb_land_1.png', 'alien_prarie_1.png', 'alien_world_1.png', 'alien_world_2.png', 'alien_world_3.png', 'alien_world_4.png', 'alien_world_5.png', 'BurntCity.png', 'canyon_water_1.png', 'CONQ_Caustic_Valley.png', 'CONQ_Frozen_City.png', 'CONQ_Hellebore_Springs.png', 'CONQ_Terra_Therma.png', 'CONQ_Viridian_Bog.png', 'cute3dkawaii.PNG', 'dark_dirt_elevations_1.png', 'donald_park.png', 'elevated_peninsula_1.png', 'Firefly_alien_canyons_1.png', 'Firefly_alien_canyons_2.png', 'Firefly_alien_dry_canyons_1.png', 'Firefly_alien_dry_canyons_2.png', 'Firefly_alien_map_1.png', 'Firefly_hpg_terrain_1.png', 'Firefly_hpg_terrain_2.png', 'Firefly_river_dry_1.png', 'Firefly_river_running_1.png', 'Firefly_topographical_alien_desert_1.png', 'Firefly_topographical_canyon_1.png', 'Firefly_topographical_height_map_1.png', 'Firefly_topographical_height_map_2.png', 'Firefly_topographical_height_map_3.png', 'Firefly_topographical_height_map_5.png', 'Firefly_topographical_height_map_6.png', 'Firefly_topographical_marble_1.png', 'Firefly_topographical_moon_1.png', 'fractal_islands.png', 'Genison.png', 'green_farming_alien_world_1.png', 'green_farming_alien_world_2.png', 'grey_barren_alien_world_1.png', 'grey_barren_alien_world_2.png', 'grey_barren_alien_world_3.png', 'grey_barren_alien_world_4.png', 'grey_barren_alien_world_5.png', 'grey_barren_alien_world_6.png', 'grey_barren_alien_world_7.png', 'grey_waterless_alien_world_map.png', 'grid_1.png', 'Hex_gen_map.png', 'hex_grass_dirty.png', 'hex_military_industrial_alien_world_map.png', 'hex_mixed_elevations_battlefield_1.png', 'hex_mixed_elevations_battlefield_2.png', 'hex_tree_territory.png', 'lake_city.png', 'mickey_lagoon.png', 'mixed_elevations_battlefield_3.png', 'n6W9Hc.png', 'oasis_mixed_elevations_1.png', 'pic526383.png', 'pinecone_islands.png', 'purple_pines.png', 'red_volcanic_alien_1.png', 'red_volcanic_alien_2.png', 'red_volcanic_alien_3.png', 'red_volcanic_alien_4.png', 'roadway_1.png', 'snowy_lake.png', 'snowy_rolling_hills_1.png', 'volcanic_alien_world_map.png', 'war_torn_post_apocalyptic_alien_world_map.png']
|
97 |
|
98 |
# # Create full paths for pre-rendered maps
|
99 |
# pre_rendered_maps_paths = [os.path.join(PRERENDER_DIR, map_file).replace("\\", "/") for map_file in PRE_RENDERED_MAPS]
|
|
|
105 |
# for file in PRE_RENDERED_MAPS
|
106 |
#}
|
107 |
#PRE_RENDERED_MAPS_JSON
|
108 |
+
#{'alien orb land 1': 'images/prerendered/alien_orb_land_1.png', 'alien prarie 1': 'images/prerendered/alien_prarie_1.png', 'alien world 1': 'images/prerendered/alien_world_1.png', 'alien world 2': 'images/prerendered/alien_world_2.png', 'alien world 3': 'images/prerendered/alien_world_3.png', 'alien world 4': 'images/prerendered/alien_world_4.png', 'alien world 5': 'images/prerendered/alien_world_5.png', 'BurntCity': 'images/prerendered/BurntCity.png', 'canyon water 1': 'images/prerendered/canyon_water_1.png', 'CONQ Caustic Valley': 'images/prerendered/CONQ_Caustic_Valley.png', 'CONQ Frozen City': 'images/prerendered/CONQ_Frozen_City.png', 'CONQ Hellebore Springs': 'images/prerendered/CONQ_Hellebore_Springs.png', 'CONQ Terra Therma': 'images/prerendered/CONQ_Terra_Therma.png', 'CONQ Viridian Bog': 'images/prerendered/CONQ_Viridian_Bog.png', 'cute3dkawaii': 'images/prerendered/cute3dkawaii.png', 'dark dirt elevations 1': 'images/prerendered/dark_dirt_elevations_1.png', 'donald park': 'images/prerendered/donald_park.png', 'elevated peninsula 1': 'images/prerendered/elevated_peninsula_1.png', 'Firefly alien canyons 1': 'images/prerendered/Firefly_alien_canyons_1.png', 'Firefly alien canyons 2': 'images/prerendered/Firefly_alien_canyons_2.png', 'Firefly alien dry canyons 1': 'images/prerendered/Firefly_alien_dry_canyons_1.png', 'Firefly alien dry canyons 2': 'images/prerendered/Firefly_alien_dry_canyons_2.png', 'Firefly alien map 1': 'images/prerendered/Firefly_alien_map_1.png', 'Firefly hpg terrain 1': 'images/prerendered/Firefly_hpg_terrain_1.png', 'Firefly hpg terrain 2': 'images/prerendered/Firefly_hpg_terrain_2.png', 'Firefly river dry 1': 'images/prerendered/Firefly_river_dry_1.png', 'Firefly river running 1': 'images/prerendered/Firefly_river_running_1.png', 'Firefly topographical alien desert 1': 'images/prerendered/Firefly_topographical_alien_desert_1.png', 'Firefly topographical canyon 1': 'images/prerendered/Firefly_topographical_canyon_1.png', 'Firefly topographical height map 1': 'images/prerendered/Firefly_topographical_height_map_1.png', 'Firefly topographical height map 2': 'images/prerendered/Firefly_topographical_height_map_2.png', 'Firefly topographical height map 3': 'images/prerendered/Firefly_topographical_height_map_3.png', 'Firefly topographical height map 5': 'images/prerendered/Firefly_topographical_height_map_5.png', 'Firefly topographical height map 6': 'images/prerendered/Firefly_topographical_height_map_6.png', 'Firefly topographical marble 1': 'images/prerendered/Firefly_topographical_marble_1.png', 'Firefly topographical moon 1': 'images/prerendered/Firefly_topographical_moon_1.png', 'fractal islands': 'images/prerendered/fractal_islands.png', 'Genison': 'images/prerendered/Genison.png', 'green farming alien world 1': 'images/prerendered/green_farming_alien_world_1.png', 'green farming alien world 2': 'images/prerendered/green_farming_alien_world_2.png', 'grey barren alien world 1': 'images/prerendered/grey_barren_alien_world_1.png', 'grey barren alien world 2': 'images/prerendered/grey_barren_alien_world_2.png', 'grey barren alien world 3': 'images/prerendered/grey_barren_alien_world_3.png', 'grey barren alien world 4': 'images/prerendered/grey_barren_alien_world_4.png', 'grey barren alien world 5': 'images/prerendered/grey_barren_alien_world_5.png', 'grey barren alien world 6': 'images/prerendered/grey_barren_alien_world_6.png', 'grey barren alien world 7': 'images/prerendered/grey_barren_alien_world_7.png', 'grey waterless alien world map': 'images/prerendered/grey_waterless_alien_world_map.png', 'grid 1': 'images/prerendered/grid_1.png', 'Hex gen map': 'images/prerendered/Hex_gen_map.png', 'hex grass dirty': 'images/prerendered/hex_grass_dirty.png', 'hex military industrial alien world map': 'images/prerendered/hex_military_industrial_alien_world_map.png', 'hex mixed elevations battlefield 1': 'images/prerendered/hex_mixed_elevations_battlefield_1.png', 'hex mixed elevations battlefield 2': 'images/prerendered/hex_mixed_elevations_battlefield_2.png', 'hex tree territory': 'images/prerendered/hex_tree_territory.png', 'lake city': 'images/prerendered/lake_city.png', 'mickey lagoon': 'images/prerendered/mickey_lagoon.png', 'mixed elevations battlefield 3': 'images/prerendered/mixed_elevations_battlefield_3.png', 'n6W9Hc': 'images/prerendered/n6W9Hc.png', 'oasis mixed elevations 1': 'images/prerendered/oasis_mixed_elevations_1.png', 'pic526383': 'images/prerendered/pic526383.png', 'pinecone islands': 'images/prerendered/pinecone_islands.png', 'purple pines': 'images/prerendered/purple_pines.png', 'red volcanic alien 1': 'images/prerendered/red_volcanic_alien_1.png', 'red volcanic alien 2': 'images/prerendered/red_volcanic_alien_2.png', 'red volcanic alien 3': 'images/prerendered/red_volcanic_alien_3.png', 'red volcanic alien 4': 'images/prerendered/red_volcanic_alien_4.png', 'roadway 1': 'images/prerendered/roadway_1.png', 'snowy lake': 'images/prerendered/snowy_lake.png', 'snowy rolling hills 1': 'images/prerendered/snowy_rolling_hills_1.png', 'volcanic alien world map': 'images/prerendered/volcanic_alien_world_map.png', 'war torn post apocalyptic alien world map': 'images/prerendered/war_torn_post_apocalyptic_alien_world_map.png'}
|
109 |
##PRE_RENDERED_MAPS_JSON = { key: { 'file': value, 'quality': 0 } for key, value in PRE_RENDERED_MAPS_JSON.items()}
|
110 |
PRE_RENDERED_MAPS_JSON_LEVELS = {
|
111 |
'alien orb land 1': {'file': 'images/prerendered/alien_orb_land_1.png', 'thumbnail': 'images/prerendered/th/alien_orb_land_1.png', 'quality': 0},
|
|
|
122 |
'CONQ Hellebore Springs': {'file': 'images/prerendered/CONQ_Hellebore_Springs.png', 'thumbnail': 'images/prerendered/th/CONQ_Hellebore_Springs.png', 'quality': 2},
|
123 |
'CONQ Terra Therma': {'file': 'images/prerendered/CONQ_Terra_Therma.png', 'thumbnail': 'images/prerendered/th/CONQ_Terra_Therma.png', 'quality': 1},
|
124 |
'CONQ Viridian Bog': {'file': 'images/prerendered/CONQ_Viridian_Bog.png', 'thumbnail': 'images/prerendered/th/CONQ_Viridian_Bog.png', 'quality': 1},
|
125 |
+
'cute3dkawaii': {'file': 'images/prerendered/cute3dkawaii.png', 'thumbnail': 'images/prerendered/th/cute3dkawaii.png', 'quality': 0},
|
126 |
'dark dirt elevations 1': {'file': 'images/prerendered/dark_dirt_elevations_1.png', 'thumbnail': 'images/prerendered/th/dark_dirt_elevations_1.png', 'quality': 0},
|
127 |
'donald park': {'file': 'images/prerendered/donald_park.png', 'thumbnail': 'images/prerendered/th/donald_park.png', 'quality': 0},
|
128 |
'elevated peninsula 1': {'file': 'images/prerendered/elevated_peninsula_1.png', 'thumbnail': 'images/prerendered/th/elevated_peninsula_1.png', 'quality': 0},
|
|
|
157 |
'grey barren alien world 7': {'file': 'images/prerendered/grey_barren_alien_world_7.png', 'thumbnail': 'images/prerendered/th/grey_barren_alien_world_7.png', 'quality': 3},
|
158 |
'grey waterless alien world map': {'file': 'images/prerendered/grey_waterless_alien_world_map.png', 'thumbnail': 'images/prerendered/th/grey_waterless_alien_world_map.png', 'quality': 3},
|
159 |
'grid 1': {'file': 'images/prerendered/grid_1.png', 'thumbnail': 'images/prerendered/th/grid_1.png', 'quality': 0},
|
160 |
+
'Hex gen map': {'file': 'images/prerendered/Hex_gen_map.png', 'thumbnail': 'images/prerendered/th/Hex_gen_map.png', 'quality': 0},
|
161 |
'hex grass dirty': {'file': 'images/prerendered/hex_grass_dirty.png', 'thumbnail': 'images/prerendered/th/hex_grass_dirty.png', 'quality': 0},
|
162 |
'hex military industrial alien world map': {'file': 'images/prerendered/hex_military_industrial_alien_world_map.png', 'thumbnail': 'images/prerendered/th/hex_military_industrial_alien_world_map.png', 'quality': 3},
|
163 |
'hex mixed elevations battlefield 1': {'file': 'images/prerendered/hex_mixed_elevations_battlefield_1.png', 'thumbnail': 'images/prerendered/th/hex_mixed_elevations_battlefield_1.png', 'quality': 0},
|
|
|
251 |
"trigger_words": "anime,",
|
252 |
},
|
253 |
{
|
254 |
+
"notes": "You should use ',anime' as trigger words at the end. "
|
255 |
},
|
256 |
{
|
257 |
"parameters" :{
|
|
|
268 |
"trigger_words": "scenery style,",
|
269 |
},
|
270 |
{
|
271 |
+
"notes": "You should use ',scenery style' as trigger words at the end. "
|
272 |
},
|
273 |
{
|
274 |
"parameters" :{
|
|
|
285 |
"trigger_words": "disney style,",
|
286 |
},
|
287 |
{
|
288 |
+
"notes": "You should use ',disney style' as trigger words at the end. "
|
289 |
},
|
290 |
{
|
291 |
"parameters" :{
|
|
|
295 |
],
|
296 |
"XLabs-AI/flux-RealismLora":[
|
297 |
{
|
298 |
+
"notes": "No trigger words but 8k, Animatrix illustration style, fantasy style, natural photo cinematic should all work "
|
299 |
},
|
300 |
{
|
301 |
"parameters" :{
|
|
|
314 |
"trigger_words": "FRM$",
|
315 |
},
|
316 |
{
|
317 |
+
"notes": " FRM$ used as trigger words. "
|
318 |
},
|
319 |
{
|
320 |
"parameters" :{
|
|
|
343 |
],
|
344 |
"Shakker-Labs/FLUX.1-dev-LoRA-Logo-Design": [
|
345 |
{
|
346 |
+
"notes": "Uses wablogo, logo, Minimalist as trigger words.."
|
347 |
},
|
348 |
{
|
349 |
"trigger_words": "wablogo, logo, Minimalist ",
|
|
|
361 |
],
|
362 |
"Borcherding/FLUX.1-dev-LoRA-FractalLand-v0.1": [
|
363 |
{
|
364 |
+
"notes": "Uses fractalLand at the start of the prompts to activate the fractal elements. . "
|
365 |
},
|
366 |
{
|
367 |
"trigger_words": "fractalLand ",
|
utils/image_utils.py
CHANGED
@@ -44,6 +44,12 @@ def open_image(image_path):
|
|
44 |
"""
|
45 |
if isinstance(image_path, Image.Image):
|
46 |
return image_path
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
import requests
|
48 |
try:
|
49 |
image_path, is_dict = get_image_from_dict(image_path)
|
@@ -686,7 +692,7 @@ def convert_to_rgba_png(file_path: str) -> tuple[Image, str]:
|
|
686 |
img = open_image(file_path)
|
687 |
print(f"Opened image: {file_path}\n")
|
688 |
# Handle ICO files
|
689 |
-
if file_path.lower().endswith('.ico'):
|
690 |
rgba_img = img.convert('RGBA')
|
691 |
new_file_path = Path(file_path).with_suffix('.png')
|
692 |
rgba_img.save(new_file_path, format='PNG')
|
|
|
44 |
"""
|
45 |
if isinstance(image_path, Image.Image):
|
46 |
return image_path
|
47 |
+
else:
|
48 |
+
path = Path(image_path)
|
49 |
+
new_suffix = path.suffix.lower()
|
50 |
+
new_path = path.with_suffix(new_suffix)
|
51 |
+
image_path = str(new_path)
|
52 |
+
|
53 |
import requests
|
54 |
try:
|
55 |
image_path, is_dict = get_image_from_dict(image_path)
|
|
|
692 |
img = open_image(file_path)
|
693 |
print(f"Opened image: {file_path}\n")
|
694 |
# Handle ICO files
|
695 |
+
if file_path.lower().endswith(('.ico','.webp','.gif')):
|
696 |
rgba_img = img.convert('RGBA')
|
697 |
new_file_path = Path(file_path).with_suffix('.png')
|
698 |
rgba_img.save(new_file_path, format='PNG')
|