Flux.2: They Nailed It Again

When Black Forest Labs announced flux 1 a year ago, it blew my mind. Up until that point, I was experimenting with Stable Diffusion(sdxl) models, which are okay but had lot of limitations, and generated all kinds of weird images - 6 fingers, 3 hands, distorted faces, etc.

Flux 1 changed the game, it was accurate, realistic and when paired with LORAs, we can generate anything we can dream of. I was hooked, and I thought it is the pinnacle of AI image generation. It could not get any better than this.

However, Black Forest Labs just dropped Flux 2 and it caught me by surprise. It stood up to its title “Frontier Visual Intelligence” and I think they nailed it again.

I have been playing with Flux 2 since yesterday and here are some of my thoughts.

Flux.2 is not for Everyone

Split screen showing a person with regular laptop vs an enterprise server with multiple GPUs Generated by Bargav Kondapu via Flux.2/fal.ai. Prompt: Split scene, left side shows a regular person with modest laptop looking confused, right side shows enterprise server farm with multiple GPUs and cooling systems, dramatic contrast, professional photography

The first thing that I noticed is that this model is a beast. We are talking about a 32b parameter model, that requires around 90GB VRAM to load completely. Even GPUs RTX 4090 might struggle to load this model. We might need something like H100 or equivalent.

BFL and Nvidia collaborated to bring optimized FP8 version of model, that require less RAM and improved performance, however that has some significant hardware demands.

For an average hobbyists, like me, this is a barrier. Flux.2 is aimed at enterprises and professionals with serious compute power and/or API budgets.

My Workflow

I don’t have access to high end hardware to even run Flux.1, let alone Flux.2. I used to run stable diffusion webui forge on RunDiffusion before, then switched to RunPod, renting GPU instances as needed.

The easiest way to get started with Flux.2 is using it on fal.ai. It’s fast, reliable and handles the heavy lifting of infrastructure. It currently costs around $0.06 per image, which is reasonable for occasional use and experimentation.

However if I have to implement it within a team or for heavy use, depending on the usage and budget, I might consider RunPod or LambdaLabs, renting high end GPU and using comfyUI as well.

Image Quality

I have spent last few hours generating images with Flux.2 and actually testing all their claims on their blogpost. I must say, majority their claims are valid. Here are what they promised and my experience with it.

Multi Reference Magic

This is my favorite feature. Previously if we have to maintaining consistent characters, we have to use Img2Img or a fine-tuned LORA and hope for the best. It was solved with Flux Kontext, but it was a struggle for me to maintain and switch between base model (Flux.1-dev) and Flux Kontext.

With FLux.2-dev, this is a built in. I can provide multiple reference images, provide context around character, clothing style, background, etc.. and it maintains consistency. This has a huge potential in generating story arcs, comics, etc.

Some examples below:

The guy in blue tshirt having chat with another person in cafeteria Prompt: @image1 make the man in blue stand in cafetaria, speaking with another office colleague. He is holding a cup of coffee. A story board illustration.

The guy in blue tshirt driving a car Prompt: @image1 make the man in blue drive a car. A story board illustration.

The guy in blue tshirt walking down the street Prompt: @image1 make the man take a walk along side of a road in a down town. A story board illustration.

The guy in blue tshirt in a meeting Prompt: @image1 make the man in blue sit across a conference table, along with few more people. It's a mix of men and women. A story board illustration.

The guy in blue tshirt working at his desk Prompt: @image1 the man in blue is working at his desk, in a cubicle in a corporate office. He is programming, focused.

A guy in blue tshirt presenting to his peers Prompt: @image1 Make the man in blue present to few peple. He is showing towards the screen, that read 'Flux.2 is amazing.' A story board illustration.

However, I did notice that it struggles a bit with faces when using multiple references. Faces look a bit off, esp, with real world photos, like eyes not aligned properly, or weird expressions. But overall, it is a huge improvement over previous models.

some examples below:

