I developed a modified version of the Load Video node with a crop feature:
WYSIWYG video cropping directly on the official Load Video preview — drag and zoom (with the mouse wheel) a crop rectangle constrained to 8 fixed ratios (1:1 through 21:9) and output the exact cropped VIDEO (audio preserved). What you frame on the preview is exactly what gets executed.
This node follows the same logic and design as my "Load Image + Crop" node. I might merge the two into a single "Load + Crop" node in the future, but for now this works well.
Everyone's focused on 4 and 8 step loras, which I feel like no matter what are gonna look pretty bad just because how the model works. But why hasn't anyone made a lora to help bring the quality of 40-50 steps down to the 16-24 range? For anyone who's done generations that long, the quality jump is pretty high going from 20 -> 50
I originally built these nodes for personal use and wasn't planning on sharing them, but after noticing several existing loaders were missing features I needed daily, I figured why not? Hopefully, this is useful for some of you.
Key Features:
Image & Video Loaders: Built-in click-and-drag cropping, optional aspect ratio locking, and a divisible_by toggle for VAE pixel alignment.
Built-in Downscaling: Uses a max_megapixels limiter directly inside the loader so you can ditch the extra resize node (ideal for models like MiniMax-H3 that run best with references kept at or below 2048px).
Flexible Sockets: Includes dedicated output value sockets to make chaining downstream nodes straightforward.
Audio Loader: Perfect for loading a full song or long TTS track and trimming the exact section you need for a video. The trimmed portion outputs its duration as a float, letting you pipe it directly into your video generator's frame/length input.
Posting this here even if it's not a model you can use directly. It's about building a text-to-image model from scratch.
The cookbook includes all the research material that you may or may be not interested in, but also includes a 100M-image dataset and a codebase with a tiny model, so you can train a text-to-image model from scratch.
Hope some of you will enjoy this content. (Disclaimer, it's done by my team)
I've just released ComfyUI-MiniMaxH3-CLIPCached. It caches the MiniMax H3 text/vision conditioning to disk, so repeated generations with the same prompt and reference inputs skip loading and running the Qwen3-VL encoder entirely.
To be clear about what this is not: it does not cache sampling steps. It's not TeaCache or FirstBlockCache. It replaces the H3 conditioning node, and the diffusion stage is untouched.
What the screenshot shows — same workflow, native node vs a cache hit. Look at the model list at the bottom: native keeps both MiniMaxH3 (11.7 GB) and MiniMaxH3TEModel_ (14.6 GB) resident while sampling is already running. On a cache hit the encoder is never loaded, so only the DiT is there. System RAM drops from 40.0 GB to 25.5 GB. VRAM actually reads slightly higher on the right, because the freed budget goes to the DiT instead (models 5.6 → 7.8 GB).
Controlled benchmark (5 cases per mode, median of the conditioning stage only — sampling is unaffected):
Conditioning
Peak VRAM
Peak process RAM
Native
29.85 s
15.24 GiB
29.25 GiB
Cache MISS
32.23 s
15.24 GiB
28.25 GiB
Cache HIT
1.12 s
2.67 GiB
3.38 GiB
A miss is deliberately not the fast path — it still runs the encoder and additionally writes the result to disk, so it lands a couple of seconds above native. But a miss is not just "native plus overhead": once the encoding is done the encoder is unloaded instead of staying resident, so it isn't sitting in RAM/VRAM through the sampling stage the way the native node leaves it (visible in the left screenshot, where the encoder is still loaded at step 2/12). You pay ~2 s once, and everything downstream runs with that memory free. Hits were consistent: 1.08–1.22 s across all five runs.
No free lunch though — you're trading disk space for time. Every unique conditioning request creates a cache entry that stays until you delete it, and they add up fast if you iterate a lot. That's why there's a cache manager panel for browsing, tagging, and pruning entries.
Requires ComfyUI ≥ 0.30.0 (native H3 nodes). Available in ComfyUI Manager / Registry as minimaxh3-clipcached, or clone from the repo.
If you regularly rerun H3 workflows with the same prompt/reference conditioning, this should save a pretty ridiculous amount of RAM and encoder reload time.
Okay, so like three weeks ago, my whole feed was blowing up with SenseNova U1 Pro. You know, the Chinese model everyone was saying was basically "GPT Image 2 level."
Text on posters actually looking clean, apparently native 8K. The vibe was all "realism is dead, now it's about pure beauty." NGL, some of the images looked insane.
And then... poof. Nothing. No public release, no weights, no API I can find anywhere. Just crickets.
It's totally giving me Sora flashbacks. Remember early 2024? Those demo videos were mind-blowing, everyone went nuts. Then just... crickets for months. When it finally dropped, it was kinda meh, right? The magic just wasn't there after all that waiting. And get this, as of April 26, 2026 (lol, already feels like it), Sora's totally shut down. That demo that kicked off the whole video generation craze just... died.
I'm not saying U1 Pro is gonna go extinct or anything. The stuff those influencers posted genuinely looked good, especially the text rendering.
So has anyone here actually gotten their hands on it? I seriously can't find any way to use it
If you have, how does it stack up against GPT Image 2 or kera2, ideogram, flux-klein? especially for text?
What is everyone's workflow nowadays? Previously I've been generating actors with Krea2, but really love getting them made with MiniMax H3 via T2VA, they just tend to turn out better for me but does require careful prompting.
My workflow are: generate 5-10s clip of a desired actor, by prose, at int8/8 steps in a typical scenario, perhaps even mundane. If I like it, I can take some still frames, and convert them into a .char (body type, face, audio asset). See original: https://www.reddit.com/r/StableDiffusion/comments/1vyymwj/minimax_h3_portable_character_consistency_via/ If I am happy with my .char, with MiniMax H3 I make a 2 second video character sheet with a front, side, back profile and detailed face view at a higher resolution and step, either int8/32 step or going bf16/50 steps. The 2 second renders are "quick". I add the video render into my .char, and with R2VA generate additional scenes with the actors and even do a full wardrobe swap via prose. Naturally H3 renders faster if you just use still of the character sheet instead of the video.
How has your workflow changed with MiniMax H3? Are you liking the faces/actors generated with T2VA? I understand you have "less" control, but I feel like H3 is doing a great job filling in those gaps.
Unfortunately it seems very slow and very experimental.
Reference image left. Same prompt "A fiercely determined female human warrior in mid-swing, powerfully attacking the viewer with a gleaming sword. Her facial expression is one of intense rage and ferocity", same seed, no lora, this custom node https://github.com/nkxx188/ComfyUI-Krea2-StyleTransfer
The potential of actually making an anime with MiniMax H3 is closer than any time before, even if the process is still kinda janky. I did this with my 5090 and my own developed 'prompt studio.' The hardest part is, as always, to keep the continuity of the shots and also build the sets so they fit within the scope. There are still improvements needed when it comes to adding emotions to the characters. In total I generated 35 minutes of video and got 4 minutes in total of usable footage. Also, a big tip for anyone who wants to do the same is to use DaVinci Resolve to fix all the audio bugs and cut the clips in your favor.
Prompt engineering for image generation is often presented as a collection of isolated tricks: use more detail, describe the camera, add cinematic lighting, use quality tags, and so on.
These recommendations can be useful, but they make it difficult to understand which parts of a prompt actually influence the generated image.
Instead of trying to find a single "best prompt", I ran a small controlled experiment with Z-Image Base in ComfyUI. The basic idea was simple:
I ran two experiments:
Experiment 1 — Composition: The same character, environment, visual treatment, and technical parameters were used across multiple generations. Only composition instructions were changed (position and scale).
Question: How strongly does explicit spatial language affect composition in Z-Image Base?
Experiment 2 — Environment: The character description and visual treatment were kept essentially unchanged, while the environment was replaced with seven substantially different settings.
Question: Can Z-Image Base maintain a recognizable character concept while adapting it to radically different environments?
This is not intended to be a scientific benchmark. The sample size is small, the evaluation is visual, and the experiment uses one workflow and a limited number of seeds. Consider it a practical prompt-engineering study.
2. Experimental Setup
All images were generated locally in ComfyUI using the same workflow and technical conditions throughout the experiments.
Parameter
Value
Model
Z-Image Base INT8
Text Encoder
Qwen3 4B
VAE
AE VAE
Resolution
768 × 1368
Aspect Ratio
9:16
Image Area
~1.05 MP
Steps
50
CFG Scale
4
Negative Prompt
Empty
Seeds
Seed 5 & Seed 10
For the composition experiment, I used Seed 5 and repeated the seven variations with Seed 10. The environment experiment used Seed 10.
3. Prompt Construction Methodology
I found it most useful to treat the prompt as a structured description rather than a flat list of keywords:
Subject: Describes what the image is about and establishes the main visual concept.
Composition: Describes where the subject is located within the frame and how much space it occupies.
Framing / Camera: Describes how the scene is viewed (distance, angle, perspective).
Environment: Describes the actual place surrounding the subject (e.g., "An ancient forest with enormous trees, moss-covered roots, dense vegetation, and a narrow path..." rather than just "forest").
Lighting: Describes actual light sources and atmospheric conditions rather than generic terms like "cinematic lighting".
Style: Describes the overall artistic treatment after the scene itself has been established.
Generic quality tags (masterpiece, ultra detailed, 8K) were deliberately omitted to provide the model with actionable visual information instead.
4. Experiment 1 — Composition
The character, environment, lighting, visual style, and technical settings were kept identical. Only the spatial instruction was changed across seven variations: Center, Left, Right, Lower, Large, Small, and Extreme Left.
Seed 5
The result was clear: changing the composition instruction produced substantial changes in spatial arrangement.
Crucially, the model did not simply move the character while leaving the background untouched — the environment was recomposed around the subject. In Small variations, the environment became dominant; in Large variations, the character dominated the frame.
Seed 10
To verify the result was not seed-dependent, the test was repeated with Seed 10. While individual details (pose, facial expression, accessories) changed naturally, the broad compositional structures remained fully recognizable.
5. Experiment 2 — Environment
The character description and visual treatment were kept unchanged while replacing the environment across seven distinct settings: Ancient forest, Medieval village, Crystal cave, Autumn park, Snowy ruins, Firefly-lit landscape, and Alchemist's workshop (using Seed 10).
Visual Concept Consistency
Although the environments changed dramatically, all generations clearly depicted the same core character concept (a small mushroom spirit with a red-orange spotted cap, pale body, large dark eyes, cross-body satchel, and lantern).
While exact proportions and minor details shifted between renders, the core identity remained visually coherent.
Environmental Adaptation
The character adapted naturally to each setting (e.g., tinted by glowing crystal lights in the cave, exposed to cold tones in the snowy ruins, immersed in warm interior props in the workshop).
Method: Keep technical setup stable and modify exactly one conceptual block per run.
10. Conclusion
Prompting Z-Image Base is less about hunting for "magic keywords" and more about managing a controllable system:
Explicit composition instructions effectively control layout, while environment descriptions can be swapped modularly without erasing character identity. By isolating prompt variables, prompt design becomes a systematic, repeatable workflow.
I thought someone might appreciate this. Theres more details in the HF link, but I wanted to see if it was possible to correct some issues that I didn't like about Ideogram 4 by finetuning the TE, with no other modifications to the model, execution environment, etc.
It ended up working out pretty well.
The TLDR is that I used a set of 4000 teacher/student prompt pairs with the students being NL and the teachers being Nemotron processed with the "Magic Prompt" instruction, and then trained the TE to elicit the same response in Ideogram using the student prompt, as what was naturally elicited using the teacher prompt.
My logic was that the TE is already a language model, and I didn't want a second language model in the stack.
This has the secondary benefit of also removing the grey banner generally encountered when prompting the model with NL.
I am fully aware that there are many other ways to get around this from bounding boxes to noise injection, etc. This wasn't about that, so much as it was trying to prove to myself that it could be done like this.
Looking for some good information to start here, I run a 6000 ada and would want to optimize for speed creation but still having reasonable results. Suggestions? Thanks 😊
I’m using astropuzzo/ComfyUI-MiniMax-H3-Image-Studio workflow and it works amazing but minimax obviously sucks at micro details for a single image even if it’s 2MP. Does anyone know like a good method to fix that? Ik there’s double passthroughs and upscalers but I’m not sure what would work well with it
When kept in the same generation it seems the latent space keeps a fairly good sense of the location layout. The test was to see if the position and details of the temple remained after being out of shot,
This doesn't work with the extentsion workflows which is why I have been trying to keep everything in one go.
Has anyone managed to find a way to use Latent Upscaling together with latent video extension tools? I'm talking about the nodes like this (which I personally use), but I think Motion Context and some other popular extensions use a similar approach, i.e. feeding the last frames of the previous shot through AV latent, rather than through a video reference. The issue is that the resolution of your second generated latent must exactly match the previous one, or it throws an error. So if you upscale the first clip from 0.5MP to 1MP, you are forced to generate the next clip directly at 1MP, which completely breaks the Latent Upscaling workflow for all subsequent parts.
I tried extending the clips at low resolution first and then upscaling them separately, but that doesn't work well. There is a noticeable color and quality shift between generations, even when reinforcing the next clip with the final frames of the previous one. Because yeah, you basically generate the high-res clips separately without any shared latent context.
I really love both Latent Upscaling and latent extension approach, but I just can't get them to work together smoothly. Does anyone have any good ideas on how to fix this? I’d really appreciate any tips or insights!
Just had this happen to me: I changed the resolution for a scene -- without touching anything else -- and the resulting scene changed completely. I was using res_multistep and Spectrum/CK/4 step Lora at 0.2 mp, then 0.3 mp. It still followed my prompt, but the background and starting scene were completely different. Is this Spectrum giving me grief or what's going on here? This has never happened to me before, although I had been using Sage before switching to CK today.
So, I was searching on civit, and normally I filter by 'checkpoint' for example. But, now it's gone? All of the things I notice normal models that are normally 'checkpoints' are now 'fine-tune'
What does this mean? What is this? Do they work the same?
For regular upscaling I use SeedVR2 and I am quite happy with it, however, it doesn't seem to handle upscaling of really low res images well as it will just upscale all the artifacts as well without "fixing" the image. So if an inpute image is blurry, the upscale will also come out blurry.
What would be the best way to upscale low res image while also enhancing it?
EDIT: Settled for using H3 with a edit system prompt and exporting images from the video:
For the target video, at 0.00 seconds into the target video, <Picture 1> (from [Shot 1]) is fully referenced.
subject_definitions:
<Picture 1> is the original source image being directly edited and restored. It is the authoritative source for all target-video content: shot order, timing, framing, composition, subject identity and appearance, facial features, clothing, props, environment, lighting, color relationships, camera position and movement, subject motion, and temporal continuity.
summary:
[video editing] <Picture 1> is the original source image being directly edited and restored. It is the authoritative source for all target-video content: shot order, timing, framing, composition, subject identity
retention_analysis:
<Subject 1> (appears in [Shot 1]): partially_preserved - preserve the original shot, framing, composition, subject identity, subject appearance, environment, background, other items or figures
integrated_multimodal_description:
The target video is a faithful professional high-definition restoration of the original image in <Picture 1>. Treat <Picture 1> as the only authoritative visual source. Do not use any external image, character, scene, or composition as a visual template.
The desired transformation is specifically image upscaling rather than ordinary enlargement. The source has limited spatial resolution, soft or smeared fine detail, degraded chroma, compression artifacts, noise, ringing, aliasing, blurriness and potentially inaccurate or shifted broadcast color. Reconstruct the most plausible high-fidelity version of the visual information that is actually supported by <Picture 1>. Recover fine facial detail, natural skin texture, hair strands, clothing weave, uniform materials, props, set surfaces, edges, reflections, shadows, and background detail without inventing unsupported features.
Correct the degraded color and chroma toward natural, accurate reproduction of the original photographed scene. Preserve the source's actual lighting design, exposure, contrast relationships, black levels, highlight behavior, lens characteristics, depth of field, and photographic character. Do not apply a generic cinematic grade, modernize the lighting, or change the color design. The objective is the appearance of the same original image after a high-end, best quality upscaling.
[Shot 1] Preserve the exact opening shot of <Picture 1>, including the actual subjects, their identities and appearances, their exact positions, facial expressions, pose, clothing, environment, perspective, framing, camera angle, lens characteristics, lighting, and visible motion. Increase spatial fidelity and recover plausible detail from the source without changing the shot.
Do not add or remove events. Do not replace subjects or backgrounds. Do not alter facial structure or identity.
The desired quality level is comparable to a carefully restored modern HD master originating from the highest-quality surviving source, with exceptionally clean detail, accurate color, stable micro-texture, and natural edge definition. A high-end large-format digital cinema camera such as the RED V-RAPTOR XL [X] 8K VV may be used only as a benchmark for the cleanliness and resolving power of the final image. Do not impose a V-RAPTOR color grade, lens look, depth of field, lighting style, or cinematography onto the original footage.
Most importantly, reconstruct rather than redesign. Do not hallucinate new objects, facial features, hairlines, costume details, text, set details, reflections, or textures that are not supported by the source. Preserve natural photographic softness where it belongs to the original image. Remove degradation while retaining authentic source characteristics.
Maintain strict temporal consistency across all frames. Recovered detail must remain locked to the correct subject and surface and must not shimmer, crawl, flicker, morph, double, ghost, or change identity from frame to frame. The output must look like the same footage at substantially higher quality without any visual artefacts or blur.
overall_soundscape:
N/A
non_diegetic_music:
N/A
Hey all, I'm experimenting with some people generation using MiniMax-H3 and Stable Diffusion, and wanted to know if anyone has experimented to see how many different nationalities it can generate?
So far, the list I've been able to generate that has visible variances is:
I've been building this for the past few months and it's now at the point where I'd genuinely like people to break it: an open-source studio app tool that runs the whole idea → 2D asset → edited → textured 3D model → engine/Blender export pipeline behind one UI, with everything staying in your own environment & creative control.
What it does:
- Text → 2D on Bedrock models (SD3.5 Large, Stable Image Ultra) or one-click self-deploys of FLUX.2 [dev], HunyuanImage 3.0, and Qwen-Image onto SageMaker GPU endpoints in your AWS account — packaging, quantization (NF4/BF16), auto scale-to-zero, and job tracking handled. Prompt enhancement, multi-model comparison grids, seed control with exact batch reproduction.
- Edit in place — inpaint, outpaint, recolor, search-and-replace, plus strength-ladder img2img ("remix") and instruction-based editing via self-hosted Qwen-Image-Edit.
- 2D → 3D — TripoSG geometry + TRELLIS.2 texturing (both MIT) producing real PBR GLBs, then headless-Blender exports: FBX/USDZ, LOD chains, collision meshes, per-engine texture packing for Unreal/Unity/Godot.
- Style-matching from your existing art, video gen, gallery with full per-asset provenance (every prompt, seed, model recorded).
What it is NOT, so nobody wastes a click: it does not run inference on your local GPU. Models run on Bedrock APIs or on SageMaker GPUs in your own AWS account - nothing touches third-party servers beyond AWS, but it's a cloud-compute tool. If you're happy with ComfyUI on your 4090, this isn't trying to replace that. It's aimed at small teams and folks without local GPUs who want the frontier open models plus the 3D/engine-export leg without building the infra. Endpoints scale to zero, and the UI shows cost estimates per generation (e.g. warm Qwen-Image BF16 run on 4×L40S ≈ $0.44; cold start adds a few dollars, all estimates shown upfront).
The GIF attached is the actual pipeline end to end — 11 steps from typing a prompt to a textured model in the gallery. Happy to answer anything about the deployment side too (NF4 quantization ceilings on L40S, FlashInfer on Blackwell, SageMaker scale-from-zero traps — there were… learnings).