{"id":28759959,"url":"https://github.com/javi22020/charactergen","last_synced_at":"2026-04-21T03:30:59.884Z","repository":{"id":297475555,"uuid":"995473741","full_name":"javi22020/CharacterGen","owner":"javi22020","description":"Tool to generate identity-consistent LoRA training data.","archived":false,"fork":false,"pushed_at":"2025-06-11T13:08:42.000Z","size":390,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-17T06:01:53.796Z","etag":null,"topics":["ai","ai-model","api","black-forest-labs","character","character-generator","consistent","consistent-characters","diffusion","flux","identity","image-generation","lora","midjourney","replicate","replicate-api","stable-diffusion","synthetic-data","text2image","training"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javi22020.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-03T14:32:24.000Z","updated_at":"2025-06-05T16:41:16.000Z","dependencies_parsed_at":"2025-06-05T17:38:46.791Z","dependency_job_id":"3e8783c9-14cc-4c5a-8c6d-5a1f4ebb6c55","html_url":"https://github.com/javi22020/CharacterGen","commit_stats":null,"previous_names":["javi22020/charactergen"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/javi22020/CharacterGen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javi22020%2FCharacterGen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javi22020%2FCharacterGen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javi22020%2FCharacterGen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javi22020%2FCharacterGen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javi22020","download_url":"https://codeload.github.com/javi22020/CharacterGen/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javi22020%2FCharacterGen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271665101,"owners_count":24799301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-model","api","black-forest-labs","character","character-generator","consistent","consistent-characters","diffusion","flux","identity","image-generation","lora","midjourney","replicate","replicate-api","stable-diffusion","synthetic-data","text2image","training"],"created_at":"2025-06-17T06:00:24.781Z","updated_at":"2026-04-21T03:30:59.854Z","avatar_url":"https://github.com/javi22020.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CharacterGen\nCharacterGen is a tool designed to generate series of identity-consistent images based on an initial description, using the Black Forest Labs or Replicate APIs.\n\n## Example\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/base.png\" alt=\"Base Image\" width=\"75%\"/\u003e\n  \u003cbr/\u003e\n  \u003cem\u003eOriginal character description\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n   \u003cimg src=\"assets/image_1.png\" alt=\"Generated Image 1\" width=\"40%\" style=\"display: inline-block; margin-right: 10px;\"/\u003e\n   \u003cimg src=\"assets/image_2.png\" alt=\"Generated Image 2\" width=\"40%\" style=\"display: inline-block;\"/\u003e\n   \u003cbr/\u003e\n   \u003cem\u003eGenerated consistent character images\u003c/em\u003e\n\u003c/p\u003e\n\n## Features\nUnder the hood, CharacterGen uses both Flux 1.1 Pro Ultra and Flux.1 Kontext to create several images keeping the same identity. This allows for quick data generation for character LoRA training or other purposes.\n\n## Usage\nFirst, you need to set up your API keys for Black Forest Labs or Replicate. You can do this by copying + renaming the `.env.example` file to `.env` and filling in your API keys.\n\nAfter setting up your API keys, you can run the script to generate images.\nYou can change the default generation provider at any time from the **Settings**\nmenu of the application.\n\n**Recommended**: double click the `CharacterGen.bat` file to run the script. This will automatically set up the environment and run the script.\n\u003e [!NOTE]\n\u003e Sometimes, Windows Defender may flag the script as a potential threat. If this happens, you can safely ignore the warning and allow the script to run.\n\n**Manual**:If you prefer to run the script manually, follow these steps:\n1. Create a virtual environment (optional but recommended):\n   ```bash\n   python -m venv venv\n   ```\n   Activate the virtual environment:\n   - On Windows:\n     ```bash\n     venv\\Scripts\\activate\n     ```\n   - On macOS/Linux:\n     ```bash\n     source venv/bin/activate\n     ```\n2. Install the required dependencies:\n   ```bash\n   pip install -r requirements.txt\n   ```\n3. Run the script:\n    ```bash\n    python main.py\n    ```\n\n## Configuration\nYou can customize the generation process by changing the prompts and variables of the script.\n### Prompts\nThe script uses three different prompts.\n- Base Prompt: This is the prompt fed to the model to generate the base image. You can add anything you want to include in the character description.\nTemplate: `prompts/base.md`\n\u003e [!NOTE]\n\u003e If you add new variables to the base prompt, make sure to add a `.txt` file with the variable name in the `prompts/selectable` directory. This is necessary for the script to recognize the new variable.\n- Instruct Prompt: This is the prompt used to generate the secondary images following the base image identity. It is designed to keep the identity of the character while changing the context. Template: `prompts/instruct.md`\n\u003e [!NOTE]\n\u003e If you add new variables to the instruct prompt, make sure to add a `.txt` file with the variable name in the `prompts/random` directory. This is necessary for the script to recognize the new variable.\n- Random Prompt: The same as the instruct prompt, but in a different tone. This is used to \"pre-caption\" the images, making them more suitable for training. Template: `prompts/random.md`\n\n### Variables\nEach variable file has the same structure, with each line representing a different value for the variable. The script will randomly select one of these values when generating the images.\n\n## Contributing\nIf you want to contribute to CharacterGen, feel free to open a pull request or issue. Contributions are welcome!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavi22020%2Fcharactergen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavi22020%2Fcharactergen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavi22020%2Fcharactergen/lists"}