| import os |
| import json |
| import requests |
| import random |
|
|
| |
| def load_presets(): |
| preset_files = [f for f in os.listdir("presets") if f.endswith(".json")] |
| presets = {} |
| for preset_file in preset_files: |
| preset_name = os.path.splitext(preset_file)[0] |
| with open(os.path.join("presets", preset_file), "r", encoding="utf-8") as preset_data: |
| presets[preset_name] = json.load(preset_data) |
| return presets |
|
|
| |
| def select_preset(presets): |
| while True: |
| print("Select a preset:") |
| for i, preset in enumerate(presets.keys()): |
| print(f"{i + 1}. {preset}") |
| choice = input("Enter the number of the preset (default: 'default'): ") |
| if choice.isdigit() and 1 <= int(choice) <= len(presets): |
| return presets[list(presets.keys())[int(choice) - 1]] |
| elif choice.strip() == "": |
| return presets["default"] |
| else: |
| print("Invalid choice. Please enter a valid number or press Enter for default.") |
|
|
| |
| def call_api(prompt, preset, config): |
| url = "http://YOUR.IP.ADDRESS.HERE:5001/api/v1/generate" |
| |
| with open(config, "r", encoding="utf-8") as config_file: |
| config_data = json.load(config_file) |
| |
| data = { |
| "prompt": f"### Instruction:\n{prompt}\n### Response:\n", |
| **preset, |
| **config_data, |
| } |
| response = requests.post(url, json=data) |
| |
| try: |
| response_json = response.json() |
| response_text = response_json.get("results", [{}])[0].get("text", "") |
| return response_text |
| except json.JSONDecodeError: |
| print("API response could not be decoded as JSON.") |
| return "" |
|
|
| |
| def get_random_word_from_file(file_path): |
| with open(file_path, "r", encoding="utf-8") as word_file: |
| words = word_file.read().splitlines() |
| return random.choice(words) |
|
|
| |
| def main(): |
| presets = load_presets() |
| preset = select_preset(presets) |
| |
| file_size_limit = 50 * 1024 * 1024 |
| corpus_file = open("autocorpus.txt", "a", encoding="utf-8") |
|
|
| while True: |
| random_word = get_random_word_from_file("prompt.txt") |
| full_prompt = f"Write a slice of life scene with plenty of visual storytelling and wonderment. Use the following prompt for inspiration: {random_word}." |
| |
| response = call_api(full_prompt, preset, "config.json") |
| print("Response:") |
| print(response) |
|
|
| |
| corpus_file.write(response + "\n\n\n\n") |
| corpus_file.flush() |
|
|
| |
| if os.path.getsize("autocorpus.txt") > file_size_limit: |
| break |
|
|
| if __name__ == "__main__": |
| main() |
|
|