AI generated image of me talking with a colleague Prompt: Man from @image1 is having a casual talk with his colleague, in a cafeteria. He is holding a coffee mug. He is laughing.

AI generated image of me having coffee chat Prompt: Man from @image1 is having a casual talk with his colleague, in a cafeteria. He is holding a coffee mug.

Finally was able to get the face right, but skin texture of hands are still off.

AI generated image of me sitting at my desk Prompt: @image_1 Make a casual headshot of me, in office room, sitting in front of my computer, smiling at camera. Real looking. Natural lighting. long shot. I am relaxing on my chair.

Incredible Details

Details and photo realism are amazing. It generates cinematic and professional grade images.

incredible detailed image of a young girl in a muddy spartan race lifting a flag that reads ‘Flux2 is here’ Prompt: A kid, of brown skin tone, playing rough in mud, as if competing in a spartan race. Close up, zoom on her, while she lifts a flag that reads 'Flux2 is here'.

However, I have one complaint, details on the next section.

Text Rendering

One of the main reason I hated SD models is their inability to generate text. Flux.1 solved it, but text still felt like it was pasted on, have some minor typos, had to go multiple iterations to get it right. Flux.2 nails it. Text is clear and looks natural. Not just tiny texts, but it can generate infographics, UI mockups, etc. with ease.

Prompt Understanding

This is subtle but makes a huge difference. I can give it complex and structured prompts. It also understand multi-part prompts. I can specify background, foreground, details, mood, etc.. and it generates accordingly.

Here’s an example of image and it’s structured prompt:

{
  "scene": "Office cafeteria scene with colleagues talking and smiling.",
  "subjects": [
    {
      "type": "man",
      "description": "A smiling man in business casual attire.",
      "pose": "Standing, facing slightly towards the other person, gesturing with one hand.",
      "position": "midground"
    },
    {
      "type": "woman",
      "description": "A smiling woman in business casual attire.",
      "pose": "Standing, facing the man, engaged in conversation.",
      "position": "midground"
    }
  ],
  "style": "Amateur photography, realistic.",
  "color_palette": [
    "#F5F5DC",
    "#A9A9A9",
    "#4682B4"
  ],
  "lighting": "Bright, natural overhead fluorescent lighting.",
  "mood": "Friendly, casual, positive.",
  "background": "Blurred office cafeteria with tables and chairs visible.",
  "composition": "Medium shot, eye-level.",
  "camera": {
    "angle": "Eye-level",
    "distance": "Medium shot",
    "focus": "Shallow depth of field, focusing on the subjects.",
    "lens": "Standard smartphone lens",
    "f-number": "f/2.8",
    "ISO": 400
  },
  "effects": [
    "Slight lens flare off ambient light",
    "Natural color saturation"
  ]
}

Screenshot showing structured details prompts Screenshot of settings showing structured prompt for Flux.2

And here is the final produced image:

Image using structured prompt

Too Realistic

One complaint I have with Flux.2 is that it is too realistic. While I appreciate the cinematic and professional grade images, that’s not what users always want.

People love and connect more with a regular photo taken on iPhone than a cinematic shot. Imperfections make images more relatable. I am a big fan of such real world images that focus on story and emotions, rather than technical colors and lighting perfections.

So I have to explicitly mention in prompt, to make it low quality, amatuer, taken on phone, etc… to get such images, or process it later in photoshop to add some grain, lower sharpness, get that real world feel.

Examples:

Cinematic image of a father playing with his daughter Prompt: A father playing with his 2-year-old daughter in the living room, natural afternoon light coming through the window, candid moment

A more realistic image of a father playing with his daughter Prompt: A father playing with his 2-year-old daughter in the living room, natural afternoon light coming through the window, candid moment, amateur photography, taken on iPhone, slightly grainy, low quality, casual snapshot

While they are both amazing, the second one connects more with me personally. Maybe it’s because of the imperfections, the grain, the lighting, etc.. It feels more real.

Enterprise Ready: Safety Features

