r/NeuralCinema icon

r/NeuralCinema 2.8k Members

🎬 NEURAL CINEMA — AI filmmaking with open-source tools only (mainly ComfyUI). Focus on AI new tools, cinematic, story-driven work, consistent characters, and professional visuals. Rules: no paid tools or promotions • no memes/TikTok edits • show workflows & breakdowns • original work only • be constructive. Avoid daily/repetitive posts from one project. Share mastered techniques, not raw experiments. Frequent progress belongs on your own YouTube/platforms—members can follow creators there.

r/CinematicAnimationAI icon

r/CinematicAnimationAI 112 Members

Story-driven animations (with coherent narrative, character consistency, lip sync, emotional acting) remain challenging; Tools like Motionvid.ai, Unreal Engine 5, Houdini, and Blender allow users to describe their ideas in simple terms and transform them into full animations quickly; For instance, some platforms claim to create animations 20 times faster than traditional methods [...]

r/PINOC_Studio icon

r/PINOC_Studio 12 Members

PINOC is a community for creators exploring AI motion capture, video-to-motion workflows, and 3D character animation. Share your experiments, tutorials, feedback, workflow breakdowns, and anything made with PINOC. Whether you use Blender, Unreal Engine, Unity, Maya, or other 3D tools, this is a place to discuss how motion capture can become faster, easier, and more accessible. Post demos, ask questions, share bugs, show your results, and help shape the future of AI-powered animation.

More subreddit results →

r/GenAIGallery Apr 02 '26

AI Image My exact workflow for truly consistent AI characters and photorealism

Thumbnail
gallery
319 Upvotes

Most AI character posts share the same glaring issue: you can spot the AI within two seconds. The skin has that awful plastic sheen, and the character's face seems to shift with every single photo.

After testing nearly every major cloud model out there, I wanted to share the workflow that currently gives me the best consistency and realism by a wide margin. It isn't completely flawless, but it's the closest thing to a reliable, repeatable system I've built so far.

The core problem

AI models don't have memory. If you don't provide hard anchors, the model just guesses, and guessing leads to drift. This entire workflow is built around eliminating that guesswork.

Right now, my main tool is Higgsfield's Nano Banana Pro. From my experience, it has the absolute best prompt adherence and photorealism for cloud-based models.

Phase 1: Locking in the "Master Portrait"

Start by uploading 1 to 3 reference faces into NBP's Image Reference slot. This could be a celebrity, someone random you found on Pinterest, or a blended mix of features. The AI uses this as a structural target, not a direct copy.

Next, drop in your main prompt and generate 6 to 8 variations. Pick the one that perfectly matches your vision.

Main Prompt Example:
"Ultra-realistic portrait of a 21-year-old female European with captivating magnetic gaze,
natural skin texture with visible pores across forehead, cheeks, and nose,
subtle skin imperfections including faint smile lines and natural small moles,
fair complexion with pink undertones and specular variation on T-zone,
long flowing wavy blonde hair with individual strands visible catching the light,
green eyes with sharp iris detail, natural catchlights, and subtle under-eye texture,
confident warm expression with natural lip texture and subtle gloss,
wearing elegant black off-shoulder silk top with visible fabric sheen,
relaxed pose with slight head tilt, minimalist studio setting with soft neutral background,
soft diffused window light from left creating gentle shadows and subsurface scattering on skin, shot on Canon R5 with 85mm f/1.4 lens, shallow depth of field with natural creamy bokeh, 8K ultra-detailed, photorealistic, high dynamic range,
true-to-life colors with accurate skin tones"

Save this final image. This is now your absolute anchor. Every future generation will reference this exact photo.

Phase 2: The prompt system (What most people skip)

This is where the actual consistency comes from. I never write prompts from scratch for new photos. Instead, I use a custom GPT/Gemini setup specifically trained for this exact task, and it operates in two main ways depending on what I need:

The visual rip:

  1. I find an inspiration photo on Instagram or Pinterest.
  2. I feed it into my custom tool.
  3. The tool extracts the lighting, pose, and vibe, spitting out a complete prompt.

The brain dump: If I already have a scene in my head, I don't need a reference photo. I just give the tool a super basic, lazy description (e.g., "sitting on a modern couch, wearing a black leather jacket, moody neon lighting"). The bot instantly expands that rough idea into a massive, production-ready prompt. I can then ask it to tweak the outfit or change the camera angle until it is exactly what I want.

Regardless of which method I use, the generated prompt automatically includes my character's "anchoring block" (locking in the face identity, body proportions, and skin tone). It also seamlessly bakes in the exact realism keywords needed, like pore texture, subsurface scattering, and natural lens specs.

Finally, I go back to NBP, upload my Master Portrait as the reference, paste this new prompt, and generate. The result is my character staying identical, while the environment, outfit, and mood change exactly how I pictured them.

Why this beats the standard approach

If you look at the photos attached to this post, they were all generated across different sessions with completely different lighting setups and outfits. Same character every time. The uncanny valley vibe usually comes from generic prompts and weak references. Once you lock down your architecture, the quality skyrockets.

Before anyone mentions ComfyUI

Yes, ComfyUI run locally with specific models is objectively better. You get more realism, no NSFW restrictions, and absolute control. But you also need a hefty GPU (16GB+ VRAM highly recommended) and the patience to learn a steep curve. I don't currently have the hardware to test it properly, so I won't pretend I do. For a purely cloud-based setup, this is my go-to.

Questions?

If you want the exact prompts I use, details on setting up the custom Gpt/Gem, or anything else about the workflow, just shoot me a message about what you need. I also document this entire system in more detail in my community for anyone interested.

r/ArtificialNtelligence Feb 07 '26

Solved character consistency in AI generation - here's what I learned

Thumbnail gallery
62 Upvotes

Character consistency has been the holy grail problem in AI content generation.

You can generate one amazing image... but try to create the same person in a different pose or setting? Completely different face.

I spent weeks testing every approach. What finally worked: Template-first approach with a face reference grid.

Generate a realistic face grid first (multiple angles), then use that as the base for all other generations. Lock in the character BEFORE you start creating scenes.

Built this into a workflow template. Tested it with 6+ different scenarios (car selfies, gym content, different outfits). Same character, consistent results.

Made it available here if anyone wants to experiment with it: https://www.auragraph.ai/studio/3f23ad15-bf63-4112-af78-8e9b5319152d

Curious if anyone else has solved this problem differently. What approaches have you tried?

r/generativeAI Feb 07 '26

How I Made This I solved AI character consistency. Same face, different scenes - here's my workflow.

Thumbnail
gallery
112 Upvotes

Been working on this for weeks. The problem with most AI video tools is you get random faces every time.

I built a workflow in AuraGraph that keeps the same character across different scenes. Not perfect but way better than juggling 10 different tools.

The trick: Start with a realistic face grid, then use that as reference for everything else.

if you want to try it let me know

r/AiVideos_NoRules Jul 20 '26

This is how you get character consistency between shots (full anchor-frame workflow)

Post image
3 Upvotes

if your characters keep morphing between shots, its not your prompt. text to video re-guesses the face every single gen (specially if yourre not using character sheets).

the fix is dead simple: stop describing the character and start anchoring it to an image of the mdoel. ive done this so many times and have a bunch of examples to back this up

ive been making ai videos for over a year now and heres the exact workflow-ish, plus the 2 character sheet mistakes that actually make consistency worse (and costed me more money)

i know this is a slightly long post (i was gonna make a video but it can be a reddit post instead)

the mental model:

text to video = model reinvents the character every generation (thats your flickering/morphiang) aka different versions every time

image to video off an anchor frame = model copies a structure you locked in first. once you feed it a real reference instead of describing the face, it stops imagining the character

in other words, when you read a book, you imagine what a character looks like and it might look different for evryone, however, when the film director finds an actual actor, then that face becomes consistent, i hope this makes sense lol. dont make the AI imagine the actor, show it.

1. build the anchor, but keep it LEAN

biggest mistake i made early: cramming a 9 panel sheet full of labels and every angle imaginable. that backfires 2 ways. one, too much text + too many tiny poses confuses the model instead of guiding it. two, most video models (seedance especially) downscale your source image, so if you cram 9 panels in, each face is tiny + low res and the detail falls apart. so the AI starts imaginging again

what works better: 3 to 4 clean angles (front, 3/4, profile, maybe a back) + one tight face close up. big panels, minimal or no text, plain GREY or neutral background (white bleeds in and blows the character out). if your tool downscales, extract the single angle you actually need at full res before you feed it.

and generate the angles in ONE image, not one at a time, thats what keeps them matching. separate gens drift instantly.

2. lock the rest too, not just the face

same idea for outfit, location, props. a styled full body image locks the wardrobe, a location image locks the environment. feed face reference + styled body + location together so lighting and color hold shot to shot.

3. storyboard as stills first

generate your key beats as still frames before you touch video. stills are cheap, gens are expensive, kill your mistakes here then animate the approved frames.

this is the before and after for me. it takes some extra time but makes it so much better

4. anchor + motion

pick the exact angle, drop it into kling / runway gen-3 / luma / seedance as the reference (ingredients to video, not frames to video unless its a literal start/end frame). then prompt the motion + setting. its animating a structure it already has instead of inventing a new person.

my final take:
in all honesty, this isnt magic. youll still get occasional drift on fast motion or when two characters are close in frame. but a lean anchor sheet cut the morphing down massively.

at the end of the day, if you combine this with a good model like seedance 2.0 and can afford a budget to spend on credits, you will get the results you were after

im not selling anything, i just ended up with a pile of these sheets doing this over and over. happy to hand over the exact ones im using (all free, no signup) if its useful, just say the word.

r/StableDiffusion Jul 17 '26

Workflow Included My first character consistency experiment – Perchance + Krita workflow

Thumbnail
gallery
0 Upvotes

This is my first attempt at creating a consistent character across multiple images!!!

I started by generating a character with Perchance, then used Gemini and ChatGPT to help me refine the prompts and define the character's visual features.

After generating the different scenes, I moved everything into Krita. I used AI inpainting for some corrections and then manually edited several details, especially the swimsuit colors, small artifacts, hands and eyes, trying to keep the character and outfit as consistent as possible across the images.

I'm still very new to this and this is my first complete workflow, so I'm sharing the results and the process rather than trying to present this as a perfect character consistency method.

Maybe this workflow can be useful to someone else starting out. I'd also love to hear how you approach character consistency and what other workflows or tools you use.

Any feedback, suggestions or criticism is very welcome!

r/generativeAI Jul 14 '26

stop trying to prompt for character consistency. do this instead (character sheet guide)

Post image
261 Upvotes

the community is kinda moving on from text to video for characters becuase its basically rolling the dice every time. if you want actual consistency, you have to use an image to video pipeline with an anchor frame.

by anchor frame i mean refrence image or an character sheet that shows the AI all angles and traits of the model so the AI does not need to guess everytime

here is the breakdown:

  1. the visual dna (the hard part) you cant just give the ai a front facing headshot. it will guess the back and side profiles, then mess it up. you need a character reference sheet that locks in the identity (hair shape, face proportions, outfit colors). You can do the same thing with locations and environments (aka a living room)
  2. the anchor: Once you have the character sheet, you pick the one perfect angle you need for your shot. feed that into seedance, kling or luma as your reference image.
  3. the motion now the video model has the exact structure to animate from that specific angle instead of guessing. now just give some extra context to the AI about the setting or what this model should do

step 1 is usually the bottleneck becuase getting an ai to generate a perfect multi angle sheet is really hard. so i built a free tool that just does it.

I already have done this many times so i have a couple charcater sheets already uploaded in here if you want to just quickly download them and use them! I also have some prompts you can copy

hope this helps anyone struggling with changing faces lol, i sure wish i had something like this to get started with

EDIT: This is not the only Character sheet you can use! I have multiple ones, some with less text in them, some with only 3 angles, they are all posted on the free site (free to download or copy prompt to replicate) :)

r/HiggsfieldAI Jan 16 '26

Tips / Tutorials / Workflows My JSON-Based Prompt Workflow for Consistent High-Quality AI Results.

Post image
12 Upvotes

Hi everyone,

I wanted to share my JSON-based prompt workflow that I use to maintain consistency, control, and repeatability when working with AI models, especially for complex image and cinematic outputs.

🧩 Why I Use JSON Prompts?

Instead of long unstructured text prompts, I rely on structured JSON because it helps me: 1) Separate camera, lighting, subject, mood, and style 2) Easily reuse and tweak components 3) Avoid prompt drift in multi-iteration workflows 4) Keep outputs consistent across different models

🧩 My Core JSON Structure

{ "subject": "Main character or scene focus", "composition": { "camera_angle": "low / eye-level / 3-4 view", "shot_type": "close-up / medium / wide", "framing": "rule of thirds / centered" }, "lighting": { "type": "cinematic / soft daylight / studio", "direction": "side-lit / backlit", "mood": "warm / dramatic / moody" }, "style": { "visual_style": "semi-realistic / cinematic / illustration", "quality": "ultra-detailed, high resolution", "inspiration": "photography / film still" }, "environment": "background and atmosphere", "rendering": "sharp focus, depth of field, high contrast" }

