Dev.to · 7 min read

From Product Composite to Hero Shot: Two Qwen and H3 Workflows

From Product Composite to Hero Shot: Two Qwen and H3 Workflows

The useful handoff in this collection is simple: prepare and review a product still, then deliberately load that still into a video workflow. The supplied JSON files do not automate that handoff. Nor does the image graph's saved configuration automatically combine its old product and background loaders. There are two files: a 40-node H3 hero-shot graph and a 32-node Qwen Image 2.1 image-harmonization graph. This guide follows their 108 combined links. It reports no new inference, benchmark, product-fidelity test, or soundtrack inspection. Start with the image graph, file 02 The active image is loaded at node 1210. It passes through ImageUpscaleWithModel 895 using 4x-UltraSharpV2.safetensors, then through ImageScaleToTotalPixels 896 with a roughly four-megapixel target. Only then does it reach image input 1 of TextEncodeQwenImage21 494. This upscale is before generation, not a finishing stage on the decoded result. The four-megapixel target is not proof of a fixed square output or a measured final resolution. The encoder and installed node implementations can also affect the effective result. The encoder's class/title suggests multi-image capability, but the saved route has one connected image input. Supply an authorized prepared composition at node 1210 rather than assuming several product references are already active. What happened to the canvas route? The old foreground/background loaders, background removal, expansion/mask, cropper, FastCanvas tools, and canvas preview are saved bypassed. More importantly, that route ends at preview 668. Its output is not currently connected to upscaler 895 or the active encoder image input. Enabling those nodes alone will not redirect generation away from node 1210. If you choose to use the canvas route, work in a separate copy, inspect its node requirements, and deliberately connect the reviewed composition into the generation input. The distributed source is not silently rewired here. The active prompt arrives from node 626, overriding the encoder's stored prompt widget. It asks for lighting, contact-shadow, and spatial consistency while preserving the subject. Those are requested outcomes, not verified preservation of logos, text, geometry, or identity. The 40-step route is not a bare base-model comparison Loader 609 selects qwen_image_2.1_bf16.safetensors. Its model passes through Qwenimag21_c2-st2000.safetensors at strength 1 before sampler 618. Therefore, calling this an untouched baseline would omit an active LoRA. Sampler 618 receives positive conditioning, negative conditioning, and latent output from encoder 494. Its saved array is: ["enable", 9527, "fixed", 40, 1, "euler", "simple", 0, 10000, "disable"] The filename and output label call this the 40-step quality route. Inspect the named sampler controls in the compatible UI, including the seed-control widget, rather than naively zipping every stored array entry to a node input. The decoded image from node 490 feeds both SaveImageAdvanced 461 and ordinary SaveImage 1212. These are two configured save destinations for the same branch, not evidence of two independently generated results. The Viggle route is an authored 20+6 handoff The alternate branch selects qwen_image_2.1_int8_convrot.safetensors at node 1200 and applies the same C2 LoRA at node 1201. Sampler 1202 then supplies its latent output directly to sampler 1205. The latter model path adds Qwen-Image-2.1-viggle-turbo-v0.2.1-6step-lora-r256.safetensors at strength 1 on top of the C2-modified model. Here, “Viggle” is a selected LoRA filename, not evidence of a cloud-video API call. The saved sampler arrays are: 1202: ["enable", 9527, "fixed", 26, 1, "euler", "simple", 0, 20, "disable"] 1205: ["enable", 0, "fixed", 26, 1, "euler", "simple", 20, 10000, "disable"] The author labels this route 20+6. Do not turn the LoRA's 6step filename into a claim that the complete route takes only six steps. Also verify noise addition, seed behavior, and leftover-noise handling in the matching sampler implementation before calling it a seamless continuation of one ordinary run. FluxGuidance 1204 stores guidance 6 and feeds the second sampler's positive conditioning. That is a conditioning-node value, not evidence that the sampler CFG is 6. After decoding at 1206, the result feeds SaveImageAdvanced 1207 and ordinary SaveImage 1211. The comparer receives decoded standard and alternate outputs—not the original uploaded composition. The graph has four configured saver nodes overall, two per route; actual filenames and counts still require execution checks. What this comparison can and cannot establish The routes share encoding inputs, but they differ in selected base-model filenames, LoRA processing, guidance handling, and sampling configuration. This is not an isolated step-count benchmark. No timing, quality winner, or claim that one route preserves the product better is attached to these files. Inspect label spelling, packaging edges, material appearance, shadows, and unwanted shape changes after a real run. Choose an accepted still on those observed results, not on the “quality” or “accelerated” label alone. Move an accepted still into the H3 graph, file 01 Load the accepted image into node 77. Its IMAGE output connects to first_frame on both LOW and HIGH conditioning nodes. This is an active first-frame route, not two active character-reference pictures. The video loader, video slice, video components, last-frame loader, and additional reference-image loader are bypassed. A source note describing a basic video-reference example is therefore not a description of the current active inputs. The optional reference image is mapped to differently numbered reference ports in LOW and HIGH. It is bypassed in this save state; inspect the installed dynamic-input interface before enabling it rather than assuming the old “reference 3” title defines its effective slot. Edit prompt 3 to describe the intended product presentation and motion. There is no cross-file link that automatically updates this prompt or selects the image produced by the Qwen graph. Read the actual H3 size controls Format switch 37 is true. The values behind the width/height switches are 672 and 896, not the stale 544 and 960 labels. The selected LOW controls are therefore 672×896, a 3:4 portrait setup—not the 9:16 ratio advertised in the switch title. The learned latent upscaler is configured as scale_by 2, suggesting 1344×1792 controls downstream. Its stored 1920×1088 target fields and “Approx1080P” save prefix are not proof of a fixed output canvas. Verify actual dimensions and any implementation-specific adjustment after running. Duration control 4 requests five seconds through a custom planner. The planner's outputs feed both conditioning lengths and the trim controls. Do not copy a stale 124-frame widget or derive an exact rendered duration without inspecting the planner implementation and actual output. Two passes, native audio, and unverified checks The selected H3 model is minimax_h3_fl_ref_hybrid_scheme_a_25-49_bf16.safetensors, despite composer titles saying “Base direct.” Other references include the Qwen3VL 32B encoder, separate video/audio VAEs, and the learned 3D latent-upscaler file. The composers select OpenVDN/vdn-minimax-h3 with stage_dmd_8nfe; the HIGH refinement plan stores four refinement steps. This is the source's two-pass 8+4 intent, not a measured twelve-evaluation run or a twelve-step setting on one ordinary sampler. The conditioners request AUTO/native audio. Decoded generated audio goes to trimming and saving; the bypassed source video's audio is not selected as the soundtrack. Reconciliation requests first-pass audio handling with second-pass strength zero, followed by an audio-audit node. A configured audit is not a passed audit, voice-preservation guarantee, or proof of synchronization. Acceptance before publication Resolve exact model and custom-node dependencies, then test the two workflows separately. The Qwen graph references a shared encoder/VAE, two base-model filenames, two LoRA filenames, and an image upscaler; the H3 graph has a different audiovisual dependency stack. No weights or selected input pictures are bundled here. Review the still before the manual video handoff. Then inspect the clip's actual dimensions, duration, product consistency, motion, sound, and save destination. Clear or review historical editor data before publishing a workflow; the distribution copy removes the Qwen comparer's old image gallery without changing its connections. The source-provided tutorial offers context; its URL was not live-verified here. Confirm workflow, model, node, product-artwork, image, and audio rights separately. This package does not certify runtime compatibility, measured acceleration, or a blanket commercial license. Getting the workflows Published by this channel. The graphs are free; weights, LoRAs and ControlNet files are separate and carry their own terms. Hugging Face: AI-KSK/h3-hero-shot-qwen21-composite-314 — two JSONs, covers, SHA256 manifest. Start here. ModelScope (魔搭): Sunjian520/h3-hero-shot-qwen21-composite-314 Civitai: Hero Shot v2 (VDN second pass) · Qwen product composite Run without a local GPU: Hero Shot · Product composite Tutorial: YouTube · Bilibili

This is a summary aggregated from Dev.to. Read the complete article on the original site:

Read full article at Dev.to

More AI & Machine Learning News