This is where I debate with myself, an advocate for unrestricted technology vs the responsible professional.

At a personal level, a part of me, believes technology to be free and unrestricted. Tools should be neutral and restrictions feel like limitations on creative freedom. I believe in freedom to compute and the idea that tools should not be moral arbiters.

However, as a technology professional, that works with organizations and understand real word constraints understand the need for these safety features. If I have to implement this and have to justify to a CTO or legal team, these safety enhancements are a blessing.

Black Forest Labs has put in some serious work into Flux.2’s safety implementations and it is impressive.

  • Internet Watch Foundation They have teamed up with Internet Watch Foundation to filter all harmful content, including CSAM (Child Sexual Abuse Material) and Non-Consensual Intimate Imagery (NCII) from the pre-training data itself. They have ran multiple evaluations to test model’s resilience against attempts to generate harmful content. This is something I would support completely at personal and professional level.

  • Filters for NSFW and IP infrinding It includes filters for NSFW and IP-infringing, at both input and output levels. At personal level, I hate this. IP-infringing is a nuance that I never understand. But at a professional level, I completely support this. No organization would want to deal with legal issues around unintented IP infringements.

  • Content provenance This is another impressive step that I completely support. Flux.2 embeds digital watermarks and uses c2pa, which cryptographically signs the output image. This means that we can verify if an image is AI-generated or not. In today’s world of misinformation and deepfakes, this is a crucial feature. I would encourage more AI models to adopt this as well.

I understand these restrictions can be an annoyance for hobbysists and enthusiasts, but if we want AI to be taken seriously in production environments, we have to embrace the guardrails. While I still don’t know where to draw the line between freedom and responsiblity, I appreciate that Black Forest Labs are thinking about it seriously rather than ignoring it. Being proactive about it.

Final Thoughts

Flux.2 is not just an incremental upgrade from Flux.1, it is a shift in the paradigm of AI image generation. It is a fundamental change in what’s possible with AI image generation.

A cute little monster jumping from Flux.1 to Flux.2 Prompt: A cute little 3d humanoid monster taking a confident leap from stepping stone labeled

The multi-reference support, text rendering, prompt understanding is just a glimpse of what is possible. More than technological improvements, Flux.2 signals where field is heading. It is moving from a tool for hobbyists to a professional grade tool for enterprises. It is moving from “cool demos” to “real world applications”.

I am still continuing to explore Flux.2 and its capabilities, but I am excited about the possibilities it opens up. With Flux.1, Black Forest Labs showed that open source image-gen can compete with closed models, like Gemini. With Flux.2, they are leading the charge into the future, with resposibility ofcourse.

They nailed it again.

References

Post · Nov 25, 2025 · Permalink · 9min read

My Thoughts on AI-Assisted Coding

Over the past few months, I have been experimenting with AI-assisted coding, for both my personal passion projects and professional. It’s been fascinating, frustrating and eye-opening. Here are some of my thoughts about it.

It’s not “Vibes”, it’s a tool

Firstly, let’s get the terminology right. Can we stop calling it “vibe coding” ? I have been hearing that term used everywhere, and it just doesn’t feel comfortable. That term feels like sort of aimless, go with the flow kind of development. No one is vibing here, we are still writing code, and solving problems. The AI is assisting us, not doing any magic.

Every line of code we write, weather AI assisted, auto generated or hand typed needs to serve a purpose. One should have an end goal, a clear understanding of what they are building, the intent and the problem they are solving. Without that clarity, we would end up with a beautiful mess of code. Over the years, I have seen this happen a lot, even without AI in the mix.

Having that end goal and the clarity is crucial. It helps you build something meaningful and working, rather than just useless code of snippets and frustrations. AI is just one of the tools that helps us achieve the goal.

A Team of Brilliant Juniors

Working with AI, feels like leading a team of 10 extremely smart and ambitious junior developers. They have a lot of theoretical knowledge, programming patterns, languages and their syntax. They are also ambitious and eager to show off their knowledge and can code complex algorithms in minutes .

