DEV Community

AI-KSK
AI-KSK

Posted on

Ideogram 4 Image-to-Image: A JSON Wash Route and a VAE Latent Route

There have always been two image-to-image routes: encode the image into the latent and let denoise move it, or re-describe the image and generate it again - the "wash". Ideogram 4 needs the second one to be structured: a JSON prompt. This episode ships both routes plus a Flux2 8-step graph for the upscale that Ideogram 4 handles badly.

Evidence note: three workflow JSONs ship with this episode; model files, the denoise split and the Flux2 chain below are read from them. The judgement that Gemma 4 limits the results is the author's, as reported in the video.

When to use it

  • You have a layout you like and want a cleaner or restyled version of it.
  • You want the composition locked by JSON, not by rerolling.
  • You need a 4 MP upscale and Ideogram 4's own upscale is not good enough.

What is different in this workflow

  • Two branches, one episode: the wash route generates from a JSON prompt with denoise 1.0 and no image encoding at all; the latent route encodes the image and works through a split-sigma low-noise segment at denoise 0.85.
  • Gemma 4 recaptioning turns the source image into JSON text; a Qwen3-VL encoder parses it, and the author notes the KJ node tolerates imperfect formatting.
  • SplitSigmasDenoise isolates the low-noise segment, which is what makes a controlled img2img possible on a model that is fundamentally text-to-image.
  • Flux2 8-step does the upscale, because the author says Ideogram 4's tiled upscale fails outright.

Step by step

  1. Wash route: load the image, set the target megapixels, run. Denoise is 1.0 - the source image is not encoded, so the result comes entirely from the recaptioned JSON prompt.
  2. Latent route: load the image, set megapixels, write the prompt, set denoise (0.85 keeps source elements; 1.0 gives a bigger change), run.
  3. For the recaption, Gemma 4 turns image into JSON text; the KJ node extracts it and Qwen3-VL parses it.
  4. If your machine is weak, switch only the unconditional model to NVFP4 - switching the conditional model degrades results much more.
  5. Upscale: load the result into the Flux2 8-step graph, set the target size, run. No extra knobs.
  6. Do not try to upscale with Ideogram 4's own tiling.

Parameter basis

  • Wash (Ideogram 4 洗图结构化 JSON 重组.json, 57 nodes): UNETLoader -> ideogram4_fp8_scaled plus both ideogram4_unconditional_nvfp4_mixed and ideogram4_unconditional_fp8_scaled; CLIPLoaderGGUF; VAELoader -> flux2-vae.safetensors; Ideogram4Scheduler; KSamplerSelect euler; DualModelGuider; CFGOverride; Ideogram4PromptBuilderKJ; llama_cpp_model_loader + llama_cpp_instruct_adv for the Gemma recaption; RHLLMChatNode.
  • Latent route (Ideogram 图生图参考潜空间重构.json, 61 nodes): same stack plus VAEEncode, ImageScale and SplitSigmasDenoise at 0.85.
  • Upscale (flxu2图像修复.json, 20 nodes): UNETLoader -> flux2_distilled_8step_fp8mixed.safetensors; CLIPLoader -> mistral_3_small_flux2_fp8.safetensors (type flux2); VAELoader -> flux2-vae.safetensors; FluxGuidance; Flux2Scheduler; BasicGuider; KSamplerSelect euler; ReferenceLatent + VAEEncode; PiDTextPrompt; image_scale_pixel_v2.

Limits

  • Gemma 4 is the bottleneck, not Ideogram 4: the author says the recaption quality caps the wash route and recommends GPT-5.5 or Gemini for the reverse prompt.
  • Denoise semantics do not map cleanly to SD1.5: the author says the number is not comparable one-to-one, only adjustable in the same spirit.
  • Ideogram 4 is a text-to-image model doing img2img as a favour: the author says he forced it with a low-noise sigma and the support may not be ideal.
  • Its own upscale fails: tiled upscale is a dead end; plain img2img upscale does not degrade but does not help much either, because the effect depends on denoise and you do not want high denoise for upscaling.
  • NVFP4 on the conditional model is a downgrade; only the unconditional one is worth switching.

Episode resources

Top comments (0)