{"id":50717493,"url":"https://github.com/drhepa/local-image-models","last_synced_at":"2026-06-09T20:00:55.452Z","repository":{"id":352743119,"uuid":"1214719142","full_name":"DrHepa/local-image-models","owner":"DrHepa","description":"Local image model extensions for Modly, covering Stable Diffusion 1.5, SDXL Base 1.0, and FLUX.1-schnell.","archived":false,"fork":false,"pushed_at":"2026-05-11T11:25:46.000Z","size":329,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-11T11:37:04.689Z","etag":null,"topics":["extensions","flux","image-generation","local-inference","modly","python","sdxl","stable-diffusion"],"latest_commit_sha":null,"homepage":"https://github.com/DrHepa/modly","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DrHepa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-19T00:32:22.000Z","updated_at":"2026-05-11T11:25:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/DrHepa/local-image-models","commit_stats":null,"previous_names":["drhepa/local-image-models"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/DrHepa/local-image-models","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrHepa%2Flocal-image-models","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrHepa%2Flocal-image-models/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrHepa%2Flocal-image-models/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrHepa%2Flocal-image-models/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DrHepa","download_url":"https://codeload.github.com/DrHepa/local-image-models/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrHepa%2Flocal-image-models/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34123172,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"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":["extensions","flux","image-generation","local-inference","modly","python","sdxl","stable-diffusion"],"created_at":"2026-06-09T20:00:54.379Z","updated_at":"2026-06-09T20:00:55.438Z","avatar_url":"https://github.com/DrHepa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Local Image Models\n\n\u003e Public-facing project name for this repository: `local-image-models`.\n\nThis repository is a **local image model extension bundle**: a source bundle for 3 self-contained model extensions plus one shared runtime.\n\nIt is **not** a weights mirror and it does **not** redistribute the upstream model weights.\n\n## What this repo contains\n\n- `extensions/sd15/`\n- `extensions/sdxl-base/`\n- `extensions/flux-schnell/`\n- `shared/runtime/local_image_runtime/`\n- `tools/sync_extension_runtime.py`\n\nEach extension is the installable unit and contains its own:\n\n- `manifest.json`\n- `generator.py`\n- `setup.py`\n- `src/local_image_runtime/` vendored runtime copy\n\nThe canonical shared code lives in `shared/runtime/local_image_runtime/` and is synced into each extension root.\n\n## Included model families\n\n| Extension ID | Visible name | Hugging Face model | Capabilities | Practical VRAM guidance |\n| --- | --- | --- | --- | --- |\n| `sd15` | Stable Diffusion 1.5 | [`runwayml/stable-diffusion-v1-5`](https://huggingface.co/runwayml/stable-diffusion-v1-5) | `text-to-image`, `image-to-image` | ~6GB+ recommended |\n| `sdxl-base` | SDXL Base 1.0 | [`stabilityai/stable-diffusion-xl-base-1.0`](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) | `text-to-image`, `image-to-image` | ~12GB+ recommended |\n| `flux-schnell` | FLUX.1-schnell | [`black-forest-labs/FLUX.1-schnell`](https://huggingface.co/black-forest-labs/FLUX.1-schnell) | `text-to-image` | ~16GB+ recommended; 24GB is more comfortable |\n\nThese VRAM values are practical recommendations, not hard guarantees. Actual usage depends on resolution, precision, CPU/GPU offload, driver/runtime behavior, and memory optimizations available in the local environment.\n\nCurrent baseline bundle flows are verified on the active Linux ARM64 path and remain intended to support the existing Windows candidate path. On Linux ARM64 with NVIDIA GB10 and `torch==2.11.0+cu130`, both SDXL Base `image-to-image` `Style reference` (`sdxl_ip_adapter_style`) and SD1.5 `image-to-image` `Style reference` (`sd15_ip_adapter_style`) have passed installed local-only smoke. SD1.5 promotion is scoped to `image-to-image` only; SD1.5 `text-to-image` is unchanged. This does **not** promote ControlNet, Windows compatibility, or public release readiness. Windows remains prepared/intended but candidate/unverified until GitHub-installed Install/Repair, readiness, and generation evidence is collected on Windows.\n\nFor FLUX.1-schnell weights, open [`https://huggingface.co/black-forest-labs/FLUX.1-schnell`](https://huggingface.co/black-forest-labs/FLUX.1-schnell), log in, accept the model conditions, and share contact information if Hugging Face requests it. Use the same Hugging Face account/token that Modly uses for the download; otherwise the extension cannot download the weights.\n\n## Current Modly compatibility notes\n\n- This is a bundled local image model extension pack for Modly-compatible local model workflows.\n- Host-side bundle/model support is still ahead of upstream Modly in a few areas and is being discussed in [Modly issue #114](https://github.com/lightningpixel/modly/issues/114), so use a compatible Modly branch/fork until that support lands upstream.\n- Current preview flows use the primary generated image (`output_path`). The runtime can preserve additional output metadata internally, but richer multi-output display is a future Modly integration task.\n\n## Generation controls\n\n- SD15 and SDXL expose text-to-image and image-to-image controls such as prompt, negative prompt, size, steps, guidance scale, seed, and output format.\n- SDXL and SD1.5 image-to-image support the optional named `Style reference` input backed by IP-Adapter on the verified Linux ARM64/GB10/cu130 local path. SD1.5 text-to-image is unchanged. ControlNet remains future explicit-node work.\n- FLUX.1-schnell exposes text-to-image controls tuned for its pipeline, including prompt, size, steps, guidance scale, maximum sequence length, seed, and output format.\n- PNG is the default output format. JPEG output is available with a configurable JPEG quality value.\n- FLUX.1-schnell recommends low step counts (`1`-`4`) and guidance `0.0`, but higher values are allowed for experimentation and may not improve quality.\n\nThe existing capability IDs remain unchanged by design:\n\n- `sd15`\n- `sdxl-base`\n- `flux-schnell`\n\n## Important licensing boundary\n\nThis repository distributes:\n\n- repository code\n- manifests\n- setup/integration scaffolding\n- runtime glue code\n- documentation\n\nThis repository does **not** distribute:\n\n- model weights\n- checkpoints\n- safetensors bundles\n- upstream model artifacts\n\nThe repository code is licensed under **MIT**. See [`LICENSE`](./LICENSE).\n\nThe referenced models remain subject to their **original upstream licenses and access conditions**. See [`MODEL_LICENSES.md`](./MODEL_LICENSES.md).\n\nIf you use any referenced model, YOU are responsible for obtaining and using its files in compliance with the applicable upstream terms.\n\n## Architecture summary\n\n- The architecture is **model-first**.\n- Extension identity is the family identity.\n- `params.model_id` is legacy compatibility only and must match the fixed extension.\n- Capabilities are declared in each manifest, not by central branching.\n\n## Runtime responsibilities\n\nShared runtime responsibilities:\n\n- bootstrap of `.local-image-runtime/`\n- state normalization and migration\n- Modly `Install GitHub` / `Repair` contract handling\n- legacy local install validation\n- payload/request validation helpers\n- backend dispatch boundary\n\nPer-family responsibilities:\n\n- manifest identity\n- exposed nodes\n- node defaults and help text\n- minimum local source requirements\n\n## State and weight layout\n\nCurrent persisted state version: **v2**.\n\n- `extensions`: ownership by family/extension ID\n- `legacy_models`: retained legacy residue for fallback, audit, and later cleanup\n\nEach child keeps its own `.local-image-runtime/`, but the canonical weight location for Modly is external to this repository:\n\n```text\nmodelsDir/\u003cext.id\u003e/\u003cnode.id\u003e/...\n```\n\nExamples:\n\n- `modelsDir/sd15/text-to-image/model_index.json`\n- `modelsDir/sdxl-base/image-to-image/model_index.json`\n- `modelsDir/flux-schnell/text-to-image/model_index.json`\n\n## Sync flow for the shared runtime\n\nWhen `shared/runtime/local_image_runtime/` changes, resync the vendored copies:\n\n```bash\npython3 tools/sync_extension_runtime.py\npython3 tools/sync_extension_runtime.py --check\n```\n\n## Installation flow\n\nThe operational flow has **two separate steps**:\n\n1. **Install GitHub / Repair**: run each extension's `setup.py` with a Modly JSON payload to create `venv`, install dependencies, and persist readiness.\n2. **Install Weights**: download model files outside this repo into `modelsDir/\u003cext.id\u003e/\u003cnode.id\u003e/...`.\n\nGeneration is local-only/no-download after Install/Repair and weight installation have acquired the required baseline and optional assets. Install/Repair may acquire supported optional IP-Adapter assets for SDXL and SD1.5 style-reference readiness; generation must use local files only. Windows installation support is prepared as a `windows-amd64` candidate path for later validation and must not be described as verified until real Windows evidence exists. ControlNet is intentionally separate future work with explicit nodes.\n\nExample setup invocation:\n\n```bash\npython3 extensions/sd15/setup.py '{\"python_exe\":\"/usr/bin/python3\",\"ext_dir\":\"/tmp/modly-sd15\",\"gpu_sm\":\"87\",\"cuda_version\":\"128\"}'\n```\n\nLegacy local CLI commands still exist for scaffold/manual use, but they are not the main Modly contract.\n\n## Minimum local source layouts\n\n### `sd15`\n\n- `model_index.json`\n- `scheduler/`\n- `text_encoder/`\n- `tokenizer/`\n- `unet/`\n- `vae/`\n\n### `sdxl-base`\n\n- `model_index.json`\n- `scheduler/`\n- `text_encoder/`\n- `text_encoder_2/`\n- `tokenizer/`\n- `tokenizer_2/`\n- `unet/`\n- `vae/`\n\n### `flux-schnell`\n\n- `model_index.json`\n- `scheduler/`\n- `text_encoder/`\n- `text_encoder_2/`\n- `tokenizer/`\n- `tokenizer_2/`\n- `transformer/`\n- `vae/`\n\n## Scope\n\nIncluded here:\n\n- source bundle for 3 local image model extensions\n- syncable shared runtime\n- persisted v1 -\u003e v2 state migration\n- manifests and CLIs per family\n\nOut of scope:\n\n- Modly core changes\n- model weight hosting or redistribution\n- build/release automation\n\n## Manual verification checklist\n\n1. Sync the shared runtime and verify vendored copies.\n2. Verify the `Install GitHub` / `Repair` JSON contract for each child root.\n3. Verify generator protocol behavior with valid JSON over `stdin`.\n4. Verify node-scoped weight readiness under `modelsDir`.\n5. Recheck the same baseline for `sd15`, `sdxl-base`, and `flux-schnell`.\n\nThis repository remains source-first: it provides the extension bundle and runtime integration while leaving model weight hosting and redistribution to the upstream model providers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrhepa%2Flocal-image-models","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrhepa%2Flocal-image-models","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrhepa%2Flocal-image-models/lists"}