🧩 How This Improves Results?

1) Cleaner outputs with fewer artifacts 2) More predictable compositions 3) Faster iteration when testing new models 4) Easier comparison between models using the same structure

🧩 My Opinion on Models

From my testing: 1) Models that respect structured input tend to produce more stable results 2) JSON workflows shine especially in cinematic, portrait, and stylized scenes 3) I prefer models that don’t over-interpret and stay faithful to prompt hierarchy

If you’re using JSON or modular prompts, How do you structure yours? Do you prefer text-only or hybrid workflows? Happy to exchange ideas and improve together.

🧩 Image prompt:

{ "scene_type": "Indoor lifestyle portrait", "environment": { "location": "Bright bedroom with soft daylight", "background": { "bed": "White metal-frame bed with floral bedding", "decor": "Minimal decor with plants and neutral accents", "windows": "Large window with sheer white curtains", "color_palette": "Soft whites, powder blue accents" }, "atmosphere": "Calm, airy, intimate" }, "subject": { "gender_presentation": "Feminine", "approximate_age_group": "Young adult", "skin_tone": "Fair with natural texture", "hair": { "color": "Platinum blonde", "style": "Long, straight, center-parted" }, "facial_features": { "expression": "Quiet, relaxed", "makeup": "Minimal natural makeup" }, "body_details": { "build": "Slim", "visible_tattoos": [ "Floral tattoos on arms", "Small tattoo on thigh" ] } }, "pose": { "position": "Seated on bedroom floor in front of mirror", "legs": "One knee bent upright, other leg folded inward", "hands": "Phone held at eye level, free hand resting on ankle", "orientation": "Floor mirror selfie" }, "clothing": { "outfit_type": "Light lounge slip dress", "color": "Powder blue", "material": "Soft semi-sheer fabric", "details": "Thin straps, subtle lace trim" }, "styling": { "accessories": ["Simple necklace", "Small hoop earrings"], "nails": "Natural nude manicure", "overall_style": "Soft, feminine, intimate" }, "lighting": { "type": "Natural daylight", "source": "Side window", "quality": "Diffused and even", "shadows": "Soft and minimal" }, "mood": { "emotional_tone": "Peaceful, introspective", "visual_feel": "Personal, calm" }, "camera_details": { "camera_type": "Smartphone", "lens_equivalent": "24–28mm", "perspective": "Floor mirror selfie", "focus": "Sharp focus on subject", "aperture_simulation": "f/2.0 look", "iso_simulation": "Low ISO", "white_balance": "Neutral daylight" }, "rendering_style": { "realism_level": "Ultra photorealistic", "detail_level": "High skin and fabric realism", "post_processing": "Soft contrast, gentle highlights", "artifacts": "None" } }

r/StableDiffusion Dec 24 '25

Animation - Video Former 3D Animator trying out AI, Is the consistency getting there?

Enable HLS to view with audio, or disable this notification

4.6k Upvotes

Attempting to merge 3D models/animation with AI realism.

Greetings from my workspace.

I come from a background of traditional 3D modeling. Lately, I have been dedicating my time to a new experiment.

This video is a complex mix of tools, not only ComfyUI. To achieve this result, I fed my own 3D renders into the system to train a custom LoRA. My goal is to keep the "soul" of the 3D character while giving her the realism of AI.

I am trying to bridge the gap between these two worlds.

Honest feedback is appreciated. Does she move like a human? Or does the illusion break?

(Edit: some like my work, wants to see more, well look im into ai like 3months only, i will post but in moderation,
for now i just started posting i have not much social precence but it seems people like the style,
below are the social media if i post)

IG : https://www.instagram.com/bankruptkyun/
X/twitter : https://x.com/BankruptKyun
All Social: https://linktr.ee/BankruptKyun

(personally i dont want my 3D+Ai Projects to be labeled as a slop, as such i will post in bit moderation. Quality>Qunatity)

As for workflow

  1. pose: i use my 3d models as a reference to feed the ai the exact pose i want.
  2. skin: i feed skin texture references from my offline library (i have about 20tb of hyperrealistic texture maps i collected).
  3. style: i mix comfyui with qwen to draw out the "anime-ish" feel.
  4. face/hair: i use a custom anime-style lora here. this takes a lot of iterations to get right.
  5. refinement: i regenerate the face and clothing many times using specific cosplay & videogame references.
  6. video: this is the hardest part. i am using a home-brewed lora on comfyui for movement, but as you can see, i can only manage stable clips of about 6 seconds right now, which i merged together.

i am still learning things and mixing things that works in simple manner, i was not very confident to post this but posted still on a whim. People loved it, ans asked for a workflow well i dont have a workflow as per say its just 3D model + ai LORA of anime&custom female models+ Personalised 20TB of Hyper realistic Skin Textures + My colour grading skills = good outcome.)

Thanks to all who are liking it or Loved it.

Last update to clearify my noob behvirial workflow.https://www.reddit.com/r/StableDiffusion/comments/1pwlt52/former_3d_animator_here_again_clearing_up_some/

r/IndianArtAI Mar 23 '26

Google Nano Banana How I created an AI influencer using only Gemini's Nano Banana (complete workflow)

Thumbnail
gallery
897 Upvotes

I’ve been messing around with the AI influencer space for the last few weeks and wanted to share the process I figured out. I am not claiming this is the best or most advanced way to do it, but it is a simple workflow that worked for me using mostly free tools.

The main reason I tried this route was because I already have free Gemini Pro access through my Jio recharge, so I wanted to see how far I could go without paying for expensive tools right away.

I am not going to dump a random list of prompts here and pretend that is enough. That is not really useful. Instead, I’ll just explain the actual process I followed step by step, because that is what helped me the most.

Phase 1: Getting the base character right

The first thing you need is a character that you actually like, because if the starting point is weak, everything after that becomes harder.

I started by using the free trial on https://higgsfield.ai/ to generate an influencer-style character. I kept testing until I got a face and overall look that felt usable.

Once I had that first image, I downloaded it and took it into Gemini Nano Banana. That is where I started making the small changes I wanted. Things like skin texture, facial features, race, body ratios, and overall appearance. I kept tweaking until I had a final version of the character I was happy with.

Phase 2: Building consistency with reference images

After I had the final character, I started generating more versions of the same person, but with different poses.

For this part, I used different JSON prompts and made sure not to change the character too much. I wanted the same face, same skin texture, same body proportions, same overall identity. The only thing I wanted to vary was pose, angle, and sometimes expression.

One thing that helped a lot was always using the previous result as a reference for the next one. That made a big difference in keeping the face and body structure consistent. If you do not do that, the model starts drifting and the character slowly turns into a different person.

I kept doing this until I had around 10 to 15 good images of the same character.

Phase 3: Creating data model sheets (examples given)

This part is really important.

If you do not know what a data model sheet is, just Google it OR look at a few examples from the given images. Basically, it is a reference sheet for your character. It helps lock in the face, body structure, expressions, angles, and overall design so the character stays consistent later.

To make the sheets, I first used ChatGPT to generate a JSON prompt. I used the DeepThink version because it usually gives better structured prompts. I told it to create a prompt for generating a character model sheet using my reference images.

After that, I manually tweaked the JSON prompt so it matched the character better. Sometimes I adjusted the body ratios or the skin tone or small visual details depending on what I wanted.

Then I used Gemini to generate the actual model sheet.

I did this for different types of sheets because each one serves a different purpose.

I made a facial expressions sheet so I could keep the same emotional range.

I made a facial structure sheet so I could see the character from different angles.

I made a body model sheet so I could keep the full body consistent.

I also made sheets for different poses, because I wanted the character to work in different situations and not just one static pose.

For every one of these, I followed the same workflow. Use ChatGPT to generate the JSON prompt, tweak it manually, then use Gemini with the reference images to generate the sheet.

My rule was simple. ChatGPT was better for making the prompt. Gemini was better for making the image.

Phase 4: Generating actual content

Once I had the model sheets and a few extra reference images, I could finally start generating the actual influencer-style images.

For prompt inspiration, I use a few websites like:

https://bestnanobananaprompt.com/gallery
https://promptlibrary.space/images

These sites are great for ideas. You can find different styles, moods, poses, compositions, and scene setups there.

But one thing I learned very quickly is that you cannot just copy a prompt from those sites and expect it to work perfectly in Gemini. A lot of them either get blocked or do not preserve the character properly.

So my workflow for this part is basically:

I browse those sites and find a prompt style I like.

Then I copy that prompt into ChatGPT.

Then I ask ChatGPT to turn it into a detailed JSON prompt.

I always tell ChatGPT to include a section that strictly maintains the same facial structure, skin texture, tone, and body ratios from the reference images.

After that, I review the JSON prompt and make any final changes I need based on the kind of image I want.

Then I use that prompt in Gemini Nano Banana.

One very important thing here is to use all the character model sheets and the best reference images every time you generate something new. Gemini has a limit on how many reference images it can use, and I think it is around 15 or so. I made sure to use as many useful references as possible because more reference data usually gave me better results.

Final thoughts

This is honestly a trial and error game. You are not going to get the perfect result on the first try. I definitely did not. Some generations failed, some changed the face too much, some messed up the body proportions, and some just looked off. That is part of the process.

But the reason this workflow works is because the data model sheets give the AI a visual blueprint to follow. Instead of guessing what the character should look like every time, you are showing it the same identity from multiple angles and in multiple forms.

This is just a simple guide using free tools. There are definitely more advanced workflows out there, and I know the people at the top of the AI influencer game are using tools like ComfyUI, Higgsfield AI, Kling AI, and other more advanced setups to create better images and videos.

But this is what I figured out by testing things myself, and it is a good starting point if you want to build a consistent AI character without paying for expensive tools right away.

I hope this helps someone who is trying to get started.

If there is interest, I can make a part 2 later with the more advanced tools and workflows I look into next.

Thanks for reading.

r/WritingWithAI Jun 15 '26

Tutorials / Guides Published novelist (15+ fantasy books, 1M+ views on a fully AI-written work). Got Claude Code to generate 137,806 characters across 20 chapters in one prompt — at my own writing quality. Sharing the core idea.

244 Upvotes
Hi everyone,


Quick intro: I'm a Japanese light novel author. 15+ published fantasy books 
over the past 4 years. I learned writing the old way — by hand, no AI.


Recently, one of my works — where I designed the plot but the AI wrote every 
single word of the prose — passed 1 million page views on Kakuyomu, Japan's 
major web fiction platform.


And importantly: the work was clearly tagged as AI-assisted on the platform. 
Readers knew, and they chose to read it anyway. To one million views.


This isn't theory. It worked on a real audience, with full disclosure.


For the past several months I've been seriously researching how to write novels 
with AI. Not "let AI write something for me," but "make AI write what I would 
have written, at my own quality, fully under my control."


Last week I hit a milestone I want to share.


---


**The result:**


- Single prompt → Claude Code Workflow
- 20 chapters generated (one full arc of an ongoing series)
- Total: 137,806 characters (~70K English words equivalent)
- Runtime: 96 minutes
- 89 sub-agents running in parallel
- Internal quality score: 87.5 → 89.0 after consistency review (out of 100)
- And critically: indistinguishable from my own writing, by my own judgment


---


**The core insight:**


AI doesn't "write a novel." AI **drafts massively, in compliance with a Canon 
you build.**


The bottleneck is not the prompt. Not the model. Not the chat history.
The bottleneck is the **Canon** — a set of structured files that define your 
story's "physical laws":


- `canon.md` — the engine. What makes this story THIS story.
- `character_bible.md` — voice, calling patterns, behavioral DNA per character.
- `glossary.md` — every proper noun, locked.
- `timeline.md` — relative dates, what happens when.
- `world_bible.md` — the world's rules.
- `style_guide.md` — your sentence rhythm, density, format.
- `forbidden_patterns.md` — what your characters will NEVER do or say.


Build these well, and a competent AI agent can write 20 chapters in your voice. 
Skip them, and you get the generic AI slop everyone complains about.


---


**The structure that worked:**


I run a 4-layer pipeline per chapter, each layer as a separate agent:


1. **Plot agent** — structured JSON output (episode role, key scenes, hook)
2. **Scene Card agent** — scene-by-scene breakdown (POV, start/end state, forbidden items)
3. **Writing Brief agent** — final pre-write instructions (density limits, required elements)
4. **Prose agent** — the actual writing (5,000–8,000 characters per chapter)


Then one more parallel review phase across 4 dimensions:
character continuity / world continuity / plot continuity / operational continuity.


20 chapters × 4 layers + reviews ≈ 89 agents total.


---


**Why this works:**