However, they lack real world nuances that only comes with experience. Like, they use the latest design patterns/ framework, without checking the consistency or backward compatibility with current codebase. Adding inline styles to every block, rather than using existing css classes or variables…

And sometimes, one of them shows up drunk. AI hallucinates. It will confidently suggest a function, that doesn’t exist, reference a library that was never written. Just like we would keep an eye on other human developers, we need to constantly verify what AI is suggesting you.

They need mentoring and guidance. Just like dealing with any junior developers, we have to provide the context, explain best practices, and guide them towards better solutions.

For example (just flexing my developer muscles here), I was recently working on a use case where I had to use cache contexts in Drupal. AI generated this beautifully complex code, along with some lines in a pre-render hook that would disable cache completely. Though I can fix it by hand, I prompted it further, “I see you are disabling cache at this xyz line, it would defy our entire goal. We wanted to have varying cache based on these ___ parameters.” . It apologized, refined the logic. I then asked, if it can use event subscribers instead of defining it in module hooks, following drupal’s best practices. And it refined it. It needed that follow-up prompting and mentoring to get the module, as I want.

Best Practices

Remember all the best practices and fundamentals of a good software development, that are evolved over the years? They are even more important with AI assisted coding. We have to rely on our old friends - version control, linters, code reviews, and testing to strengthen our new relationship with AI.

Version Control (Git) is our safety net. Working with AI, we make rapid changes, and also sometimes, AI generates complete rewrite of the files. It is easy to get lost. I usually keep making commits with every small change I make with AI. Having that clean version history make me understand what’s being changed, roll back the wrong code and keep things stable.

Linters and Sniffers They are the first line of defense. AI works to make code run, Linters and sniffers make sure that code is consistent with the standards in place. I always have linters and code sniffers enabled and auto run on my every commit. They doesn’t let me commit bad code accidentally.

Code Reviews Having another human in loop, other than AI and yourself, are crucial. They ask ‘why’ questions, point out any logical flaws, suggest better architectural solutions, ensure it doesn’t conflict with other parts of code and that it aligns with team’s standards.

A little note: Please don’t use automated AI code reviews on an AI generated code. It serves no purpose, and a complete waste of resources.

Testing Testing is important. With AI-assisted coding, it is even more crucial. All kinds of testing, automated and manual, (unit, integration, system, performance, accessibility, security, usability,…) should be in place and performed. AI or not, Testing is an integral part of development lifecycle and ignoring it will take it’s toll.

They are not just ‘best practices’ for the sake of it, they are fundamentals we should have been following all along. They are the guardrails that prevent our project from derailing, when moving at the speed of AI.

The Reality Check

Don’t fall into all these marketing jargon, influencer posts, and fake promises. Know what AI really is and where it can help.

AI can only generate what humans can generate too. It is just doing it 100 times faster. If you can’t build a scalable system manually, AI won’t magically create one for you. If you don’t understand the requirements, AI won’t figure them out either. It might help you think through, suggestion and gain better clarity, but won’t draw the requirements out of thin air.

I have seen a lot of people get frustrated when AI can’t solve problems, they couldn’t solve themselves with enough time. It is not AI failing, but AI working exactly as it should.

The Uncomfortable Truth

Okay, I am saying it out loud, “AI is coming for your jobs”. Not “Someone with AI will replace you”, but AI will replace the job itself.

Think about it, not long ago, there used to be trunk call operators. With advancement in telephones, those roles just disappeared, and slowly even phone booths were gone. Bank tellers and cashiers were minimized with the advent of cashless transactions and ATMs. Postmen, though still around, reduced in number and most of work they used to do, is now done by corporate drivers and emails.

The same is coming for developers. It is not just changing jobs or roles, it is changing the entire landscape. I don’t know what the future holds, but demand for someone who simply writes code is diminishing. The ability to architect systems, understand requirements, provide critical thinking and mentoring “AI Junior Developers” is uniquely human, for now.

