Forked from ceveyne/draw-things-chat
Forked from ceveyne/draw-things-chat
docs / CHANGELOG.md
docs / CHANGELOG.md
Notable changes to this project will be documented in this file.
pN indexes.0.1.10 (Revision 10) or higher.iN) when PREVIEW_IN_CHAT=false; image-*-iN results are again injected into the agent turn without requiring inline preview output from the generator plugin.generate_image results (backend → Images, image-*-iN.png) were injected twice into the chat: once by the unified harvest/toolParams pipeline (Block 1, correct) and once by the legacy per-image injection path (Block 2, duplicate). Block 2 now filters basenamesRaw to generated-image-* filenames only; image-*-iN.png files are exclusively handled by Block 1.[Timing] TTFT: X.XX s | Y.Y tok/sec | N tokens | Total: Z.ZZ s. TTFT (Time to First Token) measures prompt-processing duration; tok/sec measures generation speed. Both values are written to the plugin log and enable direct backend comparison (MLX vs. GGUF) under identical conditions.qwen36-27b or qwen36-35b now resolve to the corresponding Qwen 3.6 capability entry, enabling derivative / fine-tuned model names to be recognised automatically.bodyTimeout / headersTimeout limits (set to 0) so long prompt-processing phases — where the server is computing but has not yet emitted the first streaming token — no longer cause a UND_ERR_BODY_TIMEOUT abort. The OpenAI SDK client timeout is also set to 0 for the same reason.mode: edit now correctly shows 2nd Pass Step x/y (n%) instead of bare Step x/y.render_target.needs_upscaler now reflects the actual zoom-pass decision instead of being recomputed from raw dimensions versus backend limits.maxWidth, maxHeight)./api/v1/models endpoint is unavailable (e.g. Unsloth Studio, RunPod vLLM, remote inference APIs), the plugin falls back to the standard /v1/models endpoint and validates the model against the capability registry (capabilities.ts). Vision gating is enforced via the registry in both paths.inputs.canvas.original now correctly shows the Pass-1 backend_returned dimensions instead of the pre-Pass-1 source canvas.zoom instead of falling through to , and the model identifier is passed as (not the raw filename) so no false-alarm error is logged. Custom Configs keyed are respected.w + h ≤ 1792 px). One preview file now serves chat display, Vision Promotion, analyse_image, and detect_object consistently.capabilities.ts when the server API does not return capability metadata (e.g. headless/remote servers with a plain /v1/models response). Models registered in capabilities.ts with supportsVision: true are now correctly accepted as agent models in such configurations.edit mode parameters from Qwen-Image to Flux.upscale tool.i2iProfileUsed audit type extended to include "refine".normalizeInputBuffer sum-constraint step: aspect ratio was distorted when both axes happened to land on different 64-multiples after independent rounding. Now uses candidate-based selection to best-preserve aspect ratio.i8x) model filenames for Z Image Turbo 1.0, Z Image Base 1.0, Qwen Image 2512, Qwen Image Edit 2511, FLUX.2 [klein] 4B, and LTX-2.3 (distilled, dev).text2image.<any>, image2image.<any>, edit.<any>, , ). Previously only the built-in model IDs (, , , , , ) were accepted as postfixes.generate_image: When a reference image (canvas) is provided but mode is omitted, the call now fails with an actionable error asking the user to specify image2image, edit, or image2video — instead of silently falling back to text-to-image.i1, i2, i3 …) — the counter no longer resets to i1 on every turn.flatbuffers dependency from 24.12.23 to 25.9.23.nextVariantV counter is preserved when all image turns are deleted, so variant identifiers are never reused across generations.image2video.custom, text2video.custom) now correctly resolve the active model.text2video or video2video tool-calls.variants from 3 to 4 (text2image, image2image, edit). Vision Promotion window expanded accordingly..mov assembly) is restricted to text2video and image2video modes.flux-2-klein).numFrames maximum from 257 to 641 (25,6 s).ltx-2.3-distilled, ltx-2.3-dev).ltx_2_19b_distilled_q6p.ckpt, ltx_2_19b_dev_q6p.ckpt) as new defaults.imageFormat override not being resolved to explicit width/height before canvas normalization in image2image, edit, and image2video modes.normalizeInputBuffer distortion bug: input images were improperly scaled, causing stretched/distorted results when the requested format differed from the source (e.g. portrait canvas → landscape output).steps in edit mode for better prompt adherence with qwen-image.image2image mode now supports moodboard (multiple reference images) via gRPC transport, same as edit mode.current conversation tokens now refers to the agent model's context lengthindex_image tool calls no longer echo the model-mapping snapshot JSON back into the agent-model prompt history (token economy), while still passing the snapshot through to the index tool itself.review_image() tool: lets you ask the agent to re-view any earlier created image, variant, or picture from tool-based generation or research.index_image markdown table: model_display is now preserved through picture materialization.FLUX.2 [klein] 9B (6-bit) as new default for flux model family.p IDs are now stable per chat (including draw-things-index project:// results) and no longer reset to p1 per query.Notable changes to this project will be documented in this file.
pN indexes.0.1.10 (Revision 10) or higher.iN) when PREVIEW_IN_CHAT=false; image-*-iN results are again injected into the agent turn without requiring inline preview output from the generator plugin.generate_image results (backend → Images, image-*-iN.png) were injected twice into the chat: once by the unified harvest/toolParams pipeline (Block 1, correct) and once by the legacy per-image injection path (Block 2, duplicate). Block 2 now filters basenamesRaw to generated-image-* filenames only; image-*-iN.png files are exclusively handled by Block 1.[Timing] TTFT: X.XX s | Y.Y tok/sec | N tokens | Total: Z.ZZ s. TTFT (Time to First Token) measures prompt-processing duration; tok/sec measures generation speed. Both values are written to the plugin log and enable direct backend comparison (MLX vs. GGUF) under identical conditions.qwen36-27b or qwen36-35b now resolve to the corresponding Qwen 3.6 capability entry, enabling derivative / fine-tuned model names to be recognised automatically.bodyTimeout / headersTimeout limits (set to 0) so long prompt-processing phases — where the server is computing but has not yet emitted the first streaming token — no longer cause a UND_ERR_BODY_TIMEOUT abort. The OpenAI SDK client timeout is also set to 0 for the same reason.mode: edit now correctly shows 2nd Pass Step x/y (n%) instead of bare Step x/y.render_target.needs_upscaler now reflects the actual zoom-pass decision instead of being recomputed from raw dimensions versus backend limits.maxWidth, maxHeight)./api/v1/models endpoint is unavailable (e.g. Unsloth Studio, RunPod vLLM, remote inference APIs), the plugin falls back to the standard /v1/models endpoint and validates the model against the capability registry (capabilities.ts). Vision gating is enforced via the registry in both paths.inputs.canvas.original now correctly shows the Pass-1 backend_returned dimensions instead of the pre-Pass-1 source canvas.zoom instead of falling through to , and the model identifier is passed as (not the raw filename) so no false-alarm error is logged. Custom Configs keyed are respected.w + h ≤ 1792 px). One preview file now serves chat display, Vision Promotion, analyse_image, and detect_object consistently.capabilities.ts when the server API does not return capability metadata (e.g. headless/remote servers with a plain /v1/models response). Models registered in capabilities.ts with supportsVision: true are now correctly accepted as agent models in such configurations.edit mode parameters from Qwen-Image to Flux.upscale tool.i2iProfileUsed audit type extended to include "refine".normalizeInputBuffer sum-constraint step: aspect ratio was distorted when both axes happened to land on different 64-multiples after independent rounding. Now uses candidate-based selection to best-preserve aspect ratio.i8x) model filenames for Z Image Turbo 1.0, Z Image Base 1.0, Qwen Image 2512, Qwen Image Edit 2511, FLUX.2 [klein] 4B, and LTX-2.3 (distilled, dev).text2image.<any>, image2image.<any>, edit.<any>, , ). Previously only the built-in model IDs (, , , , , ) were accepted as postfixes.generate_image: When a reference image (canvas) is provided but mode is omitted, the call now fails with an actionable error asking the user to specify image2image, edit, or image2video — instead of silently falling back to text-to-image.i1, i2, i3 …) — the counter no longer resets to i1 on every turn.flatbuffers dependency from 24.12.23 to 25.9.23.nextVariantV counter is preserved when all image turns are deleted, so variant identifiers are never reused across generations.image2video.custom, text2video.custom) now correctly resolve the active model.text2video or video2video tool-calls.variants from 3 to 4 (text2image, image2image, edit). Vision Promotion window expanded accordingly..mov assembly) is restricted to text2video and image2video modes.flux-2-klein).numFrames maximum from 257 to 641 (25,6 s).ltx-2.3-distilled, ltx-2.3-dev).ltx_2_19b_distilled_q6p.ckpt, ltx_2_19b_dev_q6p.ckpt) as new defaults.imageFormat override not being resolved to explicit width/height before canvas normalization in image2image, edit, and image2video modes.normalizeInputBuffer distortion bug: input images were improperly scaled, causing stretched/distorted results when the requested format differed from the source (e.g. portrait canvas → landscape output).steps in edit mode for better prompt adherence with qwen-image.image2image mode now supports moodboard (multiple reference images) via gRPC transport, same as edit mode.current conversation tokens now refers to the agent model's context lengthindex_image tool calls no longer echo the model-mapping snapshot JSON back into the agent-model prompt history (token economy), while still passing the snapshot through to the index tool itself.review_image() tool: lets you ask the agent to re-view any earlier created image, variant, or picture from tool-based generation or research.index_image markdown table: model_display is now preserved through picture materialization.FLUX.2 [klein] 9B (6-bit) as new default for flux model family.p IDs are now stable per chat (including draw-things-index project:// results) and no longer reset to p1 per query.mode: edit with explicit width/height parameters now preserve their native aspect ratio. Previously, explicit output dimensions caused moodboard inputs to adopt the output AR; only the canvas image should adopt the output AR.img2imgundefined.ckptUnknown modelzoom.autotext2video.<any>image2video.<any>autoz-imageqwen-imagefluxltxcustommode: edit with explicit width/height parameters now preserve their native aspect ratio. Previously, explicit output dimensions caused moodboard inputs to adopt the output AR; only the canvas image should adopt the output AR.img2imgundefined.ckptUnknown modelzoom.autotext2video.<any>image2video.<any>autoz-imageqwen-imagefluxltxcustom