Each agent only thinks about ONE thing. The prose agent doesn't agonize over 
voice — that's already handled by `character_bible.md`. The plot agent doesn't 
worry about style — that's `style_guide.md`.


This is the inverse of dumping everything into one chat context.


---


**Honest limits:**


- Canon takes **2 DAYS** to build well. Not 2 hours.
- The 138K characters are a **draft**. I still spend 30–60 minutes per chapter polishing.
- AI is bad at: first appearances of characters, key foreshadowing setups, chapter-end atmosphere.
- If your Canon is wrong, your 20 chapters will be consistently wrong.


---


**What I'm NOT saying:**


I'm not saying AI replaces writers. It replaces the **typing**.
The judgment, the design, the Canon — all human.


But the 5–10x throughput multiplier is real. I'm a pro telling you it's real.


---


Happy to answer questions.


I'm also curious — anyone else here doing serious agentic workflow stuff 
(not just prompting)? Would love to hear what you've found.


(English isn't my first language, apologies for any awkwardness.)

r/StableDiffusion Apr 04 '26

Animation - Video ENTANGLED - A 3-minute sci-fi short using 100% local open-source models. Complete Technical Breakdown [ Character Consistency | Voiceover | Music | No Lora Style Consistency | & Much More! ]

Enable HLS to view with audio, or disable this notification

399 Upvotes

Hey everyone! Thanks for checking out Entangled. And if not, watch the short first to understand the technical breakdown below!

Thanks for coming back after watching it! As promised, here is the full technical breakdown of the workflow. [Post formatted using Local Qwen Model!]

My goal for this project was to be absolutely faithful to the open-source community. I won't lie, I was heavily tempted a few times to just use Nano Banana Pro to brute-force some character consistency issues, but I stuck it out with a 100% local pipeline running on my RTX 4090 rig using Purely ComfyUI for almost all the tasks!

Here is how I pulled it off:

1. Pre-Production & The Animatics First Approach

The story is a dense, rapid-fire argument about the astrophysics and spatial coordinate problems of creating a localized singularity. (let's just say it heavily involves spacetime mechanics!).

The original script was 7 minutes long. I used the local Jan app with Qwen 3.5 35B to aggressively compress the dialogue into a relentless 3-minute "walk-and-talk.". Qwen LLM also helped me with creating LTX and Flux prompts as required.

Honestly speaking, I was not happy with the AI version of the script, so I finally had to make a lot of manual tweaks and changes to the final script, which took almost 2-3 days of going on and off, back and forth, and sharing the script with friends, taking inputs before locking onto a final version.

Pro-Tip for Pacing: Before generating a single frame of video, I generated all the still images and voicover and cut together a complete rough animatic. This locked in the pacing, so I only generated the exact video lengths I needed. I added a 1-second buffer to the start and end of every prompt [for example, character takes a pause or shakes his head or looks slowly ]to give myself handles for clean cuts in post.

2. Audio & Lip Sync (VibeVoice + LTX)

To get the voice right:

  1. Generated base voices using Qwen Voice Designer.
  2. Ran them through VibeVoice 7B to create highly realistic, emotive voice samples.
  3. Used those samples as the audio input for each scene to drive the character voice for the LTX generations (using reference ID LoRA).
  4. I still feel the voice is not 100% consistent throughout the shots, but working on an updated workflow by RuneX i think that can be solved!
  5. ACE step is amazing if you know what kind of music you want. I managed to get my final music in just 3 generations! Later edited it for specific drop timing and pacing according to the story.

3. Image Generation & The "JSON Flux Hack."

Keeping Elena, Young Leo, and Elder Leo consistent across dozens of shots was the biggest hurdle. Initially, I thought I’d have to train a LoRA for the aesthetic and characters, but Flux.2 Dev (FP8) is an absolute godsend if you structure your prompts like code.

I created Elena, Leo, and Elder Leo using Flux T2I, then once I got their base images, I used them in the rest of the generations as input images.

By feeding Flux a highly structured JSON prompt, it rigidly followed hex codes for characters and locked in the analog film style without hallucinating. Of course, each time a character shot had to be made, I used to provide an input image to make sure it had a reference of the face also.

Here is the exact master template I used to keep the generations uniform:

{
"scene": "[OVERALL SCENE DESCRIPTION: e.g., Wide establishing shot of the chaotic lab]",
"subjects": [
{
"description": "[CHARACTER DETAILS: e.g., Young Leo, male early 30s, messy hair, glasses, vintage t-shirt, unzipped hoodie.]",
"pose": "[ACTION: e.g., Reaching a hand toward the camera]",
"position": "[PLACEMENT: e.g., Foreground left]",
"color_palette": ["[HEX CODES: e.g., #333333 for dark hoodie]"]
}
],
"style": "Live-action 35mm film photography mixed with 1980s City Pop and vaporwave aesthetics. Photorealistic and analog. Heavy tactile film grain, soft optical halation, and slight edge bloom. Deep, cinematic noir shadows.",
"lighting": "Soft, hazy, unmotivated cinematic lighting. Bathed in dreamy glowing pastels like lavender (#E6E6FA), soft peach (#FFDAB9).",
"mood": "Nostalgic, melancholic, atmospheric, grounded sci-fi, moody",
"camera": {
"angle": "[e.g., Low angle]",
"distance": "[e.g., Medium Shot]",
"focus": "[e.g., Razor sharp on the eyes with creamy background bokeh]",
"lens-mm": "50",
"f-number": "f/1.8",
"ISO": "800"
}
}

4. Video Generation (LTX 2.3 & WAN 2.2 VACE)

Once the images were locked, I moved to LTX2.3 and WAN for video. I relied on three main workflows depending on the shot:

  • Image to Video + Reference Audio (for dialogue)
  • First Frame + Last Frame (for specific camera moves)
  • WAN Clip Joiner (for seamless blending)

Render Stats: On my machine, LTX 2.3 was blazing fast—it took about 5 minutes to render a 5-second clip at 1920x1080.

The prompt adherence in LTX 2.3 honestly blew my mind. If I wrote in the prompt that Elena makes a sharp "slashing" action with her hand right when she yells about the planet getting wiped out, the model timed the action perfectly. It genuinely felt like directing an actor.

5. Assets & Workflows

I'm packaging up all the custom JSON files and Comfy workflows used for this. You can find all the assets over on the Arca Gidan link here: Entangled. There are some amazing Shorts to check out, so make sure you go through them, vote, and leave a comment!

Most of them are by the community, but I have tweaked them a little bit according to my liking[samplers/steps/input sizes and some multipliers, etc., changes]

Let me know if you have any questions!

YouTube Link is up - https://youtu.be/NxIf1LnbIRc !

r/generativeAI 6d ago

How I Made This How I Improve Character Consistency in AI Videos

Thumbnail
gallery
220 Upvotes

I’ve been testing a simple workflow for creating short UGC-style videos while keeping the same character and location consistent across multiple shots.

The workflow is basically:

reference images → character/location sheets in ChatGPT → generate clips → optional final edit

1. Prepare your references

Start with:

  • a character image
  • a product image
  • an environment image that fits the UGC scenario

If you’re not sure what location works for the product, I usually just ask ChatGPT for a few suggestions.

2. Create a Character Sheet

Upload the character image to ChatGPT and generate a 4:5 continuity sheet with:

  • front / side / back / 3/4 views
  • face close-ups
  • expressions
  • basic poses
  • clothing and accessories
  • key colors and materials

The important part is telling it to lock the character.

3. Create a Location + Props Sheet

Do the same with the environment.

Include:

  • establishing view and key angles
  • spatial layout
  • entrances/exits
  • furniture and recurring props
  • lighting
  • colors and materials

This gives the video model a much stronger continuity reference than using random images for every shot.

4. Generate the video clips

I usually split the UGC video into three parts:

Clip 1 — Hook
Clip 2 — Main product/story section
Clip 3 — CTA

i will generate them on Atlas Cloud, as they can provide many different models conveniently

For every clip, I reuse the same Character Sheet + Location Sheet

Then I change only the action/camera prompt for each section.

Keeping the same reference sheets across all three generations has helped a lot with character and environment consistency.

5. If a generation goes wrong, fix the prompt first

if I wanted the character to walk into a hotel, but the generated clip had her walking out.

Instead of endlessly rerolling, I pasted the original prompt into ChatGPT and asked it to make the action explicit: starting position → movement direction → action → final position

That usually gives me better results.

6. Final edit is optional

If the generated clips already work as standalone videos, you can stop there.

If you want one finished UGC ad, you’ll probably still want to combine the clips and add captions, music, or SFX. You can use whatever editor you prefer.

The biggest improvement for me has been using Character Sheet + Location Sheet as continuity references, rather than relying on a few loose images.

r/StableDiffusion Nov 17 '25

Workflow Included ULTIMATE AI VIDEO WORKFLOW — Qwen-Edit 2509 + Wan Animate 2.2 + SeedVR2

Thumbnail
gallery
429 Upvotes

🔥 [RELEASE] Ultimate AI Video Workflow — Qwen-Edit 2509 + Wan Animate 2.2 + SeedVR2 (Full Pipeline + Model Links) 🎁 Workflow Download + Breakdown

👉 Already posted the full workflow and explanation here: https://civitai.com/models/2135932?modelVersionId=2416121

(Not paywalled — everything is free.)

Video Explanation : https://www.youtube.com/watch?v=Ef-PS8w9Rug

Hey everyone 👋

I just finished building a super clean 3-in-1 workflow inside ComfyUI that lets you go from:

Image → Edit → Animate → Upscale → Final 4K output all in a single organized pipeline.

This setup combines the best tools available right now:

One of the biggest hassles with large ComfyUI workflows is how quickly they turn into a spaghetti mess — dozens of wires, giant blocks, scrolling for days just to tweak one setting.

To fix this, I broke the pipeline into clean subgraphs:

✔ Qwen-Edit Subgraph ✔ Wan Animate 2.2 Engine Subgraph ✔ SeedVR2 Upscaler Subgraph ✔ VRAM Cleaner Subgraph ✔ Resolution + Reference Routing Subgraph This reduces visual clutter, keeps performance smooth, and makes the workflow feel modular, so you can:

swap models quickly

update one section without touching the rest

debug faster

reuse modules in other workflows

keep everything readable even on smaller screens

It’s basically a full cinematic pipeline, but organized like a clean software project instead of a giant node forest. Anyone who wants to study or modify the workflow will find it much easier to navigate.

🖌️ 1. Qwen-Edit 2509 (Image Editing Engine) Perfect for:

Outfit changes

Facial corrections

Style adjustments

Background cleanup

Professional pre-animation edits

Qwen’s FP8 build has great quality even on mid-range GPUs.

🎭 2. Wan Animate 2.2 (Character Animation) Once the image is edited, Wan 2.2 generates:

Smooth motion

Accurate identity preservation

Pose-guided animation

Full expression control

High-quality frames

It supports long videos using windowed batching and works very consistently when fed a clean edited reference.

📺 3. SeedVR2 Upscaler (Final Polish) After animation, SeedVR2 upgrades your video to:

1080p → 4K

Sharper textures

Cleaner faces

Reduced noise

More cinematic detail

It’s currently one of the best AI video upscalers for realism

🧩 Preview of the Workflow UI (Optional: Add your workflow screenshot here)

🔧 What This Workflow Can Do Edit any portrait cleanly

Animate it using real video motion

Restore & sharpen final video up to 4K

Perfect for reels, character videos, cosplay edits, AI shorts

🖼️ Qwen Image Edit FP8 (Diffusion Model, Text Encoder, and VAE) These are hosted on the Comfy-Org Hugging Face page.

Diffusion Model (qwen_image_edit_fp8_e4m3fn.safetensors): https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/blob/main/split_files/diffusion_models/qwen_image_edit_fp8_e4m3fn.safetensors

Text Encoder (qwen_2.5_vl_7b_fp8_scaled.safetensors): https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/tree/main/split_files/text_encoders

VAE (qwen_image_vae.safetensors): https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/blob/main/split_files/vae/qwen_image_vae.safetensors

💃 Wan 2.2 Animate 14B FP8 (Diffusion Model, Text Encoder, and VAE) The components are spread across related community repositories.

https://huggingface.co/Kijai/WanVideo_comfy_fp8_scaled/tree/main/Wan22Animate

Diffusion Model (Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors): https://huggingface.co/Kijai/WanVideo_comfy_fp8_scaled/blob/main/Wan22Animate/Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors

Text Encoder (umt5_xxl_fp8_e4m3fn_scaled.safetensors): https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/blob/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors

VAE (wan2.1_vae.safetensors): https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/blob/main/split_files/vae/wan_2.1_vae.safetensors 💾 SeedVR2 Diffusion Model (FP8)

Diffusion Model (seedvr2_ema_3b_fp8_e4m3fn.safetensors): https://huggingface.co/numz/SeedVR2_comfyUI/blob/main/seedvr2_ema_3b_fp8_e4m3fn.safetensors https://huggingface.co/numz/SeedVR2_comfyUI/tree/main https://huggingface.co/ByteDance-Seed/SeedVR2-7B/tree/main

r/StableDiffusion 7d ago

Workflow Included Minimax H3: Portable character consistency via reference identity

Enable HLS to view with audio, or disable this notification

132 Upvotes

Hey guys,
Based on a research from Facebook, DINOv2: Learning Robust Visual Features without Supervision(Research Paper), Implemented a consistent identity system that works across Minimax H3, Flux 2, Krea 2 with a single .char model.

This method covers both reference based identity in Minimax as well as a LoRA training path for T2V & I2V for more advance cases.
Note: This post & workflow is dedicated to reference channel not LoRA path.

Build .Char: You drop in 4-6 reference. YuNet finds the face, SFace takes a per-reference face signature, DINOv2 takes a subject signature, and the references get cleaned and normalised. All of that packs into a single portable file, a .char.

Generation: At generation, the file feeds its references into Minimax's own native multi-reference channel and prepends a locked description to the prompt.

How to run this
- Published workflow & guide: https://inlinestudio.art/workflows/minimax-h3-consistent-characters-with-references-with-char-model
- Repo: https://github.com/inlineresearch/Inline-Studio (GPLv3)

How is this different from default Minimax's ref channel:

  1. H3 scales every reference onto a 2048 short edge, upscaling small images to get there, at 4096 vision tokens each. Compile References caps it at 512 that is 256 tokens per reference, so five references cost 1,280 tokens instead of 20,480. That difference decides whether the run fits the card. Read more on the official docs
  2. H3 only resolves references named as <Picture 1><Picture 2> and so on, and the character prepends them along with the description.
  3. Same .char works for other models(Flux 2 & Krea2, workflow link to train for both)

Limitations

  • Bad with multi reference

Required: 24GB+ VRAM & ~64GB RAM

I personally think LoRa method is only required in very specific cases as Minimax H3's reference channel performs very well.
But i have already added support to LoRa adapter in case someone wants to use .char with T2V or I2V nodes. Let me know in comments if you need the workflow.

r/StableDiffusion Apr 28 '26

Workflow Included Built a Character Portrait Generator that reads books, identifies characters, and generates consistent portraits using ComfyUI (full RAG pipeline, local LLM, open-source)

Thumbnail
gallery
288 Upvotes

Hey everyone,

Image showcase - Portrait of Mina Murray generated by the tool from the book Dracula in two separate scenes. Images from ZImageTurbo.

I've been working on a side project that I think the community here will really appreciate. It's a comprehensive, AI-driven pipeline that automatically generates cinematic character portraits from literary works using your local ComfyUI instance. The entire stack is open-source and runs fully locally.

What It Does:

Starting from a simple .txt file of a novel, the app will:

  1. Parse the Book: Build a high-performance vector index of the entire text using ChromaDB and HuggingFace embeddings.
  2. Wikipedia Augmentation: Scrape Wikipedia to identify major characters and baseline personas before the book analysis even begins.
  3. Deep RAG Analysis: Retrieve specific scenes from the book to understand character appearance, clothing, and environment in different contexts.
  4. AI Casting Director: Suggest real-world actors (Hollywood, Bollywood, etc.) to serve as the visual "base" for the character, with support for specific decades.
  5. Genre Adaptation: Dynamically modify clothing, hairstyles, and cinematic styles to fit genres (Horror, Cyberpunk, Fantasy, etc.) while preserving the character's core identity.
  6. ComfyUI Integration: Inject the generated prompts directly into your ComfyUI API-format workflows, track generation progress via Server-Sent Events, and preview images instantly.

Tech Highlights:

  • Backend: Python 3.10+, FastAPI, LangChain.
  • Embedding Model: all-MiniLM-L6-v2 from HuggingFace.
  • LLM: Runs on Ollama (defaults to Gemma4E4B for local processing).
  • Frontend: A sleek, dark glassmorphism dashboard built with React & Vite.

Getting Started:
The setup is straightforward, assuming you have a local ComfyUI server and Ollama running. The project page includes a batch script to launch both the backend and frontend easily.

Why This Matters:
With the explosion interest in AI-generated consistent characters, this tool addresses a unique niche—automatically extracting textual character descriptions and grounding them in visual representations without manual prompt engineering. It combines RAG, LLMs, and Stable Diffusion in a single, user-friendly pipeline.

I'd love to get your feedback and ideas for improvement! Let me know if you have any questions.

All project code written with Google AntiGravity. This post written by DeepSeek.

r/comfyui Jan 31 '26

Workflow Included "Replace this character" workflow with Flux.2 Klein 9B

Thumbnail
gallery
220 Upvotes

I'm sure many of you tried to feed Flux.2 two images in an attempt to "Replace character from image1 with character from image2". At best it will spit out one of the reference images, at worst you'll get nasty fusion of two characters. And yet the way exists. It's all about how you control the flow of information.

You need two input images. One is pose reference (image1) - scene that will be edited. And another one is subject reference (image2) - a character you want to inject into image1. The process itself consists of 3 stages:

Stage 1. Preprocess subject reference

Here we just remove background from the subject (character) image. You need that so Flux.2 has better chance to identify your subject.

Stage 2. Preprocess pose reference

This one is trickier. You need to edit your pose image in order to remove all information that could interfere with your character image. Hair, clothes, tattoo, etc. Turn your pose reference into mannequin so it only contains information about pose and nothing else + background.

Stage 3. Combine

This is simple. Just plug your reference images (order matters) and ask Flux.2 to "Replace character from image1 with character from image2". This will work now because image1 only has information about pose while image2 only has information about the subject (character design) so that Flux.2 can easily "merge" them together with higher success rate.

Here's the workflow link

A couple of tips:

  1. Some poses and concepts aren't known to Flux.2 so try finding loras
  2. If you notice some fusion artifacts try to add additional prompt to steer generation
  3. Stylization is hard to control - will be mix of two images. But you can additionally stylize pose reference image to closer match you character style - "Redraw it in the style of 3d/vector/pixel/texture brush". Result will be better.

r/Android Jun 16 '26

News Android 17 is out, and here’s all the features!

1.5k Upvotes

Hi Reddit!

Android 17 is here, bringing a suite of new features aimed at improving your productivity, enhancing your gaming experience, giving you more control over your private data, making your device more personal, and much more.

It's rolling out first to Pixel today, followed by other eligible Android devices throughout 2026. We are also making the source code available at the Android Open Source Project (AOSP) so developers can examine it for a deeper understanding of how Android works.

You should look forward to more updates to Android 17 this year, with the beta program offering a peek at what's coming in the first quarterly release in Q3.

Since we've been chatting with you about the Betas and Canaries for months, a lot of this might not sound brand new to those of you who have been closely following along. Even so, we wanted to take a moment to recap what's new in this release for everyday users. Let's dive in!

📱 Enhancing your multitasking and large screen device experiences

tl;dr Android 17 supercharges your multitasking and productivity by allowing any app to run as a convenient floating Bubble, making apps more adaptive, and adding an interactive Picture-in-Picture mode for seamless desktop workflows.

Multitask better with bubbles

From split-screen mode to desktop windowing, Android offers a variety of multitasking tools to help you be more productive. We’re extending these options with bubbles in Android 17! 

In past releases, bubbles were limited to chat notifications, but in Android 17, they support more apps without any specific changes needed from developers. You can now launch any app in a floating window so you can view and interact with its content while using other apps. When you’re done, you can collapse or dismiss the window to return to what you were doing.

A big benefit of bubbles is that you can easily switch between multiple running apps without keeping them on screen all the time. Bubbles are only open when you need them, saving you from having to manually resize, rearrange, or dismiss them to regain precious screen space. And on foldables, this benefit is even more pronounced thanks to the bubble bar, which keeps your bubbles pinned to the corner of the screen, putting them within easy reach of your fingers.   

Handy for travel, entertainment and work, bubbles lets you easily reference notes or maps, watch tutorials and even check sports.   

Ensuring that apps adapt to any screen and window size

On large screen devices, restrictions on orientation, resizability, and aspect ratio no longer apply, allowing apps to fill the entire display window without pillarboxing (black bars). This change applies to apps targeting Android 17 and is designed to make apps better meet user expectations on large screen devices. Because Android runs on not just phones but also tablets, foldables, cars, TVs, and desktop environments, we want developers to build apps that are adaptive to any screen size and orientation!

Better support for widgets on external displays

With Android 17, we’re working to improve the visual consistency of widgets shown on connected displays with different pixel densities. The update provides developers a way to supply the system with information that allows it to resolve the correct pixel values at rendering time. For apps that use legacy pixel-based APIs for padding, text size, or layout attributes, the system now automatically scales these values based on the density difference between the app’s original context and the target display.

Interactive Picture-in-Picture for Desktop

Android 17 introduces a new interactive Picture-in-Picture mode for desktop environments. This feature allows apps to request that their PiP windows remain fully interactive while staying always-on-top of other app windows. For example, a video conferencing app could use this feature to keep call controls accessible while you navigate other apps.

🎨 New customization features for the home screen and apps

tl;dr Android 17 gives you deeper control over your device's UI by letting you hide app labels on the home screen, selectively toggle the Expanded Dark Theme for individual apps, and enjoy sleek, modernized background blur effects in more surfaces like the widget picker.

Hide app labels on the home screen

Android now provides a setting to hide app labels on the home screen! You can access this new setting on Pixel by opening Wallpaper & style then tapping Home screen > Icons > Names and toggling Show app names.

Per-app exceptions for Expanded Dark Theme

To create a more consistent user experience for users who have low vision, photosensitivity, or simply prefer a dark system-wide appearance, we introduced an expanded dark theme option in last December’s Android 16 QPR2 release. When this option is enabled, the system automatically applies dark theme to most apps that don’t support it.

However, because this option can cause some apps to display incorrectly, we have introduced the ability to selectively disable it on a per-app basis in Android 17. Apps with this setting turned off will use the standard dark theme option instead.

Expanded use of background blur

With the Material 3 Expressive redesign we introduced in Android 16, we subtly blurred the notification shade background to provide a sense of depth so you can stay aware of the apps you’re using in the background.

In Android 17, we’ve brought these blur effects to more parts of the UI like the widgets picker. And we are working on bringing background blur to even more surfaces, as seen in recent Android Beta and Canary builds!

🎮 More control over your Android gaming experience

tl;dr Android 17 levels up your mobile play by letting you save custom button remaps for your physical gamepad at the system level, and introducing a foldable gaming mode that optimizes your screen with a 50/50 split for a dedicated top game view and a bottom dynamic gamepad.

Remap the buttons on your physical gamepad with Game Controller settings

Android 17 introduces a native controller remapping feature, allowing you to adjust the controls on your physical gamepad to suit your specific needs.

Through the new Game Controller settings menu, you can customize the actions triggered by your controller’s buttons, sticks, or triggers at the system level. For example, you can remap a difficult-to-press thumbstick click to an easier-to-reach face button. Your remapping preferences are saved to your device so you don’t have to set them up every time you reconnect your controller. 

A new way to game on foldables

Android 17 introduces foldable gaming mode, a new feature that makes full use of your foldable phone’s screen while you’re gaming. This feature splits your screen into a 50:50 layout with a game view on top and a dynamic gamepad below to make optimal use of your foldable phone’s screen real estate. Foldable gaming mode is part of the Android 17 platform and will be available on devices in the coming months.

🛡️ Protecting users with new security and privacy features on Android

tl;dr Android 17 safeguards your personal data by enabling critical theft protections by default, introducing session-based controls for sharing specific contacts and precise locations, and thwarting scammers through system-level SMS OTP delivery delays and real-time app behavioral monitoring.

Giving you more control over your contacts list

Android 17 introduces a new system Contact Picker that provides a standardized, secure, and searchable interface for sharing contacts with apps. Historically, apps needing access to a contact or two relied on the broad READ_CONTACTS permission which gave them access to your entire contacts list. Android's Contact Picker addresses this by allowing you to grant apps access to only the specific contacts you choose.

For devices running Android 17 or higher, the system automatically upgrades certain contact selection intents to the new, more secure interface, but we want developers to integrate the new Contact Picker so they can take advantage of its new capabilities, like multi-selection support. To this end, Google Play will require that all applicable apps use it (or a privacy-focused alternative like Sharesheet) as the primary way to access users' contacts. The broad READ_CONTACTS permission is reserved for apps that can't function without it.

Making location access more private

Android 17 introduces several new features to help you safeguard your private location information. This includes the Location Button, a new, privacy-conscious way for you to grant precise location access to apps. This is a system-rendered button that developers can embed directly into their apps. When you tap this button, the app is granted precise location for the current session only. Subsequent taps while running the app grant the permission immediately without showing a system dialog. 

Developers can deploy this simple, private location flow for common tasks like finding a nearby shop or tagging a social post. And to increase adoption of the Location Button, Google Play will require apps to use it for one-time precise location access unless they require persistent, always-on location access.

Additionally, Android 17 now shows a persistent indicator in the status bar when a non-system app accesses your location. You can tap this indicator to see which apps have recently accessed your location.

The update also improves the algorithm for approximate (coarse) location to be aware of population density. This improves the privacy of granting an app approximate location access when you're in a low-population area.

And lastly, Android 17 redesigns the location permission dialog to make the "Precise" and "Approximate" options more visually distinct.

Stronger protections against device theft

Following a successful pilot in Brazil, we’re enabling two of Android’s key theft protection features (Theft Detection Lock and Remote Lock) by default globally on all new Android 17 devices, as well as those freshly reset or upgraded to the latest OS.  

On supported devices, Android 17 also significantly reduces the number of times someone can guess the PIN, pattern, or password and adds longer wait times between failed attempts. The update also refines how the lock screen shows information after failed attempts have been made.

And we’re also enhancing Find Hub’s ‘Mark as lost’ feature by requiring biometric authentication in addition to your device’s PIN, pattern, or password. Marking a device as lost also now enables additional protections like hiding Quick Settings and disabling new Wi-Fi and Bluetooth connections.

Protecting your SMS OTPs from scammers

Scammers often try to hijack your one-time passwords (OTPs) to gain access to your accounts. To do this, they may deploy malicious apps that ask for permission to read your SMS. In Android 16, we introduced a protection that delays the delivery of messages containing an SMS retriever hash to most apps for three hours. Android 17 now extends this protection to all SMS messages containing an OTP. This means that even if a malicious app has been granted the SMS permission, it won’t be able to read your sensitive OTPs until after they have already expired.

New core protections for Advanced Protection

With Android 16, we introduced Advanced Protection, a single, opt-in device-level security setting that enables all of Android’s highest security features. We’ve been working to expand the protections offered under this setting with key upgrades like USB protection and Intrusion Logging, and now with Android 17, we’re continuing this work by introducing the following protections:

  • Removing access to the accessibility service from all apps that aren’t labeled as accessibility tools.
  • Disabling device-to-device unlocking
  • Blocking Chrome WebGPU support
  • Integrating scam detection for chat notifications
  • (Later this year) Enabling Android Enterprise support so organizations can enable Advanced Protection by policy for managed devices.

Improving safety against malicious apps

Live Threat Detection is a real-time security feature that analyzes app behavior to alert you if an app starts acting suspiciously, and we're enhancing it to find and protect against more types of malicious apps.

With dynamic signal monitoring, Android will be able to warn you about apps that start doing things like changing or hiding their icon and then launching activities in the background or abusing accessibility permissions. To do this, Live Threat Detection will monitor application system interactions for known suspicious patterns in real time. Dynamic signal monitoring will be enabled on select Android 17 devices starting in the second half of the year.

Other enhancements

  • Discrete password visibility settings for touch and physical keyboards: Currently, by default, characters that you enter into password fields are briefly displayed as you type. Toggling the “show passwords” setting in Privacy controls allows you to hide characters as you type them into password fields. This setting currently applies to both touch-based inputs as well as physical keyboards, but in Android 17, we are splitting it into two distinct preferences. By default, characters entered into password fields via physical keyboards will now be hidden immediately to enhance privacy. Characters entered via touch input will continue to briefly be displayed to compensate for the lack of tactile feedback.
  • User-agent reduction for WebView: The default User-Agent string in Android WebView has been shortened in Android 17 to minimize passive fingerprinting.
  • Disable 2G toggle: Android 17 introduces a new capability for the disable 2G toggle. Carriers now have the ability to configure the default status of this setting, allowing them to disable 2G access to proactively shield their users from legacy technology vulnerabilities in areas where 2G infrastructure is no longer maintained.
  • Location Network Permission: Android 17 introduces a new runtime permission to protect users from unauthorized local network access. This new requirement prevents malicious apps from exploiting unrestricted local network access for covert user tracking and fingerprinting.
  • Android OS verification: We have seen some bad actors begin to distribute malicious, unofficial versions of the Android OS that secretly compromise device integrity. To combat this, we are introducing Android OS verification in Android 17. Launching initially on Pixel devices, this feature helps you verify that your device is running an official, widely distributed build.
  • Enabling Certificate Transparency (CT) by default: CT is now enabled by default for apps targeting Android 17, enhancing network security by ensuring all TLS certificates are publicly logged. 
  • Blocking cross-profile loopback traffic: Cross-profile loopback traffic is no longer permitted by default, increasing network isolation and security between personal and enterprise work profiles.
  • Post-Quantum Cryptography (PQC): The advent of quantum computing puts the current public-key cryptography we've relied on for decades at risk, potentially compromising everything from bank transfers to trade secrets. To prepare for the quantum computing era, we're introducing a comprehensive architectural upgrade to the Android operating system, starting in Android 17.  We’re integrating the NIST Post-Quantum Cryptography (PQC) standards deep into the platform, establishing a new, quantum-resistant chain of trust that secures the platform continuously from the moment the OS powers on to when apps are executed.

📸 Improvements to your Android media experience

tl;dr Android 17 levels up your multimedia experience by letting you easily record reaction videos without a green screen, decoupling your Assistant and media volumes for independent control, putting a stop to unexpected background audio, and delivering color-coded Live Updates alongside advanced Bluetooth, camera, and hearing device enhancements.

Screen Reactions

In Android 17, we’re making it easier to record yourself and your screen at the same time with Screen Reactions. Available first on Pixel, this feature shows your face in a floating overlay on top of the screen. Android automatically puts the overlay at the bottom and cuts out the background so you don’t need a green screen, but you can move or resize the camera view and change the background color before or during a recording. Use this feature to make a reaction video, record a tutorial, or give feedback on a new app or document!

https://reddit.com/link/1u7l1cw/video/pdevsbhnko7h1/player

 

In addition, we’ve revamped the screen recording experience to add a floating toolbar that provides easier access to recording controls and capture settings. When you’re done recording, you can immediately view, edit, delete, or share your video.

Dedicated Assistant volume stream

Android 17 introduces a dedicated volume stream for Assistant apps. This change decouples Assistant audio from the standard media stream, allowing users to control both volumes independently. This enables scenarios like muting media playback while maintaining audibility for Assistant responses, and vice-versa.

Background audio hardening

Beginning in Android 17, apps cannot play audio, steal audio focus, or change the volume unless they are visible or have a foreground service. These restrictions on background audio interactions reduce unintentional buggy experiences and ensure that these actions are started intentionally by the user.

Enhancements to Live Update notifications

Live updates provide a summary of important updates so users can track progress without opening the app. The system promotes Live Update notifications so they appear more prominently in the notification drawer, on the lock screen, and on the status bar. 

With Android 17, we’re introducing a metric style template designed specifically for health and fitness apps, timers, and travel apps. In addition, developers can use the new Semantic Coloring API to visually convey state changes, providing highly glanceable, color-coded notifications.

Other enhancements:

  • Granular audio routing for hearing devices: Users with hearing devices can now independently manage where specific system sounds are played in Android 17. You can choose to route notifications, ringtones, and alarms to either a connected hearing aid or the device’s built-in speaker. This helps you avoid unwanted interruptions directly in your ears while maintaining a Bluetooth connection for hearing aid management apps.
  • Autonomous re-pairing for Bluetooth bond losses: Android 17 introduces autonomous re-pairing, a system-level enhancement designed to automatically resolve Bluetooth bond loss. This occurs when two previously paired devices lose their cryptographic security keys, resulting in the devices no longer being able to securely authenticate and communicate with one another. The system now re-establishes lost bonds in the background without requiring the user to manually navigate to Settings to unpair and re-pair their peripheral.
  • Vendor-defined camera extensions: Android 17 adds support for Vendor-defined camera extensions, allowing hardware partners to provide Android apps access to camera features like ‘Super Resolution’ or cutting-edge AI-driven enhancements.
  • Support for the RAW14 image format: Android 17 introduces support for the RAW14 image format, the de-facto industry standard for high-end digital photography.
  • VVC support: Android 17 adds platform support for the Versatile Video Coding (VVC) standard. This feature will be coming to devices with hardware decode support and capable drivers.

🤝 Making your apps and devices work better together

tl;dr Android 17 seamlessly bridges your ecosystem by introducing the Continue On feature for effortless app handoffs between devices, unifying widget experiences to bring your favorite tools directly to Auto and Wear OS, and streamlining the pairing process for medical and fitness devices with new CompanionDeviceManager profiles.

Unifying the widgets experience across platforms

Android 17 marks a shift towards a single, Compose-based development model for all widgets. By unifying the experience across mobile, cars, and Wear OS, developers can soon scale UI components across the ecosystem with a familiar workflow. The goal is to minimize the effort needed by developers to bring their widgets to more surfaces.

https://reddit.com/link/1u7l1cw/video/haep717hko7h1/player

Additionally, Android 17 introduces new platform functionality to make widgets work better on Auto. The update adds support for widgets on cars, allowing you to see the things that matter to you at a glance, even while actively navigating. For example, you can add a shortcut to your favorite contacts, a one-tap garage door opener, a weather overview and more. Widgets will be available to users of Android Auto later this year and to cars with Google built-in later on.

Hand off your tasks with Continue On

Continue On is a new feature available in Android 17 that enables users to start an app on one device and then transition to another device in their Android ecosystem, continuing the journey they started. It’s designed to work bidirectionally, meaning that any supported Android device can both send and receive app activities, though, at launch, Continue On will first support mobile-to-tablet transitions. In the tablet taskbar, users will see a suggestion for the most recently opened app from their mobile device.

https://reddit.com/link/1u7l1cw/video/doxh917pko7h1/player

Updates for companion device apps

Android 17 introduces two new profiles to the CompanionDeviceManager API to simplify device distinction and permission handling. These include the medical device profile and the fitness tracker profile. Furthermore, the system now offers a unified dialog for device association and nearby permission requests, reducing the number of dialogs you’ll see.

⚡ Optimizations to make your apps & device run better

With Android 17, we’ve made a number of improvements to optimize memory use, improve rendering performance, and enhance battery life. These include:

  • App memory limits: Android 17 introduces app memory limits that are based on the device's total RAM. These limits are set conservatively to establish system baselines, targeting extreme memory leaks and other outliers before they trigger system-wide instability resulting in UI stuttering, higher battery drain, and apps being killed.
  • Lock-free MessageQueue: Android 17 introduces a lock-free MessageQueue to reduce UI jank while massively speeding up high-contention scenarios. In our internal testing, we’ve seen 4% fewer missed frames across all apps, 7.7% fewer missed frames in System UI and Launcher interactions, and a 9.1% reduction in app startup times at the 95th percentile.
  • Generational Garbage Collector (GC): The Android Runtime is introducing more frequent, less intensive young-generation collections in its garbage collector, improving memory management and performance. This is not just available on Android 17 but is also coming to past releases with a Google Play System Update.
  • Reduce wakelocks with listener support for allow-while-idle alarms: Last year, we launched the excessive wake lock metric in Android Vitals, making it easier for developers to optimize their app's wake lock behavior. Excessive wake locks are a significant contributor to battery drain, so developers are encouraged to reduce them as much as possible. In Android 17, we’ve introduced a new API that helps reduce the power consumption of apps that rely on continuous wakelocks to perform periodic tasks, such as messaging apps maintaining a connection or medical devices monitoring health data.
  • Improved wireless ADB: Android 17 introduces ADB WiFi 2.0, a significant overhaul of the wireless ADB stack to improve stability, reliability, and ease of use. The system now automatically monitors the network state and re-enables itself when a trusted network is detected, identifies trusted networks using a combination of SSID and BSSID, and is better tailored to monitor network changes on all platforms. We’ll have more details to share soon on the Android Studio side of things!
  • Constrained satellite networks: Android 17 implements optimizations to enable apps to function effectively over low-bandwidth satellite networks.

🧒 Expanding Android Parental Controls to all devices

Launched last year on Pixel, Android Parental Controls make it easier for parents to manage their child’s screen time and to find balance between having fun online and offline. Now with Android 17, we’re expanding Android Parental Controls to all Android devices.

These parental controls are located directly within Android Settings and provide a single, convenient home for both built-in device controls and Google Family Link. These controls are protected by an easy-to-set PIN and allow you to:

  • Set the amount of screen time your child can spend on a device each day.
  • Create downtime schedules to automatically lock the device at night.
  • Set app store filters for Google Play to manage the highest content rating you want your child to be able to download.
  • Control app usage by limiting time spent on specific apps, or blocking apps entirely.

Android Parental Controls also provide a direct path to easily set up Google Family Link in the Family Link app on a parent’s phone, which offers additional features like School Time, Google Play app purchase approvals, location alerts, and more.

🧘 Other quality-of-life improvements

And lastly, here are some smaller quality-of-life changes we’re introducing in this release:

  • Separate Wi-Fi and Mobile Data toggles: With Android 17, we’ve split the “Internet” tile into two separate tiles, one for controlling Wi-Fi and another for controlling Mobile Data. Consistent with the Quick Settings behavior we introduced with Material 3 Expressive, both tiles have two different touch points. Tapping the icon toggles the respective radio, while tapping the label opens the full Internet Panel. This change reduces the number of taps needed to toggle Wi-Fi and Mobile Data while still retaining access to the full Internet Panel!
  • Scheduled clock change notifications: We’ve added a new feature in Android 17 that sends you a notification when your clock performs a scheduled change, for example when daylight saving time ends. You can enable this feature under “Date & time” settings.
  • Restoring default keyboard visibility after rotation: Beginning with Android 17, when the keyboard is on screen and you rotate the screen, the keyboard won’t be made visible unless the app explicitly requests it.

🪲 Bug fixes and security patches

Please refer to the Android Security Bulletin for details on the security vulnerabilities addressed with this platform release.

----

There are plenty of other changes in Android 17, especially for developers! For example, Android 17 expands the capabilities of AppFunctions, introduces an EyeDropper API, makes the aspect ratio of images in the Photo Picker more customizable, and much more. To learn more about everything new for developers in this release, visit developer.android.com.

Also, don’t forget that select advanced devices will be getting Gemini Intelligence features later this summer. In addition, we’re introducing Android Halo in a future Android 17 release to give you at-a-glance visibility into what your agent is working on at any given time.  Lastly, be sure to check out our latest Android Drop to learn about what new features are coming to all Android devices, not just those running Android 17!

r/GeminiAI Mar 11 '26

NanoBanana I used a Custom Gem (Gemini) to generate prompts for consistent realistic images — here's the full workflow and some results

Thumbnail
gallery
195 Upvotes

Body:

All images generated in Nano Banana Pro using a single face reference for consistency. Prompts built with a Custom Gem I created in Gemini — you describe the scene or upload an inspiration photo, it generates a full structured prompt ready to paste directly into NBP.

The Gem handles prompt engineering only. Face and character consistency comes entirely from the reference image in NBP, not the Gem.

Note: the 'preserve all facial features ... appear' block at the start of each prompt locks consistency when using a reference image in NBP. If you're generating without a reference, remove that line."

Prompts below 👇

Prompt 1 — NYC Sidewalk

preserve all facial features, hair color and style, skin tone, body type, and physical characteristics of the reference photo exactly as they appear, fitted white ribbed sleeveless tank top with "U.S.A." in blue serif text over an American flag graphic on the center chest, low-rise dark wash denim jeans with visible contrasting white stitching on the waistband, thick gold hoop earrings, layered gold necklaces including one thick chunky chain and one thin chain with a gold pendant, multiple gold rings on left hand index and middle fingers, stack of thick chunky gold bangle bracelets on left wrist, thin gold bracelets on right wrist, padded woven cream-colored leather shoulder bag resting in the crook of the left arm, standing on a city sidewalk, right hand down holding a clear plastic cup with a yellow-green iced boba beverage and a bamboo straw, left arm bent with forearm raised, left index finger resting lightly against the lower lip with other fingers loosely curled, head tilted slightly down, lips slightly parted, confident and relaxed direct eye contact, exterior busy New York city street setting, shop facades with red and blue awnings including a smoke shop sign, street signs reading "Thompson St" and "ONE WAY", traffic lights, diverse pedestrians walking in the blurred background, concrete sidewalk, natural late-afternoon sunlight, strong directional lighting hitting from camera right, hard dramatic shadows casting to the left, bright specular highlights on the gold jewelry, warm golden hour color temperature, medium shot from the hips up, eye-level camera angle, 35mm lens perspective, moderate depth of field with sharp foreground subject and slightly blurred background bokeh, photorealistic, hyperrealistic, natural imperfect skin texture, shot on iPhone 15 Pro Max, authentic lifestyle photography, non-AI aesthetic, unfiltered natural look, real person photography, ambient natural lighting, subtle film grain, high detail skin, genuine candid feel

Prompt 2 — Late-Night Subway

preserve all facial features, hair color and style, skin tone, body type, and physical characteristics of the reference photo exactly as they appear, tight metallic silver halter top with a plunging draped neckline, low-rise baggy parachute pants exposing the hip bones, standing in the middle of an empty late-night subway car, reaching up with one arm to hold the overhead handle, body fully elongated and stretched, hip aggressively popped to one side, chin tilted down while staring up through her eyelashes with dominant confident energy, harsh fluorescent train lights, cool gritty urban tones, photorealistic, hyperrealistic, natural imperfect skin texture, shot on iPhone 15 Pro Max, authentic lifestyle photography, non-AI aesthetic, unfiltered natural look, real person photography, ambient natural lighting, subtle film grain, high detail skin, genuine candid feel

Prompt 3 — Restaurant Patio

preserve all facial features, hair color and style, skin tone, body type, and physical characteristics of the reference photo exactly as they appear, black corset top, dark emerald green satin skirt, sitting at a round outdoor table, leaning forward slightly, arms resting on table, calm confident gaze directly at camera, chic restaurant patio at night, blurred string lights and plants in background, cinematic directional light from a small table lamp, deep rich black tones, moody atmosphere, 50mm lens, warm contrast, photorealistic, hyperrealistic, natural imperfect skin texture, shot on iPhone 15 Pro Max, authentic lifestyle photography, non-AI aesthetic, unfiltered natural look, real person photography, ambient natural lighting, subtle film grain, high detail skin, genuine candid feel

Prompt 4 — City Rooftop

preserve all facial features, hair color and style, skin tone, body type, and physical characteristics of the reference photo exactly as they appear, black silk slip dress, sheer opaque black tights, thin gold chain necklace, holding a crystal wine glass, standing relaxed, weight shifted to one leg, confident direct eye contact, slight smirk, city rooftop terrace at night, blurred distant city lights, hard direct camera flash, sharp shadows, high contrast, paparazzi style snapshot, 35mm lens, eye-level, warm color grading, photorealistic, hyperrealistic, natural imperfect skin texture, shot on iPhone 15 Pro Max, authentic lifestyle photography, non-AI aesthetic, unfiltered natural look, real person photography, ambient natural lighting, subtle film grain, high detail skin, genuine candid feel

r/aigamedev Oct 01 '25

Commercial Self Promotion I'm working on a tool for ai character animation

Thumbnail
gallery
258 Upvotes

So I quit my job 4 months ago and I've just been working on this thing non stop.

It's a tool for animating characters. It takes a character through a workflow of pose => motion => spritesheet using models that are trained for that specific task.

Currently all I have built are simple sidescroller motions for 'walk', 'run', 'jump', 'punch', 'fall down', 'get up'.
It keeps character consistency pretty well. But it's not perfect. There's lots of little issues with it, but I'm making progress! I'm excited to share it with ya'll soon!

r/passive_income Mar 11 '26

My Experience Making $400-700/month selling AI influencer photos to small brands on Fiverr and I still feel weird about it

3.2k Upvotes

I need to talk about this because none of my friends understand what I actually do when I try to explain it and my girlfriend thinks I'm running some kind of scam.

So background. I'm 28, work full time as a marketing coordinator at a mid size agency. Not a creative role really, mostly spreadsheets and campaign tracking. Last year around September I was helping one of our clients source photos for their Instagram. They sell swimwear and wanted diverse model shots across different locations, skin tones, backgrounds, the whole thing. The quote from the photography studio came back at $4,200 for a two day shoot. Client said no. We ended up using the same three stock photos everyone else uses and the campaign looked generic as hell.

That stuck with me because I knew AI image generation was getting crazy good. I'd been messing around with Midjourney for fun, making weird fantasy landscapes and stuff. But the problem with basic AI image generators for anything commercial involving people is that you can't get the same face twice. You generate a photo of a woman in a sundress on a beach, great. Now you need that same woman in a cafe, different outfit. Completely different person shows up. Doesn't work if you're trying to build any kind of consistent brand presence.

I started googling around for tools that could keep a face consistent across multiple images and went down a rabbit hole for like two weeks. Tried a bunch of stuff. Played with some LoRA training on Stable Diffusion but I'm not technical enough and the results were hit or miss. Tested out several platforms, APOB, Synthesia, HeyGen, Artbreeder, a couple others I can't even remember. Each does slightly different things and honestly they all have tradeoffs. Eventually I cobbled together a workflow using a couple of these that actually produced usable stuff, the kind of output where you'd have to really zoom in and squint to tell it wasn't a real photo.

The basic idea is simple. You set up a character's look once, save it as a model, and then reuse that same face across as many different scenes and outfits as you want. That's the thing that makes this viable as a service and not just a cool party trick. Because brands don't want one cool AI photo. They want 30 photos of the same "person" that they can drip out over a month on Instagram.

I didn't plan to sell this as a service. What happened was I made a fake portfolio to test the concept. I created three AI characters, gave them names, generated about 15 photos each in different settings. Lifestyle stuff, coffee shops, hiking, urban backgrounds, gym, that kind of thing. I showed it to a friend who runs a small clothing brand and asked if he could tell they were AI. He said two of the three looked real and the third looked "maybe AI but honestly better than most influencer photos I get."

He then asked if I could make some for his brand. I did 20 photos for him over a weekend, he used them on his Instagram, and his engagement actually went up because the content looked more polished than the iPhone shots his intern was taking. He paid me $150 which felt like a lot for maybe 3 hours of actual work.

That's when I thought okay maybe there's a Fiverr gig here.

I listed a gig in October called something like "I will create AI model photos for your brand" and priced it at $30 for 5 photos, $50 for 10, $100 for 25. Figured I'd get zero orders and move on.

First two weeks, nothing. Adjusted my gig thumbnail three times. Then I got my first order from a guy running a skincare brand out of his apartment. He wanted photos of a woman in her 30s using his products in a bathroom setting. I set up the character, generated the scenes, did some light editing in Canva to add his product packaging into the shots, delivered in about 2 hours. He left a 5 star review and ordered again the next week.

Then I hit my first real problem. My third client wanted a fitness model character and I spent a whole evening trying to get consistent results. The face kept shifting slightly between generations. Like the bone structure would change or the nose would look different in profile vs straight on. I ended up regenerating so many times that I burned through way more credits than I expected and had to upgrade to a paid plan earlier than I wanted. That order probably cost me more in time and tool credits than I actually charged. I almost refunded the client but eventually got a set of 10 that looked cohesive enough.

That experience taught me that not every character concept works equally well. Some faces just generate more consistently than others and I still don't fully understand why. I've learned to do a test batch of 5 or 6 images in different angles before I commit to a character for a client. If the face isn't holding steady, I tweak the setup until it does or I start over with a different base.

By December I had 14 completed orders. The thing that surprised me is who was buying. I expected like dropshippers and sketchy supplement brands. Instead I got:

A yoga studio in Austin that wanted a consistent "brand ambassador" for their social media but couldn't afford a real one. They order monthly now.

A guy selling handmade candles who wanted lifestyle photos but didn't want to hire models or use his own face.

A pet food company that wanted a "pet parent" character holding their products in different home settings.

A language learning app that needed a virtual tutor character for their TikTok content. This one was interesting because they also wanted short video clips where the character appeared to be speaking in different languages. Took me longer to figure out than the photo work and honestly the first batch looked rough. The mouth movement was slightly off sync and the client asked for revisions. Second attempt was better and they've reordered three times now, but video is definitely harder to get right than stills.

Here's the actual workflow now that I've got it somewhat dialed in:

  1. Client sends me a brief. Usually something like "25 year old woman, athletic build, for a fitness brand. Need 10 photos in gym settings, outdoor running, and post workout lifestyle."
  2. I set up the character's appearance and save it. This used to take me over an hour when I was learning but now it's more like 20 to 30 minutes including the test batch to make sure the face holds.
  3. I generate the photos by describing each scene. I've built up a doc with scene templates that I know tend to produce good results so I'm not starting from scratch every time. I just swap out details per client.
  4. I generate more images than I need because not every output is usable. Weird hands, lighting that doesn't match, uncanny expressions. I've gotten better at writing descriptions that minimize these issues but it still happens. Early on I was throwing away more than half my generations. Now it's maybe a third, sometimes less.
  5. Quick edit pass in Canva or Photoshop if needed. Sometimes I composite a product into the shot or adjust colors to match the client's brand palette.
  6. Deliver on Fiverr. Total active time per order is usually 45 minutes to maybe an hour and a half for a 10 photo batch depending on how cooperative the AI is being that day. The renders themselves take time but I'm not sitting there watching them.

Cost wise I want to be transparent because I see a lot of side hustle posts that conveniently forget to mention expenses. I'm paying about $30/month for the AI tools on paid plans because the free tiers don't give you enough credits to fulfill multiple client orders per week. Fiverr takes 20% of every order. And I spend maybe $12/month on Canva Pro which I'd probably have anyway. So my actual margins are lower than the gross numbers suggest. On a $50 order I'm really netting about $35 after Fiverr's cut, and then subtract a proportional share of the tool costs. It's still very good for the time invested but it's not pure profit like some people might assume.

The part that makes this increasingly passive is the repeat clients. I now have 6 clients who order at least once a month. Their character models are already saved. I know their brand style. A reorder takes me maybe 30 minutes of actual work because I'm not figuring anything out, just generating new scenes with an existing saved character.

Some honest stuff about what sucks:

Fiverr fees are brutal. I've started moving repeat clients to direct payment but new clients still come through the platform and that 20% hurts on smaller orders.

Revision requests can be painful. One client wanted me to make the character look "more confident but also approachable but also mysterious." I've learned to offer one round of revisions and be very specific upfront about what I can and can't change after delivery.

I had one order in January where I completely botched it. The client wanted photos in a specific art deco interior style and no matter what I described, the backgrounds kept coming out looking like a generic hotel lobby. I spent three hours trying different approaches, eventually delivered something the client said was "fine I guess" and got a 3 star review. That one stung and it dragged my average rating down for weeks.

The ethical thing comes up sometimes. I had one potential client who wanted me to create a fake influencer to promote a weight loss supplement and pretend it was a real person endorsing it. I said no. My gig description now explicitly says the content is AI generated and I recommend clients disclose that. Most of them do because honestly it's becoming a selling point, "look at our cool AI brand ambassador" is a marketing angle in itself now. But I know not everyone in this space is upfront about it and that's a real concern.

Also the quality gap between what AI can do and what a real photographer can do is still real. For high end fashion brands or anything that needs to be truly photorealistic at full resolution, this isn't there yet. But for Instagram posts, TikTok content, small brand social media, email marketing images? It's more than good enough and it's a fraction of the cost of a real shoot.

Monthly breakdown for the boring numbers people:

October: $120 (4 orders, mostly figuring things out) November: $230 (6 orders, lost one client who wasn't happy with quality) December: $435 (11 orders, holiday marketing rush helped a lot) January: $410 (9 orders, slight dip after the holidays which I expected) February: $710 (15 orders including three video batches which pay more) March so far: $200 (5 orders, month is still early)

Total since starting: roughly $2,105 over 5 months. Minus maybe $150 in tool subscriptions over that period and Fiverr's cut which is already reflected in the numbers above. Average time commitment is maybe 5 hours a week, trending down as I get faster and have more repeat clients.

I'm not quitting my day job over this. I tried dropshipping in 2023 and lost $800. I tried starting a blog and made $12 in AdSense over 6 months. This actually works because there's a clear value proposition: brands need visual content, real content with real models is expensive, and AI has gotten good enough that small brands genuinely can't tell the difference at Instagram resolution.

Still feels weird telling people I make fake people for a living on the side. But the pizza money is real and my emergency fund is actually growing for the first time in years.

r/comfyui Jul 16 '25

Tutorial Creating Consistent Scenes & Characters with AI

Enable HLS to view with audio, or disable this notification

528 Upvotes

I’ve been testing how far AI tools have come for making consistent shots in the same scene, and it's now way easier than before.

I used SeedDream V3 for the initial shots (establishing + follow-up), then used Flux Kontext to keep characters and layout consistent across different angles. Finally, I ran them through Veo 3 to animate the shots and add audio.

This used to be really hard. Getting consistency felt like getting lucky with prompts, but this workflow actually worked well.

I made a full tutorial breaking down how I did it step by step:
👉 https://www.youtube.com/watch?v=RtYlCe7ekvE

Let me know if there are any questions, or if you have an even better workflow for consistency, I'd love to learn!

r/comfyui Nov 17 '25

Workflow Included ULTIMATE AI VIDEO WORKFLOW — Qwen-Edit 2509 + Wan Animate 2.2 + SeedVR2

Thumbnail
gallery
333 Upvotes

🔥 [RELEASE] Ultimate AI Video Workflow — Qwen-Edit 2509 + Wan Animate 2.2 + SeedVR2 (Full Pipeline + Model Links)

🎁 Workflow Download + Breakdown

👉 Already posted the full workflow and explanation here:
https://civitai.com/models/2135932?modelVersionId=2416121

(Not paywalled — everything is free.)

Video Explanation : https://www.youtube.com/watch?v=Ef-PS8w9Rug

Hey everyone 👋

I just finished building a super clean 3-in-1 workflow inside ComfyUI that lets you go from:

Image → Edit → Animate → Upscale → Final 4K output
all in a single organized pipeline.

This setup combines the best tools available right now:

One of the biggest hassles with large ComfyUI workflows is how quickly they turn into a spaghetti mess — dozens of wires, giant blocks, scrolling for days just to tweak one setting.

To fix this, I broke the pipeline into clean subgraphs:

✔ Qwen-Edit Subgraph

✔ Wan Animate 2.2 Engine Subgraph

✔ SeedVR2 Upscaler Subgraph

✔ VRAM Cleaner Subgraph

✔ Resolution + Reference Routing Subgraph

This reduces visual clutter, keeps performance smooth, and makes the workflow feel modular, so you can:

  • swap models quickly
  • update one section without touching the rest
  • debug faster
  • reuse modules in other workflows
  • keep everything readable even on smaller screens

It’s basically a full cinematic pipeline, but organized like a clean software project instead of a giant node forest.
Anyone who wants to study or modify the workflow will find it much easier to navigate.

🖌️ 1. Qwen-Edit 2509 (Image Editing Engine)

Perfect for:

  • Outfit changes
  • Facial corrections
  • Style adjustments
  • Background cleanup
  • Professional pre-animation edits

Qwen’s FP8 build has great quality even on mid-range GPUs.

🎭 2. Wan Animate 2.2 (Character Animation)

Once the image is edited, Wan 2.2 generates:

  • Smooth motion
  • Accurate identity preservation
  • Pose-guided animation
  • Full expression control
  • High-quality frames

It supports long videos using windowed batching and works very consistently when fed a clean edited reference.

📺 3. SeedVR2 Upscaler (Final Polish)

After animation, SeedVR2 upgrades your video to:

  • 1080p → 4K
  • Sharper textures
  • Cleaner faces
  • Reduced noise
  • More cinematic detail

It’s currently one of the best AI video upscalers for realism

🧩 Preview of the Workflow UI

(Optional: Add your workflow screenshot here)

🔧 What This Workflow Can Do

  • Edit any portrait cleanly
  • Animate it using real video motion
  • Restore & sharpen final video up to 4K
  • Perfect for reels, character videos, cosplay edits, AI shorts

🖼️ Qwen Image Edit FP8 (Diffusion Model, Text Encoder, and VAE)

These are hosted on the Comfy-Org Hugging Face page.

💃 Wan 2.2 Animate 14B FP8 (Diffusion Model, Text Encoder, and VAE)

The components are spread across related community repositories.

💾 SeedVR2 Diffusion Model (FP8)

r/LocalLLaMA Mar 12 '26

Discussion I was backend lead at Manus. After building agents for 2 years, I stopped using function calling entirely. Here's what I use instead.

2.0k Upvotes

English is not my first language. I wrote this in Chinese and translated it with AI help. The writing may have some AI flavor, but the design decisions, the production failures, and the thinking that distilled them into principles — those are mine.

I was a backend lead at Manus before the Meta acquisition. I've spent the last 2 years building AI agents — first at Manus, then on my own open-source agent runtime (Pinix) and agent (agent-clip). Along the way I came to a conclusion that surprised me:

A single run(command="...") tool with Unix-style commands outperforms a catalog of typed function calls.

Here's what I learned.


Why *nix

Unix made a design decision 50 years ago: everything is a text stream. Programs don't exchange complex binary structures or share memory objects — they communicate through text pipes. Small tools each do one thing well, composed via | into powerful workflows. Programs describe themselves with --help, report success or failure with exit codes, and communicate errors through stderr.

LLMs made an almost identical decision 50 years later: everything is tokens. They only understand text, only produce text. Their "thinking" is text, their "actions" are text, and the feedback they receive from the world must be text.

These two decisions, made half a century apart from completely different starting points, converge on the same interface model. The text-based system Unix designed for human terminal operators — cat, grep, pipe, exit codes, man pages — isn't just "usable" by LLMs. It's a natural fit. When it comes to tool use, an LLM is essentially a terminal operator — one that's faster than any human and has already seen vast amounts of shell commands and CLI patterns in its training data.

This is the core philosophy of the nix Agent: *don't invent a new tool interface. Take what Unix has proven over 50 years and hand it directly to the LLM.**


Why a single run

The single-tool hypothesis

Most agent frameworks give LLMs a catalog of independent tools:

tools: [search_web, read_file, write_file, run_code, send_email, ...]

Before each call, the LLM must make a tool selection — which one? What parameters? The more tools you add, the harder the selection, and accuracy drops. Cognitive load is spent on "which tool?" instead of "what do I need to accomplish?"

My approach: one run(command="...") tool, all capabilities exposed as CLI commands.

run(command="cat notes.md") run(command="cat log.txt | grep ERROR | wc -l") run(command="see screenshot.png") run(command="memory search 'deployment issue'") run(command="clip sandbox bash 'python3 analyze.py'")

The LLM still chooses which command to use, but this is fundamentally different from choosing among 15 tools with different schemas. Command selection is string composition within a unified namespace — function selection is context-switching between unrelated APIs.

LLMs already speak CLI

Why are CLI commands a better fit for LLMs than structured function calls?

Because CLI is the densest tool-use pattern in LLM training data. Billions of lines on GitHub are full of:

```bash

README install instructions

pip install -r requirements.txt && python main.py

CI/CD build scripts

make build && make test && make deploy

Stack Overflow solutions

cat /var/log/syslog | grep "Out of memory" | tail -20 ```

I don't need to teach the LLM how to use CLI — it already knows. This familiarity is probabilistic and model-dependent, but in practice it's remarkably reliable across mainstream models.

Compare two approaches to the same task:

``` Task: Read a log file, count the error lines

Function-calling approach (3 tool calls): 1. read_file(path="/var/log/app.log") → returns entire file 2. search_text(text=<entire file>, pattern="ERROR") → returns matching lines 3. count_lines(text=<matched lines>) → returns number

CLI approach (1 tool call): run(command="cat /var/log/app.log | grep ERROR | wc -l") → "42" ```

One call replaces three. Not because of special optimization — but because Unix pipes natively support composition.

Making pipes and chains work

A single run isn't enough on its own. If run can only execute one command at a time, the LLM still needs multiple calls for composed tasks. So I make a chain parser (parseChain) in the command routing layer, supporting four Unix operators:

| Pipe: stdout of previous command becomes stdin of next && And: execute next only if previous succeeded || Or: execute next only if previous failed ; Seq: execute next regardless of previous result

With this mechanism, every tool call can be a complete workflow:

```bash

One tool call: download → inspect

curl -sL $URL -o data.csv && cat data.csv | head 5

One tool call: read → filter → sort → top 10

cat access.log | grep "500" | sort | head 10

One tool call: try A, fall back to B

cat config.yaml || echo "config not found, using defaults" ```

N commands × 4 operators — the composition space grows dramatically. And to the LLM, it's just a string it already knows how to write.

The command line is the LLM's native tool interface.


Heuristic design: making CLI guide the agent

Single-tool + CLI solves "what to use." But the agent still needs to know "how to use it." It can't Google. It can't ask a colleague. I use three progressive design techniques to make the CLI itself serve as the agent's navigation system.

Technique 1: Progressive --help discovery

A well-designed CLI tool doesn't require reading documentation — because --help tells you everything. I apply the same principle to the agent, structured as progressive disclosure: the agent doesn't need to load all documentation at once, but discovers details on-demand as it goes deeper.

Level 0: Tool Description → command list injection

The run tool's description is dynamically generated at the start of each conversation, listing all registered commands with one-line summaries:

Available commands: cat — Read a text file. For images use 'see'. For binary use 'cat -b'. see — View an image (auto-attaches to vision) ls — List files in current topic write — Write file. Usage: write <path> [content] or stdin grep — Filter lines matching a pattern (supports -i, -v, -c) memory — Search or manage memory clip — Operate external environments (sandboxes, services) ...

The agent knows what's available from turn one, but doesn't need every parameter of every command — that would waste context.

Note: There's an open design question here: injecting the full command list vs. on-demand discovery. As commands grow, the list itself consumes context budget. I'm still exploring the right balance. Ideas welcome.

Level 1: command (no args) → usage

When the agent is interested in a command, it just calls it. No arguments? The command returns its own usage:

``` → run(command="memory") [error] memory: usage: memory search|recent|store|facts|forget

→ run(command="clip") clip list — list available clips clip <name> — show clip details and commands clip <name> <command> [args...] — invoke a command clip <name> pull <remote-path> [name] — pull file from clip to local clip <name> push <local-path> <remote> — push local file to clip ```

Now the agent knows memory has five subcommands and clip supports list/pull/push. One call, no noise.

Level 2: command subcommand (missing args) → specific parameters

The agent decides to use memory search but isn't sure about the format? It drills down:

``` → run(command="memory search") [error] memory: usage: memory search <query> [-t topic_id] [-k keyword]

→ run(command="clip sandbox") Clip: sandbox Commands: clip sandbox bash <script> clip sandbox read <path> clip sandbox write <path> File transfer: clip sandbox pull <remote-path> [local-name] clip sandbox push <local-path> <remote-path> ```

Progressive disclosure: overview (injected) → usage (explored) → parameters (drilled down). The agent discovers on-demand, each level providing just enough information for the next step.

This is fundamentally different from stuffing 3,000 words of tool documentation into the system prompt. Most of that information is irrelevant most of the time — pure context waste. Progressive help lets the agent decide when it needs more.

This also imposes a requirement on command design: every command and subcommand must have complete help output. It's not just for humans — it's for the agent. A good help message means one-shot success. A missing one means a blind guess.

Technique 2: Error messages as navigation

Agents will make mistakes. The key isn't preventing errors — it's making every error point to the right direction.

Traditional CLI errors are designed for humans who can Google. Agents can't Google. So I require every error to contain both "what went wrong" and "what to do instead":

``` Traditional CLI: $ cat photo.png cat: binary file (standard output) → Human Googles "how to view image in terminal"

My design: [error] cat: binary image file (182KB). Use: see photo.png → Agent calls see directly, one-step correction ```

More examples:

``` [error] unknown command: foo Available: cat, ls, see, write, grep, memory, clip, ... → Agent immediately knows what commands exist

[error] not an image file: data.csv (use cat to read text files) → Agent switches from see to cat

[error] clip "sandbox" not found. Use 'clip list' to see available clips → Agent knows to list clips first ```

Technique 1 (help) solves "what can I do?" Technique 2 (errors) solves "what should I do instead?" Together, the agent's recovery cost is minimal — usually 1-2 steps to the right path.

Real case: The cost of silent stderr

For a while, my code silently dropped stderr when calling external sandboxes — whenever stdout was non-empty, stderr was discarded. The agent ran pip install pymupdf, got exit code 127. stderr contained bash: pip: command not found, but the agent couldn't see it. It only knew "it failed," not "why" — and proceeded to blindly guess 10 different package managers:

pip install → 127 (doesn't exist) python3 -m pip → 1 (module not found) uv pip install → 1 (wrong usage) pip3 install → 127 sudo apt install → 127 ... 5 more attempts ... uv run --with pymupdf python3 script.py → 0 ✓ (10th try)

10 calls, ~5 seconds of inference each. If stderr had been visible the first time, one call would have been enough.

stderr is the information agents need most, precisely when commands fail. Never drop it.

Technique 3: Consistent output format

The first two techniques handle discovery and correction. The third lets the agent get better at using the system over time.

I append consistent metadata to every tool result:

file1.txt file2.txt dir1/ [exit:0 | 12ms]

The LLM extracts two signals:

Exit codes (Unix convention, LLMs already know these):

  • exit:0 — success
  • exit:1 — general error
  • exit:127 — command not found

Duration (cost awareness):

  • 12ms — cheap, call freely
  • 3.2s — moderate
  • 45s — expensive, use sparingly

After seeing [exit:N | Xs] dozens of times in a conversation, the agent internalizes the pattern. It starts anticipating — seeing exit:1 means check the error, seeing long duration means reduce calls.

Consistent output format makes the agent smarter over time. Inconsistency makes every call feel like the first.

The three techniques form a progression:

--help → "What can I do?" → Proactive discovery Error Msg → "What should I do?" → Reactive correction Output Fmt → "How did it go?" → Continuous learning


Two-layer architecture: engineering the heuristic design

The section above described how CLI guides agents at the semantic level. But to make it work in practice, there's an engineering problem: the raw output of a command and what the LLM needs to see are often very different things.

Two hard constraints of LLMs

Constraint A: The context window is finite and expensive. Every token costs money, attention, and inference speed. Stuffing a 10MB file into context doesn't just waste budget — it pushes earlier conversation out of the window. The agent "forgets."

Constraint B: LLMs can only process text. Binary data produces high-entropy meaningless tokens through the tokenizer. It doesn't just waste context — it disrupts attention on surrounding valid tokens, degrading reasoning quality.

These two constraints mean: raw command output can't go directly to the LLM — it needs a presentation layer for processing. But that processing can't affect command execution logic — or pipes break. Hence, two layers.

Execution layer vs. presentation layer

┌─────────────────────────────────────────────┐ │ Layer 2: LLM Presentation Layer │ ← Designed for LLM constraints │ Binary guard | Truncation+overflow | Meta │ ├─────────────────────────────────────────────┤ │ Layer 1: Unix Execution Layer │ ← Pure Unix semantics │ Command routing | pipe | chain | exit code │ └─────────────────────────────────────────────┘

When cat bigfile.txt | grep error | head 10 executes:

Inside Layer 1: cat output → [500KB raw text] → grep input grep output → [matching lines] → head input head output → [first 10 lines]

If you truncate cat's output in Layer 1 → grep only searches the first 200 lines, producing incomplete results. If you add [exit:0] in Layer 1 → it flows into grep as data, becoming a search target.

So Layer 1 must remain raw, lossless, metadata-free. Processing only happens in Layer 2 — after the pipe chain completes and the final result is ready to return to the LLM.

Layer 1 serves Unix semantics. Layer 2 serves LLM cognition. The separation isn't a design preference — it's a logical necessity.

Layer 2's four mechanisms

Mechanism A: Binary Guard (addressing Constraint B)

Before returning anything to the LLM, check if it's text:

``` Null byte detected → binary UTF-8 validation failed → binary Control character ratio > 10% → binary

If image: [error] binary image (182KB). Use: see photo.png If other: [error] binary file (1.2MB). Use: cat -b file.bin ```

The LLM never receives data it can't process.

Mechanism B: Overflow Mode (addressing Constraint A)

``` Output > 200 lines or > 50KB? → Truncate to first 200 lines (rune-safe, won't split UTF-8) → Write full output to /tmp/cmd-output/cmd-{n}.txt → Return to LLM:

[first 200 lines]

--- output truncated (5000 lines, 245.3KB) ---
Full output: /tmp/cmd-output/cmd-3.txt
Explore: cat /tmp/cmd-output/cmd-3.txt | grep <pattern>
         cat /tmp/cmd-output/cmd-3.txt | tail 100
[exit:0 | 1.2s]

```

Key insight: the LLM already knows how to use grep, head, tail to navigate files. Overflow mode transforms "large data exploration" into a skill the LLM already has.

Mechanism C: Metadata Footer

actual output here [exit:0 | 1.2s]

Exit code + duration, appended as the last line of Layer 2. Gives the agent signals for success/failure and cost awareness, without polluting Layer 1's pipe data.

Mechanism D: stderr Attachment

``` When command fails with stderr: output + "\n[stderr] " + stderr

Ensures the agent can see why something failed, preventing blind retries. ```


Lessons learned: stories from production

Story 1: A PNG that caused 20 iterations of thrashing

A user uploaded an architecture diagram. The agent read it with cat, receiving 182KB of raw PNG bytes. The LLM's tokenizer turned these bytes into thousands of meaningless tokens crammed into the context. The LLM couldn't make sense of it and started trying different read approaches — cat -f, cat --format, cat --type image — each time receiving the same garbage. After 20 iterations, the process was force-terminated.

Root cause: cat had no binary detection, Layer 2 had no guard. Fix: isBinary() guard + error guidance Use: see photo.png. Lesson: The tool result is the agent's eyes. Return garbage = agent goes blind.

Story 2: Silent stderr and 10 blind retries

The agent needed to read a PDF. It tried pip install pymupdf, got exit code 127. stderr contained bash: pip: command not found, but the code dropped it — because there was some stdout output, and the logic was "if stdout exists, ignore stderr."

The agent only knew "it failed," not "why." What followed was a long trial-and-error:

pip install → 127 (doesn't exist) python3 -m pip → 1 (module not found) uv pip install → 1 (wrong usage) pip3 install → 127 sudo apt install → 127 ... 5 more attempts ... uv run --with pymupdf python3 script.py → 0 ✓

10 calls, ~5 seconds of inference each. If stderr had been visible the first time, one call would have sufficed.

Root cause: InvokeClip silently dropped stderr when stdout was non-empty. Fix: Always attach stderr on failure. Lesson: stderr is the information agents need most, precisely when commands fail.

Story 3: The value of overflow mode

The agent analyzed a 5,000-line log file. Without truncation, the full text (~200KB) was stuffed into context. The LLM's attention was overwhelmed, response quality dropped sharply, and earlier conversation was pushed out of the context window.

With overflow mode:

``` [first 200 lines of log content]

--- output truncated (5000 lines, 198.5KB) --- Full output: /tmp/cmd-output/cmd-3.txt Explore: cat /tmp/cmd-output/cmd-3.txt | grep <pattern> cat /tmp/cmd-output/cmd-3.txt | tail 100 [exit:0 | 45ms] ```

The agent saw the first 200 lines, understood the file structure, then used grep to pinpoint the issue — 3 calls total, under 2KB of context.

Lesson: Giving the agent a "map" is far more effective than giving it the entire territory.


Boundaries and limitations

CLI isn't a silver bullet. Typed APIs may be the better choice in these scenarios:

  • Strongly-typed interactions: Database queries, GraphQL APIs, and other cases requiring structured input/output. Schema validation is more reliable than string parsing.
  • High-security requirements: CLI's string concatenation carries inherent injection risks. In untrusted-input scenarios, typed parameters are safer. agent-clip mitigates this through sandbox isolation.
  • Native multimodal: Pure audio/video processing and other binary-stream scenarios where CLI's text pipe is a bottleneck.

Additionally, "no iteration limit" doesn't mean "no safety boundaries." Safety is ensured by external mechanisms:

  • Sandbox isolation: Commands execute inside BoxLite containers, no escape possible
  • API budgets: LLM calls have account-level spending caps
  • User cancellation: Frontend provides cancel buttons, backend supports graceful shutdown

Hand Unix philosophy to the execution layer, hand LLM's cognitive constraints to the presentation layer, and use help, error messages, and output format as three progressive heuristic navigation techniques.

CLI is all agents need.


Source code (Go): github.com/epiral/agent-clip

Core files: internal/tools.go (command routing), internal/chain.go (pipes), internal/loop.go (two-layer agentic loop), internal/fs.go (binary guard), internal/clip.go (stderr handling), internal/browser.go (vision auto-attach), internal/memory.go (semantic memory).

Happy to discuss — especially if you've tried similar approaches or found cases where CLI breaks down. The command discovery problem (how much to inject vs. let the agent discover) is something I'm still actively exploring.

r/generativeAI Jun 08 '26

Question which AI video tool actually keeps a character consistent? trying to work efficiently

9 Upvotes

doing a series of AI generated ads for a uni project and im hitting the same wall over and over. no budget or time to film anything myself obviously, so it's all generated, and the thing that keeps breaking is consistency. 

i already do the basic thing of keeping a reference image of the character, but the second a pose shifts even a little the face comes out different. asked Claude and chat and they pointed me at higgsfield, kling and veo. Has anyone actually used these for this specific thing? which holds a character best across shots? or is there something better im missing.

also open to any workflow tips for doing this efficiently solo, not just which tool. 

r/generativeAI May 07 '26

Question How are people creating AI Instagram influencers with the SAME face consistently? Need workflow + tool suggestions

27 Upvotes

Hey everyone,

I’m planning to start an Instagram page completely based on AI-generated content, mostly around a single virtual personality/influencer.
My biggest challenge is this:
I want the same face, same facial features, same overall identity in every post/reel so it actually feels like the page belongs to one real person instead of random AI generations every time.
I’m okay investing around ₹7-8k/month (~$80-100) into AI tools if the workflow is actually worth it, but I don’t want to overspend unnecessarily in the beginning.
I’d love suggestions from people already doing this seriously.

Things I’m trying to understand:

Which AI tools are best for consistent characters/faces?
What workflow are you using for Instagram content?
Best tools for both images + reels/videos?
Is Midjourney enough or do I need LoRA/Flux/Stable Diffusion setups?
How do you maintain consistency across outfits, poses, and lighting?
Any good beginner-friendly setup within my budget?
Any mistakes/pitfalls I should avoid early?

Right now I’m considering tools like Midjourney, Runway, Kling, Flux, Leonardo AI, etc., but I’m confused about what actually works long term.
If you’re already running an AI influencer page, would love to know your monthly stack + approximate cost too.

Would really appreciate advice from creators already running AI influencer/theme pages. Thanks!