Reflecting my journey

This journey with AI assisted coding, has been personal. It helped me build several passion projects, that I wouldn’t have time to work on otherwise. What would have been months of heavy grind, turned into a weekend hackathon.

Most of those projects, are still being tested and developed incrementally, will release in near future.

At work, I can only have a limited use of AI, because of privacy and security reasons. But even just that helped me prototype and explore different solutions faster, debug issues sooner.

Overall, AI pushed me to learn and grow. It helped me become a better developer, a better manager and a better mentor 😉.

Note: The speed of AI is intoxicating, but again, speed without direction, is just motion and not progress.

Tools I use

Please skip this, if you don’t want to be bored by technical jargon. I keep on experimenting with different tools, but here are the main AI tools I have been using for development purposes.

VSCode VSCode has been my go to editor, and I don’t think I would replace it any time sooner. It has several plugins that integrate and support beautifully well

Copilot Copilot plugin for VSCode is my default AI tool. I loved AI having a context. When I started using it, the context was just the file we opened, but with the later versions we can add more files and folders as context. It has been a game changer. It helped debug issues much faster, and generate snippets that are relevant to the project.

Continue Another plugin I recently started using was continue for VSCode. The crazy thing is it lets you use any model, including your local models.

Ollama Speaking of local models, for a long time, I was using Ollama, with Llama LLMs on my local. Ollama is a tool that let’s you run LLM’s on your local machine. It was such convenience, i.e. you don’t have to worry about privacy, subscriptions and even internet. It works completely on your machine. Ofcourse you are limited by your processing speed, and not recommended for complex setups.

Antropic Claude I am falling more and more in love with Claude. Especially with Opus 4 model. I found myself discussing ideas with it, at 12 am in the night.

Google Gemini I am not using it for code as much, but their recent video generation capabilities have got me hooked. I am still experimenting with it and too early to say anything.

Moving Forward

I am not sure what the software landscape will look like in 5-10 years. I suspect it will be very different from today. I will be bluffing if I say, “I am not worried!” . I am worried about software development career, and how to navigate or adapt to rapid growth of AI. At the same time, I am also excited about the technology and future possibilities.

The key is to stay curious, stay connected, understand problems we are trying to solve.

What is your experience with AI-assisted coding?

This is part of my ongoing exploration of how technology is changing our professional and personal landscapes. You can find more of my thoughts and journey on my blog.

Post · Jun 19, 2025 · Permalink · 8min read

Why I am Writing Again - A Personal Reflection

It’s being years since I have written anything here, or on any social media. My interactions were minimal, and my last post was in 2020. Years of silence, ideas floating around in my head but never making it to the page. This morning, as I watch the sunrise, my daughter still sleeping peacefully, I am finally ready to share why I stopped, and started writing again.

The Beautiful Pause

My world narrowed down to the most wonderful, demanding and captivating little creature - my daughter. The first few months were a blur with sleepless nights, precious moments and adjusting to the parenthood.

She is two years now, and watching her discover the world has been the most incredible experience. The way she points at airplanes, the way she pretends to be a bird or a lion, her curiosity at even the tiniest details, how she does the one thing we tell her not to and laughs after that, and finally the confidence in her eyes when she knows that her dad is right by her side - It is magic.

My focus was not on the world outside, but it’s entirely on her and my loving wife. And I wouldn’t trade those precious moments for anything.

The Comfortable Trap

Another reason I stopped writings is because my professional world has become ‘Comfortable’. Same projects, same challenges, same routines. I was good at what I did, my work was stable, predictable and stagnant.

Don’t get me wrong, the job was great and my manager was even more helpful. He encouraged and provided me with opportunities to grow, which I refused to let go of my comfort. I am thankful for that job I had and the flexibility it provided to be able to spend most time with my daughter.

Comfort is seductive, it tells you not to push yourself. While it is pleasant, it also meant that there wasn’t a drive to grow, reflect or write about.

