InstantX Qwen inpainting: descriptive prompts and two undefined variables in the README example
The pinned InstantX/Qwen-Image-ControlNet-Inpainting card supplies a Diffusers image/mask call and recommends descriptive prompts for the entire scene. Its example leaves controlnet_conditioning_scale and control_image undefined; the latter is still read for width and height despite control_image=image appearing as a keyword argument. The negative prompt is one space. These source-level gaps need resolution before a reproducible run; mask polarity, resampling and outside-mask preservation remain undocumented here.
The InstantX/Qwen-Image-ControlNet-Inpainting README at revision 5387c47add7b3a9b1d6341b75a251d235408c670 shows a Diffusers inpainting call, but the printed snippet is incomplete as a standalone example. Two loaded names have no definition in that snippet: controlnet_conditioning_scale and control_image. This is a static source finding; the code was parsed, not executed.
The snippet binds the loaded input to image and the loaded mask to mask_image, then passes control_image=image and control_mask=mask_image. A keyword argument does not create a variable called control_image in the caller. The later width=control_image.size[0] and height=control_image.size[1] therefore still require a binding. The conditioning-scale argument also refers to an unassigned variable, and the card gives no numeric value or accepted range for it.
A curator-proposed source-level correction is to make the dimension expressions consistently reference the intended, already-loaded image, or explicitly bind the chosen control image first. That correction has not been run and does not choose the right preprocessing or output dimensions for the implementation. An explicit conditioning scale must likewise come from inspected implementation guidance or a separately authorized test; this card alone supplies no validated value. The original source is preserved unchanged.
What the example actually specifies:
- QwenImageControlNetModel loads InstantX/Qwen-Image-ControlNet-Inpainting; QwenImageControlNetInpaintPipeline loads Qwen/Qwen-Image with that ControlNet. Both load calls request torch.bfloat16, and the pipeline moves to CUDA.
- Two load_image calls provide the image and mask. Their example media URLs use resolve/main and were not fetched in this review.
- The call specifies 30 inference steps, true_cfg_scale=4.0 and a CUDA generator seeded with 42. negative_prompt is the single-space string " ", not an empty string.
- The code selects images[0] and saves a PNG. No output image was generated or inspected here.
Prompting is a substantive distinction: the card recommends describing the complete desired scene, including the edited area and background, and using descriptive rather than instructive wording. Treat that as the author's guidance, not a measured preservation result. Its 1328x1328 figure appears in the training description; it is not a fixed inference resolution established by this snippet.
The README does not specify white-versus-black mask polarity, channel/value constraints, mask-image alignment, resize interpolation, grow/blur behavior or a compositor that guarantees unchanged outside-mask pixels. Calling load_image does not reveal those internal semantics. The next source needed is a pinned implementation of QwenImageControlNetInpaintPipeline and its image/mask processing dependencies. The install comment points at an unpinned Diffusers Git repository, while the model load calls provide no revision pins; a pinned card alone does not lock the runtime or weight versions.
For ComfyUI, the card states version >=0.3.59 and links a workflow on a moving main branch. That is a documentation statement, not a tested installation minimum, proof of which workflow bytes were used, or evidence that a repackaged checkpoint is identical to the original model. It does not inspect ComfyUI's mask consumers or settle their resizing/compositing behavior. The separately published static workflow analysis remains a different evidence layer.
The header declares apache-2.0, and the acknowledgement retains the author's copyright notice. No separate licence text or component applicability was reviewed. These statements do not clear base weights, ControlNet conversions, code, encoders, VAE, linked images, services or outputs. This article is original analysis of the privately retained card; it does not redistribute the full source.
Evidence: the complete 3825-byte README, SHA256 22783f32ad58c537a5a9ede75056b1e72f4b269c427d4d711bce3f1b4eebbccb, captured on 2026-10-28. Source-inspected, not run, unreviewed; shared founder operator GPT terminal, not independent formal verification. No quality, VRAM fit, runtime success or pixel-preservation result is established.
Structured fields
{
"citations": [
{
"url": "https://huggingface.co/InstantX/Qwen-Image-ControlNet-Inpainting/raw/5387c47add7b3a9b1d6341b75a251d235408c670/README.md",
"note": "Complete pinned README privately retained and cold-hash verified. Static snippet and prompt guidance; no linked implementation or media inspected."
}
]
}Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | permitted | unknown | Original curator analysis only; full card stays private. Source/model/code/media/component permissions not cleared by metadata or summary. |