# ComfyUI PromptForge One pack for three model families: **Krea 2**, **MOSS Image** and **MiniMax H3**, plus shared prompt, loader, sampler and video tooling. Each family has its own workflows, presets and setup notes below; the shared node reference follows them. - **Krea 2** — realistic and anime text-to-image, identity edit, and face transfer. - **MOSS Image** — text-to-image and reference edit, with optional DMD accelerators. - **MiniMax H3** — text/reference to video with sound, action presets, endless multi-part generation. - **Shared** — loader, sampler with model-aware presets, enhancer, action library, image/video loaders, savers. ## Krea 2 Required extras: `comfyui-krea2edit`, `krea2-nag` (only for the transfer workflow) and the Krea 2 models you own. The LoRA node starts with the identity LoRA selected in the edit workflow. ### Workflows - `KREA2_T2I_v2.json` — text to image at 1.5 MP. Write in `prompt_text`, pick an action or switch `use_action` off, then queue. - `KREA2_EDIT_v8.json` — identity edit from `LoadImage`; the face comes from the picture. Write only the change (pose, framing, expression) in `prompt_text`. - `KREA TRANSFER.json` — face transfer between a source and a target picture. ### Settings Use the `Krea` presets in the sampler list: FinePorn 8-10 steps, cfg 1, `euler`/`simple`; turbo checkpoints 8 steps. Krea edit keeps identity best at 8-10 steps because the identity LoRA does the work, not more steps. ### Negative prompts at cfg 1 The NAG switch is `use_nag` on the model patch: `PromptForge Krea NAG` (text-to-image) and `PromptForge Krea Edit Model Patch` (edit and transfer). Off passes the model through; on applies normalized attention guidance from the negative prompt at cfg 1, without changing cfg. The encoders always encode the negative, which costs nothing when NAG is off. ## MOSS Image Required extras: ComfyUI with MOSS support, `ComfyUI-MOSS-Toolkit`, `moss_image_edit_lora_rank_64_bf16.safetensors` for edit, and the MOSS models. Edit always keeps one reference image and `denoise 1`: the reference is conditioning, not an img2img latent. ### Workflows - `MOSS_T2I_v2.json` — text to image at 1.5 MP. - `MOSS_EDIT_v3.json` — reference edit; pick the picture in `LoadImage`, write the change. ### Settings and DMD Use the `MOSS` presets, matched to the model. Editing keeps the face at `image_strength` 1.5-2.0 with 20 steps, cfg 2, `euler`/`normal`. The DMD LoRAs (`lodestones-8-steps`, `sft-4-steps`) run at 8 steps, cfg 1, `er_sde`/`simple`; on PrimeLust use 12 steps and cfg 1.5. A denoise below 0.8 tiles the edit result. ## MiniMax H3 Required extras: the H3 model, its VAE and an audio VAE. The `PromptForge_H3_AllInOne_Modes_v6.json` workflow covers all modes; switch them in the Modes node. Everything changed often (mode, action, idea, writer, format, sampling, LoRA, generate) sits in one row next to each other. The v5 file is left untouched. ### Action node and roles 85 acts, each with an explicit who-is-where description, the orifice for sex acts (vagina or anus, never swapped), and a 9:16 or 16:9 frame. The camera list is filtered per act and puts POV of one named person first; a POV line is enforced as that person's eyes for the whole clip, their face never shown, the other person always in frame. Every role has its own picture picker (Woman, Man, Partner): choose the reference slot, the first frame, none and only a description, or `disabled`. Subject 3 defaults to `disabled`; pictures left unassigned become anatomy/detail references, not extra people. See the [H3 Action reference](#promptforge-h3-action-adult-presets). ### Writer and API The writer settings (template, style, sampling, retries) are described under the [Prompt Enhancer](#promptforge-enhancer-promptforge_promptenhancer). For headless use, `PromptForge_H3_AllInOne_Modes_v5.api.json` is already in `/prompt` format; the normal workflow stores the image picker as an extra leading widget, which order-based converters must skip. ## Shared node reference ### PromptForge Model (`PROMPTFORGE_Model`) Owns model choice and runtime configuration; outputs a `MODEL` bundle and a `REPORT` string. - **Model picker**: one list split into two sections — **local models (on disk, ready)** first, then **not downloaded (fetched on first use)**. Every entry is tagged: `[LOCAL Q4/Q8]` names the GGUF quant files present, `[VISION]`/`[TEXT]` says whether a matching mmproj exists (`[VISION dl]` = catalog mmproj not downloaded), `[LOCAL]` marks a cached or scanned model, `[DOWNLOAD]` marks a catalog model that is not on this machine yet (the Model node prints that warning before loading). The console prints a one-line count of local vs. downloadable models at startup, and the Config Finder report ends with the not-downloaded count. If a requested quant is not local but another quant is, the node uses the local one and says so instead of downloading. The catalog covers Qwen3, Qwen3.5, Qwen3.6, Qwen3.8, Qwen2.5, Qwen3-VL, Qwen2.5-VL, Gemma 3/4, Llama 3, Mistral/Ministral and Phi-4 heretic/abliterated models. Local models found in the registered `text_encoders` folders (including `extra_model_paths.yaml`) and the `LLM`, `llm`, `gguf` … subfolders of `models/` are listed by their path relative to `models/`, so a workflow saved on one machine resolves on another with the same layout. Single-file encoders without token embeddings (CLIP-L/G, T5, LTX projections) are hidden because they cannot generate text. GGUF generation streams tokens into ComfyUI’s progress bar. `local_model_path` and `mmproj_path` cover anything outside the lists. The `clip` input lives here and is passed to the enhancer in the model bundle. The default is the first local GGUF when llama-cpp-python is installed. - **Automatic runtime**: the node reads total VRAM and the selected model, then picks the best **local** GGUF quant that fits, the largest context (16k first), KV precision, GPU layers, batch sizes, windowed SWA and flash attention. For safetensors it picks bf16/fp16, q8 or q4; local HF directories get their size from the safetensors files. At run time the free VRAM is checked again: bf16/q8 drops to q4 when it does not fit, and a GGUF that fails to load retries with as many GPU layers as actually fit (the rest run on CPU). The only remaining override is `context_size` (0 = auto). - **Quant fallback**: unsupported combinations warn and use a working option — q5/q6 on safetensors load as q8, q8/q4 on a single-file encoder load in fp16, q8 switches to q4 when free VRAM is insufficient, CPU-offloaded layers are allowed (slower) instead of raising, a missing GGUF quant falls through the available files, and an incompatible KV/flash/SWA choice is retried with the safe value. The report re-checks local availability at run time, so stale `[AVAILABLE]` widget labels still show `[LOCAL]`. ### PromptForge Action (`PROMPTFORGE_ImageAction`) A pose library for any image model: 90 named actions (portraits, SFW solo and couple poses, nude and explicit solo sets, sex positions, oral, hands and explicit detail), 29 places, 14 cameras, 11 light setups, 14 outfits and 8 styles. Aspect ratio stays with the Empty Latent / resolution node. Category filters the action list; every action states the exact body arrangement, hands, legs, face and camera so there is no ambiguity. `source` switches between keeping the person in the connected image (image-to-image) and inventing them from `subject_1` / `subject_2` text (text-to-image). Notes and overrides are appended last. The enhancer has `use_action`; turn it off to ignore the action for a fully custom prompt without disconnecting the node. Output connects to the enhancer's `action` input; while `use_action` is on the brief replaces the enhancer prompt, and the `instructions` field carries custom additions. ### PromptForge Enhancer (`PROMPTFORGE_PromptEnhancer`) Takes the `MODEL` bundle and writes the prompt. Only generation inputs live here. - **Request fidelity**: every preset treats the user's text as the authority on subject, acts, intensity and tone. Hardcore, explicit or intense requests are written directly and specifically, without sanitizing, softening, euphemizing or fading to black. - **Prompt input**: free-form text box — loose natural language, random ideas, keyword piles, detailed descriptions; the model always expands to a proper prompt for the target mode/model. With `use_action` on, this text is ignored and the Action brief drives the prompt; custom additions go in the Action node's `instructions` field. - **Modes**: `text_only` (ignore media) or `inputs` (use every connected image from `image` / `image2` / `image3` plus frames sampled from `video` via `frame_count`). The prompt is told exactly which inputs arrived: bypassed or missing sockets are never mentioned, and the model is told not to invent extra images, references, video or frames. - **Preset**: `auto` or any bundled preset (Krea 2 T2I, Krea 2 Identity Edit, MOSS Image T2I/I2I, Qwen Image T2I, MiniMax H3, Anima, ACE-Step, generic styles…). - **MiniMax inputs**: the MiniMax H3 presets (T2VA, I2VA, L2VA, FL2VA, Ref2VA, plus the NSFW variants) get an authoritative list of what is connected. Labels follow the H3 encoder: ``, ``, `` for the connected images in order with gaps closed up (only `image2` connected makes it ``), and `