|
Download README.md from mrjackspade/Ideogram4-Natural-Language-Text-Encoder: direct link, hf CLI and curl.
- Browser
- Download file 11.1 kB
-
https://huggingface.co/mrjackspade/Ideogram4-Natural-Language-Text-Encoder/resolve/main/README.md
- Command line
-
hf download hf://mrjackspade/Ideogram4-Natural-Language-Text-Encoder/README.md
-
curl -L -o README.md https://huggingface.co/mrjackspade/Ideogram4-Natural-Language-Text-Encoder/resolve/main/README.md
11.1 kB
| license: apache-2.0 | |
| base_model: Comfy-Org/Qwen3-VL | |
| pipeline_tag: text-to-image | |
| tags: | |
| - comfyui | |
| - ideogram4 | |
| - qwen3-vl | |
| - text-encoder | |
| - lora | |
| - fp8 | |
| - flow-matching | |
| - experimental | |
| # Ideogram 4 Natural-Language Text Encoder — S020 v1 | |
| This repository contains an experimental, stock-shaped replacement for the Qwen3-VL 8B text encoder | |
| used by Ideogram 4, plus the matching training LoRA. It is intended to make Ideogram 4 respond to | |
| ordinary natural-language prompts more like the stock model responds to structured Magic-Prompt JSON. | |
| It operates as a direct checkpoint replacement through the stock ComfyUI loader. | |
| This repository publishes the strength-0.2 training lineage at 500-step intervals through optimizer | |
| step 5000. Each milestone contains a merged scaled-FP8 text encoder and its matching rank-64 LoRA. A | |
| milestone resolves to the first complete checkpoint in its 500-step band, so the initial 500 milestone | |
| resolved to **optimizer step 510**. See [`MILESTONES.md`](MILESTONES.md) for the live artifact index. | |
| ## Files | |
| | Path | Purpose | | |
| |---|---| | |
| | `text_encoders/*_step_XXXXXXXX_fp8_scaled.safetensors` | Standalone drop-in scaled-FP8 text encoders | | |
| | `loras/*_step_XXXXXXXX_r64_a64.safetensors` | Matching unmerged research LoRAs | | |
| | `manifests/checkpoint_step_XXXXXXXX.json` | Training checkpoint and controller metadata | | |
| | `manifests/merge_step_XXXXXXXX.json` | Merge inputs, output hash, and per-projection quantization metrics | | |
| | `MILESTONES.md` | Human-readable live release index | | |
| | `MILESTONES.json` | Machine-readable live release index | | |
| | `SHA256SUMS` | SHA-256 inventory for every merged encoder and LoRA | | |
| | `COMPATIBILITY.md` | Component boundary, provenance, and third-party compatibility notice | | |
| The LoRA uses this project's native tensor names (`layers.N.<projection>.lora_a` and `lora_b`). The | |
| merged text encoder is the recommended artifact for inference; the LoRA is provided for research, | |
| inspection, and reproducibility. | |
| ## Installation | |
| Download the merged file into the normal ComfyUI text-encoder directory: | |
| ```text | |
| ComfyUI/models/text_encoders/ | |
| ``` | |
| Select it in the same Ideogram 4 text-encoder loader used for the stock | |
| `qwen3vl_8b_fp8_scaled.safetensors`. | |
| ## What was trained | |
| ### Task definition | |
| Observed stock behavior motivated the following target: | |
| ```text | |
| short natural language -> weak/broken stock conditioning | |
| detailed natural language -> weak/broken stock conditioning | |
| structured Magic-Prompt JSON -> functional stock conditioning | |
| ``` | |
| Each natural-language prompt therefore has a structured teacher target. Because the natural-language | |
| and JSON sequences differ in length, training matches their effect at Ideogram's image-side response: | |
| ```text | |
| c_T = stock_text_encoder(teacher_json) | |
| c_S = adapted_text_encoder(natural_language) | |
| v_T = ideogram_conditional(z_t, t, c_T) | |
| v_S = ideogram_conditional(z_t, t, c_S) | |
| loss = mean((v_S - v_T) ** 2) | |
| ``` | |
| Ideogram parameters remain frozen while gradients pass through the student conditional forward to the | |
| text-encoder adapters. The objective is entirely focused on matching the structured teacher response. | |
| ### Stock text-encoder path | |
| The stock Ideogram path uses Qwen3-VL 8B as a contextual feature extractor. Hidden states from 13 taps | |
| (`0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 35`) are concatenated to 53,248 features per text token, | |
| then projected to the 4,608-wide Ideogram DiT. The student preserves this architecture and tensor layout. | |
| ### Dataset and teacher | |
| - 4,000 source prompts from public Civitai generation metadata. | |
| - Exactly 1,000 prompts from each source rating group: SFW, R, X, and XXX. | |
| - Exact MaxMin diversity selection in Ideogram's own conditioning space, after literal cleanup, | |
| provenance filtering, and exclusion of edit/image-input records. | |
| - 3,900 training prompts and 100 deterministic owner-reviewed holdouts (25 per rating group). | |
| - Eight cached behavior states per training prompt: 31,200 training examples. | |
| - Teacher JSON generated by `accounts/fireworks/models/nemotron-3-ultra-nvfp4` through Fireworks, | |
| temperature 0, high reasoning effort, using the project's Magic-Prompt system instructions. | |
| - Teacher conditioning encoded through the exact stock Comfy tokenizer, Qwen taps, and Ideogram ingress | |
| projection, stored as float16. | |
| This release contains the trained weights, configuration, checkpoint metadata, and merge provenance. | |
| ### Eight-state trajectory supervision | |
| Teacher trajectories use the stock `V4_DEFAULT_20` 20-step schedule at 512×512. Eight deterministic | |
| pre-step states are captured at loop indices: | |
| ```text | |
| [19, 16, 14, 11, 8, 5, 3, 0] | |
| ``` | |
| Each cache entry stores the pre-step latent and exact positive conditional teacher velocity. All eight | |
| states are independent velocity-matching examples during training. The unconditional branch is a | |
| separate text-free model and is identical for teacher and student, so conditional velocity matching is | |
| sufficient for the text-encoder objective. | |
| ### Strength-0.2 first-step steering target | |
| The teacher trajectory includes one first-conditional-pass spatial correction derived from the | |
| authoritative Ideogram 4 debanner direction: | |
| - correction tensor SHA-256: `5ce873adae5701e9d5f05ebfa8f8b923a1622745c6e9a2bcb3e22fd090ed30c3`; | |
| - Ideogram blocks: 25, 26, 27, and 28; | |
| - distillation strength: `0.2`; | |
| - first denoising step and first positive conditional pass only; | |
| - image tokens only; | |
| - subtract the nearest-neighbor-resized 8×8 spatial direction, then restore each image token's | |
| original L2 norm; | |
| - the correction is confined to the positive conditional pass. | |
| Only the first cached target velocity is directly corrected. The later seven target velocities are | |
| uncorrected but evaluated on the trajectory produced by the corrected first update. The student always | |
| uses an unpatched stock Ideogram conditional model; the behavior is distilled into the text encoder. | |
| The cache contract fingerprints the correction tensor, metadata, strength, block set, schedule, | |
| resolution, conditional checkpoint, conditioning, and all eight target velocities. Incompatible caches | |
| are rejected before model loading. | |
| ## Adapter geometry | |
| This checkpoint uses the following adapter geometry: | |
| - rank: 64; | |
| - alpha: 64; | |
| - blocks: all 36 Qwen text blocks (`0–35`); | |
| - projections per block: `q_proj`, `k_proj`, `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj`; | |
| - adapted projections: 252; | |
| - trainable parameters: 174,587,904; | |
| - LoRA tensors: 504. | |
| Per block, the adapter contains 4,849,664 parameters. Adapting all 36 blocks gives every tapped depth a | |
| trainable path for reshaping the conditioning features consumed by Ideogram. | |
| ## Optimization and numerics | |
| - Optimizer: AdamW, FP32 adapter parameters and optimizer state. | |
| - Weight decay: `0.01`. | |
| - Physical batch size: 2. | |
| - Gradient accumulation: 8. | |
| - Effective optimizer batch: 16 behavior examples. | |
| - Adaptive packing: batch 2 through 1,017 student tokens; longer examples use singleton microbatches. | |
| - Gradient clipping: global norm `1.0`. | |
| - Optimizer state is held on CPU between updates. | |
| - The training graph contains the Qwen text transformer with all 36 text blocks. | |
| - Initial learning rate: `3.2e-4`. | |
| Training is quantization-aware for the final deployment format. For each adapted projection, the forward | |
| path forms the dequantized stock weight plus the LoRA delta, then requantizes using the stock per-tensor | |
| scale to `float8_e4m3fn`. A straight-through estimator supplies LoRA gradients without constructing a | |
| dense base-weight gradient. | |
| Learning rate is managed by a transactional loss-curve controller. It evaluates fixed 50-step windows | |
| every 10 steps, estimates log-loss descent relative to robust residual noise, confirms a failed window | |
| for 20 additional steps, locates the elbow, restores the complete optimizer/sampler/RNG state at the | |
| rollback boundary, and continues at half the LR. A rollback requires both deterministic held-out loss | |
| and interval-averaged training loss to fail their descent tests. Reaching the positive LR floor allows | |
| training to continue. | |
| ## Step-510 checkpoint metrics | |
| | Metric | Value | | |
| |---|---:| | |
| | Optimizer step | 510 | | |
| | Training velocity MSE | 0.0179036569 | | |
| | Held-out velocity MSE | 0.0171197626 | | |
| | Learning rate | `8e-5` | | |
| | LR reductions completed | 2 | | |
| | Gradient norm | 0.0149142 | | |
| | Step time on RTX 5090 | 12.94 s | | |
| | Peak reserved VRAM | 24.463 GiB | | |
| | Behavior microbatches | 8 batch-2, 0 singleton | | |
| Evaluation combines velocity MSE with fixed-seed stock/teacher/checkpoint image comparisons and owner | |
| visual review. Standardized perceptual, OCR, and broad safety benchmarking remain future work. | |
| ## Merge and deployment format | |
| The standalone file was merged on CPU into the exact stock Comfy scaled-FP8 checkpoint layout: | |
| - stock base SHA-256: `4ba424cf62e51392e4d1a39933e803706f4e823c1065f36aaf149c6453f66bcd`; | |
| - adapter SHA-256: `85359811e619276f85742072c2b3327915bbb56bcefb874f2f3101a5d1216eef`; | |
| - output SHA-256: `f0d1009af7407b60bda169967bb5e4c3e8ea264042b70f3d7b667bb0c2404ece`; | |
| - output tensors: 1,254; | |
| - merged projections: 252; | |
| - stock per-tensor FP8 scales preserved; | |
| - tensor inventory remains compatible with the stock text-encoder checkpoint layout. | |
| The base file is byte-identical to the text encoder published in `Comfy-Org/Qwen3-VL` and | |
| `Comfy-Org/Ideogram-4` under the base SHA above. | |
| ## Limitations | |
| - Step 510 is the first public research milestone from a longer training lineage. | |
| - The learned conditioning targets Ideogram 4's frozen conditional model and Comfy text-encoder ingress | |
| path; its intended use is image-conditioning inference through that interface. | |
| - Training and validation use cached 512×512 trajectories from one fixed sampler contract. Behavior at | |
| other resolutions, schedules, samplers, and seeds requires independent evaluation. | |
| - Teacher targets can be imperfect or semantically inconsistent despite validation. | |
| - The corpus deliberately spans adult source-rating groups. Deployment requires an application-level | |
| safety policy appropriate to the intended use. | |
| - Static text conditioning may only approximate a first-step, latent-dependent spatial intervention. | |
| - FP8 requantization rounds low-magnitude LoRA deltas to the available scaled-FP8 grid; per-projection | |
| retention metrics are included in the merge manifest. | |
| ## Component and licensing boundary | |
| The release artifacts consist exclusively of modified Qwen3-VL text-encoder parameters. They start | |
| from the independently published `Comfy-Org/Qwen3-VL` scaled-FP8 checkpoint and are released under its | |
| Apache-2.0 license. | |
| During training, a separately obtained, frozen Ideogram 4 model served as a differentiable downstream | |
| evaluator of the conditioning interface. Optimization updated the Qwen adapter parameters, and the | |
| release files contain the resulting Qwen text-encoder weights. | |
| Ideogram 4 is acquired separately under its own license and usage policy. Users combining the two | |
| components are responsible for the terms applicable to each. This repository is independently produced | |
| and has no affiliation with Ideogram, Inc. | |