The Social Media Fatigue

Ah, there it is, the social media. Remember, when it used to be fun? you used to scroll down the feed and learn something, catch up on friends and have some real conversations with someone? Those days are long gone.

My feeds have became an endless stream of digital marketing posts, clickbait headlines, and people pushing agendas. Everyone seemed to be selling something - a course, a lifestyle, a mindset. The real conversations I used to have with people, turned into watching a bunch of short podcast clips where everyone seems to be expert on everything. The genuine connections I used to find, got buried under layers of manufactured content.

The platforms that once felt like communities, now feels like advertising billboards where everyone are shouting, but no one is listening.

And then come the algorithmic chaos. A random social media algorithm decides that it is more important to show me a random person’s fake mansion than showing my friend’s first home purchase. I just didn’t felt the need to write anything meaningful that would just get lost in this chaos.

The Googly

For those from non-cricket playing countries, googly is a way of bowling where ball spins opposite way of what batsman’s like to expect. It’s a slang for saying when something unexpected happens. A alternative for curveball.

Life threw a googly, a layoff in the toughest of the markets. It is unexpected, sudden, and terrifying. I was in layoffs or job changes before, but this time it hit different. Hundreds of job applications and not a single response. Bills, payments were all stacking up.

Looking at job descriptions, and responses, made me question myself. Was I being relevant? The first few days were fine, thinking I would find an alternative soon, but after that, the next few weeks were dark. I started questioning my skills, my worth, my daughter’s future. Thankfully I found a new job of my liking.

But the entire experience made me reflect on myself. Professionally, when was the last time I was curious? When was the last time, I was genuinely excited? Where are my goals list? …

The layoff didn’t just take my job away, it gave me back my curiosity.

The Drive to Reconnect

While I was living in a bubble, or in Mr. Trump’s style " A Beautiful Bubble", the world around me kept spinning. New technologies emerged, new ways to think about old problems, and more communities being fostered around shared interests.

With what happened in past few months, it made me realize a need to be more connected - personally, socially and professionally. Instead of just giving up in the world of algorithmic chaos, be a part of making it better. Be a part of conversations again, sharing some genuine and meaningful interactions and learning.

What’s Next ?

So here I am, writing again, rediscovering the questions.

I am writing this on my blog first and then share it everywhere. It is intentional.

In a world where everyone racing to monetize on content, where platforms rise and fall faster than ever, I want to own my content. LinkedIn might be a professional network today, but who knows what it will look like in a few years. Twitter transformed into something unrecognizable. Facebook, it is heading towards the same fate as Orkut and Myspace. Tiktok gets banned at will. Instagram keeps changing it’s algorithm.

This little corner of internet, it is mine. My thoughts live here first, in a place that I control. If you want to find some real thoughts, my genuine reflections, they will be here, not buried in some platform’s feed competing for ads and attention.

I don’t know what exactly I will be writing about, but I plan to write about diverse topics, technologies and web development, philosophy, mythology and leadership, parenthood, …

All I know is I am excited again - to explore, to share, and to connect with others.

Thank you for being here. If you are in a similar place - someone just caught up in responsibilities, or someone who is just coasting professionally, or just feeling disconnected from the things that used to excite you - remember, it is never too late to start again.

Post · Jun 14, 2025 · Permalink · 5min read

Stop Setting Goals You Don’t Actually Care About. Focus on a selected few. Just one or two.

Too many goals is not sustainable and would not last long.

Note · Jan 1, 2021 · Permalink · 1min read

My teachers words, a decade ago (exactly on 1.1.11). Still keeps me inspired and be greatful for every moment.

“If you people celebrate New Year, Then why don’t you celebrate every day. Because every day is a new day. Every Moment is a special one.” - Dr. P. Padmaja

Note · Dec 31, 2020 · Permalink · 1min read

You don’t get paid for how much stress you take,

You get paid for how much value you provide.

#mindset #motivation

Note · Dec 11, 2020 · Permalink · 1min read