{"id":14542,"date":"2025-08-18T16:10:20","date_gmt":"2025-08-18T15:10:20","guid":{"rendered":"https:\/\/www.keris-studio.fr\/blog\/?p=14542"},"modified":"2025-08-22T10:32:46","modified_gmt":"2025-08-22T09:32:46","slug":"comfyui-ai-for-architecture-case-study-04-render-style-with-chroma","status":"publish","type":"post","link":"https:\/\/www.keris-studio.fr\/blog\/?p=14542","title":{"rendered":"COMFYUI &#8211; AI\/Archi04\u00a0: Render with Chroma"},"content":{"rendered":"<h1>Task<\/h1>\n<h3>Tutorial: Generating Architectural Images with the Chroma Model<\/h3>\n<p>This tutorial will guide you through a ComfyUI workflow designed to create high-quality architectural images using the Chroma model. The workflow is optimized to handle a detailed architectural prompt and generate a final image.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1386\" height=\"756\" class=\"wp-image-14543\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/d-laurent-downloads-gemini_generated_image_h10wxd-1.png\" alt=\"D:\\LAURENT\\Downloads\\Gemini_Generated_Image_h10wxdh10wxdh10w.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/d-laurent-downloads-gemini_generated_image_h10wxd-1.png 1386w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/d-laurent-downloads-gemini_generated_image_h10wxd-1-300x164.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/d-laurent-downloads-gemini_generated_image_h10wxd-1-1024x559.png 1024w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/d-laurent-downloads-gemini_generated_image_h10wxd-1-768x419.png 768w\" sizes=\"auto, (max-width: 1386px) 100vw, 1386px\" \/><\/p>\n<h1>Chroma<\/h1>\n<p>Chroma is a text-to-image generative AI model that is based on the FLUX.1 architecture. It is known for its ability to produce high-quality images from text prompts and for its uncensored content generation capabilities.<!--more--><\/p>\n<p>Here are a few key points about the Chroma model:<\/p>\n<ul>\n<li><strong>Architecture<\/strong>: Chroma uses a rectified flow transformer architecture with 8.9 billion parameters, which is a significant reduction from the original 12 billion parameters of FLUX.1. This optimization improves its efficiency and speed while maintaining quality.<\/li>\n<li><strong>Uncensored<\/strong>: A key feature of Chroma is its uncensored approach, which gives users complete creative freedom and reintroduces anatomical concepts often removed from other commercial models.<\/li>\n<li><strong>Optimization<\/strong>: The developers made architectural changes to improve the model&rsquo;s performance, including a drastic reduction in the modulation layer, which led to better adherence to prompts and reduced generative noise. It also uses a custom temporal distribution and Minibatch Optimal Transport to accelerate training and improve stability.<\/li>\n<li><strong>Accessibility<\/strong>: Chroma is an open-source model available in multiple formats, including standard checkpoints for ComfyUI, and optimized versions like FP8 Scaled Quantization for faster inference on less powerful hardware.<\/li>\n<\/ul>\n<h1>Step 1: Load the Models<\/h1>\n<p>The first part of the workflow involves loading the necessary models. These are the foundational components for image generation.<\/p>\n<ul>\n<li><strong>UNETLoader<\/strong>: This node loads the diffusion model. The workflow specifies chroma-unlocked-v33.safetensors from the diffusion_models directory. You can find the latest version of the Chroma model on Hugging Face.<\/li>\n<li><strong>CLIPLoader<\/strong>: There are two CLIPLoader nodes, and they load the text encoders. The workflow uses t5xxl_fp8_e4m3fn_scaled.safetensors for the positive prompt and t5xxl_fp16.safetensors for the negative prompt. The fp8 version is recommended for systems with lower VRAM. These files are stored in the text_encoders directory.<\/li>\n<li><strong>VAELoader<\/strong>: This node loads the VAE model, specified as ae.safetensors, which is located in the vae directory.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"545\" height=\"418\" class=\"wp-image-14544\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-2.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-2.png 545w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-2-300x230.png 300w\" sizes=\"auto, (max-width: 545px) 100vw, 545px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"154\" class=\"wp-image-14545\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-3.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-3.png 510w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-3-300x91.png 300w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/p>\n<h1>Step 2: Define Image Size and Prompt<\/h1>\n<p>Next, you will set the dimensions of the final image and write your prompts.<\/p>\n<ul>\n<li><strong>FluxEmptyLatentSizePicker<\/strong>: This node allows you to set the image resolution and other parameters for the initial latent image. In the workflow, the resolution is set to 1344&#215;768, a 16:9 aspect ratio.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"310\" height=\"338\" class=\"wp-image-14546\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-4.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-4.png 310w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-4-275x300.png 275w\" sizes=\"auto, (max-width: 310px) 100vw, 310px\" \/><\/p>\n<ul>\n<li><strong>T5TokenizerOptions<\/strong>: This optional node provides a way to adjust the tokenizer settings, such as min_padding and min_length. The provided note mentions that min_padding 0 might give better results, even though min_padding 1 is the official way to run the model.<\/li>\n<li><strong>CLIPTextEncode<\/strong>: This is where you write your prompts.\n<ul>\n<li><strong>Positive Prompt<\/strong>: The example prompt is a very detailed description of a \u00ab\u00a0large contemporary building\u00a0\u00bb with architectural features inspired by ocean waves. Using a specific, descriptive prompt like this helps the model generate a more precise image.<\/li>\n<li><strong>Negative Prompt<\/strong>: The negative prompt is configured to prevent common generation issues by using keywords like low quality, bad anatomy, extra digits, and missing limbs.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"493\" height=\"492\" class=\"wp-image-14547\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-5.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-5.png 493w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-5-300x300.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-5-150x150.png 150w\" sizes=\"auto, (max-width: 493px) 100vw, 493px\" \/><\/p>\n<h1>Step 3: Sampling and Decoding<\/h1>\n<p>This is the core of the image generation process, where the model creates the image based on your prompts.<\/p>\n<ul>\n<li><strong>FreSca<\/strong>: This is an optional node that improves the quality of anime-style images. The accompanying note suggests disabling it (using CTRL-B) if you are generating realistic images.<\/li>\n<li><strong>KSampler<\/strong>: This is the main sampling node that generates the latent image based on your model, prompts, and the latent image size.<\/li>\n<li><strong>VAEDecode<\/strong>: After the KSampler finishes, this node converts the latent image back into a viewable image.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"534\" height=\"688\" class=\"wp-image-14548\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-6.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-6.png 534w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-6-233x300.png 233w\" sizes=\"auto, (max-width: 534px) 100vw, 534px\" \/><\/p>\n<h4>Step 4: Save the Final Image<\/h4>\n<ul>\n<li><strong>SaveImage<\/strong>: The final node in the workflow saves the generated architectural image to your computer.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"795\" height=\"764\" class=\"wp-image-14549\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-7.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-7.png 795w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-7-300x288.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-7-768x738.png 768w\" sizes=\"auto, (max-width: 795px) 100vw, 795px\" \/><\/p>\n<h1>Same Workflow using Flux.<\/h1>\n<p>Put back the CFG to 1<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"522\" height=\"719\" class=\"wp-image-14550\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-8.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-8.png 522w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-8-218x300.png 218w\" sizes=\"auto, (max-width: 522px) 100vw, 522px\" \/><\/p>\n<h2>Flux-dev-fp8.safetensors<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"791\" class=\"wp-image-14551\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-9.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-9.png 874w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-9-300x272.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-9-768x695.png 768w\" sizes=\"auto, (max-width: 874px) 100vw, 874px\" \/><\/p>\n<h2>Flux-dev.safetensors<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"792\" height=\"755\" class=\"wp-image-14552\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-10.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-10.png 792w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-10-300x286.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-14542-10-768x732.png 768w\" sizes=\"auto, (max-width: 792px) 100vw, 792px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Task Tutorial: Generating Architectural Images with the Chroma Model This tutorial will guide you through a ComfyUI workflow designed to create high-quality architectural images using the Chroma model. The workflow is optimized to handle a detailed architectural prompt and generate a final image. Chroma Chroma is a text-to-image generative AI model that is based on &hellip; <a href=\"https:\/\/www.keris-studio.fr\/blog\/?p=14542\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">COMFYUI &#8211; AI\/Archi04\u00a0: Render with Chroma<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":14553,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[190,593,14,8],"tags":[57,546,600,601,612],"class_list":["post-14542","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-architecture-2","category-artificial","category-conception","category-methodologie","tag-architecture","tag-artificial-intelligence","tag-comfyui","tag-confyui","tag-rendering"],"_links":{"self":[{"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/posts\/14542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14542"}],"version-history":[{"count":3,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/posts\/14542\/revisions"}],"predecessor-version":[{"id":14633,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/posts\/14542\/revisions\/14633"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/media\/14553"}],"wp:attachment":[{"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}