|
Download README.md from will-taggart/AFFECTOR: direct link, hf CLI and curl.
- Browser
- Download file 8.04 kB
-
https://huggingface.co/will-taggart/AFFECTOR/resolve/main/README.md
- Command line
-
hf download hf://will-taggart/AFFECTOR/README.md
-
curl -L -o README.md https://huggingface.co/will-taggart/AFFECTOR/resolve/main/README.md
8.04 kB
| tags: | |
| - activation-steering | |
| - text-generation | |
| - macos | |
| - emotional-geometry | |
| base_model: Qwen/Qwen3.5-0.8B | |
| inference: false | |
| language: | |
| - en | |
| **Technical paper:** [PDF](https://huggingface.co/will-taggart/AFFECTOR/resolve/main/paper/AFFECTOR.pdf?download=true) · [LaTeX source](https://huggingface.co/will-taggart/AFFECTOR/blob/main/paper/AFFECTOR.tex) · [Complete source ZIP](https://huggingface.co/will-taggart/AFFECTOR/resolve/main/paper/AFFECTOR-source.zip?download=true) · [Markdown](https://huggingface.co/will-taggart/AFFECTOR/blob/main/paper/TECHNICAL_PAPER.md) · [Figures and source](paper/) | |
| # AFFECTOR | |
| <img src="affector.png" width="160" alt="AFFECTOR app icon"> | |
| **[⬇ Download the complete AFFECTOR app for macOS — Apple Silicon (.zip)](https://huggingface.co/will-taggart/AFFECTOR/resolve/main/downloads/AFFECTOR-macOS-AppleSilicon.zip?download=true)** | |
| **Developer ID-signed and Apple-notarized · macOS 26+ · approximately 1.67 GB** | |
| **Full Qwen3.5-0.8B weights, Python, and dependencies included.** | |
| Unzip, move **AFFECTOR.app** into **Applications**, and launch it. Local generation works offline with no separate Python installation, model download, or API account. | |
| [Read the technical paper (PDF)](https://huggingface.co/will-taggart/AFFECTOR/resolve/main/paper/AFFECTOR.pdf?download=true) · [Browse all files](https://huggingface.co/will-taggart/AFFECTOR/tree/main) · [Verify checksums](SHA256SUMS.txt) · [Apple release status](RELEASE_STATUS.md) | |
| **Emotional trajectories for text rewriting** | |
| William Taggart · Modern and Classical Languages and Literatures, Virginia Tech · wtaggart@vt.edu | |
| AFFECTOR is a standalone native macOS application for experimenting with the emotional character of writing. You specify a sequence of emotional coordinates, supply a document, and generate a revision. Local mode intervenes inside a frozen language model; API mode communicates the coordinates through instructions. No model training is required. | |
| This is an experimental application, not a validated emotional-transfer model. Fluent output can miss the desired emotions or change facts. Extreme steering can cause repetition and failed generations. Use the separate verification view and inspect the text. | |
| ## Download and install | |
| - [Complete application ZIP](downloads/AFFECTOR-macOS-AppleSilicon.zip): includes Python, native dependencies, and the model. No separate Python or model download is required. | |
| - **Apple Silicon, macOS 26 or later.** This packaged runtime does not support Intel Macs or macOS 15. | |
| - Unzip, move AFFECTOR.app to Applications, and open it. Local inference runs on Apple GPU hardware when available, with CPU fallback. | |
| - See [release status](RELEASE_STATUS.md) for the verified Apple signing/notarization state, build identifier, and checksum information. | |
| This Hub repository distributes a desktop app and its source, not a hosted browser application or a new fine-tuned checkpoint. | |
| ## What an emotional shape represents | |
| A geometry is an ordered trajectory through three coordinates: **valence** (-1 unpleasant to +1 pleasant), **direction** (-1 inward/self-focused to +1 outward/world-focused), and **intensity** (0 weak to 1 strong). Each point has a normalized document position between 0 and 1. Values are interpretive labels, not psychological measurements. A shape can contain rising tension, changes in emotional focus, or alternating emotional tones without prescribing particular words. | |
| The application interpolates the trajectory at each input chunk's midpoint. A short text samples only a few positions of a long trajectory; it does not reproduce every transition. The target for a chunk stays constant during that chunk's generation. | |
| ## Using the app | |
| 1. Create a geometry or open a compatible geometry JSON. Edit its points, name, selected transformer layers, and controls in Geometry + weights. Export and delete entries through the library controls. | |
| 2. Open a `.txt`, `.rtf`, or `.docx` document. Import/export preserves text content, not document layout, images, tracked changes, or rich formatting. | |
| 3. Choose **Minimal**, **Restrained**, **Balanced**, or **Creative**. These range from small wording changes to substantial invention. Preservation instructions are preferences, not guarantees. | |
| 4. Select **Local Qwen**, **OpenAI**, or **VT ARC**. API operation requires your own provider credentials and access to the selected model; API usage can incur charges. Keys are held in memory, not stored in transfer checkpoints. | |
| 5. Transform. Save/open transfer checkpoints to resume work. Export the output and report. Reset text discards the active run and automatic checkpoint without altering manually saved files or geometries. | |
| 6. Verify the original and revised text against the requested coordinates. Prefer an independent evaluator when assessing the small local model's output. | |
| Local mode calibrates an editable activation basis from short contrastive examples. It applies the basis inside selected transformer blocks. API mode cannot access hosted model activations and uses coordinate instructions instead. Strength and budget do not alter API activations. | |
| ## Controls | |
| | Control | Meaning | | |
| |---|---| | |
| | Strength | Scales the activation perturbation; higher is not necessarily better. | | |
| | Budget | Maximum perturbation RMS relative to the current hidden-state RMS. | | |
| | Inertia | Smooths successive activation perturbations within a chunk. | | |
| | Layer weights | Scale or reverse the intervention at selected zero-indexed layers. | | |
| | Axis top-k / mass / temperature | Select and reshape emotional-axis coefficients; these are not token sampling controls. | | |
| | Temperature / top-p / top-k | Token sampling controls. At temperature 0, decoding is greedy and top-p/top-k are inactive. | | |
| Defaults are strength 0.12, budget 0.20, inertia 0.20, and layers 8, 16, 23 with weights 1, 1, 0.5. Strength/budget 1.0 can disrupt coherent generation. The application does not silently reduce your chosen steering settings. | |
| Generation uses sentence-aware chunks of up to 700 characters. Output aims for the original length, with a shared 125% paragraph character ceiling. Local decoding looks for a complete ending after 85% of the original chunk length and detects repetitive output. Unfinished or repetitive endings can be omitted with a review warning; the raw returned draft remains in the report. If no usable complete sentence exists, the original is retained and flagged. Length and repetition checks do not establish emotional success. | |
| ## Files and reproducibility | |
| - [Technical paper (PDF)](https://huggingface.co/will-taggart/AFFECTOR/resolve/main/paper/AFFECTOR.pdf?download=true) and [Markdown source](https://huggingface.co/will-taggart/AFFECTOR/blob/main/paper/TECHNICAL_PAPER.md): representation, calibration, equations, generation, verification, evidence and limitations, explained from first principles. | |
| - [Apple release guide](docs/APPLE_RELEASE.md): signing, notarization, stapling, and verification. | |
| - `source/`: the current engine, SwiftUI app, build/signing utilities, and tests. | |
| - `SHA256SUMS.txt`: checksums of the downloadable app and source archive. | |
| The app stores geometries and the automatic checkpoint in `~/Library/Application Support/AFFECTOR`. Checkpoints include original text, outputs, geometry weights, settings, and reports. Local mode processes text on your Mac; selecting an API sends the relevant passages to that provider. The published archive excludes personal documents, transfer checkpoints, API keys, and private experiment logs. | |
| ## Model and licenses | |
| The bundle contains the frozen [Qwen3.5-0.8B model](https://huggingface.co/Qwen/Qwen3.5-0.8B), revision `2fc06364715b967f1860aea9cf38778875588b17`, under its Apache-2.0 license. Dependency licenses and required source notices are retained in the app and source archive. This repository does not relicense those components or claim that the entire distribution has a single license. No additional blanket license is granted for original application code by this README. | |