|
Download README.md from SyntheticMDProductions/AI_Development_Automation_Manager: direct link, hf CLI and curl.
- Browser
- Download file 18.4 kB
-
https://huggingface.co/SyntheticMDProductions/AI_Development_Automation_Manager/resolve/refs%2Fpr%2F1/README.md
- Command line
-
hf download hf://SyntheticMDProductions/AI_Development_Automation_Manager@refs/pr/1/README.md
-
curl -L -o README.md https://huggingface.co/SyntheticMDProductions/AI_Development_Automation_Manager/resolve/refs%2Fpr%2F1/README.md
18.4 kB
| license: mit | |
| tags: | |
| - desktop-application | |
| - ai-tools | |
| - dataset-management | |
| - lora-training | |
| - windows | |
| # ADAM — AI Development and Automation Manager | |
| ADAM is a local, safety-first desktop hub for orchestrating AI project tools. | |
| It includes registered dataset, DDPM, and SDXL LoRA workflows with background | |
| planning, approval gates, progress reporting, and persistent asset history. | |
|  | |
| Dataset preparation, captioning, and preview placeholders remain clearly marked | |
| as demo tools. The connected Dataset Collector, DDPM trainer, and Local SDXL | |
| LoRA Trainer use real adapters and never fall back to simulated training. | |
| Existing program folders can be connected from **Settings → Tool folders**. | |
| ADAM stores only the path and scans for likely entry points; it does not copy or | |
| modify the external project. Folder assignments can also be pasted into chat: | |
| ```text | |
| DDPM Trainer: D:\AI\DDPM | |
| Flow Matching Trainer: D:\AI\FlowMatchImageGenerator | |
| ``` | |
| On a new computer, install `requirements.txt` in your chosen Python environment | |
| before running `Launch ADAM.bat`. The launcher checks desktop dependencies and | |
| does not install packages automatically or depend on the developer's personal | |
| trainer folders. Install each optional trainer's dependencies according to that | |
| tool's setup instructions before using its ADAM workflow. | |
| Remote access is disabled by default. Devices with an access token can browse | |
| datasets, edit captions/review marks and submit work. Only enable it for trusted | |
| devices. The desktop **Allow remote job controls and approval changes** setting | |
| also permits remote confirmation, stopping and retrying jobs. A remote browser | |
| can enable training auto-approval only after that desktop permission is granted; | |
| it can always turn auto-approval off. Saved token changes and disabled access | |
| take effect for new requests without restarting the server. | |
| Use private Tailscale access for connections beyond a trusted local network; | |
| the built-in HTTP listener does not provide transport encryption by itself. | |
| Phone URLs and QR codes contain the access token and should be treated as | |
| credentials. Remote commands require JSON, have bounded request sizes and | |
| connection counts, and reject cross-site browser submissions. These controls | |
| do not sandbox installed Python plugins or connected trainers: install only | |
| code you trust. | |
| Detection does not automatically authorize training. A real training adapter | |
| remains gated until its dataset, model name, run settings, and output location | |
| are explicit. | |
| ## Training agents | |
|  | |
| ADAM's training lifecycle is divided into four explainable responsibilities: | |
| - **EVE** reviews dataset membership and leaves uncertain images for the user. | |
| - **ORION** reviews planned epochs, batch size, resolution, image exposures, and | |
| estimated optimizer steps. He can require approval but never silently changes | |
| the requested settings. In the Model Creation Assistant, **ORION: apply a | |
| starting recipe** fills a conservative, editable draft from the image count | |
| and selected resolution before a plan is built. | |
| - **ATLAS** watches active training for non-finite loss, sustained critical GPU | |
| temperature, critically low disk space, stalls, and large runtime overruns. | |
| Critical conditions pause the trainer process tree so the user can inspect it. | |
| - **NOVA** examines available post-training previews and samples for unreadable | |
| files and exact-looking duplicate collapse. Her report explicitly separates | |
| technical sample health from subjective or subject-quality review. | |
| ORION, ATLAS, and NOVA reports are stored with each durable job record and are | |
| shown in Current Plan, Active Job, and Jobs / History respectively. ATLAS's | |
| default thresholds can be overridden in `config/settings.json` with the | |
| `atlas_*` settings defined in `adam/config.py`. | |
| Every new job passes through the shared preflight and ORION review before its | |
| queue state is chosen. Desktop plans, Remote prompts, and Remote training forms | |
| use the same review. Remote training auto-approval still applies to ordinary | |
| plans, but an ORION warning leaves the job awaiting explicit approval. Reviewing | |
| a plan does not change the requested training settings. | |
| ## Real image collection | |
| When a valid Dataset Collector folder is connected, the `dataset_collector` | |
| registry entry uses ADAM's real visible-browser adapter. After plan approval it: | |
| - opens Bing Images in a normal visible Chrome window; | |
| - waits when consent/CAPTCHA/human-verification text is detected; | |
| - resumes automatically after the user resolves the page; | |
| - downloads valid images at least 256×256; | |
| - removes exact duplicate downloads; | |
| - writes a matching `.txt` caption beside every image; and | |
| - records URLs, captions, sources, and dimensions in `metadata.csv`. | |
| No CAPTCHA or website restriction is bypassed. Closing Chrome or stopping the | |
| job ends collection safely. A new timestamped dataset folder is used rather | |
| than overwriting an existing collection. | |
| ADAM keeps an incomplete DDPM request in conversation memory. A follow-up such | |
| as `dataset folder Mario, model name Mario V2, epoch count 100, output D:\Runs` | |
| fills the pending fields and validates named datasets against the connected | |
| collector. It will not start if the dataset cannot be found. | |
| ## Showcase videos | |
| The **Showcase Video** workspace creates a finished MP4 directly from completed | |
| DDPM and Flow Matching models. Select and reorder the models, choose 12–24 | |
| images per model, a 3-, 4-, or 5-second image duration, shared steps and aspect | |
| ratio, provider-compatible samplers, seed, and 720p or 1080p output. ADAM runs | |
| the image batches sequentially and then renders a request-list interface that | |
| tracks the active model, image number, trainer, steps, sampler, and aspect ratio. | |
| LoRA models are intentionally excluded from this streamlined workflow. | |
| When Ollama is reachable, messages that are not workflow commands receive a | |
| short conversational answer. Ollama may explain or plan, but it still cannot | |
| bypass the registry or confirmation gates. | |
| ## Web search in Chat Mode | |
| Chat Mode can give local Ollama current web context without an API key. Enable | |
| it in **Settings → Planning model**, then ask naturally, for example: | |
| ```text | |
| Search the web for Dandy's World character ideas. | |
| What are the latest Ollama release notes? | |
| Look up a reference for a cyberpunk city character. | |
| ``` | |
| ADAM sends only that search query to Bing's public results feed, reads the | |
| result titles and snippets, | |
| and passes up to five titles, snippets, and links to Ollama. It does not open | |
| the result pages, download anything, or let web content run tools. Results are | |
| untrusted reference material, so ADAM is instructed to cite the links and flag | |
| uncertainty. Disable the setting to keep Chat Mode fully local. | |
| When you explicitly ask ADAM to **read**, **open**, or **research** result links, | |
| it can read up to three public HTML/text pages and give Ollama short extracts. | |
| For example: `Search the web for Undertale character ideas and read the most | |
| relevant links.` Direct links can be read with `Read https://example.com/ and | |
| summarize it.` Private/local addresses, non-web protocols, oversized pages, | |
| downloads, and more than three pages are blocked. This control can be disabled | |
| in Settings. | |
| Planning runs away from the interface thread, and conversational Ollama output | |
| is streamed into the chat. ADAM validates training commands against a strict | |
| schema and each registered trainer's declared capabilities before offering a | |
| job. | |
| In **Settings → Planning model**, **Chat response length** sets the maximum | |
| number of generated tokens for a Chat Mode reply. Higher values allow longer | |
| research summaries but use more time and GPU memory. The default is 1,024, | |
| which gives Qwen3 enough room to reason and still produce a visible response. | |
| ADAM stores friendly dataset/model names, paths, trainer types, epochs, and | |
| resume checkpoints in `data/assets.json`. Requests such as: | |
| ```text | |
| From the Mario dataset, train it on a DDPM for 300 epochs. | |
| With the Mario dataset, train it on a LoRA for 100 epochs. | |
| Continue the Mario model from the DDPM for 50 epochs. | |
| ``` | |
| are resolved to real paths before approval. Continuation is offered only when a | |
| compatible checkpoint exists. New DDPM runs retain the latest resume checkpoint. | |
| ## Run | |
| ```powershell | |
| python main.py | |
| ``` | |
| On Windows, you can also double-click `Launch ADAM.bat`. | |
| The app requires Python 3.10+ and PySide6. Optional integrations use `psutil` | |
| for system information and `pynvml` for NVIDIA GPU information. | |
| ```powershell | |
| python -m pip install -r requirements.txt | |
| ``` | |
| Try: | |
| - Click **Create a model…** in Trainer Mode for the guided Model Creation Assistant. | |
| - `Adam, train a LoRA of Hatsune Miku` | |
| - `Adam, collect a dataset of liminal spaces` | |
| - `Adam, generate previews` | |
| - `Adam, check GPU status` | |
| - `From the Mario dataset, train it on a DDPM for 300 epochs` | |
| - `With the Mario dataset, train it on a LoRA for 100 epochs` | |
| Training and large collection plans are never started until you approve the | |
| plan. All actions are recorded in `logs/adam.log`, while project artifacts live | |
| under `data/projects/`. | |
| The Model Creation Assistant can start from a built-in Character LoRA, Style | |
| LoRA, DDPM, or Flow Matching preset. It can create a dataset or select a | |
| registered one, recommends starting values, and saves personal presets. The | |
| result still goes through ADAM's normal validated planner and approval gate. | |
| Use **+ Add model** to build a multi-model training batch. Each wide model tab | |
| keeps its own dataset, trainer, name, and settings; the minus button removes an | |
| unwanted model, and tabs can be dragged to change the run order. ADAM validates | |
| all models, presents one combined approval plan, and runs them sequentially so | |
| only one training workflow uses the GPU at a time. A failed step stops the batch | |
| before a later model starts. | |
| Before approval, ADAM adds checks for connected tools, dataset contents, the | |
| LoRA base model, and output-drive free space. Completed dataset and training | |
| jobs also include a suggested next step. | |
| ### Model Batch Builder | |
| Use **Create model batch…** to paste one requested subject per line. ADAM turns | |
| the list into editable model tabs, removes duplicate names, and lets the current | |
| trainer recipe be applied to any multi-selection of models. The batch is saved | |
| as a draft so it can be closed and resumed later. | |
| For a review-first workflow, choose **Collect missing datasets first**. This | |
| queues only sequential dataset collection and leaves training in the saved | |
| draft. After collection, reopen the draft, use **Find collected datasets**, and | |
| review each dataset in Training Studio. **Exclude rejected** moves rejected | |
| images out of the training folder into a recoverable quarantine, and **Restore | |
| excluded** reverses it. **Keep all images** marks the whole selected dataset as | |
| accepted in one action, after which individual bad images can still be rejected. | |
| Training remains locked until each model is explicitly | |
| marked as reviewed and ready. If every linked dataset is acceptable as-is, | |
| **Approve all datasets** marks the entire batch ready after one confirmation; | |
| it does not inspect individual images or apply pending rejection decisions. | |
| Completed Flow Matching models can be selected in **Fine-tune**. ADAM uses the | |
| saved Flow model folder as the continuation source, locks the continuation to | |
| the model's original resolution, and writes the fine-tuned result to a new | |
| output folder. This continues the saved weights while starting a fresh optimizer | |
| and learning-rate schedule; it does not overwrite the original model. | |
| ## Training Studio | |
| The **Training Studio** turns completed work into a reviewable experiment loop: | |
| - **Datasets** provides an image gallery, keep/reject decisions, caption editing, | |
| exact duplicate detection, and visually similar duplicate candidates. | |
| - **Experiments** compares job settings and outcomes, opens outputs, marks a | |
| preferred model, and converts successful settings into reusable recipes. | |
| - **Checkpoint Lab** browses model checkpoints and output images, records | |
| consistent prompt/seed evaluations, and sends preview requests through the | |
| normal approval-aware planner. | |
| - **Recipes** preserves training starting points and can import or export | |
| portable JSON recipe files. | |
| ### EVE AI Dataset Review | |
| In Training Studio → Datasets, **EVE AI Review…** performs a local reference- | |
| guided visual review. Add one or more good reference images and optional bad | |
| references, then choose Keep and Reject confidence thresholds. EVE uses a small | |
| DINOv2 vision model to divide the selected dataset into **Keep**, **Reject**, and | |
| **Uncertain** galleries with confidence scores. The model is downloaded once on | |
| first use and subsequent analysis stays local. | |
| Nothing is applied automatically. Inspect both sides, double-click images for a | |
| full view, and move selected results between the three groups before choosing | |
| **Apply EVE review**. EVE's decisions remain ordinary Training Studio review | |
| marks: they can be manually changed, and rejected files are not moved until | |
| **Exclude rejected** is selected. The latest proposal is also saved under | |
| `data/eve_reviews/` for auditing. Use **Select all in current group** (or | |
| Ctrl/Shift selection) to move many images at once; EVE transfers only the | |
| chosen thumbnails so manual sorting stays responsive on large datasets. | |
| Training panels show elapsed time, a progress-based ETA, recent logs, and a | |
| loss sparkline when the connected trainer reports `loss`. Preflight summaries | |
| include clearly labelled workload, duration, VRAM, and disk estimates. These | |
| estimates are planning hints rather than hardware guarantees. | |
| Create a Model also supports live training previews with a configurable | |
| epoch interval, prompt, and reproducible seed for each model tab. While a | |
| training job is active, its newest 256×256 preview appears in the right sidebar | |
| with the source epoch and next scheduled preview. The full-size trainer output | |
| can be opened from the card. Built-in adapters may publish previews directly; | |
| registered DDPM, Flow, LoRA, APVD, MaskGit, and other trainers can also | |
| participate by writing conventionally named `preview`, `sample`, or `epoch` | |
| images beneath their declared output folder. | |
| ## Generations | |
| The **Generations** workspace runs compatible registered image generators | |
| without opening their separate desktop interfaces. The connected DDPM and Flow | |
| Matching projects can generate from completed models with a reproducible seed, | |
| sampler or ODE method, step count, image count, and aspect ratio. Generation | |
| work uses the normal ADAM job queue, progress reporting, cancellation, and | |
| logging. | |
| Every completed batch is stored under `data/generations/` with its images and a | |
| `generation.json` sidecar. The history gallery can open an image or batch folder | |
| and restore the exact settings for another run. DDPM creative notes are stored | |
| with a batch for organization; they are not presented as text conditioning for | |
| an unconditional DDPM model. | |
| Generation history opens as automatic model folders. Each folder uses the | |
| registered model name and a recent generated image as its cover. Double-clicking | |
| a folder filters history to that model and selects its provider and model in the | |
| generation controls, so the next batch is generated into the same existing model | |
| directory. This view does not move or rewrite older generation files. | |
| **Generation Cycle…** selects multiple compatible completed models and queues | |
| one generation step per model. Choose images per model, a shared prompt or | |
| creative note, starting seed, slideshow duration, looping, fullscreen playback, | |
| and an optional model/trainer label. When the cycle finishes, ADAM opens the | |
| results as a local slideshow while preserving every ordinary generation record | |
| in history. | |
| If ADAM discovers a job interrupted by an unexpected shutdown, it offers to | |
| open Jobs & History. The previous record remains intact and can be retried as a | |
| new approval-gated job. Job logs can also be exported for troubleshooting. | |
| ## Connect an existing tool | |
| ADAM supports importable Python functions and command-line Python scripts. | |
| For a no-code setup, open **Settings → External Tools → Add external tool**. | |
| Choose the program folder, select its training entry script and important | |
| configuration files, then review ADAM's static compatibility and safety report. | |
| The report covers: | |
| - detected command-line options and required inputs; | |
| - likely dataset formats; | |
| - output and checkpoint behavior; | |
| - progress reporting; | |
| - resume-training support; and | |
| - potentially risky operations visible in the selected entry script. | |
| The 1–10 rating measures how clearly the script fits ADAM's safe command-line | |
| contract. It is not a guarantee that third-party code is harmless. ADAM does | |
| not execute a script while scanning it, external tools cannot replace built-in | |
| registry entries, and every external-tool run requires explicit approval. | |
| After registration, a tool can be planned with a request such as: | |
| ```text | |
| Run APVD Model Trainer with dataset=D:\DreamData, epochs=20, output=D:\APVD\output | |
| ``` | |
| ADAM will ask for any required inputs that were omitted before it offers the | |
| approval plan. | |
| For manual registry configuration, edit the relevant item in | |
| `config/tools.json`: | |
| ```json | |
| { | |
| "backend": { | |
| "type": "python", | |
| "module": "my_tools.lora", | |
| "function": "train" | |
| }, | |
| "demo": false | |
| } | |
| ``` | |
| The function receives a `ToolContext` as its first argument and keyword | |
| arguments from the approved plan. This keeps training code in one place: your | |
| existing GUI and ADAM can both call the same backend. | |
| For scripts: | |
| ```json | |
| { | |
| "backend": { | |
| "type": "script", | |
| "path": "D:/AI/LoRATrainer/train.py" | |
| }, | |
| "demo": false | |
| } | |
| ``` | |
| ADAM invokes scripts directly with the current Python interpreter, captures | |
| stdout/stderr, and never drives another GUI with mouse clicks. | |
| ## Safety model | |
| - Plans are shown before execution. | |
| - Long, destructive, or high-volume work requires confirmation. | |
| - Unregistered tools cannot be invoked. | |
| - External paths and arguments are validated before execution. | |
| - The LLM may propose a plan, but only registered tools can execute it. | |
| - Pause, resume, and cancel controls are available for active jobs. | |
| - Every tool action and state transition is logged. | |
| ## Tests | |
| ```powershell | |
| python -m pytest -q | |
| ``` | |