Working on a comic panel plugin. Wanted to show what it can do right now

A little video about plugin: https://www.youtube.com/watch?v=AvJivzBg20Q
Code on github: https://github.com/rogudator/rogudators_comic_panel_generator
I’ve heard Krita is looking for plugins to add to plugins list. I think my plugin is far from being ready. I don’t think i qualify right now to be a part of this. I think I will make 2 more videos about the code and the story how I come to this plugin.

9 Likes

Sure! But please do remember to add it there (or ask someone to add it) when it’s ready, I noticed that there was quite a lot of plugins floating around that could be very well put together on the list so if someone is looking for a specific plugin, they can find it.
I’m improving the plugin list, too: https://invent.kde.org/documentation/docs-krita-org/-/blob/master/resources_page.rst (see at the end, there are sections and stuff)

The plugin itself looks useful, I wonder, why does it require Krita to be run as administrator? Also I agree it would be better as Extension (dialog) instead of a Docker.

Nice plugin. Looking forward to the completed one. Thank you for sharing it

It is because it saves file in \ProgramFiles\Krita

stringPreview = self.previewPage()
f = open(“rcpr_alpha.svg”, “w”)
f.write(stringPreview)
f.close()

Thanks to Akir for pointing it out. I will change it later to save in temp folder.

made a video about the code of the plugin https://www.youtube.com/watch?v=pWqH3h5eecw

I was looking at it and I had a couple of thoughts about it.

the max limit should be bigger. Even if the sensible thing to do is 5 have more would encompass those that are not prone to follow a sensible rule for some odd reason. I would go with maybe double because you never know what people will do.

what is your thoughts on panels that collapse and are like merged together? for now it is a very regular grid. I feel like it needs some kind of variation eventually.

1 Like

Not that I’ll make a comic, but one thing straight out of looking your video is after making the grid, is making groups with masks for every panel.
I usually setup a small grid for doing thumbnail sketches, and I really hate when I have to make sure I don’t go out of the sketch panel’s borders in to another sketch. So I usually make every panel a group with either mask or a base layer to clip the other layers to.

I am thinking of this: You make a grid, then you click what borders you want to make disappear and make a page. Maybe I can use QGraphicsView, but it is hard. I still want to make a docker, i just need to put everything in QScrollArea. But making a docker implies that user will change ot size according to theirs needs. QGraphicsView doesn’t have dynamic changing of its size. I guess i have to implement it myself, but I don’t know how. I will try to google it.

I am still thinking of making a docker instead of pop-up window, because when user creates page via pop-up window they can’t choose color depth and other stuff when you usually make document in krita. My idea of workflow was: make document, then make page that will be added as a new layer.

I am making this plugin to aitomate stuff when making comics in krita. To make comics faster. I feel like docker will be faster then pop up window.

But on the other hand I don’t feel like I will actually manage to create this stuff. Maybe I’ll give up and make a lot of checkboxes for every border. Or make a pop-up window even though it doesn’t really match my intention. Who knows.


it is only half
I need to write so much :sob: :sob: :sob: :sob:
And after that I need to figure out how to put it inside pyqt :pensive:

Don’t be affraid… :muscle:
For my last plugin I didn’t reach 30% coding… and already 12000SLOC :nerd_face:

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
SVG                            272              0              0          18631
Python                          33           3877           3369          12049
Qt                              12              4              0           7999
Markdown                         2             58              0            110
HTML                             1              2              0             19
-------------------------------------------------------------------------------
SUM:                           320           3941           3369          38808
-------------------------------------------------------------------------------

Wow!
You don’t code your plugin directly with PyQt and Krita? :thinking:

Grum999

That is a lot of lines

Just found out that I need to rewrite code the third time aaaaaa :skull_and_crossbones:
So I rewrote the second time so that code would look more readable. So I had working console version in clean python. Now I’m working on pyqt version and I stumbled across this problem: so I have a function (that is inside the function, because I just ctrl+c ctrl+v the console version… yeah, not good, pls don’t shame me) in one class, and another class I need to call this function from. Now I think I’ll make 3rd class and pass object of this class between other two and call function from the object.

:thinking:
On my side, at a certain point of development I sometime need to think again about the implementation because, even if what have been coded works.
For example, I didn’t think from the beginning about some potential cool functionalities, and then at a certain point, the cool functionalities can’t be implemented without reviewing part or totality of code.

So, this can happen :wink:

But if it the third time you rewrite the code without having something working (I suppose, because you’re not very clear about your current progress and implementation state about what is working or not), maybe your problem is you’ve started to code too fast…

  1. Do you have a good idea about the plugin functionalities?

  2. If yes, do you know how to implement them with Qt? (I mean maybe you want to provide a user interface in a window or a docker, so do you know what are the possibilities you have to build interface, and how to do it?)

  3. You’re talking about console coding… that’s sound weird to me… that’s practically impossible (for me) to code something under python console; I usually use it only to test some small functions and/or testing how a python function I don’t know works…) Or maybe you’re talking about a script execution in a linux or windows console? :thinking:

  4. If you want to code a plugin for Krita, especially a “comic” plugin, then I guess you’ll have to use Krita’s API at least to produce the final .kra file
    So you must start -from the beggining- to code in Krita: for this you can use Scripter plugin that’s it easy to use and already integrated in Krita

  5. What you’re coding seems to be ‘complex’ then, you may made a pause, and think on the paper about how your classes and method can be organised…

Yes, I sometime do it; that’s not a good or bad practice; language allows it so you can do it.
After it’s more a question of organization: if the function A inside the function B have to be called outside the function B, then, maybe function A have to be declared outside function B…

That’s not clear :slight_smile:

Grum999

Yep, i calculate coordinates and then put in a string and create svg file out of it

Yeah, I just need to get variables bout size of gutters and how many rows and columns

I call it console version, because I run script and it prints in console the body of svg file. Sorry for the confusion. Should I call it script version?

Actually what I do is create svg file externally and then upload it to Krita via Document().CreateNode or Krita.instance().openDocument(“tmp/rcpg.svg”)

I do work on paper, when I take a break from coding! :grin:

Oof, thank god I am not alone doing this.

I guess it is hard for me to explain what I want so instead i will show what I made so far

Hooooray it works!
Can’t believe I spent 2 month on it. I thought I would make it in a week or smth

6 Likes

It is looking really nice to use now. by the demo quite intuitive.

I do the same thing but on little post-it like pieces of paper. I have tons of them now XD

Sometimes I think I should scan them or something I dont have the courage to put them in the trash, haha.

1 Like

I was adding your plugin to Resources page: https://docs.krita.org/en/resources_page.html (it’s probably not there yet), but I noticed that your README doesn’t include the video links, can you add them there? It was really helpful to see on a video how useful your plugin can be :slight_smile:

Also congrats on the plugin.

2 Likes

Cool plugin. i will use to make storyboard.
¡Cheers!!

Okay, I’ll need to remake videos and I will add them to readme