Qwen Image 2.1 與 H3 兩套工作流指南:由產品合成圖銜接至主視覺影片
From Product Composite to Hero Shot: Two Qwen and H3 Workflows
AI-KSK 的指南拆解 Qwen Image 2.1 與 H3 兩套 JSON 工作流,説明先處理產品靜態圖,再手動將確認可用的圖片交給影片工作流。兩個檔案分別包含 32 個節點的圖像調和工作流,以及 40 個節點的 H3 主視覺工作流,並無自動交接連結。文章核對啟用路徑、模型與 LoRA、尺寸及音訊設定,但沒有提供新推理、基準測試或產品保真度測試結果。
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
來源:DEV Community · dev.to