Spaces:
				
			
			
	
			
			
		Running
		
			on 
			
			Zero
	
	
	
			
			
	
	
	
	
		
		
		Running
		
			on 
			
			Zero
	| from huggingface_models import load_huggingface_model | |
| from replicate_api_models import load_replicate_model | |
| from openai_api_models import load_openai_model | |
| from other_api_models import load_other_model | |
| import concurrent.futures | |
| import os | |
| import io, time | |
| import requests | |
| import json | |
| from PIL import Image | |
| IMAGE_GENERATION_MODELS = [ | |
| # 'replicate_SDXL_text2image', | |
| # 'replicate_SD-v3.0_text2image', | |
| # 'replicate_SD-v2.1_text2image', | |
| # 'replicate_SD-v1.5_text2image', | |
| # 'replicate_SDXL-Lightning_text2image', | |
| # 'replicate_Kandinsky-v2.0_text2image', | |
| # 'replicate_Kandinsky-v2.2_text2image', | |
| # 'replicate_Proteus-v0.2_text2image', | |
| # 'replicate_Playground-v2.0_text2image', | |
| # 'replicate_Playground-v2.5_text2image', | |
| # 'replicate_Dreamshaper-xl-turbo_text2image', | |
| # 'replicate_SDXL-Deepcache_text2image', | |
| # 'replicate_Openjourney-v4_text2image', | |
| # 'replicate_LCM-v1.5_text2image', | |
| # 'replicate_Realvisxl-v3.0_text2image', | |
| # 'replicate_Realvisxl-v2.0_text2image', | |
| # 'replicate_Pixart-Sigma_text2image', | |
| # 'replicate_SSD-1b_text2image', | |
| # 'replicate_Open-Dalle-v1.1_text2image', | |
| # 'replicate_Deepfloyd-IF_text2image', | |
| # 'huggingface_SD-turbo_text2image', | |
| # 'huggingface_SDXL-turbo_text2image', | |
| # 'huggingface_Stable-cascade_text2image', | |
| # 'openai_Dalle-2_text2image', | |
| # 'openai_Dalle-3_text2image', | |
| 'other_Midjourney-v6.0_text2image', | |
| 'other_Midjourney-v5.0_text2image', | |
| # "replicate_FLUX.1-schnell_text2image", | |
| # "replicate_FLUX.1-pro_text2image", | |
| # "replicate_FLUX.1-dev_text2image", | |
| ] | |
| Prompts = [ | |
| # 'An aerial view of someone walking through a forest alone in the style of Romanticism.', | |
| # 'With dark tones and backlit resolution, this oil painting depicts a thunderstorm over a cityscape.', | |
| # 'The rendering depicts a futuristic train station with volumetric lighting in an Art Nouveau style.', | |
| # 'An Impressionist illustration depicts a river winding through a meadow.', # featuring a thick black outline | |
| # 'Photo of a black and white picture of a person facing the sunset from a bench.', | |
| # 'The skyline of a city is painted in bright, high-resolution colors.', | |
| # 'A sketch shows two robots talking to each other, featuring a surreal look and narrow aspect ratio.', | |
| # 'An abstract Dadaist collage in neon tones and 4K resolutions of a post-apocalyptic world.', | |
| # 'With abstract elements and a rococo style, the painting depicts a garden in high resolution.', | |
| # 'A picture of a senior man walking in the rain and looking directly at the camera from a medium distance.', | |
| ] | |
| def load_pipeline(model_name): | |
| model_source, model_name, model_type = model_name.split("_") | |
| if model_source == "replicate": | |
| pipe = load_replicate_model(model_name, model_type) | |
| elif model_source == "huggingface": | |
| pipe = load_huggingface_model(model_name, model_type) | |
| elif model_source == "openai": | |
| pipe = load_openai_model(model_name, model_type) | |
| elif model_source == "other": | |
| pipe = load_other_model(model_name, model_type) | |
| else: | |
| raise ValueError(f"Model source {model_source} not supported") | |
| return pipe | |
| def generate_image_ig_api(prompt, model_name): | |
| pipe = load_pipeline(model_name) | |
| result = pipe(prompt=prompt) | |
| return result | |
| save_names = [] | |
| for name in IMAGE_GENERATION_MODELS: | |
| model_source, model_name, model_type = name.split("_") | |
| save_names.append(model_name) | |
| for i, prompt in enumerate(Prompts): | |
| print("save the {} prompt".format(i+1)) | |
| with concurrent.futures.ThreadPoolExecutor() as executor: | |
| futures = [executor.submit(generate_image_ig_api, prompt, model) for model in IMAGE_GENERATION_MODELS] | |
| results = [future.result() for future in futures] | |
| root_dir = '/rscratch/zhendong/lizhikai/ksort/ksort_image_cache/' | |
| save_dir = os.path.join(root_dir, f'output-{i+4}') | |
| if not os.path.exists(save_dir): | |
| os.makedirs(save_dir, exist_ok=True) | |
| with open(os.path.join(save_dir, "prompt.txt"), 'w', encoding='utf-8') as file: | |
| file.write(prompt) | |
| for j, result in enumerate(results): | |
| result = result.resize((512, 512)) | |
| file_path = os.path.join(save_dir, f'{save_names[j]}.jpg') | |
| result.save(file_path, format="JPEG") |